Catalogue Configuration
Enabling / Disabling the Learning Catalogue
The learning catalogue is disabled by default. To change this setting, navigate to Learning > Learning catalogue settings and tick the Enable learning catalogue option.

Alternatively, you can permanently enable the learning catalogue by adding the following setting to your config.php:
$CFG->tool_catalogue = true;
Once the catalogue has been enabled, all catalogue settings will be shown.
Catalogue Settings
To configure the learning catalogue, either navigate to Learning > Default settings > Learning catalogue settings or select the catalogue icon from the Workplace Launcher.


Here, you will find the following sections:
- Learning catalogue settings: Generic settings impacting the entire catalogue
- Fields to display in the 'tiles' (compact) view of learning catalogue: Fields shown on the main page
- Fields to display in the 'list' (detailed) view of learning catalogue: Fields shown on the results page
- Fields to display in the learning catalogue filter: Fields shown in the filter pane
The four areas are described in detail in the following subsections:
Learning catalogue settings
The following options are available in the learning catalogue settings:

- Enable learning catalogue: see dedicated section above
- Number of courses per page, site home page: Maximum number of courses shown on the public learning catalogue. If the number exceeds the number of courses to be shown, the page navigator will be made available.
- Number of courses per page, main catalogue page: Maximum number of courses shown on the main page. If the number exceeds the number of courses to be shown, the page navigator will be made available.
- Number of courses per page, search results: Maximum number of courses shown on the results page. If the number exceeds the number of courses to be shown, the page navigator will be made available.
- Maximum number of same-level categories: Specifies the maximum number of same-level categories shown in the category selector. Categories will be displayed in the same order as they have been defined in the course management page. Categories exceeding this maximum number will be hidden, but courses will appear in the search results.
- Maximum number of nested category levels: Specifies the maximum number of nested category levels in the category selector. Categories below this level will be hidden, but courses will appear in the search results.
- Safe HTML tags in summary and text fields: List of the HTML tags that will be kept when displaying text fields (course summary and course custom fields). This might conflict with “Truncate course summary”.
- Truncate course summary: Number of characters shown in the course summary. This might conflict with “Safe HTML tags in summary and text fields”. Set 0 for no truncation.
- Course search method: The Simple Search option is very similar to the existing course search method in Moodle LMS. It simply searches for course fullname, course shortname and course summary, giving priority to fullname and shortname. Extended search can be customised to search in course custom fields, categories, tags and trainers. For more details check out the Fields to search for keywords section.
- Hidden custom field: Select the custom course field that acts as trigger which courses are shown or hidden in the catalogue. For more details check out the Manage course visibility section.
Fields to display in the 'tiles' (compact) view of the learning catalogue
In this section, you can configure which fields are shown in cards on the catalogue’s main page. There are two types of fields you can select:
- Built-in course fields: Standard course fields, namely Course summary, Course category, Tags, Start date, and End date.
- Course custom fields: Fields which have been added via Learning > Default settings > Course custom fields (all custom type fields are supported). If the visibility of a field is set to Trainers or Nobody, the field can still be shown in the learning catalogue. However, a warning icon is displayed in the configuration, indicating that “This field has restricted visibility on the course information and enrolment pages, however it can still be made available in the learning catalogue. If enabled here, the field will be visible to everybody.”
In the Display field name column, you can specify whether the field label is shown or hidden. By default, the Name of the field is displayed, which you can override via the Edit action.
Any fields of type Text area, whether built-in or custom, have an additional setting Allow HTML tags with the options Only safe HTML tags (default), Allow any HTML tags (no filtering), and Strip all HTML tags (full filtering).
The order of the fields shown in the compact view can be arranged via the up and down arrows in the Order column.

In the sample configuration shown, seven fields have been configured; they are explained in the table below, alongside a resulting sample tile:
| Name | Field type | Note | ||
| Course image | Image | As specified in the course settings. Guidelines for the creation of 'good' course images can be found in the Course cards look & feel section. | ||
| Price | Custom
(Numeric) |
See how Payment options are supported |
| |
| Course summary | Custom | The text will be truncated
See Truncate course summary paramter in Learning catalogue settings. | ||
| Tags | Built-in | Displayed as course tags | ||
| Start date | Built-in | Date is shown in the locale of the user | ||
| End date | Built-in | Date is shown in the locale of the user. It will be hidden, if the field is not set | ||
| Estimated learning time | Custom
(Numeric) |
| ||
| Level | Custom
(Dropdown) |
Dropdown values are shown as text |
Fields to display in the 'list' (detailed) view of the learning catalogue
In this section, you can configure which fields are shown in cards on the catalogue’s results page. The fields available for selection and the rules and restrictions that apply are the same as for the configuration of the compact view.
Applying the same values as in the previous example will result in the following detailed list view tile:

