Как получить верхнюю родительскую категорию из текущего объекта категории?


Как я могу получить родительскую категорию верхнего уровня (сразу после категории по умолчанию) из текущего объекта категории? Я хочу, чтобы название категории и URL-адрес категории этой родительской категории отображались в подкатегориях.

  • Категория по умолчанию
    • Кот А
      • Кот В
        • Кот C

Как я могу получить имя и URL Cat A в объектах Cat B и Cat C?

Author: Teja Bhagavan Kollepara, 2013-06-10

3 answers

$category->getPath() вернет идентификаторы всех категорий от корня дерева до текущей, разделенные косой чертой (/). Вот пример: 1/2/56/124/543. Первый - это "корень из корней". Второй - это корневой каталог (категория по умолчанию). Остальные из них являются простыми категориями. Так что вы можете сделать что-то подобное.

$path = $category->getPath();
$ids = explode('/', $path);
if (isset($ids[2])){
    $topParent = Mage::getModel('catalog/category')->setStoreId(Mage::app()->getStore()->getId())->load($ids[2]);
}
else{
    $topParent = null;//it means you are in one catalog root.
}

Теперь вы можете получить имя и URL-адрес следующим образом:

if ($topParent){
    $name = $topParent->getName();
    $url = $topParent->getUrl();
}
 22
Author: Marius, 2013-06-10 18:44:56

Попробуйте это

$level = $this->getCurrentCategory()->getParentCategory()->getLevel();
if($level > 1){                 
    echo $this->getCurrentCategory()->getParentCategory()->getName();
    }
    else{
    echo $this->escapeHtml($_category->getName());
    }

Просто скопируйте и вставьте этот код:)

 15
Author: Kanagan, 2013-11-19 10:51:41

Вы можете использовать getParentCategories() для текущей категории, а затем вызвать array_pop, чтобы получить последний элемент. Сделайте это дважды, чтобы получить второй последний элемент.

 4
Author: Tobias, 2013-06-10 17:04:07