Saya ingin dapat meneruskan data ke panggilan getChildHtml (). Alasannya, output dari blok tergantung pada jenis produk. Jadi saya ingin meneruskan produk ke getChildHtml sehingga dapat memutuskan output.
Saya melakukan ini di dalam template/checkout/cart/item/default.phtml
.
Idealnya, panggilan akan terlihat seperti:
echo $this->getChildHtml('child_block_name', $_item);
Kemudian blok saya bisa mendapatkan jenis produk dari item dan menampilkan output yang benar.
Karena jelas tidak mungkin meneruskan data ini ke getChildHtml
- bagaimana lagi jenis perilaku ini dapat dicapai tanpa harus menulis ulang blok inti
Dua solusi yang saya miliki saat ini adalah sebagai berikut (tidak terlalu menarik):
1 - Buat helper dan akses output html melalui helper alih-alih membiarkan blok dan template menjadikannya ala $this->helper('my_module')->getItemHtml($_item);
2 - Akses blok anak dan setData di dalamnya di dalam templat:
$this->getChild('child_name')->setData('item', $_item);
echo $this->getChildHtml('child_name')
Saya pikir dalam hal arsitektur Magento, nomor 2 adalah yang lebih rendah dari dua kejahatan, tetapi sangat jelek melihat ke dalam template.