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