Как получить верхнюю родительскую категорию из текущего объекта категории?
Как я могу получить родительскую категорию верхнего уровня (сразу после категории по умолчанию) из текущего объекта категории? Я хочу, чтобы название категории и URL-адрес категории этой родительской категории отображались в подкатегориях.
- Категория по умолчанию
- Кот А
- Кот В
- Кот C
- Кот В
- Кот А
Как я могу получить имя и URL Cat A
в объектах Cat B
и Cat C
?
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();
}
Попробуйте это
$level = $this->getCurrentCategory()->getParentCategory()->getLevel();
if($level > 1){
echo $this->getCurrentCategory()->getParentCategory()->getName();
}
else{
echo $this->escapeHtml($_category->getName());
}
Просто скопируйте и вставьте этот код:)
Вы можете использовать getParentCategories() для текущей категории, а затем вызвать array_pop, чтобы получить последний элемент. Сделайте это дважды, чтобы получить второй последний элемент.