JSON структура и синтаксис
Файлы JSON
Для каждого модуля сайта существует файл настроек .json. Название файла всегда соответствует названию модуля, которое отображается в адресной строке браузера сразу после доменного имени. Например, модуль Новости имеет название news - файл настроек для него называется news.json, а в адресной строке страницы модуля имеют адрес site.ru/news/...
Редактирование файлов доступно в защищенном разделе панели управления - пункт Json в горизонтальном меню. В директории сайта файлы находятся в папке /config/configfiles/modules
Структура файлов
Файл .json состоит из объектов, объекты содержат ключи и значения этих ключей. В нашей панели управления каждый объект хранит ту или иную настройку модуля.
В нашем случае каждый файл json содержит один глобальный объект data, который имеет ключи с одинарными значениями - такие как name, title, keywords ..., а также ключи, содержащие массивы значений - такие как table (колонки таблицы на странице модуля в панели управления), dialogs (поля формы редактирования элемента модуля) и т.п.
Синтаксис
Все содержимое файла заключается в фигурные скобки, далее все содержимое объекта (в нашем случае - объекта data) тоже записывается в фигурные скобки.
{
"data":
{
здесь все ключи с настройками модуля
}
}
Ключи указываются слева и заключаются в кавычки. Значения ключей указываются справа, после двоеточия и тоже заключаются в кавычки (без кавычек пишутся только значения true и false). После каждого ключа со значением ставится запятая, после последнего - запятая не ставится.
{ "data": { "ключ с одним значением" : "Значение ключа",
"еще ключ с одним значением" : "Значение ключа"
} }
Если ключ содержит не одно значение, а массив значений, то этот массив заключается в квадратные скобки, а каждый элемент массива берется в фигурные скобки. После каждого элемента массива, заключенного в фигурные скобки, ставится запятая, а после последнего - не ставится
{ "data": { "ключ с одним значением" : "Значение ключа",
"еще ключ с одним значением" : "Значение ключа",
"ключ с массивом значений": [ { "name_show":"Название", (набор ключей-значений для первого элемента массива) "var" :"name", "type" :"text", "width" :"long", "tag" :"input", "require" :true, "mask" :"none" }, { "name_show":"URL", (набор ключей-значений для второго элемента массива) "var" :"url", "type" :"text", "width" :"long", "tag" :"input", "require" :false, "mask" :"none" } ] } }
В целом структура наших файлов такова:
{ "data": { "name" : "Страницы", "title" : "Страницы", "keywords" : "Страницы", "еще ключ" : "значение", "еще ключ" : "значение", ..... "еще ключ" : "значение" "search_modules": [ массив ключей и значений ], "table": [ массив ключей и значений ], "buttons": [ массив ключей и значений ], "actions": [ массив ключей и значений ], "dialogs": [ массив ключей и значений ], "images": [ массив ключей и значений ] } }