我在一次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中正确地做到这一点?我发现很遗憾没有选择过滤那里的东西
答案 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);