|
How to show CMS pages as menu
app/design/frontend/default/default/template/catalog/navigation
or whatever is your store front skin folder
in
top.phtml
after:
<?php foreach ($this->getStoreCategories() as $_category): ?> <?php echo $this->drawItem($_category) ?> <?php endforeach ?>
Add:
<? $store = Mage::app()->getStore('default')->getCode(); $cms_pages = Mage::getModel('cms/page')->getCollection(); $cms_pages->addStoreFilter($store); $cms_pages->load();
echo '<li onmouseover="toggleMenu(this,1)" onmouseout="toggleMenu(this,0)" class="level0 parent">'."\n"; echo '<a href="home"><span>Information/Home</span></a>'."\n"; echo '<ul class="level0">'."\n"; $last = count($cms_pages); $lastText = ''; $ctr = 0; foreach($cms_pages as $_page) { $data = $_page->getData(); if($data['identifier']=='no-route') continue;
if($ctr++ == $last) $lastText = ' last'; echo '<li class="level1'.$lastText.'" ><a href="'.$data['identifier'].'"><span>'.$data['title'].'</span></a></li>'."\n"; } echo '</ul></li>'; ?>
To enable sort order on the frontend for menu
This is optional if you do not want to make changes to the core then do not make the following changes
/app/code/core/Mage/Cms/Model/Mysql4/Page
line 95
Replace:
->orWhere('store_table.store_id=?', $store);
with:
->orWhere('store_table.store_id=?', $store) ->order('sort_order');
To enable Sort Order Editing in Admin
app/code/core/Mage/Adminhtml/Block/Cms/Page/Edit/Tab
in
Main.php
after:
$fieldset->addField('identifier', 'text', array( 'name' => 'identifier', 'label' => Mage::helper('cms')->__('SEF URL Identifier'), 'title' => Mage::helper('cms')->__('SEF URL Identifier'), 'required' => true, 'class' => 'validate-identifier', 'after_element_html' => '<span class="hint">' . Mage::helper('cms')->__('(eg: domain.com/identifier)') . '</span>', ));
Add:
$fieldset->addField('sort_order', 'text', array( 'name' => 'sort_order', 'label' => Mage::helper('cms')->__('Sort Order'), 'title' => Mage::helper('cms')->__('Sort Order'), 'required' => false, ));
To view the Sort order for CMS pages in listing in Admin
app/code/core/Mage/Adminhtml/Block/Cms/Page
in
Grid.php
after:
$this->addColumn('is_active', array( 'header' => Mage::helper('cms')->__('Status'), 'index' => 'is_active', 'type' => 'options', 'options' => array( 0 => Mage::helper('cms')->__('Disabled'), 1 => Mage::helper('cms')->__('Enabled') ), ));
Add
$this->addColumn('sort_order', array( 'header' => Mage::helper('cms')->__('Sort Order'), 'index' => 'sort_order', 'type' => 'text', ));
Thats it. I hope it helps some of you as I had really wasted a lot of time for this small thing.
|