Розробка створення плагіна
Основні кроки зі створення нового плагіна з прикладу
- Виберіть тип створюваного плагіна
- Виберіть ім'я для створюваного плагіна. Ім'я може складатися з 1-20 латинських букв (без цифри і знаків підкреслення).
- Створіть папку на ім'я плагіна в папці, яка відповідає типу плагіна
- Скопіюйте в цю папку файли приклади плагіна того ж типу (починається на exempl), але простежте, щоб в папку не були файли .svn, які знаходяться в одній папці проекту.
- Відредагуйте файл init.php. Мінімальні правки: ім'я класу, версія, код плагіна, залежності. прослуховуються події, мінімальний термін між запусками крона в плагіні (якщо потрібен крон), інші згадки старого імені плагіна.
- Відредагуйте мовні файли.
- Для плагіна типу im - відредагуйте файл lib.php, прибравши звідти згадки старого імені плагіна. Інші файли можна видалити або використовувати в якості заготовок сторінок.
Основні можливості, які можна використовувати в плагінах
- Звернення до плагіну
- Отримання шляху до плагіну або файлу всередині нього
- Отримання url плагіна або файлу всередині нього
- Переклад інтерфейсу
- Шаблон оформлення та елементи навігації
- Висновок блоку в інтерфейсі FDO
- Виведення тексту в основний блок в Moodle
Права доступу
Установка, оновлення та видалення плагінів
Установка, оновлення та видалення плагінів виконується через відповідні методи класу 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 (), який повинен видалити таблицю з БД
- Видаляємо плагін зі списку зареєстрованих полігонів
- Контроль можливості установки і оновлення плагінів з урахуванням залежностей: якщо клас плагіна містить метод is_setup_possible ($ oldversion), де $ oldversion - це номер старої версії плагіна або NULL, якщо цей доданок не був поки встановлений, то він буде запущений перед спробою автоматичної установки всіх плагінів. Якщо метод поверне true, буде зроблена спроба його установки, якщо матод поверне false - плагін буде пропущений. Після установки першої групи плагінів, для котори is_setup_possible () повернула true, перевірка буде виконана повторно і так до тих пір, поки залишиться хоч би один плагін, придатний для установки. Ця функція призначена для перевірки залежностей, актуальних саме в момент установки плагінів, тому повинна повертати false якщо установка дійсно неможливо або якщо плагін, від якого залежить поточний зовсім відсутній в системі. Це дозволяє налаштовувати порядок поновлення плагінів так, щоб якщо потрібно спершу оновити один плагін, а потім інший, дана послідовність була дотримана.
Створення таблиць в БД для довідників
У батьківському класі dof_storage вже реалізований стандартний метод install (), який використовує файл db / install.xml плагіна. Створення файлу install.xml:
Оновлення таблиць в БД для довідників
Організація поновлення таблиць за допомогою класів XMLDBTable і XMLDBField:
Метод відновлення з Moodle 2.0
Старий метод оновлення.
Видалення таблиць в БД для довідників
У батьківському класі dof_storage вже реалізований стандартний метод uninstall (), який використовує файл db / install.xml плагіна.