Magento 佈局(XML)原理解析

<block>
Magento 通過 <block> 標記決定頁面中的每個區塊的行爲和視覺表現。在 Magento 中我們已經提到了兩種類型的區塊 – 結構區塊(structural blocks)和內容區塊(content blocks)。區分這兩種區塊最好的方式是通過分配給它的標記屬性來區分。結構區塊通常包含屬性 ‘as’ ,通過這個屬性值程序可以與指定的區域(由 getChildHtml 方法指定)中的模板聯繫。你會發現在默認佈局許多地方出現這個 ‘as’ 屬性,因爲默認佈局的一個性質就是建立一個實際的佈局,在各個不同的頁面中的具體佈局上就可以開始增加。例如,在默認佈局中,有像 ‘left’ 、 ‘right’ 、 ‘content’ 和 ‘footer’ 這些結構區塊。並不是說這些區塊不能存在於正常的佈局更新中,但我們爲什麼不首先在默認佈局中建立這些結構區塊,然後在後面每個具體的頁面基礎上添加內容 呢?讓我們進一步挖掘 <block> 的現有屬性。

  1. type – 這是模塊類的標識符,它定義了區塊的功能。此屬性不應該被修改。
  2. name – 這是名稱,其他的區塊可以通過此名稱引用此區塊(看圖1)。
  3. before (and) after – 這兩種方法決定內容區塊在結構區塊中的位置。 before=”-”after=”-” 這樣的命令標誌此區塊的位置是一個結構區塊的最上方或最下方。
  4. template – 這個屬性指定的值決定了此區塊的功能是使用哪個模板。例如,如果這個屬性值指定了 ‘catalog/category/view.phtml’ ,程序就會載入 ‘app/design/frontend/template/catalog/category/view.phtml’ 模板文件。
  5. action<action> 是用來控制前臺的功能的,如加載或不加載一個 JavaScript 。一套完整的 action 方式將很快推出,但此時的最佳的學習途徑是瞭解現有的佈局更新上面的不同 action 方法。
  6. as – 此屬性指定模板文件中會調用那個區塊。 當您在模板中看到 getChildHtml(‘ block_name ‘) 的 PHP 方法,可以肯定它指的是引用屬性 ‘as’ 的值爲 ‘block_name’ 的區塊。 (例如:在骨架模板中的方法 <?=$this->getChildHtml(‘header’)?> 是調用 <block as="header"> )

<reference>
<reference> 是用來引用另一個區塊。要引用靈位一個區塊,在內部的更新將應用於與其關聯的 <block> (見圖1)。
要使用引用,可以通過區塊中的 ‘name’ 屬性值引用。此屬性的指向標籤中 ‘name’ 屬性。所以,如果你使用 <reference name="right"> ,響應的區塊名稱將是 <block name="right">

圖1:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章