The positioning of the price, alongside other elements, can be changed via CSS settings. See Styling the Learning Catalogue via CSS section for details.
Fields to display in the learning catalogue filter
You can select any available field that should be displayed as filters in the catalogue and arrange them in the appropriate order.
The following fields are available:
- Subcategories: If the selected category contains subcategories, these will be shown in the filter pane. They are sorted by popularity in descending order. Popularity is calculated as the number of courses found in the search in this category.
- Tags: If course tags have been configured, these will be shown in the filter pane.
- Custom fields: Any course custom fields of type Drop-down, Checkbox, and Number will appear in the filter pane.
If the number of elements exceeds 5, a Show more link is shown. When selected, all additional tags are displayed. If the Show less status is active and there are tags selected in the list hidden from view, a badge will indicate how many more filter items have been ticked.

In the example above, the following filter fields have been configured:
- Tags: More than 5 tags are available, hence a Show more link lets users display all tags.
- Level: Drop-down custom course field with configured menu options Beginner, Intermediate, Advanced.
- Monthly selection: Checkbox that is currently collapsed in the filter.
- Estimated learning time: Numeric field where the label has been renamed to Required time. The available time ranges have been specified via the Action cog wheel (details see below). The warning is shown because the visibility of the custom field is set to Trainers or Nobody, instead of Everyone.
- Price: Another numeric field. The available filter options have been specified via the Action cog wheel (details see below).
- Subcategory: This field has been hidden from the catalogue filter.
Filter ranges
For numeric custom fields, filter ranges can be configured manually via the Action cog wheel.
In the Edit filter ranges modal window, you can specify as many ranges as you wish. Initially, 4 ranges are shown; more can be added via the Add range button at the bottom. Each range has the following settings:
- Range name: The label shown in the filter sidebar. If left empty, the range name will be created automatically from the range bounds, according to the following rules:
- If a minimum and maximum value has been set, they will be used as range bounds, concatenated by a hyphen, e.g. 10 hours - 20 hours.
- If lower and upper bounds are the same, the range name the value of the number (formatted using the display template specified), e.g. 20 hours.
- If the minimum value is left empty, "Under <maximum value>" will be shown, e.g. Under 20 hours.
- If the maximum value is left empty, "Over <maximum value>" will be shown, e.g. Over 20 hours.
- If neither minimum nor maximum values are specified but Include empty values is checked, the default range name is set to Not specified
- Minimum value: Specify the lowest value of this range or leave empty if there is no limit. A value of 0 will be displayed according to the Display when zero setting in the specification of the numeric custom field. This can either be the number 0 itself, some text (e.g. Free) or an empty string.
- Maximum value: Specify the highest value of this range or leave empty if there is no limit.
- Include empty values: Select if empty values should be included in the range.
- Delete range: Range is removed from the list of ranges. You cannot re-arrange the order of the ranges.

Moodle Workplace only checks ranges against the following criteria:
- There is at least one range
- Each range has either a minimum or a maximum value set, or the Include empty values checkbox ticked
- If both minimum and maximum are specified, they should not conflict, for example Minimum value >= 10 AND Maximum value <= 10 is possible, but Minimum value > 10 AND Maximum value < 10 is not.
Any further range inconsistencies (ranges do intersect, gaps between ranges, or the order of ranges) are not validated, so ensure that the configuration is as intended.
In order to add an option to the learning catalogue filter that shows the specified value Display when zero (e.g. Free), you need to configure one range as follows:

- Range name: Empty
- Minimum value: Greater than or equal 0
- Maximum value: Less than or equal 0
- Include empty values: On or Off
Fields to search for keywords
When the Course search method has been set to Extended search, you can specify which course fields (both, built-in and custom) should be included in the search (via the Display toggles) and arrange them in the Order of priority. After changing the configuration, the search index has to be rebuilt, which takes place in the background (via cron) and might take some time to show the expected results.
Note: when you switch from Simple search to Extended search, you need to save changes before the Fields to search for keywords section will be shown.

