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":
[
массив ключей и значений
]
}
}
