2013-02-19 269 views
1

在我的布局文件,我已经现有的块与结构如下:更新现有布局块在Magento

<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”中引发警告必须在布局中创建块。但是,如果我还将type =“mymodule/news”添加到属性中,它将停止工作 - setData操作将不再设置数据。

我想尽可能简单地将XML保留为管理员,因为它们已经在布局中的XML文件中定义了,所以没有“模板”和“之后”标记。这是可能的 - 引用现有的块,只是添加的东西吗?

回答

2

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

+0

谢谢,这个作品完美;) – KoviNET 2013-02-20 11:28:44

+1

是的,它的确如此。你的问题是你正在有效地尝试创建一个名为** catalog.help **的* new * block实例。如果你使用了''而不是'',那么你的基于实体的布局更新会有效。 – benmarks 2013-02-20 13:17:14

+0

出于某种原因,我相信''只能用于结构块,意思是'core/text_list'类型(通常在page.xml中定义),不适用于所有块。 – KoviNET 2013-02-21 09:36:16