magento показать подкатегорию - PullRequest
2 голосов
/ 17 июня 2010

Привет, Теперь я получаю все категории и подкатегории.Как получить только подкатегорию?

<?php foreach ($this->getStoreCategories() as $_category): ?>
    <?php $_menu .= $this->drawItem($_category) ?>
<?php endforeach ?>

Ответы [ 2 ]

5 голосов
/ 19 июня 2010

Это даст вам категории «мама» + категории детей 1-го уровня.

<ul>
 <?php foreach ($this->getStoreCategories() as $_category): ?>
 <li>
  <strong><?php echo $_category->getName(); ?></strong>
   <?php $_children = $_category->getChildren(); ?>
   <?php if($_children->count()) : ?>
  <ul>
     <?php foreach($_children as $_child) : ?>
   <li><?php echo $_child->getName(); ?></li>
     <?php endforeach; ?>
  </ul>
   <?php endif; ?>
 </li>
 <?php endforeach ?>
</ul>

Если вы хотите отображать только подкатегории 1-го уровня, просто прокомментируйте / удалите первый

<strong><?php echo $_category->getName(); ?></strong>
0 голосов
/ 17 июня 2010

$ this-> getStoreCategories () возвращает Mage_Catalog_Model_Resource_Eav_Mysql4_Category_Collection , который имеет метод addPathFilter (). Посмотрите на прототип этого метода: у него есть один аргумент: $ regexp Если вы знаете о регулярных выражениях, вы можете создать регулярное выражение, которое фильтрует ваши категории по пути. Попробуйте сначала напечатать пути категорий (выполнив echo $ _category-> getPathInStore ()), затем найдите регулярное выражение, которое фильтрует пути категорий так, как вы хотите.

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