Quiero poder pasar datos a la llamada getChildHtml (). La razón es que la salida del bloque depende de un tipo de producto. Así que quiero pasar el producto al getChildHtml para que pueda decidir sobre la salida.
Estoy haciendo esto por dentro template/checkout/cart/item/default.phtml
.
Idealmente, la llamada se vería así:
echo $this->getChildHtml('child_block_name', $_item);
Entonces mi bloque puede obtener el tipo de producto del artículo y mostrar la salida correcta.
Como definitivamente no es posible pasar estos datos getChildHtml
, ¿de qué otra manera se puede lograr este tipo de comportamiento sin tener que reescribir el bloque central?
Las dos soluciones que tengo actualmente son las siguientes (ninguna muy atractiva):
1 - Cree un ayudante y acceda a la salida html a través del ayudante en lugar de dejar que un bloque y una plantilla lo procesen $this->helper('my_module')->getItemHtml($_item);
2 - Acceda al bloque secundario y establezca Datos dentro de la plantilla:
$this->getChild('child_name')->setData('item', $_item);
echo $this->getChildHtml('child_name')
Creo que, en términos de la arquitectura de Magento, el número 2 es el menor de dos males, pero es muy feo dentro de una plantilla.