Layout 如何在Magento中禁用local.xml中的remove语句
是否可以从local.xml文件中禁用默认layout.xml文件中定义的Layout 如何在Magento中禁用local.xml中的remove语句,layout,magento,Layout,Magento,是否可以从local.xml文件中禁用默认layout.xml文件中定义的语句 例如,在部分的checkout.xml中定义了语句,但是您可以从local.xml文件中禁用该行吗,因此,您仍然可以在签出页面上看到左侧菜单?您的答案不是禁用删除,而是将其再次添加到本地。xml与其尝试重建整个块集,不如在原始xml中注释删除。与尝试重建块和担心XML文件的优先级等相比,这将不是一个维护难题 转这个 <remove name="left" /> 进入 当一个块被删除时,它不会被销毁,
语句
例如,在
部分的checkout.xml中定义了语句
,但是您可以从local.xml文件中禁用该行吗,因此,您仍然可以在签出页面上看到左侧菜单?您的答案不是禁用删除,而是将其再次添加到本地。xml与其尝试重建整个块集,不如在原始xml中注释删除。与尝试重建块和担心XML文件的优先级等相比,这将不是一个维护难题
转这个
<remove name="left" />
进入
当一个块被删除时,它不会被销毁,只会被忽略。您可以通过以下方式“重新启用”:
<checkout_cart_index>
<reference name="root">
<action method="append"><block>left</block></action>
</reference>
</checkout_cart_index>
左边
我自己从来没有使用过这个,也不想使用,如果您正在创建自定义主题,请复制基本布局文件并直接编辑它们,就像其他答案建议的那样。默认情况下,Magento不为local.xml提供
标记。但是,布局系统包含正确的事件,因此您可以自己实现它。我所说的“你自己”,是指我已经添加了这样一个标签。欢迎反馈。我这样做的两种方式是
是全局的-它删除
的所有实例,即使它们是在remove指令之后添加的。例如,重新添加左列
<reference name="root">
<block name="left.2" as="left" type="core/text_list">
<!-- New left column is empty, so you'll need to add your left-column blocks into it here. -->
</block>
</reference>
name=“left.2”表示删除操作不会终止此块,因为=“left”表示它仍将通过
插入模板
不幸的是,新插入的左栏为空。因此,您必须在其中重新插入任何要显示的块。让Alan Storm的插件更加有用,我想。你能给我一个例子,说明如何再次添加删除的块吗?在第78行挖掘app/design/frontend/base/default/layout/page.xml,看看它是如何添加的mm,这似乎不起作用,我将块“left”添加到对根的引用中,就像在page.xml中一样,但没有显示任何内容,即使在左侧块中明确定义了另一个块(如新闻稿块)之后,我做错了什么?您必须确保这是在删除该块之后完成的。更简单的方法是将布局文件复制到主题目录,并从布局文件中删除“删除”部分。永远不要忘记在之后清除缓存。好的,那么只有local.xml就没有办法做到这一点了?该死,我喜欢以“正确”的方式进行这些布局更新,不复制layout.xml文件,这太糟糕了。不幸的是,这似乎不起作用。如果是这样的话,这将是一个完美的解决方案。不幸的是,这是真的。它不起作用。从那时起,有没有进一步的解决办法?是的。这是一个非常古老的答案,如果它曾经起作用,它肯定不会再起作用了。谢谢你,艾伦。您的扩展非常棒,在这里工作没有任何问题。正是我要找的!您必须为此解决方案编辑Magento核心文件,这绝不是一个好主意。一旦更改了核心文件,就无法更新系统。
<reference name="root">
<block name="left.2" as="left" type="core/text_list">
<!-- New left column is empty, so you'll need to add your left-column blocks into it here. -->
</block>
</reference>