CMS列表页面,404页面除外

时间:2013-12-11 09:18:47

标签: magento

在我的magento网站上,我可以使用以下方法显示所有CMS页面的列表:

Mage::getModel('cms/page')->getCollection()

但是现在我想在我的列表中隐藏404页面。怎么做?

由于

1 个答案:

答案 0 :(得分:2)

默认情况下,404 cms页面的标识符为no-route。你可以得到这样的集合:

$pages = Mage::getModel('cms/page')->getCollection()
    ->addFieldToFilter('identifier', array('neq'=>'no-route'));

但Magento提供了将页面设为404页面的可能性。因此,更清晰的方法是首先获得真正的404页面标识符。

$_errPage = Mage::getStoreConfig('web/default/cms_no_route');
$parts = explode('|', $_errPage);
$identifier = $parts[0];
$pages = Mage::getModel('cms/page')->getCollection()
        ->addFieldToFilter('identifier', array('neq'=>$identifier));

我还建议添加商店过滤器,以便只获取当前商店中启用的页面:

$pages = Mage::getModel('cms/page')->getCollection()
        ->addStoreFilter(Mage::app()->getStore()->getId())
        ->addFieldToFilter('identifier', array('neq'=>$identifier));