У чому різниця між <action method=”unsetChild”>
і <remove name=""/>
?
Обидві функції використовуються для видалення блоку з макета.
Може хтось пояснить прикладом?
У чому різниця між <action method=”unsetChild”>
і <remove name=""/>
?
Обидві функції використовуються для видалення блоку з макета.
Може хтось пояснить прикладом?
Відповіді:
<remove name="" />
працює в глобальному блоковому масштабі Mage_Core_Model_Layout
. Вони збираються Mage_Core_Model_Layout::generateXml()
та використовуються для запобігання навіть екземпляру блоку із вказаним іменем . Крім того, будь-які дочірні блоки, оголошені для <remove />
блоку ed , також не будуть екземплярами .
<action method="" />
aka Mage_Core_Block_Abstract::unsetChild()
- це метод рівня блоку, який скасовує вказаний дочірній блок (за псевдонімом , а не за назвою ) від екземпляра батьківського блоку, на який викликається дія. Найчастіше це призводить до того, що блок "зникає" з виведеного виводу, навіть якщо екземпляр блоку все ще створений. Використовується в поєднанні з методами ::append()
або ::insert()
методами, використовується для виконання "ходу".
alias
для дитини встановлюється його name
. 👍
<remove name="" />
, Закінчивши з усіма макетами, Magento повністю видалить блок із вказаним ім'ям = "", незалежно від того, до якої макети макета він був доданий. За допомогою цього методу неможливо видалити блок з одного місця, а потім додати його до іншого
<action method="unsetChild">
діє лише в контексті, де воно використовується. unsetChild створений для переміщення існуючих блоків з одного місця в інше. Цей метод потрібно використовувати, якщо ви хочете видалити певний блок із певної ручки макета, а потім вставити його в інше положення або ручку макета.