*/ class Mage_Cms_Block_Page extends Mage_Core_Block_Abstract { /** * Retrieve Page instance * * @return Mage_Cms_Model_Page */ public function getPage() { if (!$this->hasData('page')) { if ($this->getPageId()) { $page = Mage::getModel('cms/page') ->setStoreId(Mage::app()->getStore()->getId()) ->load($this->getPageId(), 'identifier'); } else { $page = Mage::getSingleton('cms/page'); } $this->addModelTags($page); $this->setData('page', $page); } return $this->getData('page'); } /** * Prepare global layout * * @return Mage_Cms_Block_Page */ protected function _prepareLayout() { $page = $this->getPage(); // show breadcrumbs if (Mage::getStoreConfig('web/default/show_cms_breadcrumbs') && ($breadcrumbs = $this->getLayout()->getBlock('breadcrumbs')) && ($page->getIdentifier()!==Mage::getStoreConfig('web/default/cms_home_page')) && ($page->getIdentifier()!==Mage::getStoreConfig('web/default/cms_no_route'))) { $breadcrumbs->addCrumb('home', array('label'=>Mage::helper('cms')->__('Home'), 'title'=>Mage::helper('cms')->__('Go to Home Page'), 'link'=>Mage::getBaseUrl())); $breadcrumbs->addCrumb('cms_page', array('label'=>$page->getTitle(), 'title'=>$page->getTitle())); } $root = $this->getLayout()->getBlock('root'); if ($root) { $root->addBodyClass('cms-'.$page->getIdentifier()); } $head = $this->getLayout()->getBlock('head'); if ($head) { $head->setTitle($page->getTitle()); $head->setKeywords($page->getMetaKeywords()); $head->setDescription($page->getMetaDescription()); } return parent::_prepareLayout(); } /** * Prepare HTML content * * @return string */ protected function _toHtml() { /* @var $helper Mage_Cms_Helper_Data */ $helper = Mage::helper('cms'); $processor = $helper->getPageTemplateProcessor(); $html = $processor->filter($this->getPage()->getContent()); $html = $this->getMessagesBlock()->toHtml() . $html; return $html; } }