2013-03-11 19 views
0

的catalog.xmlMagento的块文件没有显示出来有时

<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每日进行重新编排和缓存刷新。但我不知道它为什么随机来临?

回答

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

我把那个文件包含在外面的布局句柄中。我不确定是否有这样做的正确方法?但它出现了。我把日志知道它没有显示多少次..会看到

1

这听起来像是一个缓存问题。尝试通过PHP调用您的自定义菜单而不是XML

<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('block_id')- >toHtml(); ?> 

这将减轻您使用XML文件时可能遇到的任何问题。希望这可以帮助!

+0

感谢@djthoms。生病根据你的意见.. – 2013-03-11 06:35:24

+0

但我需要通过PHP的一些CSS条件,可以从phtml文件不是在cms块中完成。所以请让我知道是否有任何其他想法显示我的自定义菜单以及我的原始菜单。我的代码无法显示1次,共5次。 – 2013-03-11 13:23:42

+0

@SatheeshNarayanan你有视觉可以看吗? – djthoms 2013-03-12 01:27:26