JSON Schema

JSON Schema — это стандарт для описания структуры JSON-данных. Позволяет валидировать, документировать и генерировать JSON-объекты.

Для созданных секций используйте JSON Schema, опишите настройки, которые можно будет задавать при добавлении/редактировании через конструктор.

Базовая структура

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    }
  }
}

Основные поля

Однострочный текст

Добавляет однострочное текстовое поле. Позволяет администраторам магазина изменять небольшой текстовый контент без редактирования кода.

JSON Schema:

1{
2  "type": "string",
3  "title": "Название поля",
4  "default": "Значение по-умолчанию"
5}  
Внешний вид

Многострочный текст

Добавляет многострочное текстовое поле. Позволяет администраторам магазина изменять текстовый контент без редактирования кода.

JSON Schema:

1{
2  "$ref": "#/definitions/TextArea",
3  "title": "Описание",
4  "default": "Оплата частями в Сплит"
5}  
Внешний вид

Выпадающий список

Добавляет поле c выпадающим списком доступных вариантов. Кроме стандартных атрибутов select используются дополнительные:

Атрибут Описание Обязательный
enum Массив доступных значений Да
options Словарь соответствия значений и заголовков Нет

JSON Schema:

 1{
 2  "type": "string",
 3  "default": "primary",
 4  "title": "Внешний вид шапки",
 5  "enum": ["none", "transparent"],
 6  "options": {
 7    "none": "Непрозрачная",
 8    "transparent": "Прозрачная"
 9  }
10}  
Внешний вид

Число

Добавляет поле с ползунком для числового ввода. Кроме стандартных атрибутов range используются дополнительные:

Атрибут Описание Обязательный
min Минимальное значение Да
max Максимальное значение Да
step Размер шага между соседними значениями. По-умолчанию 1 Нет
unit Единица измерения. Например, можно указать px для размера шрифта. Нет

JSON Schema:

 1{
 2  "type": "number",
 3  "unit": "шт.",
 4  "step": 2,
 5  "title": "Количество отображаемых фотографий",
 6  "default": 4,
 7  "maximum": 12,
 8  "minimum": 2
 9} 
Внешний вид

Переключатель

Добавляет поле для переключения Boolean значений.

JSON Schema:

1{
2  "type": "boolean",
3  "title": "Закреплять шапку при скролле"
4}  
Внешний вид

 

Специальные настройки

Изображение

Добавляет поле для выбора файла с картинкой. Выбранные изображения автоматически нарезаются под требуемые размеры.

Используется для выбора логотипов, иконок, обложек и прочего.

JSON Schema:

1{
2  "$ref": "#/definitions/ImageModel",
3  "title": "Ссылка"
4}  
Внешний вид

Ссылка

Добавляет поле для выбора ссылки. Поддерживается ввод внешних URL-адресов или выбор предсозданных страниц.

Можно использовать для выбора URL-адреса который будет использоваться для перехода по кнопке.

JSON Schema:

1{
2  "$ref": "#/definitions/LinkSource",
3  "title": "Ссылка"
4}  
Внешний вид

Rich-текст

Добавляет многострочное текстовое поле для rich-контента.

JSON Schema:

1{
2  "$ref": "#/definitions/MarkdownContent",
3  "title": "Текст"
4}  
Внешний вид

Меню

Добавляет поле для выбора предсозданного меню сайта.

JSON Schema:

1{
2  "$ref": "#/definitions/MenuId",
3  "title": "Меню"
4}  
Внешний вид

Цвет

Добавляет поле для выбора цвета.

Используйте для выбора цвета различных элементов секций, например, как цвет вспомогательное текста.

JSON Schema:

1{
2  "$ref": "#/definitions/ThemeColor",
3  "title": "Цвет",
4  "default": "#6b098B"
5}  
Внешний вид

Коллекция товаров

Добавляет поле для выбора предсозданной коллекции товаров.

JSON Schema:

1{
2  "$ref": "#/definitions/ProductsSource",
3  "title": "Товары"
4}  
Внешний вид

Цветовая схема

Добавляет поле для выбора предсозданной палитры сайта.

JSON Schema:

1{
2  "$ref": "#/definitions/Palette",
3  "title": "Палитра цветов"
4}  
Внешний вид

Горизонтальный отступ секции

Добавляет поле для выбора горизонтального отступа секций.

JSON Schema:

1{
2  "$ref": "#/definitions/SectionHPadding",
3  "title": "Отступ по краям на десктопе"
4}  
Внешний вид

Горизонтальный отступ на телефоне

Добавляет поле для выбора горизонтального отступа секций на телефоне.

JSON Schema:

1{
2  "$ref": "#/definitions/SectionHPaddingTouch",
3  "title": "Отступ по краям на телефоне"
4}  
Внешний вид

Вертикальный отступ секции

Добавляет поле для выбора вертикального отступа секций.

JSON Schema:

1{
2  "$ref": "#/definitions/SectionVPadding",
3  "title": "Отступ над секцией"
4}  
Внешний вид

Модули

В Яндекс KITᵝ нет настройки для массивов. Для создания независимых и/или повторяющихся внутри секций блоков настроек используется специальное свойство modules.

Модули в Яндекс KITᵝ — это инструмент для создания динамических, повторяющихся блоков контента с собственными настройками. Они дают контент-менеджерам возможность редактировать содержимое страниц самостоятельно, без помощи разработчиков, при этом дизайн и структура данных остаются едиными.

Базовая структура модулей

JSON Schema:

 1{
 2  "$schema": "http://json-schema.org/draft-07/schema#",
 3  "type": "object",
 4  "properties": {
 5    "modules": {
 6      "type": "array",
 7      "title": "Кастомный модуль",
 8      "items": {
 9        "type": "object",
10        "required": [
11          "description",
12          "title"
13        ],
14        "properties": {
15          "title": {
16            "type": "string",
17            "title": "Заголовок"
18          },
19          "description": {
20            "$ref": "#/definitions/TextArea",
21            "title": "Описание"
22          }
23        }
24      }
25    }
26  }
27}
Пример шаблона
 1{{#each settings.modules as |module|}}
 2    <ya-kit-v-stack gap="100" class="item">
 3        <ya-kit-text size="md">
 4            {{module.title}}
 5        </ya-kit-text>
 6        <ya-kit-text>
 7            {{module.description}}
 8        </ya-kit-text>
 9    </article>
10{{else}}
11    <ya-kit-text>Модули не добавлены!</ya-kit-text>
12{{/each}}
13
Внешний вид

Внешний вид в списке секций:

 

Форма с настройками модуля:

Обратиться в службу поддержки

Написать в чат

Написать письмо

Предыдущая