Przekonałem się, że kiedy próbuję użyć tej unsetChild
metody, czasami muszę użyć atrybutu „name”, a innych „as”. Wydaje się, że jeśli blok jest dodawany normalnie, używasz „jak”, ale jeśli jest dodawany do bloku za pomocą append
metody, być może będziesz musiał użyć „nazwy”. Czy to założenie jest prawidłowe?
Jakie jest tego uzasadnienie i czy istnieje standardowy sposób zrozumienia, którego atrybutu należy użyć?
getBlockHtml()
która czasami jest używana do renderowania bloków według nazwy.Kiedy używasz jako , możesz wywołać $ this-> getChildHtml („as_value”) na szablonie phtml.
Nazwa musi być unikalna i może być stosowany do <odniesienia> bloki, <Remove> , itd.
Na przykład (catalog.xml):
Jeśli otworzysz katalog / produkt / widok.phtml zobaczysz:
Zobaczysz? as = "media", a następnie $ this-> getChildHtml ('media') ...
źródło
Nikt jeszcze nie odpowiedział na to pytanie
unsetChild
. Metody związane z dziećmi w bloku zawsze odnoszą się do bloków podrzędnych przez alias, który znany jest tylko do rodzica i w przeciwieństwie do nazwy, a nie globalnie unikalne.Ale jeśli blok został utworzony bez zdefiniowania aliasu, domyślnym aliasem jest nazwa.
Krótko mówiąc, jeśli blok potomny ma jawny alias, musisz go użyć. Jeśli nie, użyj nazwy.
Pseudo są podane
as="..."
, czy blok został utworzony jako blok dzieci poprzez XML lub parametrem działania, czy zostały one przemieszczane lub dynamicznie dodano metod, takich jakappend()
,insert()
czysetChild()
.źródło