<Remove name = ”" /> ve <action method = "unsetChild"> arasındaki düzende


21

Arasındaki fark nedir <action method=”unsetChild”>ve <remove name=""/>?

Her iki işlev de bloktan mizanpajı kaldırmak için kullanılır.

Birisi bir örnekle açıklayabilir mi?

Yanıtlar:


21

<remove name="" />küresel blok kapsamında faaliyet göstermektedir Mage_Core_Model_Layout. Bunlar toplanır Mage_Core_Model_Layout::generateXml()ve belirtilen isimdeki bloğun başlatılmasını bile önlemek için kullanılır . Ayrıca, beyan herhangi bir alt bloklar <remove />ed bloğu olacak da başlatılamaz .

<action method="" />aka Mage_Core_Block_Abstract::unsetChild()blok düzeyinde yöntemi olan de listeler (, ilgili alt blok takma tarafından değil, adı aksiyon çağrılan olduğu üst blok örneğinden). Bu, çoğu durumda, blok örneği hala oluşturulmuş olsa bile, oluşturulan çıktıdan "kaybolma" ile sonuçlanır. ::append()Veya ::insert()yöntemleriyle birlikte kullanıldığında, bir "hareket" gerçekleştirmek için kullanılır.


Sadece buna eklemek için, blokta bir takma ad yoksa, adı eşleşir.
Ben Crook

2
Doğru, takma ad sağlanmadığında, aliasbir çocuk için ayarlanır name. Marks
Benmarks

2

<remove name="" />, Tüm düzenler tamamlandığında, Magento, hangi düzen tutamağına eklendiğine bakılmaksızın, belirtilen ad = "" ile belirtilen bloğu tamamen siler. Bu yöntemi kullanarak bir bloğu bir konumdan çıkarmak ve başka bir yere eklemek imkansızdır.

<action method="unsetChild">sadece kullanıldığı bağlamda çalışır. unsetChild, varolan blokları bir yerden bir yere taşımak için yaratılmıştır. Belirli bir düzeni belirli bir düzen tutamacından kaldırmak ve ardından başka bir konuma veya düzen tutamacına eklemek istiyorsanız bu yöntemi kullanmanız gerekir.


Tam değil; düzeltmeler için cevabımı görün.
benmarklar
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.