Magento: отображение родственных категорий в многоуровневой навигации - PullRequest
3 голосов
/ 10 января 2012

Я хотел бы добавить родственные категории в многоуровневую навигацию (когда клиент уже один слой в).

Другими словами: допустим, у меня есть категория «Животные» и подкатегории «Кошки», «Собаки» и «Львы» соответственно, если покупатель нажимает «Львы», я хочу, чтобы его увидели в «Покупать по категория "Кошки и собаки.

Кто-нибудь знает, как это сделать?

Заранее спасибо.

Ответы [ 4 ]

7 голосов
/ 10 января 2012

Это не должно быть слишком сложно.Приведенный ниже код не проверен, но он должен работать везде, где вы помещаете его в интерфейс.То, что он сделает, это даст вам доступ к коллекции сибилированных категорий, но вам нужно будет выяснить, где в шаблонах вы его разместите.

$parentId = Mage::registry('current_category')->getParentCategory()->getId();
$cats = Mage::getModel('catalog/category')->load($parentId)->getChildrenCategories();
foreach ($cats as $cat) {
  // first, skip current category.
  if ($cat->getId() == Mage::registry('current_category')->getId()) continue;
  // then do something with $cat
  echo $cat->getName().", ";
}
1 голос
/ 07 декабря 2013

Перейти к

Приложение / код / ​​ядро ​​/ Mage / Каталог / Модель / Layer / Filter / category.php

функция поиска _getItemsData()

см. Строку № 163:

$categories = $categoty->getChildrenCategories();

удали эту строку и вставь эти

if(count($categoty->getChildrenCategories())){
    $categories = $categoty->getChildrenCategories();
}else{
    $categories = $categoty->getParentCategory()->getChildrenCategories();
}
0 голосов
/ 18 февраля 2019

Метод app / code / core / Mage / Catalog / Block / Navigation.php :: getCurrentChildCategories () делает то, что нужно, и поддерживает правильное количество продуктов. Вы можете скопировать его функциональность своему собственному помощнику.

0 голосов
/ 10 января 2012

При этом будет получен идентификатор, URL-адрес и имя категории родного брата

$currentCategory = $this->helper('catalog/data')->getCategory();
$parentCategoryId = $currentCategory->parent_id;

$siblingCategoryIds = array();
$siblingCategories = array();

foreach(Mage::getModel('catalog/category')->load($parentCategoryId)->getChildrenCategories() as $siblingCategory) {
    if ($siblingCategory->getIsActive()) {
        $siblingCategories[] = array($siblingCategory->getId(), array('name' => $siblingCategory->getName(), 'url' => $siblingCategory->getUrl()));
        $siblingCategoryIds[] = $siblingCategory->getId();
    }
}

$pos = array_search($currentCategory->getId(), $siblingCategoryIds);

$nextPos = $pos+1;
$prevPos = $pos-1;

if (isset($siblingCategoryIds[$nextPos])) {
    $nextCategory = $siblingCategories[$nextPos];
}
else {
   $nextCategory = null;
}

if (isset($siblingCategoryIds[$prevPos])) {
    $prevCategory = $siblingCategories[$prevPos];
}
else {
   $prevCategory = null;
}

echo var_dump($prevCategory);
echo var_dump($nextCategory);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...