Я хочу мати можливість передавати дані на виклик getChildHtml (). Причина полягає в тому, що вихід блоку залежить від типу продукту. Тому я хочу передати продукт getChildHtml, щоб він міг вирішити вихід.
Я роблю це всередині template/checkout/cart/item/default.phtml
.
В ідеалі дзвінок виглядатиме так:
echo $this->getChildHtml('child_block_name', $_item);
Тоді мій блок може отримати тип продукту з елемента та відобразити правильний вихід.
Оскільки, безумовно, неможливо передати ці дані getChildHtml
- як ще можна досягти такого типу поведінки без необхідності переписувати основний блок
Наразі у мене два рішення (ні дуже привабливі):
1 - Створіть помічник і отримайте доступ до виводу HTML через helper замість того, щоб блок і шаблон відображали його ala $this->helper('my_module')->getItemHtml($_item);
2 - Отримайте доступ до дочірнього блоку та встановіть Дані на нього всередині шаблону:
$this->getChild('child_name')->setData('item', $_item);
echo $this->getChildHtml('child_name')
Я думаю, що з точки зору архітектури Magento, число 2 - це менше, ніж два злини, але це потворно дивиться всередині шаблону.