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
  1. Go to Site administration → Plugins → Install plugins.
  2. Upload the ZIP file and complete validation.
  3. 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

  1. Go to Site administration → Local plugins → Course catalog → Manage Course catalog pages.
  2. Click Add new page.
  3. Enter a page name, slug, optional description, and select a course category.
  4. Optionally enable Include subcategories and select specific subcategories to include.
  5. 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


License

GNU GPL v3 or later.

Screenshots

Screenshot #0
Screenshot #1
Screenshot #2
Screenshot #3
Screenshot #4

Contributors

Developer Agiledrop (Lead maintainer)
Please login to view contributors details and/or to contact them

Comments

Show comments
  • Plugins bot
    Tue, 17 Mar 2026, 6:10 PM
    Approval issue created: CONTRIB-10407
  • Ricardo Caiado
    Sat, 28 Mar 2026, 10:51 AM
    Hi,

    NIce plugin!

    Pagination would be a handy feature.
  • Ricardo Caiado
    Mon, 30 Mar 2026, 12:15 AM
    Include sub categries would be a handy feature too.
  • Ricardo Caiado
    Fri, 3 Apr 2026, 8:07 PM
    Thanks for the update (1.2) !!!
  • Ricardo Caiado
    Fri, 3 Apr 2026, 8:11 PM
    Just to let you know... first time loading course page is taking tooooooo much time... After that loading time is fast.
Please login to post comments