2011-10-25 9 views
4

[OK]を.phtmlファイルに動的なウィジェットのブロックIDを、私がやろうとしています何をされて呼び出す方法を、私は、リンクや記事のトンを読みましたが、私は何を目指していますが少し異なっているようです。Magentoの:ここ

ホームページにはいくつかの静的ブロックがあり、1つの広告ローテータと1つのスライダーが、注目商品カテゴリに定義された商品を表示します。最後に、現在は静的カテゴリを指している別のカテゴリですが、特集。

私の仕事は、その最後のカテゴリをランダム化することで、私は、カスタム.phtmlファイルを書き込むことによって、これを達成することができましたし、使用してそれをサイクルを有するmt_randいくつかはすでに、静的なブロックを作成しました。

しかしこれは一歩深く行く、私は何を探していますが、単一の静的なブロックを持っていると、ランダムカテゴリIDを持っている、ここでの例です:

今、この概念を使用して
{{block type="catalog/product_list" category_id="392" template="catalog/product/home-list.phtml"}} 

、何私がやるしようとする試み、別の.phtmlファイルを作成し、静的なブロックは、この種のものです私のカスタムの.htmlを呼び出す持つことであった:

<?php 
$input = array(10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150); 
$rand_keys = array_rand($input, 2); 
echo "{{block type=\"catalog/product_list\" category_id=\"{$input[$rand_keys[0]]}\" template=\"catalog/product/home-list.phtml\"}}"; 
?> 

さて、実際にこの例では、仕事をして、私ができます私はカテゴリが賢明たいいままでの配列をロードし、ちょうどrandomlを通じてサイクルを持っていますyまたはほとんどの部分。

私の本物の問題は、この情報を画面に印刷することが、私が望んでいた効果がないことです。単に、テキストを印刷するだけです。配列IDの無作為な要素、画面へのテキストだけ。

私がこの問題に対処し、テキストを作業用のウィジェットタグに変換できるようにすることができれば、私はリサーチ中に良い結果を出し、毎回死んだエンドを見つけたので素晴らしいでしょう。

ありがとうございます。

乾杯!

答えて

5

あなたは、ビューで使用するために、わずかに異なる構文を必要としています。いくつかの擬似例

echo $this->getLayout()->createBlock('catalog/product_list')->setTemplate('catalog/product/home-list.phtml')->setCategoryId('392')->toHtml(); 

またはブロックが既にレイアウトに存在している場合は、名前でそれを得ることができます。

echo $this->getLayout()->getBlock('blockname')->setTemplate('catalog/product/home-list.phtml')->setCategoryId('392')->toHtml(); 
+0

パーフェクト!これは私が、必要に応じて、それはまた、私は上記の私は、テンプレートファイルを呼び出すことができますので、をループにしようとしていた1つの余分PHTMLを削除することができ、まさにです。 – sfla99

関連する問題