Содержание

Файл settings/settings.json

Данный файл содержит информацию об интерфейсе пользовательских настройках сайта (в том числе об их значениях по умолчанию), а также некоторые конфигурационные опции, которыми пользователь не может управлять.

Описание формата файла

Файл имеет формат JSON. Содержит два корневых элемента 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"

Описание массива "settings"

Типы настроек (значения элементов "type")

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

Пример файла

{
    "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": ""
                        }
                    ]
                }
            ]
        }
    ]
}