Magento Store - 使用Update XML删除阻止

时间:2010-01-15 03:16:43

标签: magento

我在模板文件中使用此代码在左侧边栏中显示静态块:

<?= $this->getLayout()->createBlock('cms/block')->setBlockId('leftSB1')->toHtml() ?>

我想从我的一个CMS页面中排除该块。我该怎么做?

我认为它需要在“布局更新XML”部分添加代码,但我不确定究竟是什么。

2 个答案:

答案 0 :(得分:14)

其他人可以在这里纠正我,但我很确定你会因为你打电话给这个区块而试图完成这个。正常的布局更新允许您删除块,但这些块也是使用布局创建的块(例如,在调用loadLayout()之后,Layout对象知道它们)。

在您的情况下,您可以动态创建块,然后立即使用它来回显一些HTML。如果您希望能够使用布局更新删除它,请先尝试将其移动到布局文件中,然后使用常规布局块删除方法:

<reference name="your_parent_block_name">
   <remove name="leftSB1"/>
</reference>

否则,你可以在PHP中隐藏它(通过设置一些全局变量并在输出块之前检查它。形式不好但可能有用。)或者在CSS中。如果其中任何一项适合您,请告诉我。

谢谢, 乔

答案 1 :(得分:6)

在您的布局中包含该块:

<cms_page>
  <reference name="left">
    <block type="cms/block" name="leftSB1">
      <action method="setBlockId"><id>leftSB1</id></action>
    </block>
  </reference>
</cms_page>

如果您没有自动包含儿童,请在侧边栏中$this->getChildHtml('leftSB1')

(然后将其从特定页面中删除,如上一个答案中所述)