Категории сортировки Magento в шаблоне - PullRequest
0 голосов
/ 07 марта 2012

Я ищу способ сортировки внешнего вида категорий в моей навигации.

Это код для моей навигации:

<div id="menu-accordion" class="accordion">      
    <?php 

    foreach ($this->getStoreCategories() as $_category): ?>
    <?php $open = $this->isCategoryActive($_category) && $_category->hasChildren(); ?>
    <h3 class="accordion-toggle"><a href="#"><?php print $_category->getName();?></a></h3>
        <div class="accordion-content">
                <ul>
                <?php foreach ($_category->getChildren() as $child): ?>
                    <li> 
                        <span class="ui-icon ui-icon-triangle-1-e vMenuIconFloat"></span>
                            <a href="<?php print $this->getCategoryUrl($child); ?>"><?php print $child->getName();?></a>
                    </li>
                <?php endforeach; ?>
                </ul>
            </div>
    <?php endforeach ?>
</div>

Я пытался использовать asort() для сортировки $this->getStoreCategories(), но это привело к ошибке 500, поэтому я предполагаю, что это немассив, но объект (который кажется очевидным для объектно-ориентированного программирования magento).Я попытался найти решение для объекта, но не смог, и теперь я немного застрял.

Спасибо за вашу помощь.

1 Ответ

2 голосов
/ 07 марта 2012

Вызов $this->getStoreCategories() не возвращает массив.Но вы можете создать свой собственный массив и использовать ключ массива в качестве элемента для сортировки (при условии, что вы хотите отсортировать по названию категории):

foreach ($this->getStoreCategories() as $_category)
{
    $_categories[$_category->getName()] = $_category;
}

ksort($_categories);

Теперь вместо итерации по $this->getStoreCategories() вы перебираете массив $ _categories.Таким образом, ваш код будет выглядеть примерно так:

<div id="menu-accordion" class="accordion">      
    <?php 

    $_categories = array();
    foreach ($this->getStoreCategories() as $_category)
    {
        $_categories[$_category->getName()] = $_category;
    }
    ksort($_categories);

    foreach ($_categories as $_category): ?>
    <?php $open = $this->isCategoryActive($_category) && $_category->hasChildren(); ?>
    <h3 class="accordion-toggle"><a href="#"><?php print $_category->getName();?></a></h3>
        <div class="accordion-content">
                <ul>
                <?php foreach ($_category->getChildren() as $child): ?>
                    <li> 
                        <span class="ui-icon ui-icon-triangle-1-e vMenuIconFloat"></span>
                            <a href="<?php print $this->getCategoryUrl($child); ?>"><?php print $child->getName();?></a>
                    </li>
                <?php endforeach; ?>
                </ul>
            </div>
    <?php endforeach ?>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...