首页 > 其他 > 详细

magento调用static block

时间:2014-01-28 19:07:24      阅读:317      评论:0      收藏:0      [点我收藏+]

静态块(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文件中设置静态块:

bubuko.com,布布扣
<default>
  <reference name="footer">
    <block type="cms/block" name="cms_footer_links" before="footer_links">
      <!--
      The content of this block is taken from the database by its block_id.
      You can manage it in admin CMS -> Static Blocks
      -->
      <action method="setBlockId"><block_id>footer_links</block_id></action>
    </block>
  </reference>
</default>
bubuko.com,布布扣

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

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中,可以看到这些辛苦的步伐:

bubuko.com,布布扣
/**
 * Cms block content
 *
 * @category   Mage
 * @package    Mage_Cms
 * @author     Magento Core Team <core@magentocommerce.com>
 */
class Mage_Cms_Block_Block extends Mage_Core_Block_Abstract
{
    protected function _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;
    }
}
bubuko.com,布布扣

magento调用static block

原文:http://www.cnblogs.com/liuxgnu/p/3535405.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!