Czasami istnieje potrzeba wyświetlenia na stronie głównej lub na karcie kategorii listy kategorii wybranego poziomu. W takich przypadkach konieczne jest skorzystanie z kolekcji. Możemy to zrobić w następujący sposób:

 

<?php
$categories = Mage::getModel('catalog/category')
        ->getCollection()
        ->addAttributeToSelect('*')
        ->addIsActiveFilter()
        ->addAttributeToFilter('level', 2)
        ->addOrderField('position');
?>

 Powyższy kod kolejno ładuje model odpowiedzialny za wywołanie kategorii $categories = Mage::getModel('catalog/category') następie mamy możliwość określenia poszczególnych parametrów naszej kolekcji:

        ->getCollection()
        ->addAttributeToSelect('*')

 Ładuje do modelu kategorie ze wszystkimi atrybutami.

        ->addIsActiveFilter()

 Wybiera tylko kategorie oznaczone jako aktywne.

        ->addAttributeToFilter('level', 2)

 Ogranicza liczbę kategorii do kategorii drugiego poziomu. Moglibyśmy również użyć rozwiązania alterantywnego ->addLevelFilter(2) które załadowałoby nam kategorię do drugiego poziomu (czyli I i II poziom).

        ->addOrderField('position');

 Sortuje kategorie według pozycji w panelu administracynym, mamy oczywiście możliwość skorzystania z innych parametrów, przykładowo 'name' posortowałoby nam kategorie według nazwy.

 

Załadowaną w ten sposób kolekcję pozostaje nam już tylko wyświetlić w layoucie za pomocą pętli:

<div class="check-category">
    <table border="0">
        <tbody>
            <tr>
                <?php
                foreach ($categories as $category) {
                    ?>
                    <?php if ($iter / 4 == 1) echo '<tr>'; $iter++; ?>
                    <td>
                        <a href="<?php echo $category->getUrl(); ?>">
                            <img src="<?php echo $category->getImageUrl(); ?>" />
                            <h2><?php echo $category->getName(); ?></h2>
                        </a>
                    </td>
                    <?php if ($iter / 4 == 1) echo '</tr>'; ?>
                <?php } ?>
            </tr>
        </tbody>
    </table>
</div>

 

 W tym przypadku wyświetlamy zdjęcie <img src="<?php echo $category->getImageUrl(); ?>" /> ścieżkę <?php echo $category->getUrl(); ?> oraz nazwę kategorii <h2><?php echo $category->getName(); ?></h2>