2014-09-02 75 views
1

在我的Magento商店,我已在最近瀏覽過的產品阻止和通訊註冊塊在我的頁腳中刪除塊都可以工作:Magento的 - 如與下面的代碼從頁腳CMS頁面

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> 

回答

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) ?> 

希望它有幫助。

+0

這讓我不顯示的通訊,但此後發現,由於近期塊是一個模板中,它被稱爲後佈局文件。通過使用'$ identifier = Mage :: getSingleton('cms/page') - > getIdentifier()'檢查cms頁面標識符,並且上面的代碼獲得所需的結果 – 2014-09-03 09:02:03

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') ?> 

} 

OR

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

// your code 

}