J'ai découvert qu'en essayant d'utiliser la unsetChild
méthode, je dois parfois utiliser l'attribut 'name' et d'autres 'as'. Il semble que si un bloc est ajouté normalement, vous utilisez «comme» mais s'il est ajouté à un bloc à l'aide de la append
méthode, vous devrez peut-être utiliser «nom». Cette hypothèse est-elle correcte?
Quel est le raisonnement derrière cela et existe-t-il un moyen standard de comprendre quel attribut vous devez utiliser?
getBlockHtml()
qui est parfois utilisée pour rendre les blocs par leur nom.Lorsque vous utilisez as , vous pouvez appeler $ this-> getChildHtml ("as_value") sur le modèle phtml.
Le nom doit être unique et peut être utilisé pour les blocs <référence> , <supprimer> , etc.
Par exemple (catalog.xml):
Si vous ouvrez catalogue / produit / view.phtml, vous verrez:
Tu vois? as = "media", puis $ this-> getChildHtml ('media') ...
la source
Personne n'a encore répondu à la question particulière
unsetChild
. Les méthodes liées aux enfants d'un bloc font toujours référence aux blocs enfants par alias, qui n'est connu que du parent et contrairement au nom, qui n'est pas globalement unique.Mais si le bloc a été créé sans définir d'alias, l'alias prend par défaut le nom.
Donc, en bref, si le bloc enfant a un alias explicite, vous devez utiliser l'alias. Sinon, utilisez le nom.
Les alias sont donnés par
as="..."
si le bloc a été créé en tant que bloc enfant via XML, ou par paramètre d'action s'ils ont été déplacés ou ajoutés dynamiquement avec des méthodes commeappend()
,insert()
ousetChild()
.la source