親テンプレートから子テンプレートに変数を渡すことは可能ですか?たとえば、親テンプレートのforeachループ内に含まれている別のテンプレートに繰り返しHTMLを配置したい場合
<?php
foreach ($items as $item)
{
echo $this->getChildHtml('item_info');
}
?>
item_infoテンプレート内の$item変数にアクセスできるようにしたいと思います。
ありがとう
商品リストテンプレートを別のファイルに分割して、複数の場所で使用できるようにしました。
親テンプレートでは、次のようなことを行います。
<?PHP
$this->getChild('product_list_list')->setData('products', $_productCollection);
echo $this->getChildHtml('product_list_list');
?>
子テンプレートでは、次のことができます。
<?php foreach ($this->products as $_product): ?>
// display products
<?php endforeach; ?>
したがって、次のことができるはずです。
$this->getChild('item_info')->setData('item', $item);
次に、item_info内で、次のようにアクセスします。
$this->item
それがあなたのために働くことを願っています。私はmagento1.3で動作しますが、かなり基本的なように見えるので、おそらくすべてのバージョンに共通です。
私はそれが新しい投稿ではないことを知っていますが、ここに少し完成があります:
次のように、falseでキャッシュ属性を指定してgetChildHtmlを呼び出す必要があります。
$this->getChildHtml('item_info', false);
そして、それは完全に機能します。
ありがとうbenlumley