Note: You are currently viewing documentation for Moodle 2.6. Up-to-date documentation for the latest stable version of Moodle may be available here: Customlabel module (Course elements).

Customlabel module (Course elements)

From MoodleDocs

The customlabel module is a specialisation of the core label module to improve content writing in course main pages.

The customlabel module proposes a set (extensible) of subtypes that match well known uses of the learning editorial activity. Subtypes are essentially small parts of content rendered through a predefined html template fo layout (internal renderer), applying a subtype specific small stylesheet (overridable) and using a small predefined dataset.

When adding a new instance of a customlabel (called Course Element in the GUI) to a course, the activity settings usual form can change of aspect depending on the choosen subtype. The form will self-adapt to the requirements of the element internal information model.

This plugin has two effects on content handling and management :

  • productivity effect : teachers do not nead to bother with styling and aspect consistency, as they just need to enter the adequate payload into the presented fields.
  • stability effect : Any of the course elements will be rendered and layout the same way, thus keeping the same graphical aspect whoever authors a course. This is a good point for an institutional LMS that needs to keep content consistant although deferred to many contributors of distinct IT addition skills.


Available archive :

Unpack the customlabel package into the 'mod' directory of your Moodle installation.

Finish installing the enhanced Multilang filter.

Browse to the Administration -> Notification service to proceed to logical install.



To process accurately the multiple language content, a modified version of the multilang filter is necessary to process nested spans in content.

Get the filter MultilangEnhanced and install it along to customlabel.

Disable the standard multilang filter and activate the enhanced filter (he enhanced filter will process all other lang selection strings as required).

Features summary

  • High semantic level course elements
  • Style preset by integrator/styler
  • Role sensible elements can hide for some roles (role conditional content)
  • Easy extensible subtype model

Using labels

Course elements are known as enhanced labels. So adding a course element is just like adding a label, and filling information parts.

When displaying the setting form, check the first dropdown list for a subtype of label you need (See the above section about subtypes). Let the setting form reload with modified field list and complete the required information. you will notice that when changing the type of a customlabel, the content is not keeped, as there are low chances the semantic is consistant between distinct types.

The label will layout the content in the course sequence.


Generic bricks

Pedagogical bricks

Role conditioned bricks

Structural bricks

Utilities bricks

Dealing with roles

From the 2.5 version, the role impact on customlabel has changed in implementation. It has now been unified using subplugin capabilities.

  • customlabeltype/TYPE:view : allows people having the capability allowed to see the content.
  • customlabeltype/TYPE:addinstance : allows people having the capability allowed to use this type and add it to course.

Other changes to previous version

In order to help administrators to tune the rendering templates without having to open code, templates content has been moved to language strings.

Integrator corner

Customlabel is built to easily add new custom subtypes as required by the context and the pedagogical local project. Following documents give some reference upon how to build new types.


Valery Fremaux (2008 original)

The customlabel content strategy was developped to serve the Governement Level Public Teacher PD program (Ministère de l'Education Nationale) in France (called Pairformance) with Intel support.