禁用页面标识的magento缓存

时间:2014-08-28 11:39:57

标签: php magento caching

如何禁用缓存:

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,我可以在每个页面上看到此块。

2 个答案:

答案 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>