mageto布局應(yīng)用_第1頁
mageto布局應(yīng)用_第2頁
mageto布局應(yīng)用_第3頁
mageto布局應(yīng)用_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、布局是如何工作的(How Layout Works)Posted 星期五, 05/22/2009 - 17:24 by Kevin Von 圖1:布局(Layout)是Magento應(yīng)用中的一個(gè)虛擬組件。通過修改了部分的布局,您可以為店鋪頁面建立升級(jí)兼容的頁面修改。布局是由默認(rèn)布局和更新布局組成,它們都是一些易于學(xué)習(xí)XML標(biāo)記。通過這些布局的命令,您可以修改/指定的內(nèi)容區(qū)塊和結(jié)構(gòu)區(qū)塊的關(guān)系,并控制前臺(tái)店鋪的功能,例如可以在具體的頁面中加載和不加載的具體Javascripts文件。布局文件是根據(jù)模塊分開的,每一個(gè)模塊帶來了自己的布局文件(例如' catalog.xml '是一個(gè)分

2、類模塊的布局文件, 'customer.xml'是客戶模塊的布局文件.等)。這些布局文件位于app/design/frontend/your_interface/your_theme/layout/ 中和每個(gè)文件是進(jìn)一步分開處理(見圖1),每個(gè)處理(除了<default>)指定其在店鋪特定頁面的嵌套更新。一些布局文件中可能包含了<default>處理。在解析布局文件時(shí), Magent首先尋找分配到<default>的更新布局處理幾乎所有的布局文件,讀取他們的命令,在app/etc/modules/Mage_All.xml中指定。然后解析特定頁

3、面布局更新,最后建立一個(gè)商店的頁面。Magento系統(tǒng)使用這種方式,以便無縫添加和刪除模塊而不影響其它模塊的系統(tǒng)。布局原理解析(Anatomy of Layout)Posted 星期五, 05/22/2009 - 17:26 by Kevin Von Magento中的布局(Layout)包含一小部分的標(biāo)記集合,作為詳細(xì)說明關(guān)于程序如何建立一個(gè)頁面,如何建立它的行為和每個(gè)構(gòu)建的區(qū)塊。最佳的布局途徑是在每個(gè)角度正確的劃分和使用。為了讓您能夠做到這一點(diǎn),下面是一些行為特性的布局XML標(biāo)記。句柄(Handle)Handle (圖1)是一個(gè)標(biāo)識(shí)符,決定應(yīng)用程序要如何通過嵌套的更新處理它。如果句柄的名稱

4、是<default>,然后應(yīng)用程序知道在加載網(wǎng)店的幾乎所有頁面之前應(yīng)該加載此特定頁面布局的嵌套更新(我們說'幾乎所有的',因?yàn)橐恍┨厥獾捻撁嫦癞a(chǎn)品圖片彈出窗口就沒有加載布局中的<default>句柄)。如果Magento找到<default>以外的句柄,它將按照指定的句柄中的頁面嵌套更新對(duì)頁面進(jìn)行處理。例如,<catalog_product_view>包含Product View頁面的布局更新,而<catalog_product_compare_index>包含Compare Product 頁面的更新布局。句柄作為設(shè)

5、計(jì)人員設(shè)置在網(wǎng)店中的標(biāo)識(shí)符,他不需要廣泛的理解 Magento編程,也不應(yīng)該需要修改。<block>Magento通過<block>標(biāo)記決定頁面中的每個(gè)區(qū)塊的行為和視覺表現(xiàn)。在Magento中我們已經(jīng)提到了兩種類型的區(qū)塊-結(jié)構(gòu)區(qū)塊(structural blocks)和內(nèi)容區(qū)塊(content blocks)。區(qū)分這兩種區(qū)塊最好的方式是通過分配給它的標(biāo)記屬性來區(qū)分。結(jié)構(gòu)區(qū)塊通常包含屬性'as',通過這個(gè)屬性值程序可以與指定的區(qū)域(由getChildHtml方法指定)中的模板聯(lián)系。你會(huì)發(fā)現(xiàn)在默認(rèn)布局許多地方出現(xiàn)這個(gè)'as'屬性,因?yàn)槟J(rèn)布局

6、的一個(gè)性質(zhì)就是是建立一個(gè)實(shí)際的布局,在各個(gè)不同的頁面中的具體布局上就可以開始增加。例如,在默認(rèn)布局中,有像left、right、content和footer這些結(jié)構(gòu)區(qū)塊。并不是說這些區(qū)塊不能存在于正常的布局更新中,但我們?yōu)槭裁床皇紫仍谀J(rèn)布局中建立這些結(jié)構(gòu)區(qū)塊,然后在后面每個(gè)具體的頁面基礎(chǔ)上添加內(nèi)容呢?讓我們進(jìn)一步挖掘<block>的現(xiàn)有屬性。· type 這是模塊類的標(biāo)識(shí)符,它定義了區(qū)塊的功能。此屬性不應(yīng)該被修改。 · name 這是名稱,其他的區(qū)塊可以通過此名稱引用此區(qū)塊(看圖3)。 · before (and) after 這兩種方法決定內(nèi)容區(qū)塊

7、在結(jié)構(gòu)區(qū)塊中的位置。before="-" 和 after="-"這樣的命令標(biāo)志此區(qū)塊的位置是一個(gè)結(jié)構(gòu)區(qū)塊的最上方或最下方。 · template - 這個(gè)屬性指定的值決定了此區(qū)塊的功能是使用哪個(gè)模板。例如,如果這個(gè)屬性值指定了'catalog/category/view.phtml',程序就會(huì)載入app/design/frontend/template/catalog/category/view.phtml模板文件。要了解布局是如何通過模板執(zhí)行的,閱讀分步指南建設(shè)一個(gè)主題。 · action <action>

8、; 是用來控制前臺(tái)的功能的,如加載或不加載一個(gè)JavaScript。一套完整的action方式將很快推出,但此時(shí)的最佳的學(xué)習(xí)途徑是了解現(xiàn)有的布局更新上面的不同Action方法。 · as 此屬性指定模板文件中會(huì)調(diào)用那個(gè)區(qū)塊。當(dāng)您在模板中看到getChildHtml(' block_name ')的PHP方法,可以肯定它指的是引用屬性'as'的值為' block_name '的區(qū)塊。 (例如:在骨架模板中的方法<?=$this->getChildHtml('header')?>是調(diào)用<block as=“header”>) <reference><reference>是用來引用另一個(gè)區(qū)塊。要引用靈位一個(gè)區(qū)塊,在內(nèi)部的更新將應(yīng)用于與其關(guān)聯(lián)的<block>(見圖3)。要使用引用,可以通過區(qū)塊中的na

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論