2013-02-19 284 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