vendor/shopware/core/Content/Cms/CmsPageEntity.php line 13

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Shopware\Core\Content\Cms;
  3. use Shopware\Core\Content\Category\CategoryCollection;
  4. use Shopware\Core\Content\Cms\Aggregate\CmsSection\CmsSectionCollection;
  5. use Shopware\Core\Content\Cms\Aggregate\CmsSlot\CmsSlotEntity;
  6. use Shopware\Core\Content\Media\MediaEntity;
  7. use Shopware\Core\Framework\DataAbstractionLayer\Entity;
  8. use Shopware\Core\Framework\DataAbstractionLayer\EntityCollection;
  9. use Shopware\Core\Framework\DataAbstractionLayer\EntityIdTrait;
  10. class CmsPageEntity extends Entity
  11. {
  12.     use EntityIdTrait;
  13.     /**
  14.      * @var string|null
  15.      */
  16.     protected $name;
  17.     /**
  18.      * @var string
  19.      */
  20.     protected $type;
  21.     /**
  22.      * @var string
  23.      */
  24.     protected $entity;
  25.     /**
  26.      * @var CmsSectionCollection|null
  27.      */
  28.     protected $sections;
  29.     /**
  30.      * @var EntityCollection|null
  31.      */
  32.     protected $translations;
  33.     /**
  34.      * @var CategoryCollection|null
  35.      */
  36.     protected $categories;
  37.     /**
  38.      * @var array|null
  39.      */
  40.     protected $config;
  41.     /**
  42.      * @var string|null
  43.      */
  44.     protected $previewMediaId;
  45.     /**
  46.      * @var MediaEntity|null
  47.      */
  48.     protected $previewMedia;
  49.     /**
  50.      * @var array|null
  51.      */
  52.     protected $customFields;
  53.     /**
  54.      * @var bool
  55.      */
  56.     protected $locked;
  57.     public function getName(): string
  58.     {
  59.         return $this->name;
  60.     }
  61.     public function setName(string $name): void
  62.     {
  63.         $this->name $name;
  64.     }
  65.     public function getType(): string
  66.     {
  67.         return $this->type;
  68.     }
  69.     public function setType(string $type): void
  70.     {
  71.         $this->type $type;
  72.     }
  73.     public function getEntity(): string
  74.     {
  75.         return $this->entity;
  76.     }
  77.     public function setEntity(string $entity): void
  78.     {
  79.         $this->entity $entity;
  80.     }
  81.     public function getSections(): ?CmsSectionCollection
  82.     {
  83.         return $this->sections;
  84.     }
  85.     public function setSections(CmsSectionCollection $sections): void
  86.     {
  87.         $this->sections $sections;
  88.     }
  89.     public function getTranslations(): ?EntityCollection
  90.     {
  91.         return $this->translations;
  92.     }
  93.     public function setTranslations(EntityCollection $translations): void
  94.     {
  95.         $this->translations $translations;
  96.     }
  97.     public function getCustomFields(): ?array
  98.     {
  99.         return $this->customFields;
  100.     }
  101.     public function setCustomFields(?array $customFields): void
  102.     {
  103.         $this->customFields $customFields;
  104.     }
  105.     public function getCategories(): ?CategoryCollection
  106.     {
  107.         return $this->categories;
  108.     }
  109.     public function setCategories(CategoryCollection $categories): void
  110.     {
  111.         $this->categories $categories;
  112.     }
  113.     public function getConfig(): ?array
  114.     {
  115.         return $this->config;
  116.     }
  117.     public function setConfig(array $config): void
  118.     {
  119.         $this->config $config;
  120.     }
  121.     public function getPreviewMediaId(): ?string
  122.     {
  123.         return $this->previewMediaId;
  124.     }
  125.     public function setPreviewMediaId(string $previewMediaId): void
  126.     {
  127.         $this->previewMediaId $previewMediaId;
  128.     }
  129.     public function getPreviewMedia(): ?MediaEntity
  130.     {
  131.         return $this->previewMedia;
  132.     }
  133.     public function setPreviewMedia(MediaEntity $previewMedia): void
  134.     {
  135.         $this->previewMedia $previewMedia;
  136.     }
  137.     public function getLocked(): bool
  138.     {
  139.         return $this->locked;
  140.     }
  141.     public function setLocked(bool $locked): void
  142.     {
  143.         $this->locked $locked;
  144.     }
  145.     public function getFirstElementOfType(string $type): ?CmsSlotEntity
  146.     {
  147.         $elements $this->getElementsOfType($type);
  148.         return array_shift($elements);
  149.     }
  150.     public function getElementsOfType(string $type): array
  151.     {
  152.         $elements = [];
  153.         if (!$this->getSections()) {
  154.             return $elements;
  155.         }
  156.         foreach ($this->getSections()->getBlocks() as $block) {
  157.             if (!$block->getSlots()) {
  158.                 continue;
  159.             }
  160.             foreach ($block->getSlots() as $slot) {
  161.                 if ($slot->getType() === $type) {
  162.                     $elements[] = $slot;
  163.                 }
  164.             }
  165.         }
  166.         return $elements;
  167.     }
  168.     public function getApiAlias(): string
  169.     {
  170.         return 'cms_page';
  171.     }
  172. }