LMS Moodle з погляду програміста, CEE-SECR 2016
LMS Moodle з погляду програміста
Доповідь та майстер-клас присвячені найпопулярнішій у світі системі дистанційного навчання – LMS Moodle.
Доповідь розрахована як на технічних фахівців у галузі Moodle, так і на звичайних програмістів, знайомих з PHP, та керівників технічних підрозділів дистанційного навчання.
Рівень підготовки слухачів – середній.
У доповіді буде розказано про архітектуру Moodle, загальні підходи до програмування доповнень, типи модулів, глобальні зміни у версіях, структуру БД, роботу з SQL-запитами, Data API, Output API, безпеку, роботу з Javascript/AMD.
Moodle – найпопулярніша система дистанційного навчання у світі. Програмувати під Moodle складно, точніше, “в'язко”: у базовій установці там 320+ таблиць бази даних, їх активно використовується 20-30. Якщо порівняти Moodle з іншою open source системою – WordPress, то Moodle має істотні недоліки з погляду програмування: відсутність “гачків”, яких можна безболісно прив'язати код, add_action і add_filter в WP.
Щоб програмувати під Moodle необхідні три речі: розуміти архітектуру та прийоми, добре знати ОВП та чудово знати SQL.
Абревіатура Moodle розшифровується як Modular Object-Oriented Dynamic Learning Environment, тобто. Ідея в тому, що система являє собою набір пов'язаних між собою об'єктних модулів як core, так і extend. Вони мають єдину архітектуру файлів. Extend модулі поділяються на типи, і під своє завдання потрібно вибрати правильний тип модуля. Іноді для одного завдання доводиться писати кілька пов'язаних модулів, Moodle це дозволяє робити. У різних модулів можуть бути різні точки входу.
Moodle має свої API для роботи з різнимичастинами, наприклад, API роботи з БД, з висновком, HTML, Cache і т.п. FrontEnd на даний момент заснований на поєднанні YUI (Yahoo User Interface) і AMD-модулів (RequireJS), в підключенні JS теж є свої тонкощі та API.
Про все це ми поговоримо на доповіді та наступному майстер-класі.
Ігор Сазонов

Програміст, LMSTech
Програміст. Закінчив ІТМО. Програмую (саме програмую, а не качаю і встановлюю плагіни, правлячи CSS/HTML). Люблю багато абстракції у програмуванні. В силу потреби – зараз програмую під Moodle. C-організатор спільнот SPb e-Learning, SPb WordPress.