Magento调用静态块 static block
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
靜態(tài)塊(static block),僅包含一些靜態(tài)的html內(nèi)容,不涉及數(shù)據(jù)庫(kù)存取,比如像:一些文字和圖片鏈接,網(wǎng)站頁(yè)腳部分等。建立static block很簡(jiǎn)單,Magento后臺(tái)提供一個(gè)功能,可以方便的創(chuàng)建、編輯、管理static block。可以在【管理員后臺(tái)】》【CMS】》【Static Blocks】菜單找到。
建立了static block后,如何在前端界面顯示呢?一是在Magento的layout文件中配置,然后在模板文件.phtml中通過(guò)調(diào)用 getChildHtml('block_id')輸出為html代碼。下面借助在Magento中系統(tǒng)內(nèi)置的一個(gè)靜態(tài)塊footer_links來(lái)說(shuō)明。
首先,在cms.xml layout文件中設(shè)置靜態(tài)塊:
<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');
另外一種方式更簡(jiǎn)單,不需要配置layout文件,就可以直接在php代碼中輸出靜態(tài)塊內(nèi)容:?
echo $this->getLayout()->createBlock('cms/block')->setBlockId('footer_links')->toHtml();????確實(shí)很簡(jiǎn)單,但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; } }
轉(zhuǎn)載于:https://my.oschina.net/u/234530/blog/56430
總結(jié)
以上是生活随笔為你收集整理的Magento调用静态块 static block的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 将访问的文件夹变为磁盘盘符-摘自网络
- 下一篇: 浅析Thinkphp3.0的行为扩展模式