The following table shows the differences between Simple search and Extended Search:
| Simple Search | Extended Search | |
|---|---|---|
| Case-sensitivity | no | yes |
Support for wildcards (% and _)
|
yes | yes |
| Requires cron process | no | yes |
| Uses index | no (on-the-fly search) | yes (must be built before first use) |
| Supports field selection | no | yes |
| Supports field prioritisation | no | yes |
The new search API allows connecting more search methods using hooks and may be potentially configured to use external search engines such as Solr or Typesense.
Manage course visibility
Course visibility allows you to select which courses will hidden in the course catalogue for non-admin users. Note that this feature is different from the Course visibility setting in courses.
1. Create a custom course field that acts as a trigger to show/hide courses in the catalogue:
- Go to Site administration → Learning → Course custom fields
- Create a new Checkbox type custom field that is used as the mentioned show/hide trigger, for example: Name: “Hide course from catalogue”, Shortname: “hidecourse",
2. Go to a course that should be hidden from the catalogue and tick the new custom field in the course settings. Repeat this step for all courses that must not be shown in the course catalogue.
3. Select the new custom course field from the Hidden custom field drop-down in the learning catalogue settings.
Now, any course that has the hiding trigger selected will not appear in the course catalogue.
When you select a custom course field from the Hidden custom field drop-down and Save the changes, the field will be removed from the elements on the learning catalogue settings page:
- Fields to display in the 'tiles' (compact) view of the learning catalogue
- Fields to display in the 'list' (detailed) view of the learning catalogue
- Fields to display in the learning catalogue filter
- Featured custom field drop-down in the Featured learning section
Note, when a user is enrolled in a hidden course, the course will not appear in his/her catalogue, that is, the course can only be accessed via URL.
The following table provides an overview the visibility of a course in the learning catalogue (it is assumed that the user has the capabilities moodle/course:viewhiddencourses or moodle/category:viewcourselist in the relevant context):
| Enrolled in course | Course hidden | Course hidden from catalogue | Visible in catalogue |
|---|---|---|---|
|
|
|
|
Yes |
|
|
|
|
No |
|
|
|
|
No |
|
|
|
|
No |
|
|
|
|
Yes |
|
|
|
|
No |
|
|
|
|
No |
|
|
|
|
No |
Feature course highlighting
Courses can be highlighted, which is indicated via a customisable badge in the course image. Featured courses are listed first on the course catalogue main page (but not on the results page).

To highlight courses, you will need to go through the following steps:
- Add a course custom field of type Checkbox (see above)
- Select the custom field from the Featured custom field dropdown Learning catalogue settings.
- Go to each course that has to be highlighted and tick the Checkbox in the course settings

To display a dedicated section at the top of the catalogue, tick the Show featured section in catalogue option. The Featured section title lets you specify the heading of the featured section ("Featured" if left empty). You can provide optional instructions via the Featured section description setting.

When the featured section is activated, featured courses will still be shown in the All available courses section underneath, but the courses won't be shown at the top of the list.
Setting the catalogue as the default site home
The site home can be specified via the Start page for users setting in Appearance > Navigation.

