Quero poder passar dados para a chamada getChildHtml (). O motivo é que a saída do bloco depende de um tipo de produto. Então, eu quero passar o produto para o getChildHtml para que ele possa decidir sobre a saída.
Estou fazendo isso por dentro template/checkout/cart/item/default.phtml
.
Idealmente, a chamada teria a seguinte aparência:
echo $this->getChildHtml('child_block_name', $_item);
Então meu bloco pode obter o tipo de produto do item e exibir a saída correta.
Como definitivamente não é possível passar esses dados para getChildHtml
- de que outra forma esse tipo de comportamento pode ser alcançado sem precisar reescrever o bloco principal
As duas soluções que tenho atualmente são as seguintes (nem muito atraentes):
1 - Crie um auxiliar e acesse a saída html através do auxiliar, em vez de deixar um bloco e um modelo renderizá-lo $this->helper('my_module')->getItemHtml($_item);
2 - Acesse o bloco filho e setData nele dentro do modelo:
$this->getChild('child_name')->setData('item', $_item);
echo $this->getChildHtml('child_name')
Penso que, em termos de arquitetura Magento, o número 2 é o menor dos dois males, mas é muito feio olhando dentro de um modelo.