src/Model/Product/Category.php line 18

Open in your IDE?
  1. <?php
  2. /**
  3.  * Pimcore
  4.  *
  5.  * This source file is available under two different licenses:
  6.  * - GNU General Public License version 3 (GPLv3)
  7.  * - Pimcore Enterprise License (PEL)
  8.  * Full copyright and license information is available in
  9.  * LICENSE.md which is distributed with this source code.
  10.  *
  11.  *  @copyright  Copyright (c) Pimcore GmbH (http://www.pimcore.org)
  12.  *  @license    http://www.pimcore.org/license     GPLv3 and PEL
  13.  */
  14. namespace App\Model\Product;
  15. class Category extends \Pimcore\Model\DataObject\Category
  16. {
  17.     /**
  18.      * returns parent categories for this category
  19.      * stops at given stop category, otherwise stops at topmost category of object tree
  20.      *
  21.      * @param Category|null $stopCategory
  22.      * @param bool $includeStopCategory
  23.      *
  24.      * @return array
  25.      */
  26.     public function getParentCategoryList(self $stopCategory null$includeStopCategory false): array
  27.     {
  28.         $parentCategories = [];
  29.         $parentCategory $this->getParent();
  30.         while ($parentCategory && $parentCategory instanceof self && $parentCategory->getPublished()) {
  31.             if ($stopCategory && $parentCategory->getId() == $stopCategory->getId()) {
  32.                 //cancel when root category is reached
  33.                 $parentCategory null;
  34.                 if ($includeStopCategory) {
  35.                     $parentCategories[] = $stopCategory;
  36.                 }
  37.             } else {
  38.                 $parentCategories[] = $parentCategory;
  39.                 $parentCategory $parentCategory->getParent();
  40.             }
  41.         }
  42.         return array_reverse($parentCategories);
  43.     }
  44. }