Файл 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": "" } ] } ] } ] }