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

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\CmsPageTranslation\CmsPageTranslationEntity;
  5. use Shopware\Core\Content\Cms\Aggregate\CmsSection\CmsSectionCollection;
  6. use Shopware\Core\Content\Cms\Aggregate\CmsSlot\CmsSlotEntity;
  7. use Shopware\Core\Content\LandingPage\LandingPageCollection;
  8. use Shopware\Core\Content\Media\MediaEntity;
  9. use Shopware\Core\Content\Product\ProductCollection;
  10. use Shopware\Core\Framework\DataAbstractionLayer\Entity;
  11. use Shopware\Core\Framework\DataAbstractionLayer\EntityCollection;
  12. use Shopware\Core\Framework\DataAbstractionLayer\EntityCustomFieldsTrait;
  13. use Shopware\Core\Framework\DataAbstractionLayer\EntityIdTrait;
  14. use Shopware\Core\Framework\Log\Package;
  15. #[Package('content')]
  16. class CmsPageEntity extends Entity
  17. {
  18.     use EntityIdTrait;
  19.     use EntityCustomFieldsTrait;
  20.     /**
  21.      * @var string|null
  22.      */
  23.     protected $name;
  24.     /**
  25.      * @var string
  26.      */
  27.     protected $type;
  28.     /**
  29.      * @var string|null
  30.      */
  31.     protected $entity;
  32.     /**
  33.      * @var CmsSectionCollection|null
  34.      */
  35.     protected $sections;
  36.     /**
  37.      * @var EntityCollection<CmsPageTranslationEntity>|null
  38.      */
  39.     protected $translations;
  40.     /**
  41.      * @var CategoryCollection|null
  42.      */
  43.     protected $categories;
  44.     /**
  45.      * @var ProductCollection|null
  46.      */
  47.     protected $products;
  48.     /**
  49.      * @var string|null
  50.      */
  51.     protected $cssClass;
  52.     /**
  53.      * @var array|null
  54.      */
  55.     protected $config;
  56.     /**
  57.      * @var string|null
  58.      */
  59.     protected $previewMediaId;
  60.     /**
  61.      * @var MediaEntity|null
  62.      */
  63.     protected $previewMedia;
  64.     /**
  65.      * @var bool
  66.      */
  67.     protected $locked;
  68.     /**
  69.      * @var LandingPageCollection|null
  70.      */
  71.     protected $landingPages;
  72.     /**
  73.      * @var CmsPageCollection|null
  74.      */
  75.     protected $homeSalesChannels;
  76.     public function getName(): ?string
  77.     {
  78.         return $this->name;
  79.     }
  80.     public function setName(?string $name): void
  81.     {
  82.         $this->name $name;
  83.     }
  84.     public function getType(): string
  85.     {
  86.         return $this->type;
  87.     }
  88.     public function setType(string $type): void
  89.     {
  90.         $this->type $type;
  91.     }
  92.     public function getEntity(): ?string
  93.     {
  94.         return $this->entity;
  95.     }
  96.     public function setEntity(?string $entity): void
  97.     {
  98.         $this->entity $entity;
  99.     }
  100.     public function getSections(): ?CmsSectionCollection
  101.     {
  102.         return $this->sections;
  103.     }
  104.     public function setSections(CmsSectionCollection $sections): void
  105.     {
  106.         $this->sections $sections;
  107.     }
  108.     /**
  109.      * @return EntityCollection<CmsPageTranslationEntity>|null
  110.      */
  111.     public function getTranslations(): ?EntityCollection
  112.     {
  113.         return $this->translations;
  114.     }
  115.     /**
  116.      * @param EntityCollection<CmsPageTranslationEntity> $translations
  117.      */
  118.     public function setTranslations(EntityCollection $translations): void
  119.     {
  120.         $this->translations $translations;
  121.     }
  122.     public function getCategories(): ?CategoryCollection
  123.     {
  124.         return $this->categories;
  125.     }
  126.     public function setCategories(CategoryCollection $categories): void
  127.     {
  128.         $this->categories $categories;
  129.     }
  130.     public function getProducts(): ?ProductCollection
  131.     {
  132.         return $this->products;
  133.     }
  134.     public function setProducts(ProductCollection $products): void
  135.     {
  136.         $this->products $products;
  137.     }
  138.     public function getCssClass(): ?string
  139.     {
  140.         return $this->cssClass;
  141.     }
  142.     public function setCssClass(?string $cssClass): void
  143.     {
  144.         $this->cssClass $cssClass;
  145.     }
  146.     public function getConfig(): ?array
  147.     {
  148.         return $this->config;
  149.     }
  150.     public function setConfig(array $config): void
  151.     {
  152.         $this->config $config;
  153.     }
  154.     public function getPreviewMediaId(): ?string
  155.     {
  156.         return $this->previewMediaId;
  157.     }
  158.     public function setPreviewMediaId(string $previewMediaId): void
  159.     {
  160.         $this->previewMediaId $previewMediaId;
  161.     }
  162.     public function getPreviewMedia(): ?MediaEntity
  163.     {
  164.         return $this->previewMedia;
  165.     }
  166.     public function setPreviewMedia(MediaEntity $previewMedia): void
  167.     {
  168.         $this->previewMedia $previewMedia;
  169.     }
  170.     public function getLocked(): bool
  171.     {
  172.         return $this->locked;
  173.     }
  174.     public function setLocked(bool $locked): void
  175.     {
  176.         $this->locked $locked;
  177.     }
  178.     public function getFirstElementOfType(string $type): ?CmsSlotEntity
  179.     {
  180.         $elements $this->getElementsOfType($type);
  181.         return array_shift($elements);
  182.     }
  183.     public function getLandingPages(): ?LandingPageCollection
  184.     {
  185.         return $this->landingPages;
  186.     }
  187.     public function setLandingPages(LandingPageCollection $landingPages): void
  188.     {
  189.         $this->landingPages $landingPages;
  190.     }
  191.     public function getHomeSalesChannels(): ?CmsPageCollection
  192.     {
  193.         return $this->homeSalesChannels;
  194.     }
  195.     public function setHomeSalesChannels(CmsPageCollection $homeSalesChannels): void
  196.     {
  197.         $this->homeSalesChannels $homeSalesChannels;
  198.     }
  199.     public function getElementsOfType(string $type): array
  200.     {
  201.         $elements = [];
  202.         if ($this->getSections() === null) {
  203.             return $elements;
  204.         }
  205.         foreach ($this->getSections()->getBlocks() as $block) {
  206.             if ($block->getSlots() === null) {
  207.                 continue;
  208.             }
  209.             foreach ($block->getSlots() as $slot) {
  210.                 if ($slot->getType() === $type) {
  211.                     $elements[] = $slot;
  212.                 }
  213.             }
  214.         }
  215.         return $elements;
  216.     }
  217. }