【问题标题】:Update existing layout block in admin Custom design tab in Magento在 Magento 的自定义设计选项卡中更新现有布局块
【发布时间】:2013-02-04 07:50:53
【问题描述】:

在我的布局文件中,我有具有以下结构的现有块:

<block type="mymodule/news" name="catalog.help" after="left_nav" template="catalog/navigation/help.phtml"/>

所以现在我想在管理界面中的“自定义设计>自定义布局更新”下的某个类别中向这个块添加额外的信息,而不必重复所有属性和其他内容,我只想添加额外的数据到它,像这样(提供相同的块名称):

<block name="catalog.help">
    <action method="setData"><key>news_category_id</key><value>123</value></action>
</block>

上面的代码甚至可以工作,但在日志中抛出警告“类型”在布局中创建块时是强制性的。但是,如果我还将 type="mymodule/news" 添加到属性中,它将停止工作 - setData 操作则不再设置数据。

我希望在没有“模板”和“之后”标记的情况下尽可能简单地在管理中保持 XML,因为它们已经在布局中的 XML 文件中定义。这可能吗 - 引用现有块并只是向其中添加内容?

【问题讨论】:

    标签: xml magento layout


    【解决方案1】:

    试试&lt;action method="setData" block="catalog.help"&gt;&lt;key&gt;news_category_id&lt;/key&gt;&lt;value&gt;123&lt;/value&gt;&lt;/action&gt;

    【讨论】:

    • 是的,确实如此。您的问题是您实际上是在尝试创建一个名为 catalog.helpnew 块实例。如果您使用&lt;reference /&gt; 而不是&lt;block /&gt;,您的基于实体的布局更新会很有效。
    • 出于某种原因,我认为&lt;reference /&gt; 只能用于结构块,即core/text_list 类型的块(通常在page.xml 中定义),而不是用于所有块。
    猜你喜欢
    • 2012-02-18
    • 2013-09-28
    • 1970-01-01
    • 2018-06-23
    • 1970-01-01
    • 2015-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多