protected function initCategories()
    {
        $collection = $this->getCollection();

        /** @var CategoryModel $category */
        foreach ($collection as $category) {
            $structure = explode('/', $category->getData(CategoryModel::KEY_PATH));
            $pathSize = count($structure);

            if ($pathSize > 1) {
                $path = [];
                for ($i = 1; $i < $pathSize; $i++) {
                    /** @var CategoryModel $c */
                    $c = $collection->getItemById($structure[$i]);
                    $path[] = $c->getData(CategoryModel::KEY_NAME);
                }

                $rootCategoryName = array_shift($path);
                if (!isset($this->categoriesWithRoots[$rootCategoryName])) {
                    $this->categoriesWithRoots[$rootCategoryName] = [];
                }

                $index = $this->implodeEscaped($this->_scopeConfig->getValue(Config::XML_PATH_CATEGORY_PATH_SEPERATOR), $path);
                $this->categoriesWithRoots[$rootCategoryName][$index] = [
                    'entity_id' => $category->getId(),
                    CategoryModel::KEY_PATH => $category->getData(CategoryModel::KEY_PATH),
                    CategoryModel::KEY_LEVEL => $category->getData(CategoryModel::KEY_LEVEL),
                    CategoryModel::KEY_POSITION => $category->getData(CategoryModel::KEY_POSITION)
                ];

                //allow importing by ids.
                if (!isset($this->categoriesWithRoots[$structure[1]])) {
                    $this->categoriesWithRoots[$structure[1]] = [];
                }

                $this->categoriesWithRoots[$structure[1]][$category->getId()] =
                    $this->categoriesWithRoots[$rootCategoryName][$index];
            }
        }

        return $this;

    }
protected function initCategories()
    {
        $collection = $this->getCollection();

        /** @var CategoryModel $category */
        foreach ($collection as $category) {
            $structure = explode('/', $category->getData(CategoryModel::KEY_PATH));
            $pathSize = count($structure);

            if ($pathSize > 1) {
                $path = [];
                for ($i = 1; $i < $pathSize; $i++) {
                    /** @var CategoryModel $c */
                    $c = $collection->getItemById($structure[$i]);
                    $path[] = $c->getData(CategoryModel::KEY_NAME);
                }

                $rootCategoryName = array_shift($path);
                if (!isset($this->categoriesWithRoots[$rootCategoryName])) {
                    $this->categoriesWithRoots[$rootCategoryName] = [];
                }

                $index = $this->implodeEscaped($this->_scopeConfig->getValue(Config::XML_PATH_CATEGORY_PATH_SEPERATOR), $path);
                $this->categoriesWithRoots[$rootCategoryName][$index] = [
                    'entity_id' => $category->getId(),
                    CategoryModel::KEY_PATH => $category->getData(CategoryModel::KEY_PATH),
                    CategoryModel::KEY_LEVEL => $category->getData(CategoryModel::KEY_LEVEL),
                    CategoryModel::KEY_POSITION => $category->getData(CategoryModel::KEY_POSITION)
                ];

                //allow importing by ids.
                if (!isset($this->categoriesWithRoots[$structure[1]])) {
                    $this->categoriesWithRoots[$structure[1]] = [];
                }

                $this->categoriesWithRoots[$structure[1]][$category->getId()] =
                    $this->categoriesWithRoots[$rootCategoryName][$index];
            }
        }

        return $this;

    }
protected function initCategories ( ) { $ collection = $ this -> getCollection ( ) ; /** @var CategoryModel $category */ foreach ( $ collection as $ category ) { $ structure = explode ( '/' , $ category -> getData ( CategoryModel :: KEY_PATH ) ) ; $ pathSize = count ( $ structure ) ; if ( $ pathSize > 1 ) { $ path = [ ] ; for ( $ i = 1 ; $ i < $ pathSize ; $ i ++ ) { /** @var CategoryModel $c */ $ c = $ collection -> getItemById ( $ structure [ $ i ] ) ; $ path [ ] = $ c -> getData ( CategoryModel :: KEY_NAME ) ; } $ rootCategoryName = array_shift ( $ path ) ; if ( ! isset ( $ this -> categoriesWithRoots [ $ rootCategoryName ] ) ) { $ this -> categoriesWithRoots [ $ rootCategoryName ] = [ ] ; } $ index = $ this -> implodeEscaped ( $ this -> _scopeConfig -> getValue ( Config :: XML_PATH_CATEGORY_PATH_SEPERATOR ) , $ path ) ; $ this -> categoriesWithRoots [ $ rootCategoryName ] [ $ index ] = [ 'entity_id' => $ category -> getId ( ) , CategoryModel :: KEY_PATH => $ category -> getData ( CategoryModel :: KEY_PATH ) , CategoryModel :: KEY_LEVEL => $ category -> getData ( CategoryModel :: KEY_LEVEL ) , CategoryModel :: KEY_POSITION => $ category -> getData ( CategoryModel :: KEY_POSITION ) ] ; //allow importing by ids. if ( ! isset ( $ this -> categoriesWithRoots [ $ structure [ 1 ] ] ) ) { $ this -> categoriesWithRoots [ $ structure [ 1 ] ] = [ ] ; } $ this -> categoriesWithRoots [ $ structure [ 1 ] ] [ $ category -> getId ( ) ] = $ this -> categoriesWithRoots [ $ rootCategoryName ] [ $ index ] ; } } return $ this ; }
Initialize categories text-path to ID hash.

@return $this
Initialize categories text - path to ID hash .