Descubrí que cuando trato de usar el unsetChild
método, a veces tengo que usar el atributo 'nombre' y otros 'como'. Parece que si un bloque se agrega normalmente, usa 'como' pero si se agrega a un bloque usando el append
método, es posible que deba usar 'nombre'. ¿Es correcta esta suposición?
¿Cuál es el razonamiento detrás de esto y hay una forma estándar de entender qué atributo debe usar?
getBlockHtml()
que a veces se usa para representar bloques por nombre.Cuando usa as , puede llamar a $ this-> getChildHtml ("as_value") en la plantilla phtml.
El nombre debe ser único y puede usarse para bloques <referencia> , <eliminar> , etc.
Por ejemplo (catalog.xml):
Si abre catalog / product / view.phtml, verá:
¿Lo ves? as = "media", y luego $ this-> getChildHtml ('media') ...
fuente
Nadie ha respondido la pregunta particular sobre
unsetChild
todavía. Los métodos relacionados con los hijos de un bloque siempre se refieren a los bloques hijos por alias, que solo es conocido por el padre y, a diferencia del nombre, no es globalmente único.Pero si el bloque se creó sin definir un alias, el alias predeterminado es el nombre.
En resumen, si el bloque secundario tiene un alias explícito, debe usar el alias. Si no, usa el nombre.
Los alias se dan
as="..."
si el bloque se creó como bloque secundario a través de XML, o por parámetro de acción si se movieron o se agregaron dinámicamente con métodos comoappend()
,insert()
osetChild()
.fuente