Magento - удалить блок с помощью XML-обновления
Как использовать XML файл макета для удаления уже существующего блока? В частности, я хочу удалить блок с именем "currency" из блока с именем "top.switches". Он вставляется в файл directory.xml, например:
<default>
<reference name="top.switches">
<block type="directory/currency" name="currency" before="store_language" template="directory/currency.phtml"/>
</reference>
<reference name="head">
<block type="core/template" name="optional_zip_countries" as="optional_zip_countries" template="directory/js/optional_zip_countries.phtml" />
</reference>
</default>
Ответы
Ответ 1
Есть два метода удаления блока, определенного в одном XML файле макета, через другой XML файл:
<default>
<reference name="top.switches">
<action method="unsetChild"><name>currency</name></action>
</reference>
</default>
И как обычно вы это ожидаете:
<default>
<reference name="top.switches">
<remove name="currency" />
</reference>
</default>
Здесь вы можете найти объяснение различных элементов XML-макета , но не охватывают методы, доступные для тега действий. Для этого вам нужно взглянуть на класс класса app/code/core/Mage/Core/Block/Abstract.php, в котором есть всевозможные полезные функции, такие как unsetChild, unsetCallChild, insert, sortChildren и т.д.
Ответ 2
добавить файл с именем local.xml в каталог макета. то в local.xml вы можете удалить любой блок с тегом "remove". BTW тег remove должен находиться между "макетом" и "по умолчанию",
то файл должен быть:
<?xml version="1.0" encoding="UTF-8"?>
<layout>
<default>
<remove name="BLOCK_NAME" />
</default>
</layout>