本文整理汇总了PHP中eZ\Publish\API\Repository\ContentTypeService::createContentType方法的典型用法代码示例。如果您正苦于以下问题:PHP ContentTypeService::createContentType方法的具体用法?PHP ContentTypeService::createContentType怎么用?PHP ContentTypeService::createContentType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类eZ\Publish\API\Repository\ContentTypeService
的用法示例。
在下文中一共展示了ContentTypeService::createContentType方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: createContentType
public function createContentType(ContentTypeCreateStruct $struct)
{
if (!isset($struct->mainLanguageCode)) {
$struct->mainLanguageCode = 'eng-GB';
}
if (!isset($struct->names)) {
$struct->names = ['eng-GB' => $struct->identifier];
}
$this->contentTypeService->publishContentTypeDraft($this->contentTypeService->createContentType($struct, [$this->contentTypeService->loadContentTypeGroupByIdentifier('Content')]));
$this->currentContentType = $this->contentTypeService->loadContentTypeByIdentifier($struct->identifier);
}
示例2: getNewDraft
/**
* Create new content type draft
*
* @param array $data
* @return \eZ\Publish\API\Repository\Values\ContentType\ContentTypeDraft
*/
private function getNewDraft(array &$data)
{
$struct = $this->contentTypeService->newContentTypeCreateStruct($data['identifier']);
$this->fillValueObject($struct, $data);
$struct->mainLanguageCode = $this->getContentDataMainLanguage($data);
$groups = $this->getContentTypeGroups($data);
return $this->contentTypeService->createContentType($struct, $groups);
}
示例3: createContentTypeAction
public function createContentTypeAction(Request $request, $contentTypeGroupId, $languageCode = null)
{
$createForm = $this->createForm(new ContentTypeCreateType($this->contentTypeService), ['contentTypeGroupId' => $contentTypeGroupId]);
$createForm->handleRequest($request);
if ($createForm->isValid()) {
$languageCode = $languageCode ?: $this->prioritizedLanguages[0];
$contentTypeGroup = $this->contentTypeService->loadContentTypeGroup($createForm->getData()['contentTypeGroupId']);
$contentTypeCreateStruct = new ContentTypeCreateStruct(['identifier' => '__new__' . md5(microtime(true)), 'mainLanguageCode' => $languageCode, 'names' => [$languageCode => 'New ContentType']]);
$contentTypeDraft = $this->contentTypeService->createContentType($contentTypeCreateStruct, [$contentTypeGroup]);
return $this->redirectToRouteAfterFormPost('admin_contenttypeUpdate', ['contentTypeId' => $contentTypeDraft->id, 'languageCode' => $languageCode]);
}
// Form validation failed. Send errors as notifications.
foreach ($createForm->getErrors(true) as $error) {
$this->notifyErrorPlural($error->getMessageTemplate(), $error->getMessagePluralization(), $error->getMessageParameters(), 'ezrepoforms_content_type');
}
return $this->redirectToRouteAfterFormPost('admin_contenttypeGroupView', ['contentTypeGroupId' => $contentTypeGroupId]);
}
示例4: createContentType
/**
* Creates a new content type draft in the given content type group
*
* @param $contentTypeGroupId
*
* @throws \eZ\Publish\Core\REST\Server\Exceptions\ForbiddenException
* @throws \eZ\Publish\Core\REST\Server\Exceptions\BadRequestException
* @return \eZ\Publish\Core\REST\Server\Values\CreatedContentType
*/
public function createContentType($contentTypeGroupId, Request $request)
{
$contentTypeGroup = $this->contentTypeService->loadContentTypeGroup($contentTypeGroupId);
$publish = $request->query->has('publish') && $request->query->get('publish') === 'true';
try {
$contentTypeDraft = $this->contentTypeService->createContentType($this->inputDispatcher->parse(new Message(array('Content-Type' => $request->headers->get('Content-Type'), '__publish' => $publish), $request->getContent())), array($contentTypeGroup));
} catch (InvalidArgumentException $e) {
throw new ForbiddenException($e->getMessage());
} catch (ContentTypeValidationException $e) {
throw new BadRequestException($e->getMessage());
} catch (ContentTypeFieldDefinitionValidationException $e) {
throw new BadRequestException($e->getMessage());
} catch (Exceptions\Parser $e) {
throw new BadRequestException($e->getMessage());
}
if ($publish) {
$this->contentTypeService->publishContentTypeDraft($contentTypeDraft);
$contentType = $this->contentTypeService->loadContentType($contentTypeDraft->id);
return new Values\CreatedContentType(array('contentType' => new Values\RestContentType($contentType, $contentType->getFieldDefinitions())));
}
return new Values\CreatedContentType(array('contentType' => new Values\RestContentType($contentTypeDraft, $contentTypeDraft->getFieldDefinitions())));
}
示例5: createContentType
/**
* Create a Content Type object.
*
* The content type is created in the state STATUS_DRAFT.
*
* @throws \eZ\Publish\API\Repository\Exceptions\UnauthorizedException if the user is not allowed to create a content type
* @throws \eZ\Publish\API\Repository\Exceptions\InvalidArgumentException In case when
* - array of content type groups does not contain at least one content type group
* - identifier or remoteId in the content type create struct already exists
* - there is a duplicate field identifier in the content type create struct
* - content type create struct does not contain at least one field definition create struct
* @throws \eZ\Publish\API\Repository\Exceptions\ContentTypeFieldDefinitionValidationException
* if a field definition in the $contentTypeCreateStruct is not valid
*
* @param \eZ\Publish\API\Repository\Values\ContentType\ContentTypeCreateStruct $contentTypeCreateStruct
* @param \eZ\Publish\API\Repository\Values\ContentType\ContentTypeGroup[] $contentTypeGroups Required array of
* {@link ContentTypeGroup} to link type with (must contain one)
*
* @return \eZ\Publish\API\Repository\Values\ContentType\ContentTypeDraft
*/
public function createContentType(ContentTypeCreateStruct $contentTypeCreateStruct, array $contentTypeGroups)
{
$returnValue = $this->service->createContentType($contentTypeCreateStruct, $contentTypeGroups);
$this->signalDispatcher->emit(new CreateContentTypeSignal(array('contentTypeId' => $returnValue->id)));
return $returnValue;
}