本文整理汇总了PHP中eZ\Publish\API\Repository\ContentTypeService::updateContentTypeDraft方法的典型用法代码示例。如果您正苦于以下问题:PHP ContentTypeService::updateContentTypeDraft方法的具体用法?PHP ContentTypeService::updateContentTypeDraft怎么用?PHP ContentTypeService::updateContentTypeDraft使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类eZ\Publish\API\Repository\ContentTypeService
的用法示例。
在下文中一共展示了ContentTypeService::updateContentTypeDraft方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getUpdatedDraft
/**
* Update content type definition and returns a draft
*
* @param array $data
* @return \eZ\Publish\API\Repository\Values\ContentType\ContentTypeDraft
*/
private function getUpdatedDraft(array &$data)
{
$contentType = $this->contentTypeService->loadContentTypeByIdentifier($data['identifier']);
$draft = $this->contentTypeService->createContentTypeDraft($contentType);
// Update content type
$struct = $this->contentTypeService->newContentTypeUpdateStruct($data);
$this->fillValueObject($struct, $data);
$diff = $this->diff->diff($contentType->fieldDefinitions, $data['field_definitions'], 'identifier');
// @todo: introduce field updates (now only remove and add are supported)
$this->updateDraftFields($draft, $diff, $data);
$this->contentTypeService->updateContentTypeDraft($draft, $struct);
return $draft;
}
示例2: processDefaultAction
public function processDefaultAction(FormActionEvent $event)
{
// Don't update anything if we just want to cancel the draft.
if ($event->getClickedButton() === 'removeDraft') {
return;
}
// Always update FieldDefinitions and ContentTypeDraft
/** @var \EzSystems\RepositoryForms\Data\ContentTypeData $contentTypeData */
$contentTypeData = $event->getData();
$contentTypeDraft = $contentTypeData->contentTypeDraft;
foreach ($contentTypeData->fieldDefinitionsData as $fieldDefData) {
$this->contentTypeService->updateFieldDefinition($contentTypeDraft, $fieldDefData->fieldDefinition, $fieldDefData);
}
$this->contentTypeService->updateContentTypeDraft($contentTypeDraft, $contentTypeData);
}
示例3: updateContentTypeDraft
/**
* Updates meta data of a draft. This method does not handle field definitions
*
* @param $contentTypeId
*
* @throws \eZ\Publish\Core\REST\Server\Exceptions\ForbiddenException
* @return \eZ\Publish\Core\REST\Server\Values\RestContentType
*/
public function updateContentTypeDraft($contentTypeId, Request $request)
{
$contentTypeDraft = $this->contentTypeService->loadContentTypeDraft($contentTypeId);
$contentTypeUpdateStruct = $this->inputDispatcher->parse(new Message(array('Content-Type' => $request->headers->get('Content-Type')), $request->getContent()));
try {
$this->contentTypeService->updateContentTypeDraft($contentTypeDraft, $contentTypeUpdateStruct);
} catch (InvalidArgumentException $e) {
throw new ForbiddenException($e->getMessage());
}
return new Values\RestContentType($this->contentTypeService->loadContentTypeDraft($contentTypeDraft->id));
}
示例4: updateContentTypeDraft
/**
* Update a Content Type object
*
* Does not update fields (fieldDefinitions), use {@link updateFieldDefinition()} to update them.
*
* @throws \eZ\Publish\API\Repository\Exceptions\UnauthorizedException if the user is not allowed to update a content type
* @throws \eZ\Publish\API\Repository\Exceptions\InvalidArgumentException If the given identifier or remoteId already exists.
*
* @param \eZ\Publish\API\Repository\Values\ContentType\ContentTypeDraft $contentTypeDraft
* @param \eZ\Publish\API\Repository\Values\ContentType\ContentTypeUpdateStruct $contentTypeUpdateStruct
*/
public function updateContentTypeDraft(ContentTypeDraft $contentTypeDraft, ContentTypeUpdateStruct $contentTypeUpdateStruct)
{
$returnValue = $this->service->updateContentTypeDraft($contentTypeDraft, $contentTypeUpdateStruct);
$this->signalDispatcher->emit(new UpdateContentTypeDraftSignal(array('contentTypeDraftId' => $contentTypeDraft->id)));
return $returnValue;
}