vendor/ezsystems/ezplatform-kernel/eZ/Publish/Core/Repository/Values/ContentType/ContentType.php line 38

Open in your IDE?
  1. <?php
  2. /**
  3.  * @copyright Copyright (C) Ibexa AS. All rights reserved.
  4.  * @license For full copyright and license information view LICENSE file distributed with this source code.
  5.  */
  6. namespace eZ\Publish\Core\Repository\Values\ContentType;
  7. use eZ\Publish\API\Repository\Values\ContentType\ContentType as APIContentType;
  8. use eZ\Publish\API\Repository\Values\ContentType\FieldDefinitionCollection as APIFieldDefinitionCollection;
  9. use eZ\Publish\Core\Repository\Values\MultiLanguageDescriptionTrait;
  10. use eZ\Publish\Core\Repository\Values\MultiLanguageNameTrait;
  11. use eZ\Publish\Core\Repository\Values\MultiLanguageTrait;
  12. /**
  13.  * this class represents a content type value.
  14.  *
  15.  * @property-read \eZ\Publish\API\Repository\Values\ContentType\ContentTypeGroup[] $contentTypeGroups calls getContentTypeGroups
  16.  * @property-read \eZ\Publish\API\Repository\Values\ContentType\FieldDefinitionCollection $fieldDefinitions calls getFieldDefinitions() or on access getFieldDefinition($fieldDefIdentifier)
  17.  * @property-read mixed $id the id of the content type
  18.  * @property-read int $status the status of the content type. One of ContentType::STATUS_DEFINED|ContentType::STATUS_DRAFT|ContentType::STATUS_MODIFIED
  19.  * @property-read string $identifier the identifier of the content type
  20.  * @property-read \DateTime $creationDate the date of the creation of this content type
  21.  * @property-read \DateTime $modificationDate the date of the last modification of this content type
  22.  * @property-read mixed $creatorId the user id of the creator of this content type
  23.  * @property-read mixed $modifierId the user id of the user which has last modified this content type
  24.  * @property-read string $remoteId a global unique id of the content object
  25.  * @property-read string $urlAliasSchema URL alias schema. If nothing is provided, $nameSchema will be used instead.
  26.  * @property-read string $nameSchema  The name schema.
  27.  * @property-read bool $isContainer This flag hints to UIs if type may have children or not.
  28.  * @property-read string $mainLanguageCode the main language of the content type names and description used for fallback.
  29.  * @property-read bool $defaultAlwaysAvailable if an instance of a content type is created the always available flag is set by default this this value.
  30.  * @property-read int $defaultSortField Specifies which property the child locations should be sorted on by default when created. Valid values are found at {@link Location::SORT_FIELD_*}
  31.  * @property-read int $defaultSortOrder Specifies whether the sort order should be ascending or descending by default when created. Valid values are {@link Location::SORT_ORDER_*}
  32.  *
  33.  * @internal Meant for internal use by Repository, type hint against API object instead.
  34.  */
  35. class ContentType extends APIContentType
  36. {
  37.     use MultiLanguageTrait;
  38.     use MultiLanguageNameTrait;
  39.     use MultiLanguageDescriptionTrait;
  40.     /**
  41.      * Holds the collection of contenttypegroups the contenttype is assigned to.
  42.      *
  43.      * @var \eZ\Publish\API\Repository\Values\ContentType\ContentTypeGroup[]
  44.      */
  45.     protected $contentTypeGroups = [];
  46.     /**
  47.      * Contains the content type field definitions from this type.
  48.      *
  49.      * @var \eZ\Publish\API\Repository\Values\ContentType\FieldDefinitionCollection
  50.      */
  51.     protected $fieldDefinitions;
  52.     public function __construct(array $data = [])
  53.     {
  54.         $this->fieldDefinitions = new FieldDefinitionCollection();
  55.         parent::__construct($data);
  56.     }
  57.     /**
  58.      * This method returns the content type groups this content type is assigned to.
  59.      *
  60.      * @return \eZ\Publish\API\Repository\Values\ContentType\ContentTypeGroup[]
  61.      */
  62.     public function getContentTypeGroups()
  63.     {
  64.         return $this->contentTypeGroups;
  65.     }
  66.     /**
  67.      * This method returns the content type field definitions from this type.
  68.      *
  69.      * @return \eZ\Publish\API\Repository\Values\ContentType\FieldDefinitionCollection
  70.      */
  71.     public function getFieldDefinitions(): APIFieldDefinitionCollection
  72.     {
  73.         return $this->fieldDefinitions;
  74.     }
  75. }