Digamos que usted está en archivo de plantilla phtml del bloque de raíz, y tiene una estructura de bloques simplificado que tiene este aspecto
root
left
promo_top
navigation
promo_bottom
center
right
De archivo de plantilla de bloque de raíz, para imprimir el bloque de la izquierda se había use getChildHtml
.
echo $this->getChildHtml('left');
Sin embargo, si por alguna razón usted desea imprimir el bloque promo_top en la plantilla de la raíz, que tendría que hacer algo como esto
$left = $this->getChildBlock('left')
echo $left->getChildHtml('promo_top')
El método getChildChildHtml
le permite hacer este tipo de cosas en una llamada de método simple. Una vez más, de la plantilla de la raíz
echo $this->getChildChildHtml('left','promo_top');
Por lo tanto, la semántica es
- Obtener mi bloque Niño con el nombre X
- A continuación, obtener es bloque de niño con la Y
- Render el HTML
Si mira el código fuente puede verlo, u ltimately, este método solo se envuelve una llamada 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);
}
muy útil para mí, gracias Alan – davidselo
explicación impresionante. Gracias Alan. – RIK