Magento块文件有时没有出现

时间:2013-03-11 06:03:33

标签: magento templates

的catalog.xml

<default>
    <!-- Mage_Catalog -->
    <reference name="top.menu">
        <block type="catalog/navigation" name="catalog.topnav" template="catalog/navigation/top.phtml">
          <block type="catalog/navigation" name="topnav_extra" template="catalog/navigation/top_extra.phtml" />
        </block>
    </reference>

top_extra.phtml

<ul>
<li> Custom Menu1 </li>
<li> Custom Menu2 </li>
</ul>

top.phtml

<?php if($_menu): ?>
<ul id="topnav">
    <?php echo $_menu ?>
    <!-- Header Menu laset tab start here --> 
<?php  echo $this->getChildHtml('topnav_extra');  ?>
</ul>

当我刷新两次或三次即将来临时,此块无法显示。我正在使用cron进行重新索引和缓存刷新。但我不知道为什么它会随机出现?

2 个答案:

答案 0 :(得分:1)

这对我来说听起来像是一个缓存问题。尝试通过PHP而不是XML

调用自定义菜单
 <?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('block_id')- >toHtml(); ?>

这将缓解您使用XML文件可能遇到的任何问题。希望这有帮助!

答案 1 :(得分:0)

<?php echo $this->getLayout()->createBlock('core/template')->setTemplate('catalog/navigation/top_extra.phtml')->toHtml(); ?>

我将该文件包含在布局句柄中。我不确定这是正确的方法吗?但它出现了。我把日志知道了多少次没出现..会看到