Файл settings/settings.json
Данный файл содержит информацию об интерфейсе пользовательских настройках сайта (в том числе об их значениях по умолчанию), а также некоторые конфигурационные опции, которыми пользователь не может управлять.
Описание формата файла
Файл имеет формат JSON. Содержит два корневых элемента config и structure.
config- содержит конфигурационные опции, которые доступны разработчику шаблона, но не доступны пользователюstructure- содержит информацию о пользовательских настройках (в том числе об их интерфейсе, а также об их значениях по умолчанию)
Элемент "config"
Элемент с именем config имеет формат массива пар «имя: значение». Имена являются зарезервированными значениями, список которых приведен ниже. Значение и его формат специфично для каждой настройки.
| Настройка | Описание |
|---|---|
bannerPlace… | Таких настроек может быть несколько. Описывает «Место размещения баннеров». Имя настройки имеет формат bannerPlace:<devName>:<типы>:<страницы>.<devName> - здесь вписывается «имя для разработчика» места размещения (используйте только буквы латинского алфавита и цифры).<типы> - здесь вписывается через запятую, какие типы баннеров характерны данному месту размещения (image, imageAndText).<страницы> - здесь вписывается через запятую, на каких видах страниц будет использоваться данное место размещения баннеров (catalog, brand, page, articleCatalog).Значением настройки является строка, в которой указывается имя данного места размещения, отображаемое в интерфейсе пользователя |
af_… | Таких настроек может быть несколько. Описывает «Дополнительные поля» для определенной сущности, которые отображаются в интерфейсе пользователя. Т.е. в системе могут существовать и другие «дополнительные поля», но в интерфейсе будут отображены только те, которые указаны в данном файле. Исключением является раздел настроек «дополнительных полей», в котором отображаются все. Имя настройки имеет формат af_<сущность>[:<devName>].<сущность> - здесь вписывается имя сущности, «дополнительные поля» которой перечисляются в значении данной настройки (catalog, brand, brandSeries, offer, user, order, page, article, articleCatalog).<devName> - может отсутствовать; здесь указывается «имя для разработчика» конкретной сущности, если есть необходимость указать, что данные дополнительные поля будут отображаться только для сущности с этим «именем для разработчика».Значением настройки является строка, в которой через запятую указываются имена «дополнительных полей» для данной сущности |
adminMenu_articleCatalogs | Указывает какие каталоги публикаций верхнего уровня будут отображаться в главном меню панели управления. Значением настройки является строка, в которой через запятую указываются «имена для разработчика» тех каталогов публикаций, которые будут отображены пользователю |
adminMenu_pages | Указывает какие «страницы» будут отображаться в главном меню панели управления. Значением настройки является строка, в которой через запятую указываются «имена для разработчика» тех «страниц», которые будут отображены пользователю |
Элемент "structure"
В данном элементе указываются настройки того, что будет отображено в интерфейсе на странице настроек шаблона сайта в панели управления. А также указываются значения по умолчанию, которые будут иметь данные настройки. Является массивом с произвольным количеством элементов.
Описание корневого элемента массива "structure"
- Каждый элемент соответствует в интерфейсе группе настроек;
- Каждый элемент имеет следующие поля:
name,label,icon,settings(илиsubSettings) name- имя данной группы настроек (должно быть уникально)label- текст, который выводится в интерфейсе, как имя группы настроекicon- имя изображения, которое выводится в интерфейсе для данной группы настроек (пока не используется)subSettings- массив вложенных групп настроек, структура которого идентична структуре групп настроек (может отсутствовать, если присутствуетsettings)settings- массив объектов настроек данной группы настроек (может отсутствовать, если присутствуетsubSettings)
Описание массива "settings"
- Является массивом объектов настроек, каждый из которых может иметь различный набор полей
- Обязательно каждый объект имеет поля
typeиlabel type- определяет тип объекта настройки (строка)label- текст, который выводится, как имя данной настройкиid- идентификатор настройки; это и есть имя переменной, которая используется в коде шаблонаdefault- значение по умолчанию для данной настройки (в интерфейсе именно оно используется, если пользователь еще не сохранял настройки шаблона ни разу)
Типы настроек (значения элементов "type")
Ниже перечислены типы настроек. В квадратных скобках указаны другие элементы в данном объекте, указание которых обязательно для данного типа настройки.
header- заголовок набора настроек [label]; используется для визуального разделения наборов настроекinput- одно строчное текстовое поле [id,label,default]textarea- много строчное текстовое поле [id,label,default]checkbox- поле флага [id,label,default] (значения могут быть только1или0)image_picker- элемент выбора (загрузки) изображения [id,label,default]color_picker- элемент выбора цвета [id,label,default] (значение - hex код цвета)
Пример файла
{
"config":
{
"bannerPlace:place1:image:page": "Баннер на главной странице в центральном блоке",
"bannerPlace:place2:image,imageAndText:catalog,brand": "Баннер на странице каталогов брендов в центральном блоке",
"af_user": "af_desc",
"af_offer": "af_description,af_characteristics,af_video",
"af_order": "af_some",
"af_catalog": "af_text",
"af_brand": "af_text",
"af_page": "af_text",
"af_page:contacts": "af_text, af_map",
"af_article": "af_description,af_text",
"af_articleCatalog": "af_text",
"adminMenu_articleCatalogs": "news,article,action,vat",
"adminMenu_pages": "index,about,contacts,paymentAndDelivery"
},
"structure":
[
{
"name": "company",
"label": "Компания",
"icon": "metadata",
"settings":
[
{
"type": "header",
"label": "Компания"
},
{
"type": "input",
"id": "companyName",
"label": "Название компании",
"default": "Наша компания"
},
{
"type": "header",
"label": "Данные"
},
{
"type": "textarea",
"id": "companyAddress",
"label": "Адрес компании",
"default": "г. Вывилон, ул. Уличная 17"
}
]
},
{
"name": "phonesAndEmail",
"label": "Телефоны и Email",
"icon": "metadata",
"settings":
[
{
"type": "header",
"label": "Список телефонов"
},
{
"type": "input",
"id": "phone1",
"label": "Телефон №1",
"default": "+3(000) 111-11-11"
},
{
"type": "input",
"id": "phone2",
"label": "Телефон №2",
"default": "+3(000) 222-22-22"
}
]
},
{
"name": "index",
"label": "Главная",
"icon": "font",
"subSettings":
[
{
"name": "index_noveltyOfferBlock",
"label": "Блок \"Новинки\"",
"icon": "font",
"settings":
[
{
"type": "header",
"label": "Отображение"
},
{
"type": "checkbox",
"id": "showNoveltyOfferBlockOnIndexKey",
"label": "Отображать блок \"Новинки\"",
"default": "1"
},
{
"type": "header",
"label": "Количество"
},
{
"type": "input",
"id": "indexOfferNoveltyAmount",
"label": "Количество товаров",
"default": "12"
},
{
"type": "header",
"label": "Баннер в блоке \"Новинок\""
},
{
"type": "input",
"id": "noveltyLinkBanner",
"label": "Ссылка",
"default": "#"
},
{
"type": "image_picker",
"id": "noveltyImageBanner",
"label": "Изображение",
"default": ""
}
]
}
]
}
]
}