2019独角兽企业重金招聘Python工程师标准>>>

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

<default> <referencename="footer"> <blocktype="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 --> <actionmethod="setBlockId"><block_id>footer_links</block_id></action> </block> </reference> </default>

然后,在模板文件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 <core@magentocommerce.com> */ 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; } }

转载于:https://my.oschina.net/u/234530/blog/56430

Magento调用静态块 static block相关推荐

  1. magento 获取 pages/Static Block 内容 Get Pages/Static Block in Magento

    1. pages Sometimes, you want to use information like title or content from a CMS page (or multiple C ...

  2. JMockit mock 静态块 static block

    类StaticBlockService包含一个静态块,该静态块中语句执行必然报异常导致类初始化失败. @Service public class StaticBlockService {static ...

  3. Magento 页面中加入CMS static block

    如何引用自定的static block呢,很简单,一段代码解决: 在magento的模版中有些内容想通过后台来控制,那么你可以将这些html css js 放在CMS的static blocks中,然 ...

  4. Makingware调用静态块,实现自定义html内容的常用方法(不需要修改模版部分)...

    为什么80%的码农都做不了架构师?>>>    静态块可以自定义页面中部分区块位置内容,比如广告位,文字等经常需要修改的内容. 需要调用静态块,必须先要建立好静态块,再做以下操作. ...

  5. Java方法,调用,static关键字

    1.1Java方法 1.1.1声明一个方法的具体语法格式如下: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,..){ 执行语句 --- return 返回值; } l 修饰符: ...

  6. 一个static方法内可以调用非static方法吗?

    不可以. 因为非 static 方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而 static 方法调用时不需要创建对象,可以直接调用. 也就是说,当一个 static ...

  7. 工厂 调用Unity Application Block 通过XML配置文件映射读取数据层方法

    1.首先创建FactoryApplication.cs应用程序文件继承HttpApplication 导入using System.Web.Security;     using System.Con ...

  8. java中的静态块static{}及this,super,final的用法总结

    Code public class TestSquence { public static void main(String[] args) {   /*    * 给初学者的问题:把下面两行中的一行 ...

  9. [转载] Java static关键字与static{}语句块

    参考链接: Java中的静态块static block 目录直通车 一. 类的加载特性与时机 1. 类加载的特性 2. 类加载的时机 二. static的三个常用 1. 修饰成员变量 2. 修饰成员方 ...

最新文章

  1. 在当当买了python怎么下载源代码-Python爬取当当网APP数据
  2. Java-jdbc连接数据库
  3. 【DP】平铺方案(ybtoj DP-1-5)
  4. 什么比日期和时区更难? SQL / JDBC中的日期和时区!
  5. Python之Numpy入门实战教程(1):基础篇
  6. CSS基础「二」复合选择器 / 元素显示模式 / 背景 / 三大特性
  7. nginx多入口配置隐藏.php,Nginx配置tp5支持pathinfo以及隐藏入口文件
  8. 学校校车运营各项安全管理制度_廊坊市加强校车安全管理 确保师生生命安全...
  9. python 自动化测试
  10. nbear分页 效率低_为什么大家都说“SELECT *”效率低?
  11. Javacript中(function(){})() 与 (function(){}()) 区别 {转}
  12. Mahout学习笔记-分类算法之Decision Forest
  13. 2.lvm动态逻辑卷
  14. SpringBean生命周期详解
  15. 数据大屏之跑马灯功能
  16. APP开发要么快要么死!
  17. 苹果电脑传android文件怎么打开,怎么用苹果电脑给android手机传文件
  18. 计算机课 - 计算机科学导论
  19. jQuery树形控件zTree使用小结
  20. 监控摄像机选型攻略之视频监控技术发展概况

热门文章

  1. 看周志华教授的一番话有感
  2. MongoDB查询用法大全
  3. 也谈C#之Json,从Json字符串到类代码
  4. 拍雪景得诗一首,记之,以表心绪[有能和者,不妨凑个热闹给大家解闷]
  5. [原创]红马版验证码实现(中文+变形+噪点)
  6. 首次公开,用了三年的 pandas 速查表!
  7. 最新!数字人民币横空出世,5万深圳人瓜分1000万红包!
  8. 这里有10个优质Python开源项目,来帮你学好Python
  9. 开关电源PCB排版基本要点概述
  10. c++十进制转二进制_二进制与十进制相互转换的原理