Обновление

02 декабря 2020, 07:00

Обновление

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

Переход на 2.6

Не имеет глобальных отличий с предыдущими версиями 2.4 и 2.5. В новой версии Minishop 2 большое количество изменений - но все они мелкие не затрагивающие основные шаблоны и ядро пакета.

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

Добавлены:

  • ms2_chunks_categories - укажите ID категории с чанками tpl.Email. После сохранения на странице "Настройки" при изменении статуса Заказа при выборе шаблона письма в списке будут только нужные чанки.
  • ms2_add_icon_category - выбор иконки кнопки "добавить в категорию" на странице категории.
  • ms2_add_icon_product - выбор иконки кнопки "добавить товар" на странице категории
  • ms2_cart_context - общая корзина или нет для всех контекстов.
  • ms2_order_format_num - формат нумерации заказа. Доступные значения в формате PHP strtotime()
  • ms2_order_format_num_separator - формат нумерации заказа. Выбор разделителя к примеру "/" или "-"

Изменения в чанках miniShop2:

Изменение в чанке tpl.msCart

С версии miniShop2 2.6.0 улучшен базовый функционал. Сумма позиции в корзине изменяется при изменении количества товара пользователем. Для реализации данной возможности переменную {$product.cost} обернуть и указать класс ms2_cost:

<span class="ms2_cost">
    {$product.cost}
</span>

Изменения в сниппетах miniShop2

Изменение в сниппетах msOption и msProductOption

С версии miniShop2 2.6.0 улучшен базовый функционал. Введены два параметра для сортировки опций sortOptions и sortOptionValues

  • sortOptions - укажите порядок сортировки опций. Передаются строкой, например: "size,color".
  • sortOptionValues - Указывает порядок сортировки значений опций. Передаются строкой, например: "size:SORT_DESC:SORT_NUMERIC:100,color:SORT_ASC:SORT_STRING"

Для работы необходимо указать два параметра в сниппете к примеру:

MODX Parser

[[!msOption?
...
&sortOptions = `size,color`,
&sortOptionValues = `size:SORT_DESC:SORT_NUMERIC:100,color:SORT_ASC:SORT_STRING`
...
]]

Fenom Parser

{'!msOption' | snippet : [
...
'sortOptions' => 'size,color',
'sortOptionValues' => 'size:SORT_DESC:SORT_NUMERIC:100,color:SORT_ASC:SORT_STRING',
...
]}

Изменение бекэнд интерфейса Minishop2

Для более стабильной работы бекэнд интерфейса miniShop2 был удален ExtJS Loader и добавлена синхронная загрузка страниц. В результате данных изменений из пакета удалена библиотека strftime-min-1.3.js. Данное исправление может вызвать некорректную работу некоторых субпакетов miniShop2 сторонних производителей. После обновления очистите кэш, и проведите тестирование. Если страницы интерфейса не загружаются - обсудите данную проблему с производителем субпакета или откатите версию miniShop2 на 2.5.0

Для более интуитивной работы пользователя с интерфейсом miniShop2 версии были внесены следующие корректировки: последовательность вкладок и отображение вкладки "галерея" при создании товара. Если у Вас настроены ограничивающие права у пользователей. После обновления очистите кэш, и проведите тестирование. Если есть артифакты при загрузке, создании или редактировании страницы интерфейса откатитесь на версию Minishop2 2.5.0

Вышеизложенную информацию используйте, в том числе и при разработке новых проектов на платформе miniShop 2.6.0

Переход с 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.



Предыдущий раздел
Интерфейс