我有一个名为newest_product
的静态块(包含内容),我希望将其作为 html 显示在.phtml
文件中。
我试过这段代码:
echo $this->getLayout()->createBlock('cms/block')->setBlockId('newest_product')->toHtml();
但是没有显示任何东西。
我使用了错误的代码吗?
答案 0 :(得分:77)
如果您已从管理面板创建名为“block_identifier”的CMS块。 接下来将是在.phtml中调用它们的代码
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('block_identifier')->toHtml();
?>
答案 1 :(得分:50)
在布局中(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 :(得分:21)
<?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/
答案 3 :(得分:12)
如果要将cmsblock加载到模板/块文件/模型等中,可以按照以下步骤操作。这将使任何变量位于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());
答案 4 :(得分:8)
我认为这对你有用
$block = Mage::getModel('cms/block')->setStoreId(Mage::app()->getStore()->getId())->load('newest_product');
echo $block->getTitle();
echo $block->getContent();
它确实有效,但现在CMS块中的变量不再解析了:(
答案 5 :(得分:5)
当您在Magento中调用CMS-Static Block时,以下代码将起作用。
<?php echo
$this->getLayout()->createBlock('cms/block')->setBlockId('block_identifier')->toHtml();
?>
答案 6 :(得分:2)
这应该经过测试。
<?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;
?>
答案 7 :(得分:2)
当您从管理面板创建名为 block_identifier 的新CMS块时,您可以使用以下代码从.phtml文件中调用它:
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('block_identifier')->toHtml();
?>
然后清除缓存并重新加载浏览器。