Шаблоны 4 поколения состоят из виджетов. Виджеты - это настраиваемые через редактор блоки с контентом. Для добавления виджета в шаблон нужно создать папку с названием виджета, внутри папки лежат файлы, прописанные в структуре виджета.
snippet.liquid
snippet.scss
snippet.js
messages.json
settings_form.json
settings_data.json
setup.json
preview.jpg
и mobile_preview.jpg
info.json
Существует два способа создания виджета:
Примеры можно посмотреть здесь.
Перейдите в раздел Настройки → Виджеты.
Доступно два варианта: создать новый виджет или импортировать уже готовый виджет:
При создании нужно будет выбрать шаблон, к которому привяжется виджет.
Как говорилось ранее, все виджеты шаблона хранятся в папке widget_types
. Для создания пользовательского виджета нужно добавить подпапку с названием виджета и его файлами.
Имя папки виджета должно совпадать с полем handle
в файле info.json.
Запрещено указывать названия с префиксом system_
.
Добавить виджет можно двумя способами:
В первом случае виджет будет установлен по умолчанию при загрузке шаблона. Во втором случае его можно будет добавить уже после установки.
Фрагмент, в котором мы добавили виджет с пермалинком system_widget_v4_promo_slider_4
к виджет-листу index-list
.
"theme_widgets":{
"widget_lists":[
{
"name":"index",
"handle":"index-list",
"kind":"content",
"widgets": [
{
"settings_data":{
"hide-mobile":false,
"hide-desktop":false,
"img-ratio":"3",
"autoplay":false,
"autoplay-delay":"5"
},
"widget_type":"system_widget_v4_promo_slider_4",
"data_handle":"block-list-slider"
}
]
}
]
}
Важно: виджет-листы требуются для разделения списков на области и страницы. Так как виджет-лист главной должен отличаться от виджет-листа каталога, то на каждой странице необходимо отделить виджеты основного контента от виджетов футера/сайдбара/хедера.
Для добавления виджета на текущую страницу достаточно нажать на кнопку +
в области редактирования или добавить виджет
в боковой панели. После чего появится модальное окно с галереей доступных виджетов.
Разместив виджет на сайте, он автоматически запишется в setup.json при скачивании архива шаблона.
Виджет-листы доступны в переменной widget_lists
.
Пример вывода виджетов из виджет-листа index-list
:
{% for widgetDrop in widget_lists.index-list.widgets %}
{% widget widgetDrop %}
{% endfor %}
Стили и скрипты виджетов выводятся отдельным тегом widgets_assets
, в качестве параметра указываются названия виджет-листов через запятую.
{% widgets_assets "header-list, footer-list, index-list" %}