vendor/shopware/platform/src/Core/Content/Category/CategoryEntity.php line 19

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Shopware\Core\Content\Category;
  3. use Shopware\Core\Content\Category\Aggregate\CategoryTranslation\CategoryTranslationCollection;
  4. use Shopware\Core\Content\Category\Service\CategoryBreadcrumbBuilder;
  5. use Shopware\Core\Content\Cms\CmsPageEntity;
  6. use Shopware\Core\Content\Media\MediaEntity;
  7. use Shopware\Core\Content\Product\ProductCollection;
  8. use Shopware\Core\Content\ProductStream\ProductStreamEntity;
  9. use Shopware\Core\Content\Seo\MainCategory\MainCategoryCollection;
  10. use Shopware\Core\Content\Seo\SeoUrl\SeoUrlCollection;
  11. use Shopware\Core\Framework\DataAbstractionLayer\Entity;
  12. use Shopware\Core\Framework\DataAbstractionLayer\EntityIdTrait;
  13. use Shopware\Core\System\SalesChannel\SalesChannelCollection;
  14. use Shopware\Core\System\SalesChannel\SalesChannelEntity;
  15. use Shopware\Core\System\Tag\TagCollection;
  16. class CategoryEntity extends Entity
  17. {
  18.     use EntityIdTrait;
  19.     /**
  20.      * @var string|null
  21.      */
  22.     protected $parentId;
  23.     /**
  24.      * @var int
  25.      */
  26.     protected $autoIncrement;
  27.     /**
  28.      * @var string|null
  29.      */
  30.     protected $mediaId;
  31.     /**
  32.      * @var string|null
  33.      */
  34.     protected $name;
  35.     /**
  36.      * @var array|null
  37.      */
  38.     protected $breadcrumb;
  39.     /**
  40.      * @var string|null
  41.      */
  42.     protected $path;
  43.     /**
  44.      * @var int
  45.      */
  46.     protected $level;
  47.     /**
  48.      * @var bool
  49.      */
  50.     protected $active;
  51.     /**
  52.      * @var int
  53.      */
  54.     protected $childCount;
  55.     /**
  56.      * @var bool
  57.      */
  58.     protected $displayNestedProducts;
  59.     /**
  60.      * @var CategoryEntity|null
  61.      */
  62.     protected $parent;
  63.     /**
  64.      * @var CategoryCollection|null
  65.      */
  66.     protected $children;
  67.     /**
  68.      * @var CategoryTranslationCollection|null
  69.      */
  70.     protected $translations;
  71.     /**
  72.      * @var MediaEntity|null
  73.      */
  74.     protected $media;
  75.     /**
  76.      * @var ProductCollection|null
  77.      */
  78.     protected $products;
  79.     /**
  80.      * @var ProductCollection|null
  81.      */
  82.     protected $nestedProducts;
  83.     /**
  84.      * @var string|null
  85.      */
  86.     protected $afterCategoryId;
  87.     /**
  88.      * @var array|null
  89.      */
  90.     protected $customFields;
  91.     /**
  92.      * @var TagCollection|null
  93.      */
  94.     protected $tags;
  95.     /**
  96.      * @var string|null
  97.      */
  98.     protected $cmsPageId;
  99.     /**
  100.      * @var CmsPageEntity|null
  101.      */
  102.     protected $cmsPage;
  103.     /**
  104.      * @var string|null
  105.      */
  106.     protected $productStreamId;
  107.     /**
  108.      * @var ProductStreamEntity|null
  109.      */
  110.     protected $productStream;
  111.     /**
  112.      * @var array|null
  113.      */
  114.     protected $slotConfig;
  115.     /**
  116.      * @var SalesChannelCollection|null
  117.      */
  118.     protected $navigationSalesChannels;
  119.     /**
  120.      * @var SalesChannelCollection|null
  121.      */
  122.     protected $footerSalesChannels;
  123.     /**
  124.      * @var SalesChannelCollection|null
  125.      */
  126.     protected $serviceSalesChannels;
  127.     /**
  128.      * @var string|null
  129.      */
  130.     protected $externalLink;
  131.     /**
  132.      * @var bool
  133.      */
  134.     protected $visible;
  135.     /**
  136.      * @var string
  137.      */
  138.     protected $type;
  139.     /**
  140.      * @var string
  141.      */
  142.     protected $productAssignmentType;
  143.     /**
  144.      * @var string|null
  145.      */
  146.     protected $description;
  147.     /**
  148.      * @var string|null
  149.      */
  150.     protected $metaTitle;
  151.     /**
  152.      * @var string|null
  153.      */
  154.     protected $metaDescription;
  155.     /**
  156.      * @var string|null
  157.      */
  158.     protected $keywords;
  159.     /**
  160.      * @var MainCategoryCollection|null
  161.      */
  162.     protected $mainCategories;
  163.     /**
  164.      * @var SeoUrlCollection|null
  165.      */
  166.     protected $seoUrls;
  167.     public function getParentId(): ?string
  168.     {
  169.         return $this->parentId;
  170.     }
  171.     public function setParentId(?string $parentId): void
  172.     {
  173.         $this->parentId $parentId;
  174.     }
  175.     public function getMediaId(): ?string
  176.     {
  177.         return $this->mediaId;
  178.     }
  179.     public function setMediaId(?string $mediaId): void
  180.     {
  181.         $this->mediaId $mediaId;
  182.     }
  183.     public function getName(): ?string
  184.     {
  185.         return $this->name;
  186.     }
  187.     public function setName(?string $name): void
  188.     {
  189.         $this->name $name;
  190.     }
  191.     public function getPath(): ?string
  192.     {
  193.         return $this->path;
  194.     }
  195.     public function setPath(?string $path): void
  196.     {
  197.         $this->path $path;
  198.     }
  199.     public function getLevel(): int
  200.     {
  201.         return $this->level;
  202.     }
  203.     public function setLevel(int $level): void
  204.     {
  205.         $this->level $level;
  206.     }
  207.     public function getActive(): bool
  208.     {
  209.         return $this->active;
  210.     }
  211.     public function setActive(bool $active): void
  212.     {
  213.         $this->active $active;
  214.     }
  215.     public function getChildCount(): int
  216.     {
  217.         return $this->childCount;
  218.     }
  219.     public function setChildCount(int $childCount): void
  220.     {
  221.         $this->childCount $childCount;
  222.     }
  223.     public function getParent(): ?CategoryEntity
  224.     {
  225.         return $this->parent;
  226.     }
  227.     public function setParent(CategoryEntity $parent): void
  228.     {
  229.         $this->parent $parent;
  230.     }
  231.     public function getMedia(): ?MediaEntity
  232.     {
  233.         return $this->media;
  234.     }
  235.     public function setMedia(MediaEntity $media): void
  236.     {
  237.         $this->media $media;
  238.     }
  239.     public function getChildren(): ?CategoryCollection
  240.     {
  241.         return $this->children;
  242.     }
  243.     public function setChildren(CategoryCollection $children): void
  244.     {
  245.         $this->children $children;
  246.     }
  247.     public function getTranslations(): ?CategoryTranslationCollection
  248.     {
  249.         return $this->translations;
  250.     }
  251.     public function setTranslations(CategoryTranslationCollection $translations): void
  252.     {
  253.         $this->translations $translations;
  254.     }
  255.     public function getProducts(): ?ProductCollection
  256.     {
  257.         return $this->products;
  258.     }
  259.     public function setProducts(ProductCollection $products): void
  260.     {
  261.         $this->products $products;
  262.     }
  263.     public function getAutoIncrement(): int
  264.     {
  265.         return $this->autoIncrement;
  266.     }
  267.     public function setAutoIncrement(int $autoIncrement): void
  268.     {
  269.         $this->autoIncrement $autoIncrement;
  270.     }
  271.     public function getNestedProducts(): ?ProductCollection
  272.     {
  273.         return $this->nestedProducts;
  274.     }
  275.     public function setNestedProducts(ProductCollection $nestedProducts): void
  276.     {
  277.         $this->nestedProducts $nestedProducts;
  278.     }
  279.     public function getDisplayNestedProducts(): bool
  280.     {
  281.         return $this->displayNestedProducts;
  282.     }
  283.     public function setDisplayNestedProducts(bool $displayNestedProducts): void
  284.     {
  285.         $this->displayNestedProducts $displayNestedProducts;
  286.     }
  287.     public function getAfterCategoryId(): ?string
  288.     {
  289.         return $this->afterCategoryId;
  290.     }
  291.     public function setAfterCategoryId(string $afterCategoryId): void
  292.     {
  293.         $this->afterCategoryId $afterCategoryId;
  294.     }
  295.     public function getCustomFields(): ?array
  296.     {
  297.         return $this->customFields;
  298.     }
  299.     public function setCustomFields(?array $customFields): void
  300.     {
  301.         $this->customFields $customFields;
  302.     }
  303.     public function getTags(): ?TagCollection
  304.     {
  305.         return $this->tags;
  306.     }
  307.     public function setTags(TagCollection $tags): void
  308.     {
  309.         $this->tags $tags;
  310.     }
  311.     public function getCmsPage(): ?CmsPageEntity
  312.     {
  313.         return $this->cmsPage;
  314.     }
  315.     public function setCmsPage(CmsPageEntity $cmsPage): void
  316.     {
  317.         $this->cmsPage $cmsPage;
  318.     }
  319.     public function getCmsPageId(): ?string
  320.     {
  321.         return $this->cmsPageId;
  322.     }
  323.     public function setCmsPageId(string $cmsPageId): void
  324.     {
  325.         $this->cmsPageId $cmsPageId;
  326.     }
  327.     public function getProductStream(): ?ProductStreamEntity
  328.     {
  329.         return $this->productStream;
  330.     }
  331.     public function setProductStream(ProductStreamEntity $productStream): void
  332.     {
  333.         $this->productStream $productStream;
  334.     }
  335.     public function getProductStreamId(): ?string
  336.     {
  337.         return $this->productStreamId;
  338.     }
  339.     public function setProductStreamId(string $productStreamId): void
  340.     {
  341.         $this->productStreamId $productStreamId;
  342.     }
  343.     public function getSlotConfig(): ?array
  344.     {
  345.         return $this->slotConfig;
  346.     }
  347.     public function setSlotConfig(array $slotConfig): void
  348.     {
  349.         $this->slotConfig $slotConfig;
  350.     }
  351.     public function getNavigationSalesChannels(): ?SalesChannelCollection
  352.     {
  353.         return $this->navigationSalesChannels;
  354.     }
  355.     public function setNavigationSalesChannels(SalesChannelCollection $navigationSalesChannels): void
  356.     {
  357.         $this->navigationSalesChannels $navigationSalesChannels;
  358.     }
  359.     public function getFooterSalesChannels(): ?SalesChannelCollection
  360.     {
  361.         return $this->footerSalesChannels;
  362.     }
  363.     public function setFooterSalesChannels(SalesChannelCollection $footerSalesChannels): void
  364.     {
  365.         $this->footerSalesChannels $footerSalesChannels;
  366.     }
  367.     public function getServiceSalesChannels(): ?SalesChannelCollection
  368.     {
  369.         return $this->serviceSalesChannels;
  370.     }
  371.     public function setServiceSalesChannels(SalesChannelCollection $serviceSalesChannels): void
  372.     {
  373.         $this->serviceSalesChannels $serviceSalesChannels;
  374.     }
  375.     public function getExternalLink(): ?string
  376.     {
  377.         return $this->externalLink;
  378.     }
  379.     public function setExternalLink(string $externalLink): void
  380.     {
  381.         $this->externalLink $externalLink;
  382.     }
  383.     public function getVisible(): bool
  384.     {
  385.         return $this->visible;
  386.     }
  387.     public function setVisible(bool $visible): void
  388.     {
  389.         $this->visible $visible;
  390.     }
  391.     public function getType(): string
  392.     {
  393.         return $this->type;
  394.     }
  395.     public function setType(string $type): void
  396.     {
  397.         $this->type $type;
  398.     }
  399.     public function getDescription(): ?string
  400.     {
  401.         return $this->description;
  402.     }
  403.     public function setDescription(string $description): void
  404.     {
  405.         $this->description $description;
  406.     }
  407.     public function getBreadcrumb(): array
  408.     {
  409.         return array_values($this->getPlainBreadcrumb());
  410.     }
  411.     public function getPlainBreadcrumb(): array
  412.     {
  413.         $breadcrumb $this->getTranslation('breadcrumb');
  414.         if ($breadcrumb === null) {
  415.             return [];
  416.         }
  417.         if ($this->path === null) {
  418.             return $breadcrumb;
  419.         }
  420.         $parts array_slice(explode('|'$this->path), 1, -1);
  421.         $filtered = [];
  422.         foreach ($parts as $id) {
  423.             if (isset($breadcrumb[$id])) {
  424.                 $filtered[$id] = $breadcrumb[$id];
  425.             }
  426.         }
  427.         $filtered[$this->getId()] = $breadcrumb[$this->getId()];
  428.         return $filtered;
  429.     }
  430.     public function setBreadcrumb(?array $breadcrumb): void
  431.     {
  432.         $this->breadcrumb $breadcrumb;
  433.     }
  434.     /**
  435.      * @deprecated tag:v6.4.0.0 - Use CategoryBreadcrumbBuilder instead
  436.      */
  437.     public function buildSeoBreadcrumb(?string $navigationCategoryId null, ?SalesChannelEntity $salesChannel null): ?array
  438.     {
  439.         $builder = new CategoryBreadcrumbBuilder();
  440.         return $builder->build($this$salesChannel$navigationCategoryId);
  441.     }
  442.     public function jsonSerialize(): array
  443.     {
  444.         // Make sure that the sorted breadcrumb gets serialized
  445.         $data parent::jsonSerialize();
  446.         $data['translated']['breadcrumb'] = $data['breadcrumb'] = $this->getBreadcrumb();
  447.         return $data;
  448.     }
  449.     public function getMainCategories(): ?MainCategoryCollection
  450.     {
  451.         return $this->mainCategories;
  452.     }
  453.     public function setMainCategories(MainCategoryCollection $mainCategories): void
  454.     {
  455.         $this->mainCategories $mainCategories;
  456.     }
  457.     public function getMetaTitle(): ?string
  458.     {
  459.         return $this->metaTitle;
  460.     }
  461.     public function setMetaTitle(?string $metaTitle): void
  462.     {
  463.         $this->metaTitle $metaTitle;
  464.     }
  465.     public function getMetaDescription(): ?string
  466.     {
  467.         return $this->metaDescription;
  468.     }
  469.     public function setMetaDescription(?string $metaDescription): void
  470.     {
  471.         $this->metaDescription $metaDescription;
  472.     }
  473.     public function getKeywords(): ?string
  474.     {
  475.         return $this->keywords;
  476.     }
  477.     public function setKeywords(?string $keywords): void
  478.     {
  479.         $this->keywords $keywords;
  480.     }
  481.     public function getSeoUrls(): ?SeoUrlCollection
  482.     {
  483.         return $this->seoUrls;
  484.     }
  485.     public function setSeoUrls(SeoUrlCollection $seoUrls): void
  486.     {
  487.         $this->seoUrls $seoUrls;
  488.     }
  489.     public function getProductAssignmentType(): string
  490.     {
  491.         return $this->productAssignmentType;
  492.     }
  493.     public function setProductAssignmentType(string $productAssignmentType): void
  494.     {
  495.         $this->productAssignmentType $productAssignmentType;
  496.     }
  497. }