Подтвердить что ты не робот

Magento: получить статический блок как html в файле phtml

У меня есть статический блок с именем newest_product (с содержимым), и я хотел бы отобразить его в файле .phtml как html.

Я пробовал этот код:

echo $this->getLayout()->createBlock('cms/block')->setBlockId('newest_product')->toHtml(); 

Но это ничего не отображается.

Использую ли я неправильный код?

4b9b3361

Ответ 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(); 
?> 

Ответ 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(); 
?> 

Затем очистите кеш и перезагрузите браузер.