Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Layout 如何在Magento中禁用local.xml中的remove语句_Layout_Magento - Fatal编程技术网

Layout 如何在Magento中禁用local.xml中的remove语句

Layout 如何在Magento中禁用local.xml中的remove语句,layout,magento,Layout,Magento,是否可以从local.xml文件中禁用默认layout.xml文件中定义的语句 例如,在部分的checkout.xml中定义了语句,但是您可以从local.xml文件中禁用该行吗,因此,您仍然可以在签出页面上看到左侧菜单?您的答案不是禁用删除,而是将其再次添加到本地。xml与其尝试重建整个块集,不如在原始xml中注释删除。与尝试重建块和担心XML文件的优先级等相比,这将不是一个维护难题 转这个 <remove name="left" /> 进入 当一个块被删除时,它不会被销毁,

是否可以从local.xml文件中禁用默认layout.xml文件中定义的
语句


例如,在
部分的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提供
标记。但是,布局系统包含正确的事件,因此您可以自己实现它。我所说的“你自己”,是指我已经添加了这样一个标签。欢迎反馈。

我这样做的两种方式是

  • 使用上面Alan Storm优秀的unremove插件

  • 在local.xml中使用新的name属性重新插入删除的块,但使用相同的别名或“as”属性

  • name属性需要不同,因为Magento的
    是全局的-它删除
    的所有实例,即使它们是在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>