製品に依存するlist.phtmlの各製品の追加データを印刷したいと思います。たとえば、各製品のNewラベルとSaleラベルを使用してhtmlを印刷します(これは単なる例です)。どういうわけかロジックを.phtmlファイルから分離し、それを呼び出すだけでphtmlに残したいと思います。それを達成するための最良の方法は何ですか?また、コアファイルのオーバーライドを最小限に抑え、より独立したものにしたいと思います。私のアイデアは次のとおりです。
独自のブロックを作成し、それを.phtmlで作成して呼び出し、setDataを使用して製品を渡します。
$this->getLayout()->createBlock("namespace/block")-> setTemplate("path/to/template")->setData('product', $_product)
次に、ブロック.phpファイル内でgetProduct()を呼び出します。しかし、いくつかの理由でそれは機能しません。
私にとって最も見栄えの良い解決策ですが、それが許可されているかどうかはわかりません。レイアウトファイルに新しいブロックを作成し、で呼び出します
getChildHtml('block_name')
。しかし、現在の製品を渡す方法や、.phpファイル内の$thisを介してアクセスできるようにする方法がわかりません。製品ブロックをオーバーライドし、getRibbons()のような独自のメソッドを追加します。これは.phpブロックへのhtmlの書き込みを必要とし、コアブロックをオーバーライドするため、私にとって最悪の解決策です。
私はmagentoにかなり慣れていません、多分私はいくつかの基本的な概念を逃していますか?