Как поменять местами товарные вкладки на витринной карточке товара?

[10 ноября 2016 г.]    Российская сборка Magento 2.49.12
Magento 2: модули и услуги
  • Тема закрыта
#1 Павел Ушаков
  • Группа: Клиент
  • Сообщений: 16
  • Регистрация: 14.11.2011

17.03.2015 18:59

Можно ли на страничке товара поменять местами вкладки "описание товара" и "характеристики", чтобы при переходе на карточку товара по умолчанию открывалась вкладка с характеристиками?

#2 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8884
  • Регистрация: 20.02.2010

18.03.2015 10:02

Оформительская тема Infortis Ultimo, как и большинство других оформительских тем, формирует информационные вкладки на витринной товарной карточке посредством стандартного для Magento Community Edition класса-блока Mage_Catalog_Block_Product_View_Tabs.

Сама Magento Community Edition использует этот класс для отображения информационных вкладок в стандартных оформительских темах RWD и Modern.

В классе Mage_Catalog_Block_Product_View_Tabs для добавления вкладок предназначен метод addTab.
Как правило, этот метод вызывается в макетных файлах (файлах XML папки app/design/frontend/<пакет>/<тема>/layout).

В частности, оформительская тема Ultimo добавляет информационные вкладки на витринную товарную карточку в макетном файле app/design/frontend/ultimo/default/layout/local.xml:
<block type="catalog/product_view_tabs" name="product.info.tabs" as="info_tabs" template="catalog/product/view/tabs.phtml" >
    <action method="addTab" translate="title" module="catalog"><alias>description</alias><title>Product Description</title><block>catalog/product_view_description</block><template>catalog/product/view/description.phtml</template></action>
    <action method="addTab" translate="title" module="payment"><alias>product.info.additional.recurring.schedule</alias><title>Recurring Profile</title><block>payment/catalog_product_view_profile</block><template>payment/catalog/product/view/profile/schedule.phtml</template></action>
    <action method="addTab" translate="title" module="catalog"><alias>additional</alias><title>Additional Information</title><block>catalog/product_view_attributes</block><template>catalog/product/view/attributes.phtml</template></action>
    <!-- Add reviews (first part). IMPORTANT: see the second part: reference name="tabreviews" -->
    <!-- IMPORTANT: Do not change 'tabreviews' alias. It is needed in JS script in catalog/product/view.phtml -->
    <action method="addTab" translate="title" module="catalog"><alias>tabreviews</alias><title>Reviews</title><block>review/product_view_list</block><template>review/product/view/list.phtml</template></action>
    <action method="addTab" translate="title" module="tag"><alias>product.tags</alias><title>Product Tags</title><block>tag/product_list</block><template>tag/list.phtml</template></action>
    
    <!-- Add custom tabs -->                
    <block type="cms/block" name="block_product_tab1">
        <action method="setBlockId"><block_id>block_product_tab1</block_id></action>
    </block>
    <block type="cms/block" name="block_product_tab2">
        <action method="setBlockId"><block_id>block_product_tab2</block_id></action>
    </block>
</block>


Метод Mage_Catalog_Block_Product_View_Tabs::addTab реализован таким образом, что при каждом его вызове новая вкладка добавляется в конец списка всех вкладок.
Поэтому порядок отображения вкладок соответствует порядку вызова метода addTab для каждой из вкладок, и для изменения порядка вкладок достаточно переставить местами теги action в указанном выше фрагменте кода.

Вкладке с характеристиками товара во фрагменте кода выше соответствует тег:
<action method="addTab" translate="title" module="catalog"><alias>additional</alias><title>Additional Information</title><block>catalog/product_view_attributes</block><template>catalog/product/view/attributes.phtml</template></action>

Он расположен третьим сверху внутри родительского тега block (хотя обычно на витрине вкладка с характеристиками отображается второй, потому что функциональность вкладки «Recurring Profile», как правило, отключена).
Чтобы вкладка с характеристиками товара отображалась первой, надо перенести тег action этой вкладки выше остальных тегов action внутри родительского тега block.

Поделиться темой: