Разработка:Создание плагина — различия между версиями

Материал из DOF
Перейти к: навигация, поиск
(Новая: ==Основные шаги по созданию нового плагина из примера== 1. Выберите тип создаваемого плагина 2. Выберит...)
 
Строка 20: Строка 20:
  
 
==Права доступа==
 
==Права доступа==
==Создание таблицы в БД==
+
==Установка, обновление и удаление плагинов==
==Запуск задание по расписанию==
+
 
 +
Для реализации собственных методов установки, обновления и удаления плагинов, необходимо разместить соответствующий код в методах install(), upgrade($oldversion) и uninstall() плагина. В метод upgrade($oldversion) передается номер старой версии плагина, внутри метода обновления должен располагаться ряд условий вида if ($oldversion < 2008100700), расположенных в порядке возрастания версий. При обновлении, условия срабатывают по очереди, выполняя постепенное обновление структуры БД и других данных со старой версии до текущей.
 +
 
 +
Установка, обновление и удаление плагинов выполняется  через соответствующие методы класса dof_control:
 +
* Установка плагина происходит через метод $DOF->plugin_install($type,$code);
 +
** Проверяет, нет ли уже записи в block_dof_plugins об этом плагине, если есть - ошибка
 +
** Проверяет совместимость интерфейса плагина с интерфесом системы.
 +
** Вызывает собственный метод install() плагина
 +
** Регистрирует плагин как слушателя событий
 +
** Регистрирует плагин в block_dof_plugins
 +
* Обновление $DOF->plugin_upgrade($type,$code);
 +
** Проверяет совместимость интерфейса плагина с интерфесом системы.
 +
** Вызывает собственный метод upgrade($oldver) плагина, передавая ему в качестве параметров старую версию плагина из БД
 +
** Обновляет информацию в БД о зарегистрированном плагине
 +
* Удаление $DOF->plugin_uninstall($type,$code);
 +
** Проверяет, не осталось ли плагинов, зависящих от удаляемого плагина
 +
** Удаляем плагин из списка "слушателей" событий
 +
** Выполняет собственный метод плагина удаления uninstall(), который должен удалить таблицу из БД
 +
** Удаляем плагин из списка зарегистрированных плагинов
 +
 
 +
 
 +
=== Создание таблиц в БД для справочников ===
 +
В родительском классе dof_storage уже реализован стандартный метод install(), использующий файл db/install.xml плагина.
 +
Создание файла install.xml:
 +
 
 +
=== Обновление таблиц в БД для справочников ===
 +
Организация обновления таблиц с помощью классов XMLDBTable и XMLDBField:
 +
 
 +
=== Удаление таблиц в БД для справочников ===
 +
В родительском классе dof_storage уже реализован стандартный метод uninstall(), использующий файл db/install.xml плагина.
 +
 
 +
 
 +
==Запуск заданий по расписанию==
 
==Одноразовое задание для выполнения в фоновом режиме==
 
==Одноразовое задание для выполнения в фоновом режиме==
 
==События==
 
==События==
 
==Обращения к объектам Moodle==
 
==Обращения к объектам Moodle==

Версия 23:16, 18 марта 2009

Основные шаги по созданию нового плагина из примера

1. Выберите тип создаваемого плагина 2. Выберите имя для создаваемого плагина. Имя может состоять из 1-20 латинских букв (без цифры и знаков подчеркивания). 3. Создайте папку по имени плагина в папке, соответствующей типу плагина 4. Скопируйте в эту папку файлы примеры плагина того же типа (начинается на exempl), но проследите, чтоб в папку не попали файлы .svn, которые находятся в каждой папке проекта. 5. Отредактируйте файл init.php. Минимальные правки: имя класса, версия, код плагина, зависимости , прослушиваемые события, минимальный срок между запусками крона в плагине (если нужен крон), другие упоминания старого имени плагина. 6. Отредактируйте языковые файлы. 7. Для плагина типа im - отредактируйте файл lib.php, убрав оттуда упоминания старого имени плагина. Остальные файлы можно удалить или использовать в качестве заготовок страниц.

Основные возможности, которые можно использовать в плагинах

  • Обращение к плагину
  • Получение пути к плагину или файлу внутри него
  • Получение url плагина или файла внутри него
  • Перевод интерфейса
  • Шаблон оформления и элементы навигации
  • Вывод блока в интерфейсе FDO
  • Вывод текста в основной блок в Moodle


Права доступа

Установка, обновление и удаление плагинов

Для реализации собственных методов установки, обновления и удаления плагинов, необходимо разместить соответствующий код в методах install(), upgrade($oldversion) и uninstall() плагина. В метод upgrade($oldversion) передается номер старой версии плагина, внутри метода обновления должен располагаться ряд условий вида if ($oldversion < 2008100700), расположенных в порядке возрастания версий. При обновлении, условия срабатывают по очереди, выполняя постепенное обновление структуры БД и других данных со старой версии до текущей.

Установка, обновление и удаление плагинов выполняется через соответствующие методы класса dof_control:

  • Установка плагина происходит через метод $DOF->plugin_install($type,$code);
    • Проверяет, нет ли уже записи в block_dof_plugins об этом плагине, если есть - ошибка
    • Проверяет совместимость интерфейса плагина с интерфесом системы.
    • Вызывает собственный метод install() плагина
    • Регистрирует плагин как слушателя событий
    • Регистрирует плагин в block_dof_plugins
  • Обновление $DOF->plugin_upgrade($type,$code);
    • Проверяет совместимость интерфейса плагина с интерфесом системы.
    • Вызывает собственный метод upgrade($oldver) плагина, передавая ему в качестве параметров старую версию плагина из БД
    • Обновляет информацию в БД о зарегистрированном плагине
  • Удаление $DOF->plugin_uninstall($type,$code);
    • Проверяет, не осталось ли плагинов, зависящих от удаляемого плагина
    • Удаляем плагин из списка "слушателей" событий
    • Выполняет собственный метод плагина удаления uninstall(), который должен удалить таблицу из БД
    • Удаляем плагин из списка зарегистрированных плагинов


Создание таблиц в БД для справочников

В родительском классе dof_storage уже реализован стандартный метод install(), использующий файл db/install.xml плагина. Создание файла install.xml:

Обновление таблиц в БД для справочников

Организация обновления таблиц с помощью классов XMLDBTable и XMLDBField:

Удаление таблиц в БД для справочников

В родительском классе dof_storage уже реализован стандартный метод uninstall(), использующий файл db/install.xml плагина.


Запуск заданий по расписанию

Одноразовое задание для выполнения в фоновом режиме

События

Обращения к объектам Moodle