Blocks: Course checker

Maintained by Picture of FFHS (Fernfachhochschule Schweiz)FFHS (Fernfachhochschule Schweiz), Picture of Adrian Perez RodriguezAdrian Perez Rodriguez, Picture of Christoph KarlenChristoph Karlen, Picture of Sascha VogelSascha Vogel
A Moodle course checker plugin that improves the quality and eliminate human routine tasks in online courses.
26 sites
9 fans
Current versions available: 2

Moodle Course Checker Build Status

This plugin provides a framework that can check a course based on independent checkers. It will help you find misconfiguration in your courses and follow your internal guidelines. The checkers can be triggered manually an will be executed by the Moodle AdHoc task system.


This plugin should be compatible with Moodle 3.5+.

  • You have to set up a cron to run the checkers
  • php-ext-curl should be on (for the link checker)


Install the plugin like any other plugin to folder blocks/course_checker.

Use git to install this plugin:

cd /var/www/html/moodle
git clone blocks/course_checker
echo '/blocks/course_checker/' >> .git/info/exclude

Then complete upgrade over CLI:

sudo -u apache /usr/bin/php admin/cli/upgrade.php

or GUI (Site administration -> Notifications).

See MoodleDocs for details on installing Moodle plugins


This plugin provides interfaces and well defined result objects to extend this plugin. New useful checkers and issue notifications are highly appropriated

  • Each checker can be executed separately (or all at once)
  • Individual checkers can be deactivated
  • A static date and a note can be stored (human check)
    • A list with edited and created activities since this date will be displayed
  • The user will be notified by Moodle when a check is done
  • Individual settings are defined in each checker (classes/checkers/checker_name/settings.php), rather than in settings.php

Available checkers

Checker Name User Story
Attendance Sessions As editing teacher
I would like to see if in my course the attendance activity is created. There must be no sessions added to the activity.
In order to ensure teachers can take attendance during class and that no old sessions are copied.
Group Submission As editing teacher,
I would like to see, if in my course in an assignment the option "students submit in groups" is set, whether the "group mode" activated, a grouping is created and selected, and corresponding groups exist and are allocated.
This allows me to ensure that the first submission of a student does not block the submission for all other students.
Links As editing teacher,
I would like to see if all the external links that are in the course are reachable,
In order to make sure there are no broken links in the course.
- Links that requires authentication are currently not supported (internal moodle links)
Reference Settings As Administrator,
I would like to be able to compare specific setting fields between a course and the reference course and configure which fields are compared
In order to allow me to add easy checks without updating the plugin.
Label Subheadings As editing teacher,
I would like to see, if all label activities starts with a h4 tag and a fontawesome icon.


Copyright (C) 2019 Liip AG the Swiss Moodle Partner.

Further developments and open-sourced by Swiss Distance University of Applied Sciences (FFHS).


Screenshot #0
Screenshot #1
Screenshot #2


Picture of FFHS (Fernfachhochschule Schweiz)
FFHS (Fernfachhochschule Schweiz) (Lead maintainer)
Picture of Adrian Perez Rodriguez
Adrian Perez Rodriguez: Developer
Picture of Christoph Karlen
Christoph Karlen: Developer
Picture of Sascha Vogel
Sascha Vogel: Developer
Please login to view contributors details and/or to contact them

Comments RSS

Show comments
  • Picture of Plugins bot
    Mon, Oct 14, 2019, 8:50 PM
    Approval issue created: CONTRIB-7872
  • Picture of Vladimir Miranovic
    Tue, Dec 24, 2019, 11:48 PM
    Hello to all developers,

    can you please explain is it possible to use your plugin for checking links in book activity and how? We have book activity "Resources" in number of our courses, with 20-30 pages of links (all external links), and we have problem to check periodically if all links are still valid (not broken). When I am reading your explanation it seams that your plugin is doing exactly what we need, but when I tried on my local instance of moodle, there are no results (and I know there is broken links in test activity), can you explain please more maybe I need to set something in plugin settings.

    Thank you,
  • Picture of Vladimir Miranovic
    Fri, Dec 27, 2019, 10:28 PM
    Hello again,

    I need to correct my previous post. We have book activity with 20-30 chapters with 15-30 links each. Looking at your code, I found in course_checker\classes\checkers\checker_link\checker.php line 99 - $url = new \moodle_url('/mod/' . $modname . '/view.php', ['id' => $mod->coursemodule]); but chapters are having additional "chapterid" - /mod/book/view.php?id=66&chapterid=45
    Can you implement checking links in book activity chapters in your plugin? It is very useful, but it would be grate to have a book activity link check too.

    Thank you,
  • Picture of Adrian Perez Rodriguez
    Mon, Jan 6, 2020, 3:35 PM
    Hi Vladimir

    Thanks for your messages and your findings. The variable initiated in line #99 that you mention is only the resolution link to have a link direct to this activity on the details page.

    But you're right, the book chapters are not included in this checker as only the properties "name, intro, content" of activities and "externalurl" for the activity URL are included. I'll create an issue on GitHub and I would really appreciate if you can help to add this feature.

    Kind regards,
Please login to post comments