In addition to the standard LMS settings Home, Dashboard, My courses, and User preference, in Moodle Workplace Catalogue has been added as an option. Once this is selected, the learning catalogue will be the first page users will be redirected after logging in to the site.
Course visibility in the catalogue
Visibility of courses in the catalogue is controlled by the capability moodle/category:viewcourselist, which can be added to roles and assigned at the course category level.
By default, when Moodle Workplace is installed, this capability is not allowed for the "Guest" and "Authenticated user" roles but is allowed for the "Tenant user" role (which is automatically assigned to each user in the course category of their tenants). This means that, by default, guests cannot browse the catalogue at all, while tenant users can browse all categories within their tenant category.
Please note that if your Workplace site has been upgraded from Moodle LMS without setting $CFG->forcewpsetup, your defaults will be different. See the Upgrade form Moodle LMS section in the Installation guide for more details.
Important: When you test the setup, ensure that you are not an administrator or manager. Additionally, make sure you are not enrolled in any courses that you are trying to hide from the catalogue. Some changes (e.g., changes in roles) may not be immediately visible in the current user session since the catalogue's session cache has a 10-minute lifetime. To reset the catalogue cache, simply log out and log back in again.
Hiding program courses in the catalogue
If you want to completely hide program courses in the Catalogue, but have them available for users who are allocated to the program, follow the following steps:
- Create a course category for courses that will not be displayed in the catalogue to learners (here, Hidden courses)
- Add courses to the category that must not appear in the Catalogue
- Go to the hidden course category permissions via the cog wheel
- Prohibit the
moodle/category:viewcourselistcapability for "tenant user" in the course category
- Create a program in the tenant and add courses from the hidden category
- Allocate users to the program
Once the above configuration is completed, the behaviour will be as follows:
- The hidden category will not appear in the Catalogue for any users (except admins)
- Courses in the hidden category will only appear in the Catalogue for users who have been assigned to the program, but not to any other users
- The "hidden program" and courses inside it will appear in My courses for users who have been assigned to the program, but not to any other users
Making the Learning Catalogue Public
By default, the learning catalogue is only available to logged in users. To make the catalogue public, that is, to make it accessible to users not logged in to your Moodle Workplace site, configure the following settings:
- Show courses on the Frontpage Go to General > Site home > Site home page and add "List of courses" to the Site home setting ($CFG->frontpage).
- Disable Force Login Ensure that the Force users to log in setting in General > Security > Site security settings is disabled ($CFG->forcelogin).
- Allow viewing of course categories and courses Go to Users > Permissions > Define roles. Select the Guest role and enable the capability to browse the list of courses (
moodle/category:viewcourselist). Repeat the same step for the Authenticated user role.
Once these steps have been completed, your learning catalogue will be available online. However, to view course details or enrol on a course, users have to be logged in to your site. Therefore:
4. Optional, but highly recommended: Set Auto-login guests ($CFG->autologinguests) in the Users > Permissions > User policies.
Payment Support
The learning catalog can automatically extract prices from course enrollment methods, display them next to the courses, and allow filtering by price. It supports the standard enrollment plugins "Self enrolment," "Enrolment on payment," and "PayPal." Community payment enrollment plugins may also work, but they need to be tested first.
To configure a course to allow enrolment once payment has been completed, follow the following steps:
- Ensure the Enrolment on payment plugin has been installed and configured properly.
- Go to Learning > Default settings > Course custom fields, select Add a new custom field, and choose of type Number.
- Provide Name (e.g. Price) and Short name
- In the Number field settings section, choose Price from enrolments plugins option from the Field types dropdown. The following three options are shown:
- In the Currency field, enter a 3-letter currency code (https://en.wikipedia.org/wiki/ISO_4217#Active_codes). Ensure this code matches the currency code used in the available enrolment methods for the course.
- Select the Enrolment plugins that allow students to enrol themselves in a course. If a matching instance exists with the specified currency, the price will be automatically extracted. Instances without a currency (e.g., 'Self enrolment') will be assumed to have price 0. If multiple instances of methods that allow students enrol themselves into a course exist, the lowest price will be shown. Note: Test third-party enrolment plugins thoroughly before enabling them, as they may store data differently, affecting price extraction.
- In the Display when zero you can specify how the price is displayed when there is a self-enrolment plugin available without a payment. If left empty, the price field will not be displayed for free courses.

- The new price field will now be available in the various fields sections on the Learning catalogue settings page (see above). Once selected, the price field will appear in the different areas of the learning catalogue.
Display programs in the learning catalogue (experimental)
Program support in the learning catalogue is currently an experimental feature. To enable it, navigate to Site administration > Development > Experimental > Experimental settings and enabled the Show programs in the catalogue setting.

Once enabled, the following section will be available in the Program details:

If the Show this program in the catalogue setting is enabled, the program will automatically be associated with the tenant course category. To include this program in the catalogue, it must be linked to a category. This Category association ensures that users can easily find the program within the catalogue.
Any programs visible in the catalogue will be shown as a separate section in the learning catalogue:

To see which programs are not shown in the catalogue, go to Site administation > Learning > Manage course categories and courses. A message is shown at the top displaying how many programs are currently not linked to a category in the learning catalogue.

When you select Show programs, details for programs that are not listed in the learning catalogue are displayed. If you click a program that belongs to the same tenant as your currently selected tenant, you are taken directly to that program. Otherwise, you are redirected to the My courses page.
