Вам нужно выполнить небольшой трюк, удалить дочерний блок и добавить его в новую позицию:
<reference name="parent.block.name">
<action method="unsetChild">
<alias>child_block_alias</alias>
</action>
<action method="insert">
<blockName>child.block.name</blockName>
<siblingName>name_of_block</siblingName>
<after>1</after>
<alias>child_block_alias</alias>
</action>
</reference>
Эта инструкция Layout XML делает то, что вы хотите. Посмотрите на этот краткий справочник параметров для метода insert
:
blockName
— это уникальное имя вашего блока в макете, например, product.view
.
siblingName
— это уникальное имя блока, которое уже существует в целевом блоке вставки и используется для позиционирования вашего блока. Оставьте пустым, чтобы отобразить его вверху или внизу.
after
— логический идентификатор позиции блока. Если равно 1
, то блок будет добавлен после siblingName
или в конец списка дочерних элементов, если siblingName
пусто
alias
— это псевдоним вашего блока, если он пуст, будет использоваться имя блока.
Некоторые примеры:
Переместить блок боковой панели корзины после недавно просмотренных товаров
<reference name="right">
<action method="unsetChild">
<alias>cart_sidebar</alias>
</action>
<action method="insert">
<blockName>cart_sidebar</blockName>
<siblingName>right.reports.product.viewed</siblingName>
<after>1</after>
</action>
</reference>
Переместить блок боковой панели корзины перед недавно просмотренными товарами
<reference name="right">
<action method="unsetChild">
<alias>cart_sidebar</alias>
</action>
<action method="insert">
<blockName>cart_sidebar</blockName>
<siblingName>right.reports.product.viewed</siblingName>
<after>0</after>
</action>
</reference>
Переместить блок боковой панели корзины в конец правого блока
<reference name="right">
<action method="unsetChild">
<alias>cart_sidebar</alias>
</action>
<action method="insert">
<blockName>cart_sidebar</blockName>
<siblingName></siblingName>
<after>1</after>
</action>
</reference>
Переместить блок боковой панели корзины в верхнюю часть левого блока
<reference name="right">
<action method="unsetChild">
<alias>cart_sidebar</alias>
</action>
</reference>
<reference name="left">
<action method="insert">
<blockName>cart_sidebar</blockName>
</action>
</reference>
Наслаждайтесь работой с Magento!
person
Ivan Chepurnyi
schedule
10.12.2010