Skip to content
Moodle Filter for showing activity completion on hyperlinked images in your course description.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Activity Completion Image

This filter lets you add a completion status icon to hyperlinks that contain an image. This can be useful if you use hidden activities and use hyperlinks to get to those activities. The result can be a nicely formatted list of images that users can click on, but can also see the completion status of an activity as an icon.

Currently it has three possible icons - not yet completed, not available (for activites you can't get to because of a condition), and completed. These icons are hard coded at this time, but use font-awesome and could potentially be changed using ::before class content hacks.

The filter modifies the HTML of the hyperlink to contain an extra span and icon, with various classnames applied to the objects in order for them to be styled. No styling is applied by default, but it is expected that a user could add custom styling to their theme's CSS.


Drop this folder into your moodle filter folder and install as normal.


Course Screenshot

A course introduction with hyperlinked hidden activites, alongside the standard completion status block.

And the styles shown here (added to the theme custom css):

a.completion-info {
	position: relative;
	display: inline-block;
a.completion-info > span:before {
 	content: '';
    border: 45px solid transparent;
    border-bottom-color: rgba(8, 189, 242, 0.9);
    transform: rotate(45deg);
    position: absolute;
    top: -45px;
    right: -45px;
    z-index: 1;
a.completion-info > span.state-completed:before {
	border-bottom-color: rgba(33, 242, 8, 0.9);
a.completion-info > span.state-unavailable:before {
	border-bottom-color: rgba(67, 156, 182, 0.5);
a.completion-info > span {
	display: block;
	position: absolute;
	top: 0;
	right: 0;
	z-index: 2;
	width: 32px;
	height: 32px;
	padding: 4px 4px 0 0;
a.completion-info > span > i {
	z-index: 3;
	position: relative;
	color: white;
	font-size: 2em;
a.completion-info > img {
	margin: 0;

Example usage

On your course, add activities to the section. Hide the activities (and make them available; which in turn requires the allow stealth activities option in Advanced features in Moodle 3.5). Copy the hyperlink of each activity and put it into the editor. Inside that hyperlink, place an image. Each link might have html that is like this:

<a href="http://your-moodle-url/mod/page/view.php?id=514"><img width="210" height="170" class="img-responsive" role="presentation" alt="" src="http://your-moodle-url/draftfile.php/23/user/draft/514152870/TILE_feedback.png"></a>

Next, ensure that the filter is ON for the course (it is on-but-disabled by default). When the course renders, it will find these hyperlinks links, look up the completion status of the activity in the context of the current user, and append extra html before they render. The resulting html will be something like this:

<a href="http://your-moodle-url/mod/page/view.php?id=514" data-cmid="514" class="completion-info"><span title="Not yet completed" class="state-incomplete"><i class="fa fa-circle-o"></i></span><img width="210" height="170" class="img-responsive" role="presentation" alt="" src="http://your-moodle-url/pluginfile.php/4908/course/section/606/TILE_feedback.png"></a>

Licence GNU GPL v3 or later

You can’t perform that action at this time.