Catalogue Configuration
To configure the learning catalogue, navigate to Site administration > Learning > Learning catalogue, where you will find the following sub-sections:
- Learning catalogue settings: Generic settings impacting the entire catalogue
- Catalogue settings for Programs: Configuration of programs views
- Catalogue settings for Courses: Configuration of course views
- Catalogue filters: Configuration of the filter pane
Programs sit alongside courses as first-class items, making structured learning pathways fully discoverable and self-directed.
Learning catalogue settings
The learning catalogue is enabled by default. To double-check this setting, navigate to Site administration > Learning > Learning catalogue settings and ensure the Enable learning catalogue option is enabled.

Alternatively, you can permanently enable the learning catalogue by adding the following setting to your config.php:
$CFG->tool_catalogue = true;
If the learning catalogue is disabled, you can still configure its settings and structure, but non-admin users won't have access to it until it is enabled. This might be the desired set up when you set up the catalogue for the first time.
General settings
The following settings are available which control the behaviour of the learning catalogue:

- Enable learning catalogue: see description above
- Number of items per page, site home page: Maximum number of courses or programs shown on the public learning catalogue. If the number exceeds the number of items to be shown, the page navigator will be made available.
- Number of items per page, main catalogue page: Maximum number of courses or programs shown on the main page. If the number exceeds the number of items to be shown, the page navigator will be made available.
- Number of items per page, search results: Maximum number of courses or programs shown on the results page. If the number exceeds the number of items 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 (for example, 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.
- Hidden custom field: Select the shared 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.
- Price custom field: Select the custom field used for prices in the catalogue. For details, check out the Payment Support section.
Featured learning and curated recommendations
You can promote key courses and programs in the catalogue to guide learners toward priority skills, roles, or time-sensitive training. This makes it easier to direct attention to high-impact learning without relying on assignment alone.
Courses and programs can be highlighted, which is indicated via a customisable badge in the course image. Featured items are listed first on the course catalogue main page (but not on the results page).

To highlight courses or programs, you will need to go through the following steps:
- Add a shared custom field of type Checkbox
- Select the custom field from the Featured custom field dropdown Learning catalogue settings.
- Go to each course and program that has to be highlighted and tick the checkbox in the respective 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 and programs will still be shown in the All available courses section underneath, but they won't be shown at the top of the list.
Fields to search for keywords
The keyword search uses a powerful search method, supporting custom fields, tags, categories and trainers, and performs efficiently at scale.
The search configuration lets you specify which course and program fields (both, built-in and custom) should be included in the search (via the Enabled 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.

If the visibility of a custom course field is set to Trainers or Nobody, the field can still be used 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.”
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.
Catalogue settings for Programs
Programs are fully supported in the learning catalogue. The visibility of each program can be configured in the program details. Any programs visible in the catalogue will appear as an item with an additional badge showing the number of courses:

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.
There are two types of fields you can select:
- Built-in course fields: Standard program fields, namely Program description, Image, Tags, Course category, Start date, and End date.
- Program custom fields: Fields which have been added via Learning > Default settings > Program custom fields (all custom type fields are supported).
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.
The order of the fields shown in the compact view can be arranged via the up and down arrows in the Order column. Note that the Image's location in the catalogue is fixed, no matter where it has been placed in the list of fields.
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).

In the sample configuration shown, the following fields have been configured:
| Name | Field type | Note |
| Program description | Built-in | The label has been hidden. The actual text will be truncated; see Truncate course summary paramter in Learning catalogue settings. |
| Image | Built-in | As specified in the program settings. |
| Tags | Built-in | Displayed as program tags |
| Price | Custom
(Numeric) |
See how Payment options are supported |
| Start date | Built-in | The date is shown in the locale of the user |
| End date | Built-in | Information about the end date is shown as specified in the program, e.g. "2 weeks after due date" |
| Additional information | Custom
(Text area) |
The label has been modified to "Information". |
| Course category | Built-in | The field is hidden and will not appear in the learning catalogue |
A resulting sample list entry will look as follows:

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. The fields available for selection and the rules and restrictions that apply are the same as for the configuration of the detailed view.
Applying the same values as in the previous example will result in the following compact 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.
Catalogue settings for Courses
Courses are fully supported in the learning catalogue. Unless courses are hidden, they will be shown as standard elements in catalogue. Here, you can specify what the different view will look like:
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.
There are two types of fields you can select:
- Built-in course fields: Standard course fields, namely Course summary, Course category, Image, Course contacts, 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.
The order of the fields shown in the compact view can be arranged via the up and down arrows in the Order column. Note that the Image's location in the catalogue is fixed, no matter where it has been placed in the list of fields.
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).

In the sample configuration shown, the following fields have been configured:
| Name | Field type | Note |
| Course image | Image | As specified in the course settings. |
| 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 |
| Course contacts | Built-in | Shows the list of enroled users in the course who have editing capabilities. Names are linked to the respective user profile. |
| Estimated learning time | Custom
(Numeric) |
|
| Level | Custom
(Dropdown) |
Dropdown values are shown as text |
| Course category | Built-in | The field is hidden and will not appear in the learning catalogue |
A resulting sample list entry will look as follows:

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.The fields available for selection and the rules and restrictions that apply are the same as for the configuration of the detailed view.
Applying the same values as in the previous example will result in the following compact 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.
Catalogue filters
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 shared 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 below, three tags have been selected; two are in view and one is hidden).

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).
- 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

