关于magento的layout

来源:互联网 发布:淘宝装修教程视频2016 编辑:程序博客网 时间:2024/05/01 19:20
在app/design下我们可以很容易的找到fronted下的当前项目名称下的default下的layout文件,无法确定是哪个文件夹下的可以参考

megento开启debug模式


打开后可以发现对应不同模块的布局文件都用xml写出来了,点击任一文件,可以发现是类似装载的模式,某一块是有几个phtml文件拼合而成的。


如当前这一块magento商城模板下的product_view

<reference name="content">    <block type="catalog/product_view" name="product.info" template="catalog/product/view.phtml">        <!--        <action method="addReviewSummaryTemplate"><type>default</type><template>review/helper/summary.phtml</template></action>        <action method="addReviewSummaryTemplate"><type>short</type><template>review/helper/summary_short.phtml</template></action>        <action method="addReviewSummaryTemplate"><type>...</type><template>...</template></action>        -->        <block type="catalog/product_view_media" name="product.info.media" as="media" template="catalog/product/view/media.phtml">            <block type="core/text_list" name="product.info.media.after" as="after" />        </block>        <block type="core/text_list" name="alert.urls" as="alert_urls" translate="label">            <label>Alert Urls</label>        </block>        <action method="setTierPriceTemplate"><template>catalog/product/view/tierprices.phtml</template></action>        <block type="catalog/product_list_upsell" name="product.info.upsell" as="upsell_products" template="catalog/product/list/upsell.phtml">            <action method="setColumnCount"><columns>6</columns></action>            <action method="setItemLimit"><type>upsell</type><limit>6</limit></action>        </block>        <block type="catalog/product_view_additional" name="product.info.additional" as="product_additional_data" />        <block type="catalog/product_view_description" name="product.description" as="description" template="catalog/product/view/description.phtml">            <action method="addToParentGroup"><group>detailed_info</group></action>            <action method="setTitle" translate="value"><value>Description</value></action>        </block>        <block type="catalog/product_view_attributes" name="product.attributes" as="additional" template="catalog/product/view/attributes.phtml">            <action method="addToParentGroup"><group>detailed_info</group></action>            <action method="setTitle" translate="value"><value>Additional Information</value></action>        </block>        <block type="catalog/product_list_related" name="catalog.product.related" as="related_products" template="catalog/product/list/related.phtml" />        <block type="catalog/product_view" name="product.info.addto" as="addto" template="catalog/product/view/addto.phtml"/>        <block type="catalog/product_view" name="product.info.sharing" as="sharing" template="catalog/product/view/sharing.phtml"/>        <block type="catalog/product_view" name="product.info.addtocart" as="addtocart" template="catalog/product/view/addtocart.phtml"/>        <block type="core/text_list" name="product.info.extrahint" as="extrahint" translate="label">            <label>Product View Extra Hint</label>        </block>        <block type="catalog/product_view" name="product.info.options.wrapper" as="product_options_wrapper" template="catalog/product/view/options/wrapper.phtml" translate="label">            <label>Info Column Options Wrapper</label>            <block type="core/template" name="options_js" template="catalog/product/view/options/js.phtml"/>            <block type="catalog/product_view_options" name="product.info.options" as="product_options" template="catalog/product/view/options.phtml">                <action method="addOptionRenderer"><type>text</type><block>catalog/product_view_options_type_text</block><template>catalog/product/view/options/type/text.phtml</template></action>                <action method="addOptionRenderer"><type>file</type><block>catalog/product_view_options_type_file</block><template>catalog/product/view/options/type/file.phtml</template></action>                <action method="addOptionRenderer"><type>select</type><block>catalog/product_view_options_type_select</block><template>catalog/product/view/options/type/select.phtml</template></action>                <action method="addOptionRenderer"><type>date</type><block>catalog/product_view_options_type_date</block><template>catalog/product/view/options/type/date.phtml</template></action>        </block>                <block type="core/html_calendar" name="html_calendar" as="html_calendar" template="page/js/calendar.phtml"/>            </block>        <block type="catalog/product_view" name="product.info.options.wrapper.bottom" as="product_options_wrapper_bottom" template="catalog/product/view/options/wrapper/bottom.phtml" translate="label">            <label>Bottom Block Options Wrapper</label>            <action method="insert"><block>product.tierprices</block></action>            <block type="catalog/product_view" name="product.clone_prices" as="prices" template="catalog/product/view/price_clone.phtml"/>            <action method="append"><block>product.info.addtocart</block></action>            <action method="append"><block>product.info.addto</block></action>            <action method="append"><block>product.info.sharing</block></action>        </block>        <block type="core/template_facade" name="product.info.container2" as="container2">            <action method="setDataByKey"><key>alias_in_layout</key><value>container1</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 as="b">product.info.options.wrapper.bottom</block></action>        </block>        <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>        <action method="unsetCallChild"><child>container1</child><call>ifEquals</call><if>0</if><key>alias_in_layout</key><key>options_container</key></action>        <action method="unsetCallChild"><child>container2</child><call>ifEquals</call><if>0</if><key>alias_in_layout</key><key>options_container</key></action>    </block></reference>当在html文件时需要用到其中的某一块时我们使用
  1. getChildHtml('a') //加载as=‘a’的block  
  2. getChildHtml(''); //加载所有的子block  
  3. getChildChildHtml ('container1' ,  'b' ,  true ,  true); //加载子block container1以及他的子block(as='b');  
  4. getChildChildHtml ('container1' ,  '' ,  true ,  true);  //加载子block container1,以及下面的所有子block  

 

Php代码  收藏代码
  1. <?php  echo  $this -> getChildChildHtml ( 'container1' ,  '' ,  true ,  true )  ?>  
  2. <?php  echo  $this -> getChildChildHtml ( 'container2' ,  '' ,  true ,  true )  ?>  
类似于这种格式来装载我们需要的blck块,来达到不同的页面下不同的现实效果,当然也是为了实现产品模板的多样性

0 0
原创粉丝点击