/**
  * @constructor
  * @param FixtureFactory $fixtureFactory
  * @param array $params
  * @param array|int $data
  */
 public function __construct(FixtureFactory $fixtureFactory, array $params, $data = [])
 {
     $this->params = $params;
     if (isset($data['dataSet'])) {
         $this->parentCategory = $fixtureFactory->createByCode('catalogCategory', ['dataSet' => $data['dataSet']]);
         if (!$this->parentCategory->hasData('id')) {
             $this->parentCategory->persist();
         }
         $this->data = $this->parentCategory->getId();
     } elseif (isset($data['data']) && isset($data['parent_category'])) {
         $this->data = $data['data'];
         $this->parentCategory = $data['parent_category'];
     } else {
         $this->data = $data;
     }
 }
 /**
  * Prepare category path.
  *
  * @param CatalogCategory $category
  * @return array
  */
 protected function prepareFullCategoryPath(CatalogCategory $category)
 {
     $path = [];
     if ($category->hasData('parent_id')) {
         $parentCategory = $category->getDataFieldConfig('parent_id')['source']->getParentCategory();
         if ($parentCategory != null) {
             $path = $this->prepareFullCategoryPath($parentCategory);
         }
     }
     return array_filter(array_merge($path, [$category->getPath(), $category->getName()]));
 }
 /**
  * Get category products.
  *
  * @param CatalogCategory $category
  * @return array
  */
 protected function getCategoryProducts(CatalogCategory $category)
 {
     return $category->hasData('category_products') ? $category->getDataFieldConfig('category_products')['source']->getProducts() : [];
 }
Exemple #4
0
 /**
  * Get data of Category information.
  *
  * @param CatalogCategory $category
  * @return array
  */
 public function getDataCategory(CatalogCategory $category)
 {
     return $category->hasData() ? parent::getData($category) : parent::getData();
 }