Запись блога
Seller 2.0 предоставляет гибкие возможности для оформления записей блога. Внутри записи блога можно встраивать списки товаров в различных режимах отображения.
Хуки блога
Seller 2.0 поддерживает хуки для вставки пользовательского контента до и после записи блога:
| Хук | Описание |
|---|---|
blog.{themeName}.post.before | Выводится перед содержимым записи |
blog.{themeName}.post.after | Выводится после содержимого записи, перед блоком комментариев |
Где {themeName} -- идентификатор вашей темы дизайна. Шаблон записи выводит эти хуки через {$wa->block(...)}, поэтому содержимое для них создаётся как HTML-блоки с соответствующими идентификаторами.
Интеграция с плагином изображений блога
Тема поддерживает плагин изображений записей блога (ewblogpimg). После установки плагина изображение записи попадает в микроразметку Article и в списки записей блога. В шапке самой записи оно не выводится — внутри записи изображение показывается только в начале содержимого, если включена настройка темы Отображать заглушку записи внутри поста (apps__blog_post_ewblogpimg_in_content); у отдельной записи это можно отключить параметром hide_thumbnail.
Изображение в начале содержимого выводится только при одновременно включённой микроразметке блога (Прочее → Микроразметка → Статья блога, other__microdata_blog, включена по умолчанию): изображение запрашивается в блоке микроразметки и переиспользуется в содержимом. При выключенной микроразметке настройка Отображать заглушку записи внутри поста не сработает.
Пример записи с товарами
В примере ниже внутри записи блога выводятся товары из разных списков в различных режимах: карусель (swiper), компактная карусель (swiper_short), таблица (table) и сетка (grid). На мобильных устройствах режим table автоматически заменяется сеткой grid.
Обратите внимание: параметр title из аналогичных примеров для Seller 1 в Seller 2.0 не поддерживается -- шаблон products его не обрабатывает. Заголовок раздела добавляйте обычным HTML-заголовком в тексте записи.
{* UTILS *}
{include "{$wa->site->themePath(waRequest::getTheme())}u-utils.html"}
{* GET THEMESETTINGS *}
{$theme_id = waRequest::getTheme()}
{$theme_settings = $wa->themesettings->getThemeSettings($theme_id, "site", true)}
<p>Текст записи блога...</p>
<h2>Раздел с товарами</h2>
<p>Описание раздела.</p>
{* Вывод товаров каруселью *}
<div class="not-prose mb-6">
{$products = $wa->shop->productSet("noutbuki-i-planshe", 4, null, ['fields' => '*,skus_filtered'])}
{$products_props = [
"view_type" => "swiper"
]}
{call include_template template="products" app="shop" products=$products props=$products_props}
</div>
{* Вывод товаров компактной каруселью *}
<div class="not-prose mb-6">
{$products = $wa->shop->productSet("topproducts", 4, null, ['fields' => '*,skus_filtered'])}
{$products_props = [
"view_type" => "swiper_short"
]}
{call include_template template="products" app="shop" products=$products props=$products_props}
</div>
{* Вывод товаров таблицей *}
<div class="not-prose mb-6">
{$products = $wa->shop->productSet("mobilnye-aksessuary", 4, null, ['fields' => '*,skus_filtered'])}
{$products_props = [
"view_type" => "table"
]}
{call include_template template="products" app="shop" products=$products props=$products_props}
</div>
{* Вывод товаров сеткой *}
<div class="not-prose py-4">
{$products = $wa->shop->productSet("sale", 8, null, ['fields' => '*,skus_filtered'])}
{$products_props = [
"view_type" => "grid"
]}
{call include_template template="products" app="shop" products=$products props=$products_props}
</div>
Замените идентификаторы списков товаров (noutbuki-i-planshe, topproducts и т.д.) на идентификаторы ваших собственных списков.
Обратите внимание на класс not-prose -- он отключает типографские стили Tailwind prose внутри блока, чтобы карточки товаров отображались корректно.