Magento - Menu maken van CMS pagina's


Standaard kent Magento niet een hoofdmenu waar pagina's in het systeem automatisch aan worden toegevoegd. Het is echter wel mogelijk om een automatisch gegenereerd menu te maken van alle pagina's die onder CMS zijn aangemaakt. Zodoende als er een pagina wordt aangemaakt zal deze automatisch worden toegevoegd aan het menu.

De correcte code zie je hieronder staan. De regel '->addStoreFilter($storeId)' is standaard gecomment maar door deze regel te gebruiken kan er een menu gemaakt worden per shop, indien er meerdere shops aanwezig zijn in de installatie. Verder bepaalde je na 'array('nin'=>array(' welke pagina's niet mogen worden opgenomen in het menu zoals bijvoorbeeld de 404 pagina en de pagina met informatie over geplaatste cookies.

<?php
        $collection = Mage::getModel('cms/page')->getCollection()
        //->addStoreFilter($storeId)
        ->addFieldToFilter('is_active',1)
        ->addFieldToFilter('identifier',array(
                array('nin'=>array(
                        'no-route','enable-cookies')
        )));

        echo '<ul>';
                foreach($collection as $page):
                        echo '<li>';
                                echo '<a class="pageid-' . $page['page_id'] . '" href="/' . $page['identifier'] . '">';
                                        echo $page['content_heading'];
                                echo '</a>';
                                //var_dump($page->getData());
                        echo '</li>';
                endforeach;
        echo '</ul>';
?>