newest_product
(コンテンツ付き)という静的ブロックがあり、.phtml
ファイルに次のように表示したい html。
私はこのコードを試しました:
echo $this->getLayout()->createBlock('cms/block')->setBlockId('newest_product')->toHtml();
しかし、これは何も表示されていません。
間違ったコードを使用していますか?
レイアウト内(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'); ?>
キャッシュのクリーニングを忘れないでください。
役立つと思います。
管理パネルから「block_identifier」という名前のCMSブロックを作成した場合。次に、.phtmlでそれらを呼び出すコードがあります
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('block_identifier')->toHtml();
?>
<?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/
テンプレート/ブロックファイル/モデルなどに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());
これはあなたのために働くと思う
$block = Mage::getModel('cms/block')->setStoreId(Mage::app()->getStore()->getId())->load('newest_product');
echo $block->getTitle();
echo $block->getContent();
動作しますが、CMSブロック内の変数は解析されなくなりました:(
MagentoでCMS-Static Blockを呼び出すと、次のコードが機能します。
<?php echo
$this->getLayout()->createBlock('cms/block')->setBlockId('block_identifier')->toHtml();
?>
block_identifierという名前の新しいCMSブロックを管理パネルから作成すると、次のコードを使用して.phtmlファイルから呼び出すことができます。
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('block_identifier')->toHtml();
?>
次に、キャッシュをクリアして、ブラウザーをリロードします。
これはテストされたとおりに動作するはずです。
<?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;
?>