public function updateFieldDefinition($identifier, FieldDefinitionUpdateStruct $fieldDefinitionUpdateStruct) { $contentTypeDraft = $this->contentTypeService->createContentTypeDraft($this->currentContentType); $this->contentTypeService->updateFieldDefinition($contentTypeDraft, $this->currentContentType->getFieldDefinition($identifier), $fieldDefinitionUpdateStruct); $this->contentTypeService->publishContentTypeDraft($contentTypeDraft); $this->currentContentType = $this->contentTypeService->loadContentTypeByIdentifier($this->currentContentType->identifier); }
public function processPublishContentType(FormActionEvent $event) { $contentTypeDraft = $event->getData()->contentTypeDraft; $this->contentTypeService->publishContentTypeDraft($contentTypeDraft); if (isset($this->options['redirectRouteAfterPublish'])) { $event->setResponse(new RedirectResponse($this->router->generate($this->options['redirectRouteAfterPublish']))); } }
/** * @inheritdoc */ public function visit(TreeNodeInterface $node, &$data) { $contentTypeIdentifier = $data['identifier']; if ($this->isExistingContentType($contentTypeIdentifier)) { $draft = $this->getUpdatedDraft($data); } else { $draft = $this->getNewDraft($data); } $this->contentTypeService->publishContentTypeDraft($draft); }
/** * Publishes a content type draft * * @param $contentTypeId * * @throws \eZ\Publish\Core\REST\Server\Exceptions\ForbiddenException * @return \eZ\Publish\Core\REST\Server\Values\RestContentType */ public function publishContentTypeDraft($contentTypeId) { $contentTypeDraft = $this->contentTypeService->loadContentTypeDraft($contentTypeId); $fieldDefinitions = $contentTypeDraft->getFieldDefinitions(); if (empty($fieldDefinitions)) { throw new ForbiddenException('Empty content type draft cannot be published'); } $this->contentTypeService->publishContentTypeDraft($contentTypeDraft); $publishedContentType = $this->contentTypeService->loadContentType($contentTypeDraft->id); return new Values\RestContentType($publishedContentType, $publishedContentType->getFieldDefinitions()); }
/** * Publish the content type and update content objects. * * This method updates content objects, depending on the changed field definitions. * * @throws \eZ\Publish\API\Repository\Exceptions\BadStateException If the content type has no draft * @throws \eZ\Publish\API\Repository\Exceptions\InvalidArgumentException If the content type has no field definitions * @throws \eZ\Publish\API\Repository\Exceptions\UnauthorizedException if the user is not allowed to publish a content type * * @param \eZ\Publish\API\Repository\Values\ContentType\ContentTypeDraft $contentTypeDraft */ public function publishContentTypeDraft(ContentTypeDraft $contentTypeDraft) { $returnValue = $this->service->publishContentTypeDraft($contentTypeDraft); $this->signalDispatcher->emit(new PublishContentTypeDraftSignal(array('contentTypeDraftId' => $contentTypeDraft->id))); return $returnValue; }