"collections": {
"apparel":"Одежда",
"Tehnika":"Модная одежда",
}
"block_lists": {
"left": {
"title": "Блоки в категориях слева",
"blocks": ["special-offer", "banner"]
},
"news":"Новости"
}
"blocks": {
"Банер": {
"title": "Акции и распродажи",
"content": "50% на все товары!"
},
"Tovar-nedeli":"Товар недели",
"условия-доставки":"Условия доставки"
}
Шаблоны блоков записываются в поле block_templates
которое является объектом.
У шаблонов есть 2 обязательных поля - name
, block_fields
.
name - имя блока
block_fields - поля блока
У полей блоков могут быть поля name
, kind
, block_field_options
.
name - имя поля
kind - тип поля
block_field_options - список опций селекта
Типы полей:
text
- Текст
rich_text
- HTML
account_file
- Файл
collection_list
- Список категорий
collection
- Категория
select
- Выпадающий список
checkbox
- Чекбокс
{
"block_templates": {
"slider-block": {
"name": "Слайдер",
"block_fields": {
"link": {
"name": "Ссылка",
"kind": "text"
},
"description": {
"name": "Контент",
"kind": "rich_text"
},
"heading": {
"name": "Заголовок",
"kind": "text"
},
"collection": {
"name": "Категория",
"kind": "collection"
},
"image": {
"name": "Изображения",
"kind": "account_file"
},
"hide_heading": {
"name": "Скрыть заголовок?",
"kind": "checkbox"
},
"side": {
"kind" : "select",
"name" : "Расположение изображения",
"block_field_options": {
"is-right": "Справа",
"is-left": "Слева"
}
}
}
}
}
}
"blocks": {
"banner": {
"title": "Акции и распродажи",
"content": "50% на все товары!",
"block_template": "system-title-and-content"
}
}
"blocks": {
"first-slider": {
"title": "Акции и распродажи",
"heading": "Акции и распродажи",
"description": "50% на все товары!",
"link": "/page/sale",
"block_template": "slider-block"
}
},
"block_lists": {
"index-slider": {
"title": "Слайдер",
"blocks": ["first-slider"],
"block_template": "slider-block"
}
},
"block_templates": {
"slider-block": {
"name": "Слайдер",
"block_fields": {
"link": {
"name": "Ссылка",
"kind": "text"
},
"description": {
"name": "Контент",
"kind": "rich_text"
},
"heading": {
"name": "Заголовок",
"kind": "text"
},
"collection": {
"name": "Категория",
"kind": "collection"
},
"image": {
"name": "Изображения",
"kind": "account_file"
}
}
}
}
"menus": {
"main-menu":"Верхнее меню",
"first-footer":"Нижнее меню"
},
"menu_items": {
"main-menu": { "Ссылка1": "http://ya.ru", "Ссылка2": "cart", "Ссылка3": "account" }
}
"properties": {
"property_permalink": {
"title": "my_property",
"characteristics": {
"char_permalink_1": "char_title_1", "char_permalink_2": "char_title_2"
}
}
}
"pages": {
"delivery": "Доставка",
"payment": "Оплата" ,
"privacy-policy": {
"title": "Политика безопасности",
"content": "У нас все секьюрно)"
}
}
"blogs": {
"news": "Новинки",
"sales": {
"title": "Скидки",
"articles": {
"winter": "20% на зимнюю коллекцию",
"shose": {
"title": "5% на всю обувь",
"content": "5% на всю обувь",
"preview": "Обувь со скидкой!",
"author": "Админимтрация"
}
}
}
}
Чтобы создать виджет в шаблоне нужно указать следующие данные в setup.json:
widget_types
theme_widgets -> widget_lists
widget_types отвечает за создание виджета.
widget_types имеет следующие свойства:
"block_template": шаблон блокок которые будут добавляться в виджете
"name": заголовок виджета
"handle": уникальный пермалинк для типов виджетов
"type": "block_list_widget_type"
"snippet": название сниппета который будет привязан к виджету, например - "widget_shippet.liquid". Сниппет должен присутствовать в теме.
widget_lists содержит в себе виджет листы, которые содержат в себе массивы виджетов.
В ликвид доступна переменна widget_lists в которой по ключу можно получить массив виджетов.
widget_lists.index-list.widgets
widget_lists содержит массив объектов с полями:
"name": имя виджет листа (указать уникальное имя на латинице)
"handle": пермалинк виджет листа, используется для доступа в виджетам в ликвид (в пермалинке виджет листа запрещен символ нижнего подчеркивания)
"widgets" массив виджетов
В массиве виджетов находятся с объекты с указанным типом виджета и пермалинком панели блоков
"widget_type": тут указывается handle из widget_types
"data_handle": тут пермалинк из block_lists
{% for widgetDrop in widget_lists.index-list.widgets %}
{% widget widgetDrop %}
{% endfor %}
{
"block_lists": {
"mainblock": {
"block_template": "system-image-and-content",
"title": "Наша тестовая панель блоков",
"blocks": [
"image-text-1"
]
}
},
"blocks": {
"image-text-1": {
"block_template": "system-image-and-content",
"title": "Блок внутри тестового виджета",
"content": "Контент внутри тестового виджета",
"image": "empty.jpg"
}
},
"theme_widgets": {
"widget_lists": [{
"name": "index",
"handle": "index-list",
"widgets": [{
"widget_type": "test_handle",
"data_handle": "mainblock"
}]
}],
"widget_types": [{
"block_template": "system-image-and-content",
"name": "Заголовок тестового виджета",
"handle": "test_handle",
"type": "block_list_widget_type",
"snippet": "widget_test_snippet.liquid"
}]
}
}