Как вывести список популярных курсов в moodle


Работая над одним из проектов возникла необходимость вывести в произвольном месте список популярных курсов в достаточно популярной cms для организации online обучения Moodle. Решением данной задачи и хочу поделиться с читателями нашего блога. В сущности — ничего сложного, но иметь эту информацию в «архиве» не помешает, как знать сколько раз еще придется прибегнуть к ней.

Итак. Те, кто работает с moodle в курсе, что вставлять код необходимо в /themes/имя_шаблона/layout/необходимый_шаблон.php Делается это с помощью course context. Вставляем следующий php-код в нужном месте:

Теперь немного расшифровки. Для этой затеи необходим массив со всеми курсами. Фактически, из информации о курсе нам необходим его id, так что массив можно использовать в любом удобном формате.

После этого мы раскладываем этот самый массив с помощью foreach(), при этом по каждому id дергаем COURSE_CONTEXT, получаем массив со студентами (кстати, 5 соответствует роли student, можно использовать любую другую роль). После этого раскладываем массив со студентами, подсчитывая их и в итоге складываем результат в массив Enroled. Формат прост: [количество_студентов] -> id_курса.

Готово, осталось только отсортировать массив, что мы и сделали с помощью krsort() (это по убыванию). После всего этого выводим нужное количество и получаем желаемый результат.

На основе этого примера можно сделать еще вывод, например, количества студентов записанных на курс на странице конкретного курса.