Learning catalogue visibility
Depending on your preferences, you can modify the default visibility of the learning catalogue. This includes the following two configuration options:
- Setting the catalogue as the default site home
- Make the learning catalogue public
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.
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).
- Enable Home: Enable the setting Enable Home in Appearance > Appearance > Navigation ($CFG->enablemyhome).
- Enable guest access to daschboard: Enable the setting Allow guest access to Dashboard in Appearance > Appearance > Navigation ($CFG->allowguestmymoodle).
- 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:
5. Optional, but highly recommended: Set Auto-login guests ($CFG->autologinguests) in the Users > Permissions > User policies.
Course and program visibility in the Learning Catalogue
Course and program visibility allows you to select which items will be hidden in the learning catalogue for non-admin users.
Hiding courses in the learning catalogue
To hide specific courses from the learning catalogue, follow the following steps:
1. Create a shared custom course field that acts as a trigger to show/hide courses in the catalogue:
- Go to Site administration → General → Custom fields -> Shared custom fields
- Create a new Checkbox type custom field that is used as the mentioned show/hide trigger, for example: Name: “Hide item from catalogue”, Shortname: “hideitem".
2. Go to the 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 catalogue.
3. Select the new shared custom 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 learning catalogue.
When you select a shared custom field from the Hidden custom field drop-down and Save the changes, the field will be removed from the following elements on the learning catalogue settings pages:
- 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, the item will not appear in his/her catalogue, that is, the item can only be accessed via URL.
The following table provides an overview of 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 |
|---|---|---|---|
| No | No | No | Yes |
| No | No | Yes | No |
| No | Yes | No | No |
| No | Yes | Yes | No |
| Yes | No | No | Yes |
| Yes | No | Yes | No |
| Yes | Yes | No | No |
| Yes | Yes | Yes | No |
The individual columns have the following meaning:
- Enrolled in course: The user has been enrolled in the course via any of the configured enrolment methods
- Course hidden: The field Course hidden in the course settings has been enabled/disabled
- Course hidden from catalogue: The course is shown/hidden, following the steps outlined above
- Visible in the catalogue: Given the above the settings, the course will be shown in the learning catalogue or not
This overlap of features is likely to be rectified in future version of Moodle Workplace.
Hiding program in the learning catalogue
To hide specific programs from the learning catalogue, you have currently two options:
You either make use of the built-in Show this program in the catalogue setting in the Catalogue section of program details or you follow the following steps, which are similar to the hiding of courses described in the previous section:
1. Create a shared custom course field that acts as a trigger to show/hide courses and programs in the catalogue:
- Go to Site administration → General → Custom fields -> Shared custom fields
- Create a new Checkbox type custom field that is used as the mentioned show/hide trigger, for example: Name: “Hide item from catalogue”, Shortname: “hideitem",
2. Go to the program that should be hidden from the catalogue and tick the new custom field in the program details. Repeat this step for all programs that must not be shown in the catalogue.
3. Select the new shared custom field from the Hidden custom field drop-down in the learning catalogue settings.
Now, any program that has the hiding trigger selected will not appear in the learning catalogue.
When you select a shared custom field from the Hidden custom field drop-down and Save the changes, the field will be removed from the following 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 program, the item will not appear in his/her catalogue, that is, the item can only be accessed via URL.
The following table provides an overview the visibility of a program in the learning catalogue:
| Program visibility | Allocated to program | Program shown | Program hidden from catalogue | Visible in catalogue |
|---|---|---|---|---|
| No | No | No | No | No |
| No | No | No | Yes | No |
| No | No | Yes | No | No |
| No | No | Yes | Yes | No |
| No | Yes | No | No | No |
| No | Yes | No | Yes | No |
| No | Yes | Yes | No | No |
| No | Yes | Yes | Yes | No |
| Yes | No | No | No | No |
| Yes | No | No | Yes | No |
| Yes | No | Yes | No | Yes |
| Yes | No | Yes | Yes | Yes |
| Yes | Yes | No | No | No |
| Yes | Yes | No | Yes | No |
| Yes | Yes | Yes | No | Yes |
| Yes | Yes | Yes | Yes | Yes |
The individual columns have the following meaning:
- Program visibility: The field Program visibility in the program details has been shown/hidden
- Allocated to program: The user has been allocated in the program via any of the configured program allocation methods
- Program shown: The field Show this program in the catalogue setting in the Catalogue section of program details has been enabled/disabled
- Program hidden from catalogue: The program is shown/hidden, following the steps outlined above
- Visible in the catalogue: Given the above the settings, the program will be shown in the learning catalogue or not
This overlap of features is likely to be rectified in future version of Moodle Workplace.
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
Payment Support
The learning catalog can automatically extract prices from course and program enrollment methods, display them next to the items, 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 or program 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 General > Custom fields > Shared 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.

To specify the price of a course, you need to follow these steps:
- Inside the course, navigate to Participants and select the Enrolment methods dropdown
- Ensure that the Enrolment on payment method is enabled
- Edit the enrolment method and specify the Enrolment fee and Currency.
To specify the price of a program, you need to follow these steps:
- Inside the program, navigate to Users and select the Allocation sources dropdown
- Edit the Payment instance source and specify the Price and Currency.
The specified price will now appear in the custom fields of course settings and program details, respectively.

The shown Update action should be triggered when the price has been changed in the enrolment method or allocation source, and has to synchronised again.
The new price field will now be available in the various fields sections on the Learning catalogue settings page. Once selected, the price field will appear in the different areas of the learning catalogue.