Модуль предназначен для введения возможностей универсальных комментариев для любого объекта в системе.
На данный момент поддерживается возможность ведения текстовых комментариев.
В дальнейшем планируются ведение координат и фотографий объекта.
Установка
Создать таблицы в базе.
mysql --default-character-set=utf8 -D abills < db/Info.sql
Подключение модуля. abills/libexec/config.pl
@MODULES = ( 'Info' );
Создайте папки для хранения документов и картинок:
mkdir -p /usr/abills/Abills/templates/Info/docs/ сhown -R apache /usr/abills/Abills/templates/Info/docs/ mkdir -p /usr/abills/Abills/templates/Info/images/ chown -R apache /usr/abills/Abills/templates/Info/images/
Структура
Модуль состоит из файлов:
Abills\mysql\Info.pm
Abills\modules\Info\webinterface
cgi-bin\styles\default\js\info.js
cgi-bin\styles\default\css\info.css
В файле cgi-bin\styles\default\js\info.js содержатся JavaScript функции для реализации AJAX технологии. Это позволяет удалять, добавлять и обновлять блок комментариев без перезагрузки страницы.
В файле cgi-bin\styles\default\js\info.css стили для шаблонов.
Использование
Для отображения блока комментариев используется функция show_comments($object_type, $object_id, $attr).
Аргументы функции:
$object_type - тип объекта (Название таблицы). Служит для создания уникального ключа идентификации комментариев.
$object_id - id объекта
$attr - дополнительные атрибуты для tpl_show();
Результатом выполнения функции будет вывод HTML-кода с блоком комментариев, в котором присутствуют кнопки для добавления и удаления комментариев.
Каждому добавленному комментарию присваивается текущее время и id администратора, который добавил комментарий.
Пример:
load_module('Info', $html); info_comments_show('admins', 25); # Show comments for 'admins' table object with id 25
Для отображения блока комментариев в боксе нужно использовать следующий пример:
load_module('Info', $html); info_comments_show('admins', 25, { WITH_BOX => 1 }); # Show comments for 'admins' table object with id 25
Чтобы в данный блок записывался комментарий, которые администратор вносит/изменяет в блоке пользователя "Информация", нужно добавить параметр в config.pl
$conf{INFO_ADD_COMMENT_TO_STORY} = 1;
Разрешить/Запретить удаление комментария администратору можно в меню Настройка>Администраторы>Права.
31 | Удалить Комментарии | Удаление комментариев в кабинете абонента |
Внешний API модуля
Для получения списка комментариев используется функция $Info→get_comments ($type, $id, $attr)
Аргументы функции:
$object_type - тип объекта (Название таблицы). Служит для создания уникального ключа идентификации комментария.
$object_id - id объекта
$attr - дополнительные атрибуты для SQL-запроса (SORT, PAGE_ROWS , DESC, PG);
Возвращает массив комментариев для объекта.
Пример:
my $comments = $Info->get_comments('admins', 2, { COLS_NAME => 1 });
В переменной $comments получим указатель на массив со структурой:
[ { 'id' => 2, # Id of comment in `comments` table 'text' => 'This guy is awesome', # Text of comment 'date' => '01.01.2016 01:02:59', # DateTime when comment was leaved 'name' => 'John' # Name of administrator who leaved comment } ]
Подключено
Страницы на которых реализовано использование модуля:
- Клиенты>Логины>Информация - кабинет пользователя
Поиск по комментариям
Система позволяет сделать поиск по комментариям с помощью глобального поиска:
Если комментарий существует, он будет успешно найден. Следующее, что вы увидите после успешного поиска - название модуля и количество найденных совпадений:
Чтобы посмотреть подробную информацию о комментариях, нажмите на циферку, которая обозначает количество найденных совпадений. Вы увидите список найденных комментариев:
В данной таблице есть возможность редактировать комментарии, для этого нажмите на карандаш напротив комментария, вам откроется страница где будет указан старый комментарий, а также поле для ввода нового
Лог комментариев
Чтобы посмотреть лог изменений в комментария зайдите в Отчет>Комментарии
или в Настройка>Администраторы>История