2011-10-27 2 views
2

私はMagento Templateの基本チュートリアルを勉強しました。私を混乱させる質問があります。Magentoレイアウトファイルテンプレートリファレンス?

checkout.xmlでこのコードを見てください。これは、システムがtop.linksブロックに2つのリンクを追加することを示しています。

<reference name="top.links"> 
    <block type="checkout/links" name="checkout_cart_link"> 
     <action method="addCartLink"></action> 
     <action method="addCheckoutLink"></action> 
    </block> 
</reference> 

したがって、page.xmlレイアウトファイルでtop.linksブロックが見つかりました。このブロックで使用するテンプレートを知りたいしかし、このタグにはテンプレート属性はありません。なぜ誰もテンプレート属性がない理由を教えていただけますか?その場合、Magentoはどのテンプレートを参照すべきかをどのように知ることができますか?

<block type="page/html_header" name="header" as="header"> 
    <block type="page/template_links" name="top.links" as="topLinks"/> 
</block> 

それはtop.linksブロックは、あなたのレイアウトXMLでヘッダブロック

答えて

10

であり、私たちに語った、あなたはブロックのクラスのエイリアスを参照することができpage/template_linksです。つまり、ブロックのPHPクラスはMage_Page_Block_Template_Linksです。どのようにブロックが動作するかを確認するには、ファイルapp/code/core/Mage/Page/Block/Template/Links.phpを開きます。いないすべてのブロックは、テンプレートファイルを持っていますが、クラス定義では、この1のように見えるべきである:続きを読むと、あなたはテンプレートファイルは、コンストラクタで設定されていることがわかります

class Mage_Page_Block_Template_Links extends Mage_Core_Block_Template 

:だから

protected function _construct() 
{ 
    $this->setTemplate('page/template/links.phtml'); 
} 

あなたが探しているテンプレートファイルはpage/template/links.phtmlです。

+0

ありがとうございます! – Ruiwant