Обновление
Инструкция по обновлению минорных версий 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.