Voglio essere in grado di passare i dati alla chiamata getChildHtml (). Il motivo è che l'output del blocco dipende da un tipo di prodotto. Quindi voglio passare il prodotto a getChildHtml in modo che possa decidere l'output.
Lo sto facendo dentro template/checkout/cart/item/default.phtml
.
Idealmente, la chiamata sarebbe simile a:
echo $this->getChildHtml('child_block_name', $_item);
Quindi il mio blocco può ottenere il tipo di prodotto dall'articolo e visualizzare l'output corretto.
Dal momento che non è assolutamente possibile passare questi dati a getChildHtml
- in quale altro modo è possibile ottenere questo tipo di comportamento senza dover riscrivere il blocco principale
Le due soluzioni che ho attualmente sono le seguenti (né molto interessanti):
1 - Crea un helper e accedi all'output html tramite l'helper invece di lasciare che un blocco e un modello lo rendano ala $this->helper('my_module')->getItemHtml($_item);
2 - Accedi al blocco figlio e impostaData su di esso all'interno del modello:
$this->getChild('child_name')->setData('item', $_item);
echo $this->getChildHtml('child_name')
Penso in termini di architettura Magento, il numero 2 è il minore dei due mali, ma è dannatamente brutto guardare dentro un modello.