php 静态块,Magento调用静态块 static block

静态块(static block),仅包含一些静态的html内容,不涉及数据库存取,比如像:一些文字和图片链接,网站页脚部分等。建立static block很简单,Magento后台提供一个功能,可以方便的创建、编辑、管理static block。可以在【管理员后台】》【CMS】》【Static Blocks】菜单找到。

建立了static block后,如何在前端界面显示呢?一是在Magento的layout文件中配置,然后在模板文件.phtml中通过调用 getChildHtml('block_id')输出为html代码。下面借助在Magento中系统内置的一个静态块footer_links来说明。

首先,在cms.xml layout文件中设置静态块:

footer_links

然后,在模板文件footer.phtml中输出:

// echo $this->getChildHtml();

echo $this->getChildHtml('footer_links');

另外一种方式更简单,不需要配置layout文件,就可以直接在php代码中输出静态块内容:

echo $this->getLayout()->createBlock('cms/block')->setBlockId('footer_links')->toHtml();

确实很简单,但Magento在背后做了大量的工作,在文件app/code/core/Mage/Cms/Block/Block.php中,可以看到这些辛苦的步伐:

/**

* Cms block content

*

* @category Mage

* @package Mage_Cms

* @author Magento Core Team

*/

classMage_Cms_Block_Block extendsMage_Core_Block_Abstract

{

protectedfunction_toHtml()

{

if(!$this->_beforeToHtml()) {

return'';

}

$html= '';

if($blockId= $this->getBlockId()) {

$block= Mage::getModel('cms/block')

->setStoreId(Mage::app()->getStore()->getId())

->load($blockId);

if(!$block->getIsActive()) {

$html= '';

} else{

$content= $block->getContent();

$processor= Mage::getModel('core/email_template_filter');

$html= $processor->filter($content);

}

}

return$html;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值