Je veux pouvoir passer des données à l'appel getChildHtml (). La raison en est que la sortie du bloc dépend d'un type de produit. Je veux donc passer le produit au getChildHtml afin qu'il puisse décider de la sortie.
Je fais ça à l'intérieur template/checkout/cart/item/default.phtml
.
Idéalement, l'appel devrait ressembler à:
echo $this->getChildHtml('child_block_name', $_item);
Ensuite, mon bloc peut obtenir le type de produit de l'article et afficher la sortie correcte.
Puisqu'il n'est certainement pas possible de transmettre ces données à getChildHtml
- comment autrement ce type de comportement peut-il être obtenu sans avoir à réécrire le bloc de base
Les deux solutions que j'ai actuellement sont les suivantes (ni très attractives):
1 - Créez un assistant et accédez à la sortie html via l'aide au lieu de laisser un bloc et un modèle le rendre ala $this->helper('my_module')->getItemHtml($_item);
2 - Accédez au bloc enfant et définissez-y les données à l'intérieur du modèle:
$this->getChild('child_name')->setData('item', $_item);
echo $this->getChildHtml('child_name')
Je pense qu'en termes d'architecture Magento, le numéro 2 est le moindre de deux maux, mais il est sacrément laid à l'intérieur d'un modèle.