Magento主题模板调用CMS Static Block 静态块
在Magento网站里,我们可以把经常要更改的东西,可以直接加入到CMS Static Block里,再在模板里调用CMS Static Block,这样方便日常维护,在Magento模板里调用静态块的方法其实非常简单。
1,在phtml模板里调用Block
打开要加入的.phtml模板文件,加入以下代码:
1
|
echo $this ->getLayout()->createBlock( 'cms/block' )->setBlockId( 'footer_links' )->toHtml(); |
setBlockId()里的参数,就是我们在Magento后台里定义的Identifier标识符。
2,只在首页中调用Block
修改layout的xml文件:
1
2
3
4
5
|
< 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还可以通过如下方法调用:
1
|
{{block type=”cms/block” name=”user-block” block_id=”one-block”}} |
(其中的name为自定义的,block_id 为静态块的Identifier标识符
)
3,在对应的xml加入Block
1
2
3
|
< block type=”cms/block” name=”blockname” as=”blockname” before=”-”> < action method=”setBlockId”>< id >block_id</ id ></ action > </ block > |
修改其中的 name as 以及id
4,使用 getChildHtml() 方法调用Block
首先要在page.xml文件中定义一个childhtml名称,具体可以参考before_body_end那段代码
1
|
< block type=”core/text_list” name=”before_body_end” as=”before_body_end”/> |
安装这个方法,我们可以修改成如下:
1
|
< block type=”core/text_list” name=”blockname” as=”blockname”/> |
然后将调用的代码添加到对应的XML布局文件的正确位置
比如要插入到catalog.xml 中的<default>块中,这样就可以在任意页面调用
1
2
3
4
5
|
< reference name=”demo”> < block type=”cms/block” name=”blockname” before=”-”> < action method=”setBlockId”>< id >blockname</ id ></ action > </ block > </ reference > |
在phtml模板里只要添加static block名称blockname
1
|
<?php echo $this ->getChildHtml(‘blockname’) ?> |
source: http://www.magentonotes.com/magento-themes-cms-static-block.html