eZ\Publish\Core\Persistence\Legacy\Content\Type\Handler::copy PHP Метод

copy() публичный Метод

public copy ( mixed $userId, mixed $contentTypeId, integer $status ) : eZ\Publish\SPI\Persistence\Content\Type
$userId mixed
$contentTypeId mixed
$status integer One of Type::STATUS_DEFINED|Type::STATUS_DRAFT|Type::STATUS_MODIFIED
Результат eZ\Publish\SPI\Persistence\Content\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));
        // extract actual identifier name, without "copy_of_" and number
        $originalIdentifier = preg_replace('/^copy_of_(.+)_\\d+$/', '$1', $createStruct->identifier);
        // set temporary identifier
        $createStruct->identifier = $createStruct->remoteId;
        // Set FieldDefinition ids to null to trigger creating new id
        foreach ($createStruct->fieldDefinitions as $fieldDefinition) {
            $fieldDefinition->id = null;
        }
        $contentTypeCopy = $this->internalCreate($createStruct);
        $updateStruct = $this->mapper->createUpdateStructFromType($contentTypeCopy);
        $updateStruct->identifier = 'copy_of_' . $originalIdentifier . '_' . $contentTypeCopy->id;
        return $this->update($contentTypeCopy->id, $contentTypeCopy->status, $updateStruct);
    }