magento static block

magento静态块(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>
  <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>

然后,在模板文件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中,可以看到这些辛苦的步伐:

/**
 * 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;
    }

}

延伸一些 布局 如何 创建 加载 BLOCK

protected function _getTotalRenderer($code)     {         $blockName = $code.'_total_renderer';         $block = $this->getLayout()->getBlock($blockName);         if (!$block) {             $block = $this->_defaultRenderer;             $config = Mage::getConfig()->getNode("global/sales/quote/totals/{$code}/renderer");             if ($config) {                 $block = (string) $config;             }             $block = $this->getLayout()->createBlock($block, $blockName);         }         /**          * Transfer totals to renderer          */         $block->setTotals($this->getTotals());         return $block;     }

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值