2011-03-23 54 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顯示代碼哈立德·賽義夫拉

相關問題