web-dev-qa-db-ja.com

phtmlテンプレートでMagentoブロックを呼び出す方法は?

フッターにさらにリンクを表示する必要があります。これらのリンクをmagento adminで静的ブロックとして作成しました(id = sample_links)。

次に、次のコードpage.xmlファイルを追加しました

<reference name="foot_lnk">  
<block type="cms/block" name="sample_block" before="-">
      <action method="setBlockId"><block_id>sample_links</block_id></action>
    </block>
</reference>

私はこれをfooter.phtmlで次のように呼びました、

<?php echo $this->getChildHtml('foot_lnk') ?>

ただし、CMS静的ブロックのコンテンツは表示されません。どうした?。

10

参照は、以前に定義したブロックであり、ブロックを内部に配置する必要があります。例:

<reference name="footer">
  <block type="cms/block" name="sample_links">
    <action method="setBlockId"><block_id>sample_links</block_id></action>
  </block>
</reference>

その後

<?php echo $this->getChildHtml('sample_links') ?>
14
Alex Hadley
$this->getLayout()->createBlock('cms/block')->setBlockId('my_static_block_name')->toHtml() 
20
swapnesh

次のようにstatickブロックを呼び出すことができます。

<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('your_identifier')->toHtml() ?>

そして、次のようなブロックを呼び出します:

<?php echo $this->getLayout()->createBlock('sidebar/left')->setTemplate('bannerslider/left.phtml')->tohtml(); ?>

magevn.com にアクセスして、magentoでブロックを使用するためのより多くのユースケースを確認してください。

7
Phù du Đời

Swapneshの回答と同じように、XMLを気にしたくない場合は、そこにあるphp noobs(私のように)を明確にしています

<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('your_identifier')->toHtml() ?>

your_identifierは、CMS> Blocks> Create New Blockでブロックを作成するときに使用するコードです。「Identifier」と呼ばれる2行目

4
Hiboomedia

参照名をfooterに変更します

お気に入り

<reference name="footer">  

その後、動作します。

0
Mano Karthick