SlideShare a Scribd company logo
Moodle с точки зрения пользователя и
программиста
Igor Sazonov ( @tigusigalpa, lmstech.ru / lms-service.org )
IT Global Meetup #5, Saint-Petersburg, Russia, June 6, 2015
Банальная информация
 Moodle – Modular Object-Oriented Dynamic Learning
Environment ( Модульная объектно-ориентированная
динамическая среда )
 Бесплатная open-source система ( https://moodle.org/ )
 Количество пользователей: ~71 485 909
 Количество стран: 222
 Текущая версия: 2.9
 Доля среди LMS: 96%
 Первая версия: 2003 год
* https://wappalyzer.com/categories/lms
Преимущества
 Бесплатный
 Огромное комьюнити
 Постоянные обновления (раз в полгода) и
улучшения по просьбам пользователей
 Много возможностей и настроек (?!)
 Много разных плагинов
Недостатки
 Большое число настроек
 Сложность освоения
 Требуется сервер с мощными ресурсами
 Ограниченные возможности по
кастомизации внешнего вида
 Сложная архитектура БД
 «Жесткая» структура файлов и классов
 Малое количество документации
Расслабьтесь
Moodle с точки зрения пользователя
 Управление курсами
 Управление элементами курсов
 Система ролей
 Система отчетов
 Банк вопросов
 Блоки
 Языки интерфейса
 Дополнительные плагины
Управление курсами
Курс – конечная сущность, состоящая из элементов курса (тесты, задания,
лекции)
Курс может быть представлен одним из форматов:
 Разделы по неделям – организует расписание курса (неделя за неделей) с точным
сроком начала и окончания. Каждая неделя это модуль курса.
 Разделы по темам – внешне похож на Разделы по неделям, но не имеет временных
ограничений и не привязан к календарю. Каждая неделя это модуль курса.
 Форум – курс организуется на основе одного большого форума. Может
использоваться как одна большая доска сообщений
Управление элементами курсов
Элемент курса – одна из составляющих
курса, может быть представлена Тестом,
Заданием, Лекцией, Опросом итп
Система ролей
Роль – набор разрешений (прав), определенных для
всей системы, Вы можете назначить роль пользователю
или создать свою роль. Роль подчиняется уровням (сайт,
категория, курс итд).
 Управляющий – управляющие имеют доступ к курсу и могут изменять его.
Они, как правило, не участвуют в курсах.
 Создатель курса – создатели курсов могут создавать новые курсы.
 Учитель – учителя могут делать в курсе всё, в том числе изменять элементы
курса и оценивать студентов.
 Ассистент (без права редактирования) – ассистент может преподавать в
курсах и выставлять оценки, но он не может изменять содержание курса.
 Студент – обычно студенты обладают меньшим набором прав в рамках курса.
 Гость – обычно гости имеют минимальный набор прав и не могут нигде
вводить текст.
Администрирование > Пользователи > Права >
Система ролей
Контексты – участники иерархической архитектуры зависимости прав относительно
конкретного элемента системы.
Количество прав, которые можно назначить роли – более 520
Например, Управлять файлами в области личных файлов или Просматривать
профили других пользователей.
Система отчетов (в рамках курса)
Отчет по оценкам
 Отчет формируется для каждого пользователя согласно пройденным им
элементам курса
 История оценок: все попытки пользователя, втч и неудачные
 Можно даже назначать оценки
 Поддержка экспорта в форматы OpenDocument, Excel, XML, текстовый файл
Настройки Курса > Управление курсом > Оценки
Журнал событий
Отчет о всевозможных действиях пользователей на сайте
Настройки Курса > Управление курсом > Отчеты
Банк вопросов
Банк вопросов позволяет управлять всеми вопросами, которые есть во
всех тестах текущего курса.
Вы можете редактировать, дублировать, удалять, править вопросы из
списка Банка вопросов курса.
Настройки курса > Управление тестом > Банк вопросов
Блоки
Блоки – это виджеты с определенном контентом, которые могут
добавлены на страницу в Moodle (обычно в колонках справа или слева).
Они могут быть как встроенные в Moodle, так и предоставляемые
сторонними плагинами (в данном случае это понятие «Блок»).
https://docs.moodle.org/29/en/Blocks
Языки интерфейса
В Moodle, начиная с версии 2.5 внедрена поддержка
переключения языка интерфейса (не контента!).
Дополнительные плагины
 Модули / плагины разделяются на категории по их
функциональности
 Установка только через FTP
 https://moodle.org/plugins/
Moodle с точки программиста
 Проблемы для программиста
 Полезные функции и глобальные переменные
 Система контекстов
 Логирование отчетов
 Написание плагинов, блоков
 Работа с БД
Проблемы для программиста
 Мало документации (система узкоспециализирована)
 Не проинициализированы подключения файлов
 328 таблиц в Базе Данных !!!
 Строгая структура файлов
 Строгое разделение плагинов на блоки / модули
 Запутанная система работы с javascript
Полезные функции и переменные
 create_course($data)
 Функция для создания курса, записывает в таблицу course
значения объекта (!) $data (ключи = колонки таблицы)
 course/lib.php
 optional_param($parname, $default, $type)
 Обрабатывает параметры из $_GET, $_POST по ключу
$parname, если ключ пустой, то возвращает $default, а
также проверяет полученное значение $type
 lib/moodlelib.php
 get_config($plugin)
 Возвращает объект всех опций плагина $plugin из таблицы
config_plugins
 lib/moodlelib.php
Полезные функции и переменные
 $CFG – глобальная переменная-объект с системными
данными (wwwroot (http://site.ru), libdir (/lib), tempdir)
 require_capability($capability, $context);
 Функция запрашивает права $capability на показ $context
 lib/accesslib.php
 get_string($string_id, $component);
Примеры:
 $id = optional_param('id', '', PARAM_INT);
 $new_course = create_course($object);
 include_once($CFG->libdir . '/formslib.php');
Система контекстов
Контексты имеют так называемые context level:
define('CONTEXT_SYSTEM', 10);
define('CONTEXT_USER', 30);
define('CONTEXT_COURSECAT', 40);
define('CONTEXT_COURSE', 50);
define('CONTEXT_MODULE', 70);
define('CONTEXT_BLOCK', 80);
 Каждое право «подчиняется» своему contextlevel
 Чем contextlevel меньше, тем больше прав
 Каждая сущность в Moodle должна иметь свой контекст
 Таблица context
https://docs.moodle.org/dev/Access_API
Логирование отчетов
Каждое действие должно (желательно) логироваться.
Функции работы с логированием:
 add_to_log($courseid, $module, $action, $url='', $info='',
$cm=0, $user=0)
 $coursed – ID курса
 $module – имя модуля/плагина которое совершает $action
 $action – 'view', 'update', 'add' или 'delete‘
 $cm – id модуля курса
 $user – id пользователя, который совершает $action
 get_logs($select, array $params=null, $order='l.time DESC',
$limitfrom='', $limitnum='', &$totalcount)
 get_logs_usercourse($userid, $courseid, $coursestart)
https://docs.moodle.org/dev/Logging_API
Написание плагинов/блоков
Плагины в Moodle имеют довольно много типов (блоки,
утилиты админ панели итп):
https://docs.moodle.org/dev/Plugin_types
Общие моменты:
 Точка входа – файл php (его имя должно соответствовать
типу плагина)
 Точка входа – это класс, который наследуется от базового
класса нужного типа плагина. Этот класс может
переписывать методы родительского класса.
 Структура каталогов одинаковая
Написание плагинов/блоков
Пример структуры каталогов и главного
класса блока simplehtml =>
Пример инициализации входного класса
Работа с БД
 СУБД может быть как MySQL так и Postgresql
 С БД работает глобальный объект $DB ( global $DB; )
Примеры:
 $user = $DB->get_record('user', array('id'=>'1'));
 $DB->get_records($table, array $conditions=null, $sort='', $fields='*', $limitfrom=0,
$limitnum=0)
 $DB->set_field($table, $newfield, $newvalue, array $conditions=null)
 $DB->delete_records($table, array $conditions=null)
 $DB->insert_record($table, $dataobject, $returnid=true, $bulk=false)
 $DB->update_record($table, $dataobject, $bulk=false)
 ………..
https://docs.moodle.org/dev/Data_manipulation_API
Moodle с точки зрения пользователя и программиста

More Related Content

What's hot

презентация Moodle
презентация Moodleпрезентация Moodle
презентация Moodle
ksanka90
 
Библия дистанционного и смешанного обучения
Библия дистанционного и смешанного обученияБиблия дистанционного и смешанного обучения
Библия дистанционного и смешанного обучения
Dr. Jury Belonozhkin
 
1 09 Использование возможностей Lms Moodle для смешанного обучения Опыт Мари...
1 09 Использование возможностей Lms Moodle для смешанного обучения  Опыт Мари...1 09 Использование возможностей Lms Moodle для смешанного обучения  Опыт Мари...
1 09 Использование возможностей Lms Moodle для смешанного обучения Опыт Мари...Сообщество eLearning PRO
 
Презентация Игоря Сазонова на IT Global Meetup #5
Презентация Игоря Сазонова на IT Global Meetup #5Презентация Игоря Сазонова на IT Global Meetup #5
Презентация Игоря Сазонова на IT Global Meetup #5
Lilia Smirnova
 
Moodle Overview | Анатолий Бакал
Moodle Overview | Анатолий БакалMoodle Overview | Анатолий Бакал
Moodle Overview | Анатолий Бакал
Anatoliy Bakal
 
Moodle
MoodleMoodle
Moodle
Igor Gis
 
АЭК. Введение
АЭК. ВведениеАЭК. Введение
АЭК. Введение
Natalya Shishlina
 
Moodle в учебном процессе
Moodle в учебном процессеMoodle в учебном процессе
Moodle в учебном процессе
nkorolev
 
Дистанционное обучение в Чувашии
Дистанционное обучение в ЧувашииДистанционное обучение в Чувашии
Дистанционное обучение в Чувашии
Atner Yegorov
 
Внедрение Moodle в Днепропетровской медицинской академии
Внедрение Moodle в Днепропетровской медицинской академии Внедрение Moodle в Днепропетровской медицинской академии
Внедрение Moodle в Днепропетровской медицинской академии
Alexey Dubinsky
 
Moodle
MoodleMoodle
Moodle
elenadezurko
 
2 - 12 - Методические подходы к обучению с помощью веб 2.0 - Андреев А. А.
2 - 12 - Методические подходы к обучению с помощью веб 2.0 - Андреев А. А.2 - 12 - Методические подходы к обучению с помощью веб 2.0 - Андреев А. А.
2 - 12 - Методические подходы к обучению с помощью веб 2.0 - Андреев А. А.
Сообщество eLearning PRO
 
Web 2 0 in Edu
Web 2 0 in EduWeb 2 0 in Edu
Web 2 0 in Edu
Marina Buharkina
 
Интернет в образовании: путеводитель
Интернет в образовании: путеводительИнтернет в образовании: путеводитель
Интернет в образовании: путеводитель
Mikhail Rozhkov
 
Moodle
MoodleMoodle
Moodle
Irina___
 
Разработка и применение УМК с помощью сервиса UDUTU.COM
Разработка и применение УМК с помощью сервиса UDUTU.COMРазработка и применение УМК с помощью сервиса UDUTU.COM
Разработка и применение УМК с помощью сервиса UDUTU.COMasfadell24
 
информационная среда ниу вшэ
информационная среда ниу вшэинформационная среда ниу вшэ
информационная среда ниу вшэMmore_m
 
Moodle manual
Moodle manualMoodle manual
Moodle manual
Dr. Jury Belonozhkin
 

What's hot (20)

презентация Moodle
презентация Moodleпрезентация Moodle
презентация Moodle
 
Библия дистанционного и смешанного обучения
Библия дистанционного и смешанного обученияБиблия дистанционного и смешанного обучения
Библия дистанционного и смешанного обучения
 
1 09 Использование возможностей Lms Moodle для смешанного обучения Опыт Мари...
1 09 Использование возможностей Lms Moodle для смешанного обучения  Опыт Мари...1 09 Использование возможностей Lms Moodle для смешанного обучения  Опыт Мари...
1 09 Использование возможностей Lms Moodle для смешанного обучения Опыт Мари...
 
Презентация Игоря Сазонова на IT Global Meetup #5
Презентация Игоря Сазонова на IT Global Meetup #5Презентация Игоря Сазонова на IT Global Meetup #5
Презентация Игоря Сазонова на IT Global Meetup #5
 
Moodle Overview | Анатолий Бакал
Moodle Overview | Анатолий БакалMoodle Overview | Анатолий Бакал
Moodle Overview | Анатолий Бакал
 
Moodle
MoodleMoodle
Moodle
 
АЭК. Введение
АЭК. ВведениеАЭК. Введение
АЭК. Введение
 
Moodle в учебном процессе
Moodle в учебном процессеMoodle в учебном процессе
Moodle в учебном процессе
 
Дистанционное обучение в Чувашии
Дистанционное обучение в ЧувашииДистанционное обучение в Чувашии
Дистанционное обучение в Чувашии
 
Внедрение Moodle в Днепропетровской медицинской академии
Внедрение Moodle в Днепропетровской медицинской академии Внедрение Moodle в Днепропетровской медицинской академии
Внедрение Moodle в Днепропетровской медицинской академии
 
Moodle
MoodleMoodle
Moodle
 
2 - 12 - Методические подходы к обучению с помощью веб 2.0 - Андреев А. А.
2 - 12 - Методические подходы к обучению с помощью веб 2.0 - Андреев А. А.2 - 12 - Методические подходы к обучению с помощью веб 2.0 - Андреев А. А.
2 - 12 - Методические подходы к обучению с помощью веб 2.0 - Андреев А. А.
 
Moodle ru
Moodle ruMoodle ru
Moodle ru
 
сервисы Web 2
сервисы Web 2сервисы Web 2
сервисы Web 2
 
Web 2 0 in Edu
Web 2 0 in EduWeb 2 0 in Edu
Web 2 0 in Edu
 
Интернет в образовании: путеводитель
Интернет в образовании: путеводительИнтернет в образовании: путеводитель
Интернет в образовании: путеводитель
 
Moodle
MoodleMoodle
Moodle
 
Разработка и применение УМК с помощью сервиса UDUTU.COM
Разработка и применение УМК с помощью сервиса UDUTU.COMРазработка и применение УМК с помощью сервиса UDUTU.COM
Разработка и применение УМК с помощью сервиса UDUTU.COM
 
информационная среда ниу вшэ
информационная среда ниу вшэинформационная среда ниу вшэ
информационная среда ниу вшэ
 
Moodle manual
Moodle manualMoodle manual
Moodle manual
 

Viewers also liked

1С_Moodle
1С_Moodle1С_Moodle
Что такое Moodle | Анатолий Бакал
Что такое Moodle | Анатолий БакалЧто такое Moodle | Анатолий Бакал
Что такое Moodle | Анатолий Бакал
Anatoliy Bakal
 
Moodle Mobile SCORM 1.2 player
Moodle Mobile SCORM 1.2 playerMoodle Mobile SCORM 1.2 player
Moodle Mobile SCORM 1.2 player
Juan Leyva Delgado
 
Moodle в школе
Moodle в школеMoodle в школе
Moodle в школеolgapiv
 
презентация Moodle
презентация Moodleпрезентация Moodle
презентация Moodleksanka90
 
Moodle Mobile offline features
Moodle Mobile offline featuresMoodle Mobile offline features
Moodle Mobile offline features
Juan Leyva Delgado
 
Теория и практика использования системы управления обучением Moodle 2.6
Теория и практика использования системы управления обучением Moodle 2.6Теория и практика использования системы управления обучением Moodle 2.6
Теория и практика использования системы управления обучением Moodle 2.6
Самарский государственный социально-педагогический университет
 
Moodle
MoodleMoodle
Creating a custom Moodle Mobile app - MoodleMoot Spain 2014
Creating a custom Moodle Mobile app -  MoodleMoot Spain 2014Creating a custom Moodle Mobile app -  MoodleMoot Spain 2014
Creating a custom Moodle Mobile app - MoodleMoot Spain 2014
Juan Leyva Delgado
 
Mobile learning with moodle
Mobile learning with moodleMobile learning with moodle
Mobile learning with moodle
Juan Leyva Delgado
 
Creating Moodle Mobile remote themes
Creating Moodle Mobile remote themesCreating Moodle Mobile remote themes
Creating Moodle Mobile remote themes
Juan Leyva Delgado
 
The Best Moodle Modules and Plugins
The Best Moodle Modules and PluginsThe Best Moodle Modules and Plugins
The Best Moodle Modules and Plugins
Rafael Scapin, Ph.D.
 

Viewers also liked (12)

1С_Moodle
1С_Moodle1С_Moodle
1С_Moodle
 
Что такое Moodle | Анатолий Бакал
Что такое Moodle | Анатолий БакалЧто такое Moodle | Анатолий Бакал
Что такое Moodle | Анатолий Бакал
 
Moodle Mobile SCORM 1.2 player
Moodle Mobile SCORM 1.2 playerMoodle Mobile SCORM 1.2 player
Moodle Mobile SCORM 1.2 player
 
Moodle в школе
Moodle в школеMoodle в школе
Moodle в школе
 
презентация Moodle
презентация Moodleпрезентация Moodle
презентация Moodle
 
Moodle Mobile offline features
Moodle Mobile offline featuresMoodle Mobile offline features
Moodle Mobile offline features
 
Теория и практика использования системы управления обучением Moodle 2.6
Теория и практика использования системы управления обучением Moodle 2.6Теория и практика использования системы управления обучением Moodle 2.6
Теория и практика использования системы управления обучением Moodle 2.6
 
Moodle
MoodleMoodle
Moodle
 
Creating a custom Moodle Mobile app - MoodleMoot Spain 2014
Creating a custom Moodle Mobile app -  MoodleMoot Spain 2014Creating a custom Moodle Mobile app -  MoodleMoot Spain 2014
Creating a custom Moodle Mobile app - MoodleMoot Spain 2014
 
Mobile learning with moodle
Mobile learning with moodleMobile learning with moodle
Mobile learning with moodle
 
Creating Moodle Mobile remote themes
Creating Moodle Mobile remote themesCreating Moodle Mobile remote themes
Creating Moodle Mobile remote themes
 
The Best Moodle Modules and Plugins
The Best Moodle Modules and PluginsThe Best Moodle Modules and Plugins
The Best Moodle Modules and Plugins
 

Similar to Moodle с точки зрения пользователя и программиста

компоненты E learn для Plone
компоненты E learn для Ploneкомпоненты E learn для Plone
компоненты E learn для PloneSergey Greger
 
C# Desktop. Занятие 01.
C# Desktop. Занятие 01.C# Desktop. Занятие 01.
C# Desktop. Занятие 01.
Igor Shkulipa
 
Использование e-learning в последипломном медицинском образовании
Использование e-learning в последипломном медицинском образованииИспользование e-learning в последипломном медицинском образовании
Использование e-learning в последипломном медицинском образовании
Zalim Balkiz
 
Виртуальный Кампус МЭСИ
Виртуальный Кампус МЭСИВиртуальный Кампус МЭСИ
Виртуальный Кампус МЭСИ
Tatiana Kozlova
 
Общие темы. Тема 02.
Общие темы. Тема 02.Общие темы. Тема 02.
Общие темы. Тема 02.
Igor Shkulipa
 
006
006006
006JIuc
 
Азы мультисайтинга
Азы мультисайтингаАзы мультисайтинга
Азы мультисайтингаDrupal Camp Kyiv
 
азы мультисайтинга
азы мультисайтингаазы мультисайтинга
азы мультисайтингаInna Tuyeva
 
239649.ppt
239649.ppt239649.ppt
Построение образовательного сайта с системой интерактивного тестирования на б...
Построение образовательного сайта с системой интерактивного тестирования на б...Построение образовательного сайта с системой интерактивного тестирования на б...
Построение образовательного сайта с системой интерактивного тестирования на б...
Alexey Kostin
 
исследовательская работа из опыта преподавания с использованием обучающей ср...
исследовательская работа из опыта преподавания  с использованием обучающей ср...исследовательская работа из опыта преподавания  с использованием обучающей ср...
исследовательская работа из опыта преподавания с использованием обучающей ср...salimaader
 
Symfony 3
Symfony 3Symfony 3
Продвинутый мультисайтинг
Продвинутый мультисайтингПродвинутый мультисайтинг
Продвинутый мультисайтингDrupal Camp Kyiv
 
продвинутый мультисайтинг
продвинутый мультисайтингпродвинутый мультисайтинг
продвинутый мультисайтингInna Tuyeva
 
Eleanor CMS
Eleanor CMSEleanor CMS
Eleanor CMSSC3402
 
Eleanor
EleanorEleanor
EleanorSC3402
 
Eleanor
EleanorEleanor
EleanorSC3402
 
Sistema distancionnogo obuchenija_moodle
Sistema distancionnogo obuchenija_moodleSistema distancionnogo obuchenija_moodle
Sistema distancionnogo obuchenija_moodle
CDO3
 

Similar to Moodle с точки зрения пользователя и программиста (20)

A2
A2A2
A2
 
компоненты E learn для Plone
компоненты E learn для Ploneкомпоненты E learn для Plone
компоненты E learn для Plone
 
C# Desktop. Занятие 01.
C# Desktop. Занятие 01.C# Desktop. Занятие 01.
C# Desktop. Занятие 01.
 
Использование e-learning в последипломном медицинском образовании
Использование e-learning в последипломном медицинском образованииИспользование e-learning в последипломном медицинском образовании
Использование e-learning в последипломном медицинском образовании
 
Виртуальный Кампус МЭСИ
Виртуальный Кампус МЭСИВиртуальный Кампус МЭСИ
Виртуальный Кампус МЭСИ
 
Саммит2011_Коновалов
Саммит2011_КоноваловСаммит2011_Коновалов
Саммит2011_Коновалов
 
Общие темы. Тема 02.
Общие темы. Тема 02.Общие темы. Тема 02.
Общие темы. Тема 02.
 
006
006006
006
 
Азы мультисайтинга
Азы мультисайтингаАзы мультисайтинга
Азы мультисайтинга
 
азы мультисайтинга
азы мультисайтингаазы мультисайтинга
азы мультисайтинга
 
239649.ppt
239649.ppt239649.ppt
239649.ppt
 
Построение образовательного сайта с системой интерактивного тестирования на б...
Построение образовательного сайта с системой интерактивного тестирования на б...Построение образовательного сайта с системой интерактивного тестирования на б...
Построение образовательного сайта с системой интерактивного тестирования на б...
 
исследовательская работа из опыта преподавания с использованием обучающей ср...
исследовательская работа из опыта преподавания  с использованием обучающей ср...исследовательская работа из опыта преподавания  с использованием обучающей ср...
исследовательская работа из опыта преподавания с использованием обучающей ср...
 
Symfony 3
Symfony 3Symfony 3
Symfony 3
 
Продвинутый мультисайтинг
Продвинутый мультисайтингПродвинутый мультисайтинг
Продвинутый мультисайтинг
 
продвинутый мультисайтинг
продвинутый мультисайтингпродвинутый мультисайтинг
продвинутый мультисайтинг
 
Eleanor CMS
Eleanor CMSEleanor CMS
Eleanor CMS
 
Eleanor
EleanorEleanor
Eleanor
 
Eleanor
EleanorEleanor
Eleanor
 
Sistema distancionnogo obuchenija_moodle
Sistema distancionnogo obuchenija_moodleSistema distancionnogo obuchenija_moodle
Sistema distancionnogo obuchenija_moodle
 

More from Igor Sazonov

WordPress REST API
WordPress REST APIWordPress REST API
WordPress REST API
Igor Sazonov
 
Грамотная SEO-оптимизация сайта на WordPress
Грамотная SEO-оптимизация сайта на WordPressГрамотная SEO-оптимизация сайта на WordPress
Грамотная SEO-оптимизация сайта на WordPress
Igor Sazonov
 
Ускоряем Wordpress: кеширование, CDN, Varnish Cache
Ускоряем Wordpress: кеширование, CDN, Varnish CacheУскоряем Wordpress: кеширование, CDN, Varnish Cache
Ускоряем Wordpress: кеширование, CDN, Varnish Cache
Igor Sazonov
 
Bootstrap 3. Адаптивная верстка для WordPress
Bootstrap 3. Адаптивная верстка для WordPressBootstrap 3. Адаптивная верстка для WordPress
Bootstrap 3. Адаптивная верстка для WordPress
Igor Sazonov
 
Оптимальная архитектура масштабируемого плагина WordPress на Custom Post Type...
Оптимальная архитектура масштабируемого плагина WordPress на Custom Post Type...Оптимальная архитектура масштабируемого плагина WordPress на Custom Post Type...
Оптимальная архитектура масштабируемого плагина WordPress на Custom Post Type...
Igor Sazonov
 
AngularJS. Введение и простые примеры для понимания
AngularJS. Введение и простые примеры для пониманияAngularJS. Введение и простые примеры для понимания
AngularJS. Введение и простые примеры для понимания
Igor Sazonov
 

More from Igor Sazonov (6)

WordPress REST API
WordPress REST APIWordPress REST API
WordPress REST API
 
Грамотная SEO-оптимизация сайта на WordPress
Грамотная SEO-оптимизация сайта на WordPressГрамотная SEO-оптимизация сайта на WordPress
Грамотная SEO-оптимизация сайта на WordPress
 
Ускоряем Wordpress: кеширование, CDN, Varnish Cache
Ускоряем Wordpress: кеширование, CDN, Varnish CacheУскоряем Wordpress: кеширование, CDN, Varnish Cache
Ускоряем Wordpress: кеширование, CDN, Varnish Cache
 
Bootstrap 3. Адаптивная верстка для WordPress
Bootstrap 3. Адаптивная верстка для WordPressBootstrap 3. Адаптивная верстка для WordPress
Bootstrap 3. Адаптивная верстка для WordPress
 
Оптимальная архитектура масштабируемого плагина WordPress на Custom Post Type...
Оптимальная архитектура масштабируемого плагина WordPress на Custom Post Type...Оптимальная архитектура масштабируемого плагина WordPress на Custom Post Type...
Оптимальная архитектура масштабируемого плагина WordPress на Custom Post Type...
 
AngularJS. Введение и простые примеры для понимания
AngularJS. Введение и простые примеры для пониманияAngularJS. Введение и простые примеры для понимания
AngularJS. Введение и простые примеры для понимания
 

Moodle с точки зрения пользователя и программиста

  • 1. Moodle с точки зрения пользователя и программиста Igor Sazonov ( @tigusigalpa, lmstech.ru / lms-service.org ) IT Global Meetup #5, Saint-Petersburg, Russia, June 6, 2015
  • 2. Банальная информация  Moodle – Modular Object-Oriented Dynamic Learning Environment ( Модульная объектно-ориентированная динамическая среда )  Бесплатная open-source система ( https://moodle.org/ )  Количество пользователей: ~71 485 909  Количество стран: 222  Текущая версия: 2.9  Доля среди LMS: 96%  Первая версия: 2003 год * https://wappalyzer.com/categories/lms
  • 3. Преимущества  Бесплатный  Огромное комьюнити  Постоянные обновления (раз в полгода) и улучшения по просьбам пользователей  Много возможностей и настроек (?!)  Много разных плагинов
  • 4. Недостатки  Большое число настроек  Сложность освоения  Требуется сервер с мощными ресурсами  Ограниченные возможности по кастомизации внешнего вида  Сложная архитектура БД  «Жесткая» структура файлов и классов  Малое количество документации
  • 6. Moodle с точки зрения пользователя  Управление курсами  Управление элементами курсов  Система ролей  Система отчетов  Банк вопросов  Блоки  Языки интерфейса  Дополнительные плагины
  • 7. Управление курсами Курс – конечная сущность, состоящая из элементов курса (тесты, задания, лекции) Курс может быть представлен одним из форматов:  Разделы по неделям – организует расписание курса (неделя за неделей) с точным сроком начала и окончания. Каждая неделя это модуль курса.  Разделы по темам – внешне похож на Разделы по неделям, но не имеет временных ограничений и не привязан к календарю. Каждая неделя это модуль курса.  Форум – курс организуется на основе одного большого форума. Может использоваться как одна большая доска сообщений
  • 8. Управление элементами курсов Элемент курса – одна из составляющих курса, может быть представлена Тестом, Заданием, Лекцией, Опросом итп
  • 9. Система ролей Роль – набор разрешений (прав), определенных для всей системы, Вы можете назначить роль пользователю или создать свою роль. Роль подчиняется уровням (сайт, категория, курс итд).  Управляющий – управляющие имеют доступ к курсу и могут изменять его. Они, как правило, не участвуют в курсах.  Создатель курса – создатели курсов могут создавать новые курсы.  Учитель – учителя могут делать в курсе всё, в том числе изменять элементы курса и оценивать студентов.  Ассистент (без права редактирования) – ассистент может преподавать в курсах и выставлять оценки, но он не может изменять содержание курса.  Студент – обычно студенты обладают меньшим набором прав в рамках курса.  Гость – обычно гости имеют минимальный набор прав и не могут нигде вводить текст. Администрирование > Пользователи > Права >
  • 10. Система ролей Контексты – участники иерархической архитектуры зависимости прав относительно конкретного элемента системы. Количество прав, которые можно назначить роли – более 520 Например, Управлять файлами в области личных файлов или Просматривать профили других пользователей.
  • 11. Система отчетов (в рамках курса) Отчет по оценкам  Отчет формируется для каждого пользователя согласно пройденным им элементам курса  История оценок: все попытки пользователя, втч и неудачные  Можно даже назначать оценки  Поддержка экспорта в форматы OpenDocument, Excel, XML, текстовый файл Настройки Курса > Управление курсом > Оценки Журнал событий Отчет о всевозможных действиях пользователей на сайте Настройки Курса > Управление курсом > Отчеты
  • 12. Банк вопросов Банк вопросов позволяет управлять всеми вопросами, которые есть во всех тестах текущего курса. Вы можете редактировать, дублировать, удалять, править вопросы из списка Банка вопросов курса. Настройки курса > Управление тестом > Банк вопросов
  • 13. Блоки Блоки – это виджеты с определенном контентом, которые могут добавлены на страницу в Moodle (обычно в колонках справа или слева). Они могут быть как встроенные в Moodle, так и предоставляемые сторонними плагинами (в данном случае это понятие «Блок»). https://docs.moodle.org/29/en/Blocks
  • 14. Языки интерфейса В Moodle, начиная с версии 2.5 внедрена поддержка переключения языка интерфейса (не контента!).
  • 15. Дополнительные плагины  Модули / плагины разделяются на категории по их функциональности  Установка только через FTP  https://moodle.org/plugins/
  • 16. Moodle с точки программиста  Проблемы для программиста  Полезные функции и глобальные переменные  Система контекстов  Логирование отчетов  Написание плагинов, блоков  Работа с БД
  • 17. Проблемы для программиста  Мало документации (система узкоспециализирована)  Не проинициализированы подключения файлов  328 таблиц в Базе Данных !!!  Строгая структура файлов  Строгое разделение плагинов на блоки / модули  Запутанная система работы с javascript
  • 18. Полезные функции и переменные  create_course($data)  Функция для создания курса, записывает в таблицу course значения объекта (!) $data (ключи = колонки таблицы)  course/lib.php  optional_param($parname, $default, $type)  Обрабатывает параметры из $_GET, $_POST по ключу $parname, если ключ пустой, то возвращает $default, а также проверяет полученное значение $type  lib/moodlelib.php  get_config($plugin)  Возвращает объект всех опций плагина $plugin из таблицы config_plugins  lib/moodlelib.php
  • 19. Полезные функции и переменные  $CFG – глобальная переменная-объект с системными данными (wwwroot (http://site.ru), libdir (/lib), tempdir)  require_capability($capability, $context);  Функция запрашивает права $capability на показ $context  lib/accesslib.php  get_string($string_id, $component); Примеры:  $id = optional_param('id', '', PARAM_INT);  $new_course = create_course($object);  include_once($CFG->libdir . '/formslib.php');
  • 20. Система контекстов Контексты имеют так называемые context level: define('CONTEXT_SYSTEM', 10); define('CONTEXT_USER', 30); define('CONTEXT_COURSECAT', 40); define('CONTEXT_COURSE', 50); define('CONTEXT_MODULE', 70); define('CONTEXT_BLOCK', 80);  Каждое право «подчиняется» своему contextlevel  Чем contextlevel меньше, тем больше прав  Каждая сущность в Moodle должна иметь свой контекст  Таблица context https://docs.moodle.org/dev/Access_API
  • 21. Логирование отчетов Каждое действие должно (желательно) логироваться. Функции работы с логированием:  add_to_log($courseid, $module, $action, $url='', $info='', $cm=0, $user=0)  $coursed – ID курса  $module – имя модуля/плагина которое совершает $action  $action – 'view', 'update', 'add' или 'delete‘  $cm – id модуля курса  $user – id пользователя, который совершает $action  get_logs($select, array $params=null, $order='l.time DESC', $limitfrom='', $limitnum='', &$totalcount)  get_logs_usercourse($userid, $courseid, $coursestart) https://docs.moodle.org/dev/Logging_API
  • 22. Написание плагинов/блоков Плагины в Moodle имеют довольно много типов (блоки, утилиты админ панели итп): https://docs.moodle.org/dev/Plugin_types Общие моменты:  Точка входа – файл php (его имя должно соответствовать типу плагина)  Точка входа – это класс, который наследуется от базового класса нужного типа плагина. Этот класс может переписывать методы родительского класса.  Структура каталогов одинаковая
  • 23. Написание плагинов/блоков Пример структуры каталогов и главного класса блока simplehtml => Пример инициализации входного класса
  • 24. Работа с БД  СУБД может быть как MySQL так и Postgresql  С БД работает глобальный объект $DB ( global $DB; ) Примеры:  $user = $DB->get_record('user', array('id'=>'1'));  $DB->get_records($table, array $conditions=null, $sort='', $fields='*', $limitfrom=0, $limitnum=0)  $DB->set_field($table, $newfield, $newvalue, array $conditions=null)  $DB->delete_records($table, array $conditions=null)  $DB->insert_record($table, $dataobject, $returnid=true, $bulk=false)  $DB->update_record($table, $dataobject, $bulk=false)  ……….. https://docs.moodle.org/dev/Data_manipulation_API