Magento - 在CMS页面上从页脚中删除块

时间:2014-09-02 15:46:39

标签: xml magento block footer

在我的magento商店中,我在我的页脚中有最近查看的产品块和简报注册块,如下所示,所有工作正常:

footer.phtml

<?php echo $this->getLayout()->createBlock('reports/product_viewed')->setTemplate('reports/product_viewed.phtml')->toHtml(); ?>

<?php echo $this->getChildHtml('footer.newsletter') ?>

在我的一个CMS页面上,我想要隐藏这两个块。在我的CMS页面的设计管理标签中,我已经在Custom Layout Update XML部分隐藏了下面的面包屑,再次正常工作:

<reference name="root">
    <remove name="breadcrumbs" />
</reference>

我似乎无法提出正确的代码来删除这些块。我为每个块尝试了几行代码:

<reference name="footer">
    <remove name="reports.product.viewed" />
</reference>

<reference name="root">
    <remove name="footer.reports.product.viewed" />
</reference>

<reference name="footer">
    <action method="unsetChild"><alias>reports.product.viewed</alias></action>
</reference>

3 个答案:

答案 0 :(得分:1)

尝试在布局XML文件中使用以下代码

<cms_page>
    <reference name="footer">
        <remove name="footer-product-viewed" />
        <remove name="your_footer_newsletter_block_name" />
    </reference>
</cms_page>

footer.phtml

中的代码
<?php echo $this->getLayout()->createBlock('reports/product_viewed', 'footer-product-viewed')->setTemplate('reports/product_viewed.phtml')->toHtml(); ?>

<?php echo $this->getChildHtml('footer.newsletter') ?>

如果仍然没有删除您的页脚新闻稿块,请尝试传递false参数,这将不允许该块从缓存中呈现。

<?php echo $this->getChildHtml('footer.newsletter', false) ?>

希望它有所帮助。

答案 1 :(得分:0)

检查CMS页面是否:

$page = Mage::getSingleton('cms/page');
if ($page->getId()) {

}
else{

<?php echo $this->getLayout()->createBlock('reports/product_viewed')->setTemplate('reports/product_viewed.phtml')->toHtml(); ?>

<?php echo $this->getChildHtml('footer.newsletter') ?>

}

if(Mage::app()->getFrontController()->getRequest()->getRouteName() == 'cms')
{
  // CMS page
}
else{

// your code 

}

答案 2 :(得分:0)

系统菜单 - &gt;配置 - &gt;左侧“高级”部分下的“高级”按钮。 - &GT;找到Mage_Newsletter下拉菜单以禁用 - &gt;单击“保存”

来自https://briansnelson.com/How_to_Disable_Magento_Newsletter_Module