eZ\Publish\Core\Persistence\Legacy\Content\Type\Mapper::createCreateStructFromType PHP Method

createCreateStructFromType() public method

Creates a create struct from an existing $type.
public createCreateStructFromType ( eZ\Publish\SPI\Persistence\Content\Type $type ) : eZ\Publish\SPI\Persistence\Content\Type\CreateStruct
$type eZ\Publish\SPI\Persistence\Content\Type
return eZ\Publish\SPI\Persistence\Content\Type\CreateStruct
    public function createCreateStructFromType(Type $type)
    {
        $createStruct = new CreateStruct();
        $createStruct->name = $type->name;
        $createStruct->status = $type->status;
        $createStruct->description = $type->description;
        $createStruct->identifier = $type->identifier;
        $createStruct->created = $type->created;
        $createStruct->modified = $type->modified;
        $createStruct->creatorId = $type->creatorId;
        $createStruct->modifierId = $type->modifierId;
        $createStruct->remoteId = $type->remoteId;
        $createStruct->urlAliasSchema = $type->urlAliasSchema;
        $createStruct->nameSchema = $type->nameSchema;
        $createStruct->isContainer = $type->isContainer;
        $createStruct->initialLanguageId = $type->initialLanguageId;
        $createStruct->groupIds = $type->groupIds;
        $createStruct->fieldDefinitions = $type->fieldDefinitions;
        $createStruct->defaultAlwaysAvailable = $type->defaultAlwaysAvailable;
        $createStruct->sortField = $type->sortField;
        $createStruct->sortOrder = $type->sortOrder;
        return $createStruct;
    }

Usage Example

 /**
  * @param mixed $userId
  * @param mixed $contentTypeId
  * @param int $status One of Type::STATUS_DEFINED|Type::STATUS_DRAFT|Type::STATUS_MODIFIED
  *
  * @return Type
  */
 public function copy($userId, $contentTypeId, $status)
 {
     $createStruct = $this->mapper->createCreateStructFromType($this->load($contentTypeId, $status));
     $createStruct->modifierId = $userId;
     $createStruct->created = $createStruct->modified = time();
     $createStruct->creatorId = $userId;
     $createStruct->remoteId = md5(uniqid(get_class($createStruct), true));
     $createStruct->identifier = 'copy_of_' . $createStruct->identifier . '_' . $createStruct->remoteId;
     // Set FieldDefinition ids to null to trigger creating new id
     foreach ($createStruct->fieldDefinitions as $fieldDefinition) {
         $fieldDefinition->id = null;
     }
     return $this->internalCreate($createStruct);
 }
All Usage Examples Of eZ\Publish\Core\Persistence\Legacy\Content\Type\Mapper::createCreateStructFromType