如何禁用缓存:
Mage::getSingleton('cms/page')->getIdentifier()
我需要为此禁用缓存,因为我只想在“主页”页面显示静态块,如:
<?php if (Mage::getSingleton('cms/page')->getIdentifier() == 'home' && Mage::app()->getFrontController()->getRequest()->getRouteName() == 'cms'): ?>
<div>
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('shop-description-long')->toHtml() ?>
</div>
<?php endif; ?>
目前magento缓存此页面ID,我可以在每个页面上看到此块。
答案 0 :(得分:0)
好的,我找到了解决方案:
首先,我将以下内容添加到我的local.xml:
<reference name="midcolumn">
<block type="core/template" template="page/html/shop-description.phtml">
<action method="setCacheLifetime"><s>null</s></action>
</block>
</reference>
然后我创建了文件:shop-description.phtml,其中包含以下内容:
<?php if (Mage::getSingleton('cms/page')->getIdentifier() == 'home' && Mage::app()->getFrontController()->getRequest()->getRouteName() == 'cms'): ?>
<section class="f-fix">
<div class="container">
<div class="headingBox"><h2><span>About the shop</span></h2></div>
<div class="shop-description-long">
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('shop-description-long')->toHtml() ?>
</div>
<div class="shop-description-image">
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('shop-description-image')->toHtml() ?>
</div>
</div>
</section>
<?php endif; ?>
我不知道这个问题是否是一个很好的解决方案,但它确实有效。所以任何反馈都会很好:)。
答案 1 :(得分:0)
编辑“主页”CMS页面并将其放入“布局更新”字段中。
<reference name="content">
<block type="cms/block" name="shop_description_long">
<action method="setBlockId"><id>shop-description-long</id></action>
</block>
</reference>