閱讀730 返回首頁    go 技術社區[雲棲]


magento -- 使用local.xml來修改布局

在過去的3年,我們致力於Magneto,並按“Magento的方式”的管理代碼,發現使用local.xml是修改布局最好的方法之一。

 

這篇文章是寫給那些還不知道這種用法的人,如果你已經在使用這種方式,恭喜你,如果還沒有,你確實應該使用它。

 

思路很簡單:隻使用local.xml這一個文件,把它放到你所使用模板的layout目錄下,重寫或更新該模板的所有布局用XML。

 

優點:

1、隻用一個文件來管理重寫或更新

2、不需要再有任何其他的xml文件在你的模板裏,因為它依賴於base目錄下的xml文件

3、所有修改都很明顯的隻在local.xml一個文件裏麵,不需要去從很多xml文件裏查看到底做了哪些修改

 

缺點:

1、我想不到缺點,除非讓代碼的修改變得更透明和明顯不是你想要的

 

如何使用local.xml文件?所有你需要做的隻是在你所使用模板的layout目錄下新建它並寫入你自己的xml代碼。當Magento讀取xml文件時會率先查找你在local.xml裏麵所做的修改,並應用它們,然後才會去讀取base目錄下的xml文件(如果在後台把它設為默認xml目錄的話)。

 

如何設置它

 

1、在你所使用模板的layout目錄下新建文件local.xml(app/frontend/default/your-theme/layout)

2、添加基本XML標記結構

 

< ?xml version="1.0"?> <layout version="0.1.0"></layout> 

 

3、添加xml代碼來重寫布局結構。看下麵的例子:

 

示例:

1、移除或添加javascript 

<!-- Let’s remove sleight js for IE7--> <reference name="head"> <action method="removeItem"><type>js</type><name>lib/ds-sleight.js</name><params /><if>lt IE 7</if></action> </reference> <!-- Instead, add belated.js from your theme’s /js folder --> <action method="addItem"><type>skin_js</type><name>js/belated.js</name><params /><if>lt IE 7</if></action> 

 

2、添加代碼來隻對分類頁做修改。設置使用的模板布局文件並添加一些javascript

<catalog_product_view translate="label"> <reference name="root"> <action method="setTemplate"> <template>page/1column.phtml</template> </action> </reference> <reference name="head"> <action method="addItem"><type>skin_js</type> <name>js/stereotabs.js</name></action> <action method="addItem"><type>skin_js</type> <name>js/shadowbox/shadowbox.js</name></action> </reference> </catalog_product_view> 

 

3、用“remove”來從布局裏移除一些特殊的block(products compare, products viewed and related products)

<default> <reference name="right"> <remove name="catalog.compare.sidebar" /> <remove name="left.reports.product.viewed" /> <remove name="catalog.product.related" /> </reference> </default> 

 

4、用“unsetChild”來從布局裏移除一些特殊的block(products compare, products viewed and related products)

<default> <reference name="left"> <!-- Removed the Newsletter from the left sidebar --> <action method="unsetChild"><name>left.newsletter</name></action> <action method="unsetChild"><name>tags_popular</name></action> </reference> </default> 

 

當然還有其他許多用途,我隻是使用了添加,刪除和更新,來說明您的開發流程如何使用local.xml。

 

對還沒有使用過這種方式的人來說,希望這能幫你在下一個項目中開個好頭,也非常歡迎針對這個來一起討論。

 

感謝您的閱讀!

 

原文地址:https://inchoo.net/ecommerce/magento/using-local-xml-for-overriding-or-updating-xml-structure/

 

最後更新:2017-04-02 06:51:27

  上一篇:go Windows編程中的映射模式和坐標轉換
  下一篇:go 長大後,我就成了你