Diciamo che siete in file di modello phtml del blocco principale, e si dispone di una struttura a blocchi semplificato che assomiglia a questo
root
left
promo_top
navigation
promo_bottom
center
right
Da file modello del blocco principale, per stampare il blocco di sinistra aveva utilizzare getChildHtml
.
echo $this->getChildHtml('left');
Tuttavia, se per qualche motivo si voleva stampare il blocco promo_top nel modello di radice, che avrebbe dovuto fare qualcosa di simile
$left = $this->getChildBlock('left')
echo $left->getChildHtml('promo_top')
Il metodo getChildChildHtml
permette di fare questo genere di cose in una semplice chiamata di metodo. Anche in questo caso, dal modello di radice
echo $this->getChildChildHtml('left','promo_top');
Così, la semantica sono
- Get My Bambino blocco con il nome X
- Poi, ottenere è blocco bambino con la Y
- Render l'HTML
Se si guarda il codice sorgente si può vedere che, u ltimately, questo metodo solo avvolge una chiamata a getChildHtml
#File: app/code/core/Mage/Core/Block/Abstract.php
public function getChildChildHtml($name, $childName = '', $useCache = true, $sorted = false)
{
if (empty($name)) {
return '';
}
$child = $this->getChild($name);
if (!$child) {
return '';
}
return $child->getChildHtml($childName, $useCache, $sorted);
}
fonte
2012-01-18 20:00:24
molto utile per me, grazie Alan – davidselo
impressionante spiegazione. Grazie Alan. – RIK