Обновление

25 августа 2017, 22:46

Инструкция по обновлению минорных версий miniShop2.

Переход с 2.2 на 2.4

Главным отличием 2.4 от 2.2, которое может повлиять на функционал работающего сайта, является использование чанков Fenom во всех сниппетах. Поэтому при обновлении компонента нужно обязательно обновить и свои чанки.

Общий смысл в том, что вместо 2-3 чанков вывода результатов, теперь используется один.

Например, раньше для оформления корзины требовалось 3 чанка:

  • tpl.msCart.outer - заголовок и подвал таблицы товаров, в середине тег [[+goods]] для подстановки товаров
  • tpl.msCart.row - чанк товаров, которые подставляются в [[+goods]]
  • tpl.msCart.empty - чанк вывода пустой корзины

Целых 3 чанка для оформления одного сниппета само по себе не очень удобно, учитывая, что в ms2 уже 8 сниппетов, да еще и обработка каждого товара отдельно занимает лишнее время.

Раньше с этим ничего поделать было нельзя, но последние версии pdoTools включают в себя замечательный шаблонизатор Fenom, который позволяет вынести всё оформление сниппета в один чанк.

Поэтому с версии 2.4 у корзины всего один чанк:

  • tpl.msCart - общий чанк корзины

Он содержит в себе всю таблицу, а товары в ней обрабатывает в цикле:

{foreach $products as $product}
    {$product | print} <!-- распечатываем все свойства товара для отладки-->
{/foreach}

Все нужные данные приходят в массивах, которые нужно разбирать, используя синтаксис Fenom.

При этом чанк для пустой корзины тоже не нужен, так как количество товаров можно проверить очень просто:

{if count($products) == 0}
    <!-- сообщение о пустой корзине -->
    {'ms2_cart_is_empty' | lexicon}
{else}
    <!-- вывод товаров -->
{/if}

Все подробности о работе сниппетов и их переменных и плейсхолдерах находятся в соответствующем разделе.

Оформление писем

Для писем используется механизм расширения шаблонов Fenom.

То есть, в комплекте с miniShop2 идёт один чанк tpl.msEmail с шаблоном письма по умолчанию, который разбит на смысловые блоки. Другие письма расширяют этот чанк и меняют нужные им блоки.

  • logo - логотип магазина со ссылкой на главную страницу
  • title - заголовок письма
  • products - таблица заказанные товаров
  • footer - ссылка на сайте в подвале письма

Это позволяет очень легко модифицировать письма разных статусов заказа. Например, письмо с новым заказом покупателю выглядит так:

{extends 'tpl.msEmail'}

{block 'title'}
    {'ms2_email_subject_new_user' | lexicon : $order}
{/block}

{block 'products'}
    {parent}
    {if $payment_link?}
        <p style="margin-left:20px;{$style.p}">
            {'ms2_payment_link' | lexicon : ['link' => $payment_link]}
        </p>
    {/if}
{/block}

Как видите, здесь наследуется основной шаблон, меняется заголовок, а к таблице товаров добавляется ссылка на оплату (если есть).

Все письма подготавливаются сниппетом msGetOrder. Подробнее о расширении шаблонов вы можете прочитать в документации Fenom.

Системные настройки

Удалены настройки:

  • ms2_product_vertical_tabs - вертикальных табов товара больше нет, только горизонтальные.
  • ms2_category_remember_grid - настройка сохранения статуса таблиц категорий с товарами в cookie. Теперь статус у всех таблиц общий и сохраняется в modRegistry автоматически.
  • ms2_product_main_fields - на основной странице товара теперь только поля modResource, так что эта настройка не нужна. При обновлении со старых версий miniShop2 поля товаров из этой настройки копируются в ms2_product_extra_fields.
  • ms2_price_snippet - сниппет для форматирования цены товара. Используйте плагин на событие msOnGetProductPrice.
  • ms2_weight_snippet- сниппет для форматирования веса товара. Используйте плагин на событие msOnGetProductWeight.

Добавлены:

  • ms2_template_category_default - настройка для указания шаблона категорий по умолчанию.
  • mgr_tree_icon_mscategory - иконка категорий товаров в дереве ресурсов.
  • mgr_tree_icon_msproduct - иконка товаров в дереве ресурсов.

Изменены:

  • ms2_category_content_default - содержимое нового товара по умолчанию теперь пустое.

Переход с 2.2 на 2.3

Разработка miniShop 2.3 была отменена, так что смотрите переход на версию 2.4.


Предыдущий документ
Быстрый старт
Следующий раздел
Интерфейс