Пример #1
0
 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);
 }
Пример #4
0
 /**
  * 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;
 }