我從magento開始,想知道一些事情是如何工作的。magento如何使用phtml/xml?
E.g.有時,對於搜索的時候,我發現在Magento像這樣的代碼:
<? php echo $ this-> getChildChildHtml ('container2','', true, true)?>
我設法找出上面這段代碼顯示完全,我想工作,但我知道,這條線只畫了,喜歡瞭解走向和改變它的力量的道路,知道這加快了我的工作。
我從magento開始,想知道一些事情是如何工作的。magento如何使用phtml/xml?
E.g.有時,對於搜索的時候,我發現在Magento像這樣的代碼:
<? php echo $ this-> getChildChildHtml ('container2','', true, true)?>
我設法找出上面這段代碼顯示完全,我想工作,但我知道,這條線只畫了,喜歡瞭解走向和改變它的力量的道路,知道這加快了我的工作。
在magento裏面你有一個如下的路徑:module/controller/action。幾乎每個模塊都有一個基本/默認主題中的佈局xml文件。從佈局的節點構成的
module's frontend name (from module etc/config.xml file) "_" controller "_" action
所以從checkout.xml節點會是什麼樣"checkout_cart_index"
。在佈局xml的這些節點中,您可以引用模板的某些部分<reference name="content">
這是從page.xml中定義的一個大塊(如1列,2列, ):
<block type="core/text_list" name="content" as="content" translate="label"> <label>Main Content Area</label> </block>
從PHTML:
<?php echo $this->getChildHtml('content') ?>
現在要回checkout.xml文件,你可以看到孩子的塊爲參考(記住,這也是塊),例如:
<block type="checkout/cart" name="checkout.cart">...</block>
要查看方法列表,您應查看該塊正在實例化的類,例如,如果在xml中看到一個塊爲type="checkout/cart"
,這意味着您應該查找具有以下內容的etc/config.xml:
<blocks> <checkout> <class>Mage_Checkout_Block</class> </checkout> </blocks>
這實際上是從Mage_Checkout模塊,以便結帳/車轉化爲Mage_Checkout_Block_Cart
在Magento大多數塊擴展Mage_Core_Block_Template
具有一些有趣的方法,如setTemplate和_toHtml。
因此,對於$this->getChildChildHtml('container2','', true, true)
,您將不得不在佈局xml文件的內部定義您的塊,您應該看到它是子項和container2子項。 我發現了一個內部container2的
<block type="core/template_facade" name="product.info.container2" as="container2"> <action method="setDataByKey"><key>alias_in_layout</key><value>container2</value></action> <action method="setDataByKeyFromRegistry"><key>options_container</key><key_in_registry>product</key_in_registry></action> <action method="append"><block>product.info.options.wrapper</block></action> <action method="append"><block>product.info.options.wrapper.bottom</block></action> </block>
在「爲」值被使用的名稱,而不是用於所述塊的將來參考。這是這個塊的類Mage_Core_Block_Template_Facade