Descobri que, ao tentar usar o unsetChild
método, às vezes tenho que usar o atributo 'name' e outros 'como'. Parece que se um bloco é adicionado normalmente, você usa 'como', mas se ele é adicionado a um bloco usando o append
método, pode ser necessário usar 'nome'. Essa suposição está correta?
Qual é o raciocínio por trás disso e existe uma maneira padrão de entender qual atributo você deve usar?
getBlockHtml()
que às vezes é usado para renderizar blocos por nome.Quando você usa como , pode chamar $ this-> getChildHtml ("as_value") no modelo phtml.
O nome deve ser exclusivo e pode ser usado para blocos <reference> , <remove> , etc.
Por exemplo (catalog.xml):
Se você abrir catalog / product / view.phtml, verá:
Entende? as = "media" e, em seguida, $ this-> getChildHtml ('media') ...
fonte
Ninguém respondeu a uma pergunta em particular
unsetChild
ainda. Os métodos relacionados aos filhos de um bloco sempre se referem a filhos por apelido, que é conhecido apenas pelo pai e, diferentemente do nome, não é globalmente exclusivo.Mas se o bloco foi criado sem definir um alias, o alias será padronizado com o nome.
Portanto, se o bloco filho tiver um alias explícito, você deverá usá-lo. Caso contrário, use o nome
Os aliases são dados
as="..."
se o bloco foi criado como bloco filho via XML ou por parâmetro de ação se eles foram movidos ou adicionados dinamicamente com métodos comoappend()
,insert()
ousetChild()
.fonte