magento添加調用block的幾種方法


靜態塊主要是指在后台添加的可用靜態塊
調用方法常見的有如下幾種:(這邊就不介紹使用widgets 調用的方法了,有興趣的朋友可以自己在后台widgets中嘗試設置)
1、直接在HomePage中調用(只限首頁):
修改layout中的xml代碼
<reference name=”content”>
<block type=”cms/block” name=”blockname” before=”-”>
<action method=”setBlockId”><id>block_id</id></action>
</block>
</reference>
通過修改reference 中的name屬性值調整主體位置,通過block中的before或after屬性值調整相對順序
CMS 頁以及static block還可以通過如下方法調用:
{{block type=”cms/block”  name=”user-block”  block_id=”one-block”}}
(其中的name為自定義的,block_id 為靜態塊的 identi)

2、直接在模板的 .phtml 中調用
<?php echo $this->getLayout()
->createBlock(‘cms/block’)
->setBlockId(‘block_id’)
->toHtml(); ?>
3、在對應的 .xml 中的目標位置調用
<block type=”cms/block” name=”blockname” as=”blockname” before=”-”>
<action method=”setBlockId”><id>block_id</id></action>
</block>
<!– 修改其中的 name  as 以及id 確保正確調用,修改before參數確保位置正確 –>
4、使用 getChildHtml() 方法調用(類似方法3):
首先在page.xml文件中定義一個childhtml名稱(這邊用test代替)
可以參考before_body_end那段代碼
<block type=”core/text_list” name=”before_body_end” as=”before_body_end”/>
定義自己需要的如:
<block type=”core/text_list” name=”test” as=”test”/>
然后將調用的代碼添加到對應的XML布局文件的正確位置
例如這邊我們插入到catalog.xml 中的<default>塊中,這樣就可以在任意頁面調用,當然你也可以加到你想要的頁面中。
<default><!–位於30行左右–>
<reference name=”test”>
<block type=”cms/block” name=”testname” before=”-”>
<action method=”setBlockId”><id>testblock</id></action>
</block>
</reference>
……
添加static block名稱為testblock
內容自己定義,如:    <h1>This is a test Block!</h1>
到你想讓這塊內容出現的頁面調用它
這邊我們在1column.phtml中調用
<?php echo $this->getChildHtml(‘test’) ?>

5.應用實例:

產品查看頁以 Zencart 風格調出產品多圖展示

catalog.xml
<!–
Product view
–>部分,找到<block type=”catalog/product_view_media” name=”product.info.media” as=”media” template=”catalog/product/view/media.phtml”/>
復制並加以修改為:
<block type=”catalog/product_view_media” name=”product.info.mediagallery” as=”media_gallery” template=”catalog/product/view/mediagallery.phtml”/>
其中mediagallery.phtml 文件代碼可參考media.phtml 文件根據需要進行相應修改

然后
在Product view.phtml 中 對應位置添加以下代碼(css樣式自行調整)即可
<div style=”text-align:center;”>
<?php echo $this->getChildHtml(‘media_gallery’) ?>
</div>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM