Magento: получить статический блок как html в файле phtml
У меня есть статический блок с именем newest_product
(с содержимым), и я хотел бы отобразить его в файле .phtml
как html.
Я пробовал этот код:
echo $this->getLayout()->createBlock('cms/block')->setBlockId('newest_product')->toHtml();
Но это ничего не отображается.
Использую ли я неправильный код?
Ответы
Ответ 1
В макете (app/design/frontend/your_theme/layout/default.xml):
<default>
<cms_page> <!-- need to be redefined for your needs -->
<reference name="content">
<block type="cms/block" name="cms_newest_product" as="cms_newest_product">
<action method="setBlockId"><block_id>newest_product</block_id></action>
</block>
</reference>
</cms_page>
</default>
В вашем шаблоне phtml:
<?php echo $this->getChildHtml('newest_product'); ?>
Не забывайте про очистку кеша.
Я думаю, что это помогает.
Ответ 2
Если вы создали блок CMS с именем "block_identifier" с панели администратора.
Затем следующим будет код для вызова их в .phtml
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('block_identifier')->toHtml();
?>
Ответ 3
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('my_static_block_name')->toHtml() ?>
и используйте эту ссылку для получения дополнительной информации.
http://www.justwebdevelopment.com/blog/how-to-call-static-block-in-magento/
Ответ 4
Если вы хотите загрузить cmsblock в свой шаблон /blockfile/model и т.д. Вы можете сделать это, как следует. Это сделает любые места переменных в cmsblock
$block = Mage::getModel('cms/block')
->setStoreId(Mage::app()->getStore()->getId())
->load('identifier');
$var = array('variable' => 'value', 'other_variable' => 'other value');
/* This will be {{var variable}} and {{var other_variable}} in your CMS block */
$filterModel = Mage::getModel('cms/template_filter');
$filterModel->setVariables($var);
echo $filterModel->filter($block->getContent());
Ответ 5
Я думаю, что это сработает для вас.
$block = Mage::getModel('cms/block')->setStoreId(Mage::app()->getStore()->getId())->load('newest_product');
echo $block->getTitle();
echo $block->getContent();
Он работает, но теперь переменные в блоке CMS больше не обрабатываются: (
Ответ 6
Следующий код будет работать, когда вы вызываете CMS-Static Block в Magento.
<?php echo
$this->getLayout()->createBlock('cms/block')->setBlockId('block_identifier')->toHtml();
?>
Ответ 7
Это должно работать как проверено.
<?php
$filter = new Mage_Widget_Model_Template_Filter();
$_widget = $filter->filter('{{widget type="cms/widget_page_link" template="cms/widget/link/link_block.phtml" page_id="2"}}');
echo $_widget;
?>
Ответ 8
Когда вы создаете новый блок CMS с именем block_identifier с панели администратора, вы можете использовать следующий код, чтобы вызвать его из вашего .phtml файла:
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('block_identifier')->toHtml();
?>
Затем очистите кеш и перезагрузите браузер.