Я хочу вытащить содержимое страницы CMS в мой статический блок, если вы знаете способ сделать это, я был бы благодарен.
Не проверял это, но он должен работать. Если у вас есть уникальный идентификатор страницы cms (а не идентификатор):
$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;
== EDIT ==
Добавлены шаги разбора шаблона, предложенные Аланом
Сделайте это наоборот. Создайте свой контент в статическом блоке и включите его в страницу или другие статические блоки.
Я не знаю, как это сделать из коробки.
Однако, поскольку интерфейс редактирования статического блока позволяет вставлять виджеты в статические блоки, я бы использовал виджет, который отображает содержимое страницы CMS. У меня есть базовая реализация, с которой я играю, но был слишком занят, чтобы насытиться. Это функционально, но не будет суперпроизводительностью, если вы попытаетесь вставить большое количество виджетов во время любого одного HTTP-запроса. Не стесняйтесь попробовать. любая обратная связь приветствуется.
Если вы заинтересованы в том, как ro программно отображает страницу CMS, Mage_Cms_Block_Page::_toHtml()
метод 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
. Дополнительный код выше необходим, поскольку он передает страницу через фильтры, которые заменяют теги директивы ( {{...}}
)
$model =Mage::getModel('cms/page')->load('welcome','identifier'); echo '<h2>'.$model->getContentHeading().'<h2>'; echo $model->getContent();
Magento CMS Page conten Показать код Khaled saifullah