Проект плагина Блок "Внешние данные" (отображение данных из внешней БД в личном кабинете пользователя)

Алексей Дьяченко
2020-05-14 18:44
В данной статье описан еще не реализованный проект, который мы проектировали и оценивали для одного из наших клиентов, но по каким-либо причинам так и не реализовали. Если вас заинтересовал данный функционал, вы можете заказать его разработку в компании ООО "Открытые технологии". Ориентировочная оценка в нормо-часах указана под статьей.

Функция 1: отображение данных из внешней БД в виде блока Moodle (реализовано)

Плагин предназначен для отображение данных из внешней БД в личном кабинете пользователя, либо на других экранах системы.

Основным преимуществом данного плагина является универсальность: вам не придется оплачивать разработку каждого виджета, для отображения в личном кабинете информации из внешней базы данных. Достаточно один раз разработать этот плагин, а нужные виджеты ваши специалисты смогут настроить своими силами и изменять их по мере надобности.

Это может быть полезно в следующий ситуациях:

  • Отображение оценок, которые хранятся в другой системе и которые не планируется синхронизировать в Moodle.
  • Отображение данных о договоре/договорах и другой связанной с пользователем инфрмации из внешней системы.
  • Отображение списка методических материалов, имеющих отношение к текущему курсу и хранящихся в другой системе.
  • Отображение списка именинников на главной странице системы (без синхронизации дат рождения в систему).

Плагин представляет собой блок, который размещается на любой странице системы. Поскольку плагин позволяет выполнить произвольный SQL-запрос, по-умолчанию его добавлять может только администратор системы. В целях безопасности, плагин позволяет выполнять только SELECT запросы.

Принцип работы:

  • Администратор добавляет блок на нужную страницу системы, например, в личные кабинеты пользователя. В настройках указывает реквизиты подключения к внешней базе данных, SQL-запрос и шаблон отображения. SQL-запрос может содержать макроподстановки: id/логин/емайл/внешний id текущего пользователя, id пользователя, имеющего отношение к прасматриваемому профилю, id/короткое имя/внешний id курса, на странице которого размещен блок.
  • Пользователь заходит на страницу, на которой размещен блок.
  • Система выполняет SQL-запрос, далее заполняет полученными данными шаблон и отображает данные пользователю.

Функция 2: файлы из внешнего источника

Источник данных - WebDAV (сетевые хранилища файлов, например Яндекс.Диск).
Примеры применения:
  • Отображение ведомостей для слушателя.
  • Отображение сканов справок и других документов для конкретного слушателя.
  • Отображение учебной программы для слушателя.
  • Отображение дополнительных файлов для курса (учебные планы, рабочие программы).
Принцип работы:
  • Администратор добавляет блок на нужную страницу системы, например, в личные кабинеты пользователя.
    • В настройках выбирает включает источник WebDav, указывает реквизиты доступа к источнику.
    • В качестве запроса указывается шаблон пути к файлу, с макроподстановками.
      • Например "{{ username }}/*" - отобразит список файлов, которые находятся в папке, одноименной логину текущего пользователя.
    • В поле шаблона администратор вводит шаблон отображения, который может включать все переменные макроподстановки, а также список выбранных файлов. Каждый файл описывается подстановками - полное имя в источнике (с путем), имя файла, ссылка для скачивания файла.
      • Например: 
        {% for file in files %}
        <a href="{{ fileurl }}"> {{ filename }}</a>
        {% endfor %}
  • Пользователь входит на нужную страницу.
  • Система отображает блок, содержащий список файлов.
  • Пользователь кликает по нужному файлу.
  • Система проверяет проверяет, что файл попадает в выборку, доступную пользователю через текущий блок, затем скачивает файл из источника на сервер и отдает пользователю.

Функция 3: слияние sql-выборки и файлов из внешнего источника.

Если в настройках блока одновременно указано два источника: и sql и webdav, в шаблоне запроса файла можно использовать макроподстановки, содержащие поля, запрошенные из sql.

В шаблон передается список результатов sql-выборки, для каждой строки которой передается список результатов запроса файлов по этой строке.

Примеры применения:

  • Отобразить список дисциплин из внешней базы данных и приложенные к дисциплинам файлы, каждый из которых лежит в папке, названной по коду дисциплины.
  • Отобразить список договоров или заказанных справок с названиями и датами документов из внешней базы данных и файлами сканов, названными по номеру и дате документа.
 
Оценка
Функция 1: Реализовано
Функция 2 + функция 3: 24 нормо-часа

Tags: блок, блоки, личный кабинет
Average rating: 0 (0 Votes)

You cannot comment on this entry