vendor/ezsystems/ezplatform-kernel/eZ/Publish/API/Repository/Values/Content/ContentInfo.php line 34

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. declare(strict_types=1);
  7. namespace eZ\Publish\API\Repository\Values\Content;
  8. use eZ\Publish\API\Repository\Values\ContentType\ContentType;
  9. use eZ\Publish\API\Repository\Values\User\User;
  10. use eZ\Publish\API\Repository\Values\ValueObject;
  11. /**
  12.  * This class provides all version independent information of the Content object.
  13.  *
  14.  * @property-read int $id The unique id of the Content object
  15.  * @property-read int $contentTypeId The unique id of the Content Type object the Content object is an instance of
  16.  * @property-read string $name the computed name (via name schema) in the main language of the Content object
  17.  * @property-read int $sectionId the section to which the Content object is assigned
  18.  * @property-read int $currentVersionNo Current Version number is the version number of the published version or the version number of a newly created draft (which is 1).
  19.  * @property-read bool $published true if there exists a published version false otherwise
  20.  * @property-read int $ownerId the user id of the owner of the Content object
  21.  * @property-read \DateTime $modificationDate Content object modification date
  22.  * @property-read \DateTime $publishedDate date of the first publish
  23.  * @property-read bool $alwaysAvailable Indicates if the Content object is shown in the mainlanguage if its not present in an other requested language
  24.  * @property-read string $remoteId a global unique id of the Content object
  25.  * @property-read string $mainLanguageCode The main language code of the Content object. If the available flag is set to true the Content is shown in this language if the requested language does not exist.
  26.  * @property-read int|null $mainLocationId Identifier of the main location.
  27.  * @property-read int $status status of the Content object
  28.  * @property-read bool $isHidden status of the Content object
  29.  */
  30. class ContentInfo extends ValueObject
  31. {
  32.     public const STATUS_DRAFT 0;
  33.     public const STATUS_PUBLISHED 1;
  34.     public const STATUS_TRASHED 2;
  35.     /**
  36.      * The unique id of the Content object.
  37.      *
  38.      * @var int
  39.      */
  40.     protected $id;
  41.     /**
  42.      * The Content Type id of the Content object.
  43.      *
  44.      * @var int
  45.      */
  46.     protected $contentTypeId;
  47.     /**
  48.      * The computed name (via name schema) in the main language of the Content object.
  49.      *
  50.      * For names in other languages then main see {@see \eZ\Publish\API\Repository\Values\Content\VersionInfo}
  51.      *
  52.      * @var string
  53.      */
  54.     protected $name;
  55.     /**
  56.      * The section to which the Content object is assigned.
  57.      *
  58.      * @var int
  59.      */
  60.     protected $sectionId;
  61.     /**
  62.      * Current Version number is the version number of the published version or the version number of
  63.      * a newly created draft (which is 1).
  64.      *
  65.      * @var int
  66.      */
  67.     protected $currentVersionNo;
  68.     /**
  69.      * True if there exists a published version, false otherwise.
  70.      *
  71.      * @var bool Constant.
  72.      */
  73.     protected $published;
  74.     /**
  75.      * The owner of the Content object.
  76.      *
  77.      * @var int
  78.      */
  79.     protected $ownerId;
  80.     /**
  81.      * Content modification date.
  82.      *
  83.      * @var \DateTime
  84.      */
  85.     protected $modificationDate;
  86.     /**
  87.      * Content publication date.
  88.      *
  89.      * @var \DateTime
  90.      */
  91.     protected $publishedDate;
  92.     /**
  93.      * Indicates if the Content object is shown in the mainlanguage if its not present in an other requested language.
  94.      *
  95.      * @var bool
  96.      */
  97.     protected $alwaysAvailable;
  98.     /**
  99.      * Remote identifier used as a custom identifier for the object.
  100.      *
  101.      * @var string
  102.      */
  103.     protected $remoteId;
  104.     /**
  105.      * The main language code of the Content object.
  106.      *
  107.      * @var string
  108.      */
  109.     protected $mainLanguageCode;
  110.     /**
  111.      * Identifier of the main location.
  112.      *
  113.      * If the Content object has multiple locations,
  114.      * $mainLocationId will point to the main one.
  115.      *
  116.      * @var int|null
  117.      */
  118.     protected $mainLocationId;
  119.     /**
  120.      * Status of the content.
  121.      *
  122.      * Replaces deprecated API\ContentInfo::$published.
  123.      *
  124.      * @var int
  125.      */
  126.     protected $status;
  127.     /** @var bool */
  128.     protected $isHidden;
  129.     /** @var \eZ\Publish\API\Repository\Values\ContentType\ContentType */
  130.     protected $contentType;
  131.     /** @var \eZ\Publish\API\Repository\Values\Content\Section */
  132.     protected $section;
  133.     /** @var \eZ\Publish\API\Repository\Values\Content\Language */
  134.     protected $mainLanguage;
  135.     /** @var \eZ\Publish\API\Repository\Values\Content\Location|null */
  136.     protected $mainLocation;
  137.     /** @var \eZ\Publish\API\Repository\Values\User\User */
  138.     protected $owner;
  139.     /**
  140.      * @return bool
  141.      */
  142.     public function isDraft(): bool
  143.     {
  144.         return $this->status === self::STATUS_DRAFT;
  145.     }
  146.     /**
  147.      * @return bool
  148.      */
  149.     public function isPublished(): bool
  150.     {
  151.         return $this->status === self::STATUS_PUBLISHED;
  152.     }
  153.     /**
  154.      * @return bool
  155.      */
  156.     public function isTrashed(): bool
  157.     {
  158.         return $this->status === self::STATUS_TRASHED;
  159.     }
  160.     public function getContentType(): ContentType
  161.     {
  162.         return $this->contentType;
  163.     }
  164.     public function getSection(): Section
  165.     {
  166.         return $this->section;
  167.     }
  168.     public function getMainLanguage(): Language
  169.     {
  170.         return $this->mainLanguage;
  171.     }
  172.     public function getMainLocation(): ?Location
  173.     {
  174.         return $this->mainLocation;
  175.     }
  176.     public function getOwner(): User
  177.     {
  178.         return $this->owner;
  179.     }
  180. }