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.