public function testGetParentId()
 {
     $this->assertEquals(0, $this->_model->getParentId());
     $this->_model->unsetData();
     $this->_model->load(4);
     $this->assertEquals(3, $this->_model->getParentId());
 }
Example #2
0
 /**
  * Process positions of old parent category children and new parent category children.
  * Get position for moved category
  *
  * @param \Magento\Catalog\Model\Category $category
  * @param \Magento\Catalog\Model\Category $newParent
  * @param null|int $afterCategoryId
  * @return int
  */
 protected function _processPositions($category, $newParent, $afterCategoryId)
 {
     $table = $this->getEntityTable();
     $adapter = $this->_getWriteAdapter();
     $positionField = $adapter->quoteIdentifier('position');
     $bind = array('position' => new \Zend_Db_Expr($positionField . ' - 1'));
     $where = array('parent_id = ?' => $category->getParentId(), $positionField . ' > ?' => $category->getPosition());
     $adapter->update($table, $bind, $where);
     /**
      * Prepare position value
      */
     if ($afterCategoryId) {
         $select = $adapter->select()->from($table, 'position')->where('entity_id = :entity_id');
         $position = $adapter->fetchOne($select, array('entity_id' => $afterCategoryId));
         $position += 1;
     } else {
         $position = 1;
     }
     $bind = array('position' => new \Zend_Db_Expr($positionField . ' + 1'));
     $where = array('parent_id = ?' => $newParent->getId(), $positionField . ' >= ?' => $position);
     $adapter->update($table, $bind, $where);
     return $position;
 }
 /**
  * @param \Magento\Catalog\Model\Category $category
  * @param int $storeId
  * @return bool
  */
 protected function isCategoryProperForGenerating($category, $storeId)
 {
     if ($category->getParentId() != \Magento\Catalog\Model\Category::TREE_ROOT_ID) {
         list(, $rootCategoryId) = $category->getParentIds();
         return $rootCategoryId == $this->storeManager->getStore($storeId)->getRootCategoryId();
     }
     return false;
 }
 public function getCategoryQueryTerm(Category $category, $store = null)
 {
     $queryType = $this->helper->getCategoryQueryType($store);
     if ($queryType == CategoryQueryType::NAME) {
         return $category->getName();
     }
     $parents = $category->getParentCategories();
     $parentIds = array_intersect($category->getParentIds(), array_keys($parents));
     switch ($queryType) {
         case CategoryQueryType::FULL_PATH:
             break;
         case CategoryQueryType::NAME_AND_PARENT_NAME:
             $parentId = $category->getParentId();
             $parentIds = in_array($parentId, $parentIds) ? [$parentId] : [];
             break;
         case CategoryQueryType::NAME_AND_ROOT_NAME:
             $parentIds = array_slice($parentIds, 0, 1);
             break;
     }
     $names = array_map(function ($id) use($parents) {
         return $parents[$id]->getName();
     }, $parentIds);
     $names[] = $category->getName();
     return implode(' ', $names);
 }
 /**
  * @param \Magento\Catalog\Model\Category $category
  * @param int $storeId
  * @return bool
  */
 protected function isCategoryProperForGenerating($category, $storeId)
 {
     if (isset($this->acceptableCategories[$storeId]) && isset($this->acceptableCategories[$storeId][$category->getId()])) {
         return $this->acceptableCategories[$storeId][$category->getId()];
     }
     $acceptable = false;
     if ($category->getParentId() != \Magento\Catalog\Model\Category::TREE_ROOT_ID) {
         list(, $rootCategoryId) = $category->getParentIds();
         $acceptable = $rootCategoryId == $this->storeManager->getStore($storeId)->getRootCategoryId();
     }
     if (!isset($this->acceptableCategories[$storeId])) {
         $this->acceptableCategories[$storeId] = [];
     }
     $this->acceptableCategories[$storeId][$category->getId()] = $acceptable;
     return $acceptable;
 }
 /**
  * {@inheritdoc}
  */
 public function getParentId()
 {
     $pluginInfo = $this->pluginList->getNext($this->subjectType, 'getParentId');
     if (!$pluginInfo) {
         return parent::getParentId();
     } else {
         return $this->___callPlugins('getParentId', func_get_args(), $pluginInfo);
     }
 }