Magento 1.4 cms页面未被隐藏在菜单中,即使它被设置为禁用

时间:2014-02-08 13:58:13

标签: php magento

我在一次magento安装中遇到了一件奇怪的事情,我有一段时间没碰过它,所以他们必须添加东西。

问题是:他们将cms页面设置为'disabled',这样每次访问时页面都会产生404错误(这很好),但由于某种原因,links.phtml仍在发布 all < / em>链接,不检查页面是否被禁用。

所以我把它放在这里测试:

<?php $_links = $this->getLinks(); ?>

<?php if(count($_links)>0): ?>
<ul class="links"<?php if($this->getName()): ?> id="<?php echo $this->getName() ?>"<?php endif;?>>
    <?php foreach($_links as $_link): ?>

<?php
$cmsCollections = Mage::getModel('cms/block')->getCollection();
$attribute = "title";  
$value = $_link['title'];  
$cmsCollections->addFieldToFilter($attribute, $value);
$item = $cmsCollections->getFirstItem();
$id = $item->getData('is_active');
if($id == 1){
    echo "CMS PAGE ". $value." ACTIVE";
}else{
   echo "CMS PAGE ". $value."  is INACTIVE";
}


?>

这里奇怪的部分是我一直得到错误的结果......

我不是magento专家,所以也许有人知道如何在getLinks中正确地做到这一点?我发现很遗憾没有选择过滤那里的东西

1 个答案:

答案 0 :(得分:0)

Elijah,CMS BLOCk收藏应该......

    $cmsCollections=
Mage::getModel('cms/block')->getCollection()->addFieldToFilter('is_active',1);

CMS页面集合

    $CMSpageColl
=Mage::getModel('cms/page')->getCollection()->addFieldToFilter('is_active',1);

如果您想要一个特定的CMS块,那么您可以使用idendifier

来获取它
  $cmsCollections = Mage::getModel('cms/block')->getCollection()->addFieldToFilter('identifier',indefiername);

如果您想要一个特定的CMS块,那么您可以使用它来识别标识符

$cmspageCollections =
Mage::getModel('cms/page')->getCollection()->addFieldToFilter('identifier',indefiername);