ИНСТРУКЦИЯ ПО РАБОТЕ С СИСТЕМОЙ "LEGEND" (СПРАВКА)
Эта инструкция описывает, как добавлять новые блоки справки (легенды) в систему ACP и выводить их в шаблонах. Система позволяет централизованно управлять описаниями полей и переводами.
Пошаговое руководство
1. ГДЕ ХРАНЯТСЯ ЛЕГЕНДЫ
Все структуры легенд находятся в файле:
`lib/ACP/Legend.pm`
2. КАК ДОБАВИТЬ НОВУЮ ЛЕГЕНДУ
1. Откройте файл `lib/ACP/Legend.pm`.
2. Найдите переменную `%LEGEND`. Это список всех доступных справок.
3. Добавьте новую запись по аналогии с существующими.
Структура записи:
'имя_легенды' => { # Уникальное имя (на латинице), по которому будем вызывать в шаблоне
title => 'ЗАГОЛОВОК', # Языковая константа для заголовка (например, HELP)
items => [ # Список полей (строк) в справке
{
term => 'НАЗВАНИЕ_ПОЛЯ', # Языковая константа для названия поля (слева)
desc => 'ОПИСАНИЕ_ПОЛЯ' # Языковая константа для описания (справа)
},
{
term => 'ID', # Если название - НЕ константа, а просто текст (например, ID или IP)
desc => 'DESC_ID',
is_lang_term => 0 # Укажите 0, чтобы система не искала перевод для 'term'
},
# ... добавьте столько пунктов, сколько нужно
]
},
3. КАК ДОБАВИТЬ ПЕРЕВОДЫ (ТЕКСТЫ)
Чтобы тексты отображались на русском (или другом языке), их нужно добавить в языковой файл модуля или общий языковой файл.
Пример для модуля Paysys:
Файл: `ACP/modules/Paysys/lng_russian.pl`
Добавьте в конец файла строки:
$lang{MY_LEGEND_TITLE} = 'Справка по настройке';
$lang{MY_FIELD_NAME} = 'Имя пользователя';
$lang{MY_FIELD_DESC} = 'Введите уникальное имя пользователя для входа в систему.';
4. КАК ВЫВЕСТИ ЛЕГЕНДУ В ШАБЛОНЕ
В любом файле шаблона (`.tpl`) просто вставьте специальный тег в то место, где должна появиться карточка справки:
%LEGEND:имя_легенды%
Где `имя_легенды` — это то имя, которое вы задали в пункте 2 (ключ хеша).
5. ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ (ЦВЕТА И ВАЖНОСТЬ)
Вы можете украсить легенду, добавив цвета (badges) и пометки обязательных полей.
Параметры:
- `color`: делает название поля цветной плашкой.
Доступные цвета:
- 'success' (зеленый)
- 'danger' (красный)
- 'warning' (желтый)
- 'info' (голубой)
- 'primary' (синий)
- 'secondary' (серый)
- `required`: добавляет красную звездочку (*) после названия поля.
Пример использования в `lib/ACP/Legend.pm`:
items => [
{
term => 'GREEN_COLOR',
desc => 'DESC_GREEN',
color => 'success' # Будет зеленая плашка
},
{
term => 'RED_COLOR',
desc => 'DESC_RED',
color => 'danger' # Будет красная плашка
},
{
term => 'IMPORTANT_FIELD',
desc => 'DESC_IMPORTANT',
required => 1 # Добавит звездочку (*)
},
]
6. ПРОИЗВОЛЬНЫЙ ТЕКСТ (ОПИСАНИЕ)
Вы можете добавить блок с произвольным текстом (комментарием) в самом начале справки, перед списком полей. Это удобно для общих инструкций.
Вариант А: Один простой комментарий
Параметр: `comment` (строка)
'my_legend' => {
title => 'HELP',
comment => 'LEGEND_MY_COMMENT', # Языковая константа
items => [...]
}
Вариант Б: Несколько комментариев (можно с разными стилями)
Параметр: `comments` (массив)
'my_legend' => {
title => 'HELP',
comments => [
'LEGEND_FIRST_TEXT', # Просто текст (будет синим)
{
text => 'LEGEND_WARNING_TEXT',
type => 'warning' # Желтый блок
},
{
text => 'LEGEND_DANGER_TEXT',
type => 'danger' # Красный блок
}
],
items => [...]
}
Доступные типы (`type`) для блоков текста:
- `info` (синий, по умолчанию)
- `warning` (желтый)
- `danger` (красный)
- `success` (зеленый)
В таком виде можно добавить URL для вывода
url => [
{ link => 'https://stat.ktk-39.ru', text => 'LINK_TO_WIKI' }
],
Эти тексты будут выведены в блоках (callout) внутри карточки друг за другом.
ПРИМЕР "ДЛЯ ЧАЙНИКОВ" (ОТ НАЧАЛА ДО КОНЦА)
Задача: Сделать справку для формы "Тестовая форма".
ШАГ 1. Редактируем lib/ACP/Legend.pm
Добавляем внутрь %LEGEND:
'test_form_help' => {
title => 'HELP',
items => [
{ term => 'LOGIN', desc => 'TEST_LEGEND_LOGIN', required => 1 },
{ term => 'PASSWORD', desc => 'TEST_LEGEND_PASS', required => 1 },
{ term => 'STATUS_OK', desc => 'TEST_LEGEND_OK', color => 'success' },
{ term => 'STATUS_ERR', desc => 'TEST_LEGEND_ERR', color => 'danger' },
]
}
ШАГ 2. Редактируем языковой файл (например, lng_russian.pl)
Добавляем переводы:
$lang{TEST_LEGEND_LOGIN} = 'Ваш логин для входа. Не используйте пробелы.';
$lang{TEST_LEGEND_PASS} = 'Пароль должен быть сложным (минимум 8 символов).';
$lang{STATUS_OK} = 'Зеленый статус';
$lang{TEST_LEGEND_OK} = 'Все работает хорошо.';
$lang{STATUS_ERR} = 'Красный статус';
$lang{TEST_LEGEND_ERR} = 'Произошла ошибка.';
ШАГ 3. Вставляем в шаблон (например, test.tpl)
В нужном месте пишем:
<form> ... поля формы ... </form> %LEGEND:test_form_help%
РЕЗУЛЬТАТ:
В шаблоне появится сворачиваемая синяя карточка "Справка".
Внутри будет список:
- Логин *: Ваш логин для входа...
- Пароль *: Пароль должен быть сложным...
- [Зеленый статус] : Все работает хорошо.
- [Красный статус] : Произошла ошибка.