/** * Для сущности со связью RELATION_TYPE_TREE возвращает предка * * @param unknown_type $oEntity * @return unknown */ protected function _GetParentOfEntity($oEntity) { if (in_array(EntityORM::RELATION_TYPE_TREE, $oEntity->_getRelations())) { $aRelationsData = $oEntity->_getRelationsData(); if (array_key_exists('parent', $aRelationsData)) { $oParent = $aRelationsData['parent']; } else { $oParent = '%%NULL_PARENT%%'; if ($sPrimaryKey = $oEntity->_getPrimaryKey()) { if ($sParentId = $oEntity->getParentId()) { $oParent = $this->GetByFilter(array($sPrimaryKey => $sParentId), Engine::GetEntityName($oEntity)); } } } if (!is_null($oParent)) { $oEntity->setParent($oParent); return $oParent; } } return false; }
/** * Get category path * @param unknown_type $category */ public function getCategoryPath($category, $store) { $categoryPath = str_replace('/', '_._._', $category->getName()) . '/' . $category->getId(); while ($category->getParentId() > 0) { $parentCategory = $category->getParentCategory(); $category = Mage::getModel('catalog/category')->setStoreId($store->getId())->load($parentCategory->getId()); if (in_array($category->getId(), $this->allowCategoryIds[$store->getId()])) { if ($category && $category->getIsActive() && $category->getIncludeInMenu()) { $categoryPath = str_replace('/', '_._._', $category->getName()) . '/' . $category->getId() . '/' . $categoryPath; } } } return trim($categoryPath, '/'); }
/** * Get category path * @param unknown_type $category */ public function getCategoryPath($category, $store) { $currentCategory = $category; $categoryPath = str_replace('/', '_._._', $category->getName()) . '/' . $category->getId(); while ($category->getParentId() > 0) { $category = $category->getParentCategory(); if (in_array($category->getId(), $this->allowCategoryIds[$store->getId()])) { $category->setStoreId($store->getId()); $categoryPath = str_replace('/', '_._._', $category->getName()) . '/' . $category->getId() . '/' . $categoryPath; } } return trim($categoryPath, '/'); }