Moodle Plugins directory: Course catalog | Moodle.org
Course catalog
Local plugins ::: local_coursecatalog
Maintained by
Developer Agiledrop
Course Catalog lets admins create multiple course-listing pages, each tied to a Moodle course category, and optionally expose them in the primary navigation. Each page displays courses as sortable cards (grid or list view) with enrolment/start buttons, section and activity counts, and optional guest access - all managed from a simple admin interface.
Latest release:
26 sites
94 downloads
1 fans
Current versions available: 1
Course Catalog
Course Catalog is a Moodle local plugin that lets administrators create multiple named course-listing pages, each scoped to a course category, and optionally surface them in the primary navigation. Learners browse courses as sortable cards (grid or list) with enrolment and start buttons — no block required, no theme changes needed.
Features
- Multiple catalog pages — create as many pages as you need, each tied to a different course category.
- Slug-based URLs — each page gets a clean, human-readable URL (
view.php?slug=your-slug). - Rich-text page description — per-page intro text with full HTML editor support.
- Grid & list view toggle — learners can switch between card grid and compact list layout.
- Pagination — course listings are paginated with a configurable number of items per page.
- Sortable courses — sort by name (A–Z / Z–A) or section count (few→many / many→few).
- Selective subcategory inclusion — optionally include courses from all or specific subcategories via an autocomplete multi-select.
- Application-level caching — course card data is cached and automatically invalidated when courses, sections, or modules change.
- Context-aware enrolment buttons — shows Start for already-enrolled users and Enroll for others.
- Section & activity counts on each course card (excludes quiz, feedback, and certificate-only sections from section count).
- Per-page enable/disable toggle — disabled pages show a friendly message to learners; managers see a preview banner.
- Guest access toggle — allow unauthenticated users to view specific pages without logging in.
- Primary navigation integration — optionally expose pages as top-level nav links.
- Page ordering — reorder pages with up/down controls from the admin list.
- Graceful deleted-category handling — pages whose category has been removed display a clear notice instead of crashing.
Requirements
- Moodle 4.5+
- PHP 8.1+
Installation
Install via ZIP upload
- Go to Site administration → Plugins → Install plugins.
- Upload the ZIP file and complete validation.
- Finish installation with the on-screen prompts.
Install manually
Copy the plugin directory to:
{your/moodle/dirroot}/local/coursecatalog
Then visit Site administration → Notifications to complete installation.
Or run:
$ php admin/cli/upgrade.php
Usage
- Go to Site administration → Local plugins → Course catalog → Manage Course catalog pages.
- Click Add new page.
- Enter a page name, slug, optional description, and select a course category.
- Optionally enable Include subcategories and select specific subcategories to include.
- Save, then use the toggle controls to enable the page, show it in navigation, or allow guest access.
Per-page controls (from the admin list)
- Enable / Disable page
- Show / Hide in primary navigation
- Enable / Disable guest access
- Move up / Move down (page ordering)
- Edit (name, slug, description, category)
- Delete
Notes
- Only visible courses within the selected category are displayed.
- Guest access is automatically blocked on disabled pages, even if the toggle is on.
- Navigation links are automatically hidden for disabled pages.
- The plugin respects Moodle's standard enrolment and visibility permissions.
Privacy
This plugin does not store personal data. It only reads existing course and enrolment data and implements the Moodle Privacy API as a null provider.
Support & Contribution
- Issue tracker: Report a bug or request a feature
- Source code: View the repository
License
GNU GPL v3 or later.
Useful links
Contributors
Developer Agiledrop (Lead maintainer)
Please login to view contributors details and/or to contact them
NIce plugin!
Pagination would be a handy feature.