Разработка:storages/reports — различия между версиями
Dido86 (обсуждение | вклад) |
Ivanov (обсуждение | вклад) |
||
(не показано 6 промежуточных версий 3 участников) | |||
Строка 5: | Строка 5: | ||
===Таблица в базе данных=== | ===Таблица в базе данных=== | ||
− | ''reports'' - Отчеты о деятельности учителей и учеников. | + | ''reports'' - Отчеты о деятельности учителей и учеников. Изначально через интерфейс "заказывается" отчет(полный или краткий) по учителям или ученикам и лишь потом с использованием КРОНА отчет формируется(срабатывание крона раз в сутки по умолчанию) |
====Подробный формат полей в таблице:==== | ====Подробный формат полей в таблице:==== | ||
Строка 15: | Строка 15: | ||
* requestdate - когда запросил отчет | * requestdate - когда запросил отчет | ||
* completedate - когда отчет был завершен | * completedate - когда отчет был завершен | ||
+ | * crondate - время, раньше которого отчёт не будет собираться(иными словами, когда отчету начать собираться) | ||
* status (пока без workflow) - requested(запрошен), completed(сформирован), error(ошибка) | * status (пока без workflow) - requested(запрошен), completed(сформирован), error(ошибка) | ||
* departmentid, - id подразделения из талицы [[Разработка:storages/departments | departments ]], которому принадлежит отчет | * departmentid, - id подразделения из талицы [[Разработка:storages/departments | departments ]], которому принадлежит отчет | ||
Строка 21: | Строка 22: | ||
* enddate - по какой период собираются данные для отчета(необязательно) | * enddate - по какой период собираются данные для отчета(необязательно) | ||
* requestdata - дополнительные данные для формирования отчета (будет хранится сериализованный объект). Текст, 64 килобайта. Индекс не * создавать(необязательно) | * requestdata - дополнительные данные для формирования отчета (будет хранится сериализованный объект). Текст, 64 килобайта. Индекс не * создавать(необязательно) | ||
− | * filepath - путь к файлу. имя файла - это id записи. Расширение dat. | + | * filepath - относительный путь к файлу. имя файла - это id записи. Расширение dat. |
=== Правила составления отчетов === | === Правила составления отчетов === | ||
Строка 39: | Строка 40: | ||
dof_'''sync'''_'''mreports'''_report_'''studentshort''' | 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() ===== | ||
+ | Дополнительный метод, который переопределяется в дочерних классах отчетов, и определяет каким именно образом будут обрабатываться данные из файла отчета. | ||
+ | ===== generate_data (protected) ===== | ||
+ | Метод, предусмотренный для расширения логики генерации файла в дочерних классах. | ||
+ | ===== add_report_css ===== | ||
+ | Метод, предусмотренный для добавления css файлов до печати шапки документа. Переопределяется в дочернем классе. | ||
+ | ===== add_report_js ===== | ||
+ | Метод, предусмотренный для добавления js файлов до печати шапки документа. Переопределяется в дочернем классе. | ||
+ | ===== templater_csv_show_header ===== | ||
+ | Поддержка отчетом заголовков в csv-формате. |
Текущая версия на 19:00, 16 января 2017
Плагин | |
Название | reports |
Тип | storages |
Содержание
Таблица в базе данных
reports - Отчеты о деятельности учителей и учеников. Изначально через интерфейс "заказывается" отчет(полный или краткий) по учителям или ученикам и лишь потом с использованием КРОНА отчет формируется(срабатывание крона раз в сутки по умолчанию)
Подробный формат полей в таблице:
- plugintype - тип плагина (storage,im....)
- plugincode - код плагтна
- code - код отчета внутри плагина.
- name - название отчета русскими буквами. Генерируется в момент создания
- personid - id из талицы persons того,кто запросил отчет
- requestdate - когда запросил отчет
- completedate - когда отчет был завершен
- crondate - время, раньше которого отчёт не будет собираться(иными словами, когда отчету начать собираться)
- 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()
Дополнительный метод, который переопределяется в дочерних классах отчетов, и определяет каким именно образом будут обрабатываться данные из файла отчета.
generate_data (protected)
Метод, предусмотренный для расширения логики генерации файла в дочерних классах.
add_report_css
Метод, предусмотренный для добавления css файлов до печати шапки документа. Переопределяется в дочернем классе.
add_report_js
Метод, предусмотренный для добавления js файлов до печати шапки документа. Переопределяется в дочернем классе.
templater_csv_show_header
Поддержка отчетом заголовков в csv-формате.