Как сделать Категории с подкатегориями не связанными - PullRequest
0 голосов
/ 14 мая 2011

Должен быть простой вопрос. Но у меня есть список категорий в Magento, который имеет подкатегории. И я хочу, чтобы мои категории с подпрограммами затем выступали в качестве заголовка, а не по кликабельной ссылке на эту категорию. Так, например:

Link 1
Link 2
Link 3 (this should be a title)
---Link 1
---Link 2
Link4

Мне нравятся мои категории так.

<?php foreach ($helper->getStoreCategories() as $_category): ?>


<li> <a href="<?php echo Mage::getModel('catalog/category')->setData($_category->getData())->getUrl(); ?>" title="<?php echo $_category->getName() ?>"><?php echo $_category->getName() ?></a>

<?php foreach (Mage::getModel('catalog/category')->load($_category->getId())->getChildrenCategories() as $childCategory):?>
  <?php echo '<li class="subCats"><a href="'.$childCategory->getUrl().'">'.$childCategory->getName() .'</a></li>'; ?>
  <?php endforeach;?>

</li>

<?php endforeach ?>

Любая помощь будет принята с благодарностью. спасибо

1 Ответ

1 голос
/ 14 мая 2011

ОК, это немного хакерское решение, но оно сработало для меня. Сначала создайте локальную копию:

app> code> core> Mage> Catalog> Block> Navigation.php

Или, если вы знаете, как настраивать модули, расширьте класс и сделайте это правильно.

Найдите функцию с именем _renderCategoryMenuItemHtml .

Где-то на странице создайте себе массив всех названий категорий, которые вы хотите исключить:

$categoryArray = array("Duplicate NCR", "Triplicate NCR", "Quadruplicate NCR");

Теперь просто окружите теги стандартным оператором if, заменив это:

$html[] = '<a href="'.$this->getCategoryUrl($category).'"'.$linkClass.' title="'.$this->htmlEscape($category->getName()).'">';
$html[] = '<span>' . $this->escapeHtml($category->getName()) . '</span>';
$html[] = '</a>';</code>

С этим:

 if(!in_array($this->htmlEscape($category->getName()), $categoryArray)) {   

    $html[] = '<a href="'.$this->getCategoryUrl($category).'"'.$linkClass.' title="'.$this->htmlEscape($category->getName()).'">';

    }

    $html[] = '<span>' . $this->escapeHtml($category->getName()) . '</span>';

    if(!in_array($this->htmlEscape($category->getName()), $categoryArray)) {    

    $html[] = '</a>';

    }

Как я уже сказал, создание этого модуля было бы намного лучшим вариантом, но с точки зрения быстрого исправления это будет работать отлично.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...