2011-03-23 83 views

回答

18

没有测试过这一点,但它应该工作。如果您在CMS页面(未标识)的唯一ID:

$page = Mage::getModel('cms/page'); 
$page->setStoreId(Mage::app()->getStore()->getId()); 
$page->load($pageId); 

否则,如果您在网页的标识符(即URL键),使用这样的:

$page->load($pageIdentifier,'identifier'); 

然后完成搭配:

$helper = Mage::helper('cms'); 
$processor = $helper->getPageTemplateProcessor(); 
$html = $processor->filter($page->getContent()); 
return $html; 

== ==编辑

添加了模板解析步骤由Alan

+2

这个代码是不会运行通过在指令标签内容交换的处理类的内容(见上面我的回答/下方拉入CMS页面) – 2011-03-24 05:35:33

+0

好点,谢谢艾伦。使用CMS帮手来渲染页面会做,我想,这样应该可以挑选出这一步... – 2011-03-24 05:53:06

+0

这真的帮助我得到了我所需要完成的,非常感谢你! – Chris 2011-03-24 15:19:44

3

做它的其他方式轮。在静态块和include it in a page或其他静态块中创建您的内容。

+0

这不是我问的,实际上没有按回答这个问题。 – Chris 2011-03-24 00:47:06

+0

不是原始海报想要的答案,而是+1的有用信息。在从无到有的世界开始所有的内容应该是静态块通过CMS静态块小工具 – 2011-03-24 02:04:21

3

的建议有没有办法(我知道的),这样做的开箱。

但是,由于静态块编辑界面允许您将小部件插入到静态块中,我会实现一个呈现CMS页面内容的小部件。我有a basic implementation我一直在玩,但太忙了,不能充实。它是功能性的,但如果您在任何一个http请求期间尝试插入大量小部件,则性能不会超级。随意尝试一下;任何反馈意见。

如果你有兴趣在如何ロ编程方式呈现出一个CMS页面,检出Mage_Cms_Block_Page::_toHtml()方法。

$helper = Mage::helper('cms'); 
    $processor = $helper->getPageTemplateProcessor(); 
    $html = $processor->filter($this->getPage()->getContent()); 
    $html = $this->getMessagesBlock()->getGroupedHtml() . $html; 
    return $html; 

致电$this->getPage()返回cms/page模型。上述额外的代码是必要的,因为它通过替换指令标签过滤器通过该页面({{...}}

-3
 $model =Mage::getModel('cms/page')->load('welcome','identifier'); 
     echo '<h2>'.$model->getContentHeading().'<h2>'; 
     echo $model->getContent(); 

Magento的CMS页面conten显示代码哈立德·赛义夫拉