Разработка:storages/reports
Плагин | |
Название | reports |
Тип | storages |
Таблица в базе данных
reports - Отчеты о деятельности учителей и учеников. Изначально через интерфейс "заказывается" отчет(полный или краткий) по учителям или ученикам и лишь потом с испотльзованием КРОНА отчет формируется(срабатывание крона раз в сутки)
Подробный формат полей в таблице:
- plugintype - тип плагина (storage,im....)
- plugincode - код плагтна
- code - код отчета внутри плагина.
- name - название отчета русскими буквами. Генерируется в момент создания
- personid - id из талицы persons того,кто запросил отчет
- requestdate - когда запросил отчет
- completedate - когда отчет был завершен
- status (пока без workflow) - requested(запрошен), completed(сформирован), error(ошибка)
- departmentid, - id подразделения из талицы departments , которому принадлежит отчет
- objectid - id объекта по которому запрашивается отчет(необязательно)
- begindate- с какого периода собираются данные для отчета(необязательно)
- enddate - по какой период собираются данные для отчета(необязательно)
- requestdata - дополнительные данные для формирования отчета (будет хранится сериализованный объект). Текст, 64 килобайта. Индекс не * создавать(необязательно)
- filepath - путь к файлу. имя файла - это id записи. Расширение dat.
Правила составления отчетов
Все классы, собирающие данные для отчетов должны наследоваться от класса dof_storage_reports_basereport. Файл с классом сбора данных для отчета должен находиться в папке плагина:
/reports/<код_отчета>/init.php
и называться
dof_<код плагина>_<название плагина>_report_<код отчета>
Пример
Для отчета с кодом "studentshort".
Путь к файлу:
/dof/sync/mreports/reports/studentshort/init.php
Название класса:
dof_sync_mreports_report_studentshort
Класс dof_storage_reports_basereport
plugintype()
Абстрактный метод. В нем устанавливается тип плагина, в котором находится класс отчета.
plugincode()
Абстрактный метод. В нем устанавливается код плагина, в котором находится класс отчета.
code()
Абстрактный метод. Код самого отчета. В одном плагине не должно быть двух отчетов с одинаковым кодом.
name()
Абстрактный метод. Полное название отчета. Может генерироваться во время сбора данных по отчету.
save()
Метод, создающий структуру объекта для вставки в базу. Метод вызывается автоматически, и его не следует переопределять без необходимости. Если нужно дополнить или изменить логику сохранения данных - то переопределяется метод save_data().
save_data()
Метод, которые следует переопределить в дочернем классе, если нужно добавить новые данные в объект отчета. Входные параметры:
- (object) $report - объект данных для отчета.
Возвращаемые значения:
- (object) $report - дополненный объект с данеными для отчета.
generate()
Эта функция запускает процес сбора данных для отчета.
load()
Загрузить данные для отчета из базы данных
load_file()
Загрузить данные для отчета из файла
load_data()
Дополнительный метод, который переопределяется в дочерних классах отчетов, и определяет каким именно образом будут обрабатываться данные из файла отчета.