magentoテンプレートにおけるXMLとphtmlの関係[三]

13986 ワード

今回は引き続きmagentoテンプレート作成の検討を行い、前回.xmlでは.phtmlではできないことができると言いました.今日はxmlとphtmlがどのように協力して私たちのmagentoテンプレートを生成したのかについて話します.
今回の説明では、magento 1.4バージョンを使用し、baseのdefaultテンプレートを使用します.
例は最も迅速にmagentoを理解する方法で、magentoの頭部の検索ボックスを見て、どのように表示されているかを見てみましょう.
宣言定義:appdesignfrontendbasedefaultlayoutcatalogsearch.xml

  • 
       
         
    1 < default >
    2 < reference name = " header " >
    3 < block type = " core/template " name = " top.search " as = " topSearch " template = " catalogsearch/form.mini.phtml " />
    4 </ reference >

    次に、appdesignfrontendbasedefaulttemplatepagehtmlheader.phtmlで出力を呼び出します.
    
       
         
    1 < div class = " quick-access " >
    2 <? php echo $this -> getChildHtml( ' topSearch ' ) ?>

    XMLにはコードフラグメントas="topSearch"があり、phtmlのgetChildHtml()のパラメータがtopSearchなので、これがキーです.
    この検索をテンプレートのヘッダからテンプレートの下部に移動するにはどうすればいいですか?
    では、まず上のXMLのに変更し、
    次にappdesignfrontendbasedefaulttemplatepagehtmlheader.phtmlのgetChildHtml(‘topSearch’) ?>削除:appdesignfrontendbasedefaulttemplatepagehtmlfooter.phtmlの適切な場所に追加します.
    この時私たちは
    対応はappdesignfrontendbasedefaulttemplatepagehtmlheader.phtmlファイル
    対応はappdesignfrontendbasedefaulttemplatepagehtmlfooter.phtml
    どうしてですか.
    appdesignfrontendbasedefaultlayoutpage.xmlファイルの定義footerとheaderのコードクリップを見てみましょう
    
        
          
    1 < block type = " page/html_footer " name = " footer " as = " footer " template = " page/html/footer.phtml " >
    2   < block type = " page/html_wrapper " name = " bottom.container " as = " bottomContainer " translate = " label " >
    3 < label > Page Footer </ label >
    4 < action method = " setElementClass " >
    5   < value > bottom - container </ value >
    6 </ action >
    7 </ block >
    8 < block type = " page/switch " name = " store_switcher " as = " store_switcher " template = " page/switch/stores.phtml " />
    9 < block type = " page/template_links " name = " footer_links " as = " footer_links " template = " page/template/links.phtml " />
    10 </ block >

    この最初の行のコードを見ると、name=「footer」、template=「page/html/footer.phtml」とはっきり言っています.だからこの
    footer.phtmのgetChildHtml()を定義します.
    初心者なら、ここまで読んでもわからないので大丈夫です.私が見始めても目がくらむので、私たちはプロではありません.普通です.しかし、私たちは猫の虎を描くのが上手で、法則をまとめなければなりません.
    私たちは分からないかもしれませんが、私たちは使います.これは良いスタートで、もっと練習します.だんだん何でもわかってきた.