Структура пользовательских JSON-меню в MyChat
Пример рабочего меню:
{
"rootname": "Links",
"rooticon": 196,
"items": 11,
"item1": {
"name": "Sales requests",
"icon": 173,
"type": "open-link",
"data": "https://mycompany.com/kanban/#project=74"
},
"item2": {
"type": "hr"
},
"item3": {
"name": "iOS bugs",
"icon": 173,
"type": "open-link",
"data": "https://mycompany.com/kanban/#project=48"
},
"item4": {
"name": "Android bugs",
"icon": 173,
"type": "open-link",
"data": "https://mycompany.com/kanban/#project=25"
},
"item5": {
"name": "Kanban bugs",
"icon": 173,
"type": "open-link",
"data": "https://mycompany.com/kanban/#project=3"
},
"item6": {
"name": "Blue flag (server script)",
"icon": 172,
"type": "server-script",
"data": "OpenPrivateSupport",
"params": "%username% :)"
},
"item7": {
"name": "Tree example"
},
"item8": {
"parent": "item7",
"name": "Red flag (action link)",
"icon": 177,
"type": "exec-action",
"data": "about",
"params": ""
},
"item9": {
"parent": "item7",
"name": "Pill icon (Open help topic)",
"icon": 185,
"type": "open-help",
"data": "mychatclientwindows"
},
"item10": {
"name": "Disabled item",
"enable": false
},
"item11": {
"name": "Open text file",
"type": "open-link",
"data": "F:\\Public\\docs\\инструкция для техников.txt"
}
}
Важно! Названия параметров и их тип должны быть указаны в нижнем регистре, точно, как в таблице, это имеет значение.
Обязательные элементы
Параметр |
Тип |
Описание |
rootname |
string |
строка, название корневого элемента меню, что будет видно в приложении MyChat Client в главном меню; |
rooticon |
integer |
индекс иконки из готового списка; |
items |
integer |
общее количество элементов меню. Все они будут называться "item1", "item2", "item3" и так далее. Нумерация с единицы, пропуски не разрешаются. |
Вложенные элементы
Все вложенные пункты меню имеют обязательное название "item" и номер элемента, например, "item15". Последовательность не имеет значения, можно перечислять элементы по порядку или согласно другой схеме, как вам удобнее. Главное, чтобы количество элементов было не меньше, чем указано в параметре "items".
Параметр |
Тип |
Описание |
name |
string |
название пункта меню, текстовая строка; |
parent |
string |
если этого параметра нет, то пункт меню будет в корневом разделе, если есть — то указывается название родительского раздела, например "item12"; |
icon |
integer |
индекс иконки из готового списка; |
type |
string |
тип элемента меню, возможные варианты:
|
data |
string |
содержимое, с которым надо будет работать команде:
|
params |
string |
|
enable |
boolean |
если указать false, то пункт меню будет показываться неактивным (disable) и по нему нельзя будет кликнуть мышкой. Это бывает удобно, если нужно временно запретить какой-то элемент, но удалять его из JSON не хочется. |