Usage
Table of Contents
Managing course types
Course types categorise your courses (e.g. "Workshop", "Seminar", "Certificate Program"). They are used for filtering in the course list.
- Navigate to your storage folder in Web > List.
- Click the Create new record button.
- Select Type under the Education Courses section.
-
Fill in the fields:
- Title -- The display name of the type (e.g. "Seminar").
- Description -- Optional description of this course category.
- Slug -- Auto-generated from the title. Used for URL generation.
- Save the record.
Create at least one type before creating courses. Types enable visitors to filter the course list by category.
Creating courses
A course represents an educational offering (e.g. "Project Management Fundamentals"). It is the top-level entity in the hierarchy.
- Navigate to your storage folder in Web > List.
- Click Create new record and select Course.
-
Fill in the General tab:
- Title -- The course name.
- Slug -- Auto-generated from the title for URL routing.
- Type -- Select a previously created type.
- Description -- Short summary shown in list views.
- Content -- Full course description (RTE field).
-
Fill in the Details tab:
- Objectives -- Learning objectives of the course.
- Target Groups -- Who should attend this course.
- Admission Requirements -- Prerequisites for enrolment.
- Add Images via the file reference relation.
- Save the record.
Adding contact persons
Contact persons are shared records that can be linked to multiple courses via an MM relation.
-
Create ContactPerson records in your storage folder:
- Salutation -- e.g. "Frau", "Herr".
- Title -- Academic title (e.g. "Dr.", "Prof.").
- First Name and Last Name.
- Phone and Email.
- To link a contact person to a course, edit the course record and add the contact person in the Contact Persons relation field.
A single contact person can be assigned to multiple courses. Changes to the contact person record are reflected everywhere it is used.
Adding events
Events are concrete scheduled instances of a course. They are stored as inline (IRRE) children of the course record.
- Edit a course record.
- In the Events section, click Create new.
-
Fill in the event fields:
- Title -- Name of this specific event instance (e.g. "Spring 2026").
- Event Code -- Internal identifier or booking code.
- Description -- Additional details specific to this event.
- Start Date and End Date -- The overall event period.
- Duration -- Text field for display purposes (e.g. "3 days", "40 hours").
- Price -- Numeric value in EUR. Displayed as formatted currency (e.g. "1.250,00 EUR").
- Location -- Select a previously created location record.
- Booked Up -- Check if this event is fully booked. Displayed as a flag in the frontend.
- On Request -- Check if pricing is only available on request. When enabled, the price is hidden in the frontend.
- Slug -- Auto-generated from the title.
- Save the course (events are saved with the parent course).
Note
Deleting a course will automatically delete all its events (cascade delete).
Adding single events
Single events represent individual session dates within a multi-day event. They are stored as inline (IRRE) children of the event record.
- Edit an event (within a course record).
- In the Single Events section, click Create new.
-
Fill in:
- Title -- Name of this session (e.g. "Day 1: Introduction").
- Start Date -- Date and time this session begins.
- End Date -- Date and time this session ends.
- Repeat for each session day.
Single events are displayed in the event detail view, providing visitors with a detailed schedule of multi-day events.
Note
Deleting an event will automatically delete all its single events (cascade delete).
Managing locations
Locations are standalone records representing physical venues.
-
Create a Location record in your storage folder:
- Name -- Venue name (e.g. "Conference Center Dresden").
- Street -- Street address.
- Zipcode -- Postal code.
- City -- City name.
- The location is then available for selection in event records.
The model provides a computed fullAddress property that combines street,
zipcode, and city into a single display string.
Linking similar courses
Courses can be cross-linked via the similar courses MM relation. This is useful for "You might also be interested in" sections on the course detail page.
- Edit a course record.
- In the Similar Courses relation field, add one or more other courses.
- Save.
In addition to manual linking, the CourseService provides automatic
suggestions based on matching course types. If a course has fewer manual
similar-course links than desired, the service fills up with other courses of
the same type.
Course list: search and filter
The CourseList plugin renders a list of courses with search and filter capabilities.
Frontend features:
- Search field -- Visitors can enter a text search term. The search is performed on course titles and descriptions.
- Type filter -- A dropdown or selection of course types to filter results.
- Reset button -- Clears all active filters and shows the full list.
- Pagination -- Results are paginated according to the
itemsPerPagesetting (default: 20).
How search works:
The list action accepts searchTerm and type parameters via POST. Since
the action is non-cacheable, each search request is processed fresh. The cHash
exclusion configuration ensures no cHash errors occur.
Configuration per instance:
Each CourseList plugin instance can override the detail page PID, list page PID, and items per page via the FlexForm (see Configuration).
Event listing
The EventList plugin displays events. It shows upcoming events and currently running events based on the start and end dates.
The event model provides two computed properties:
isUpcoming-- Returnstrueif the event's start date is in the future.isRunning-- Returnstrueif the current date is between the event's start and end dates.
These properties can be used in Fluid templates to visually distinguish between upcoming and running events.
Course and event detail views
The CourseDetail plugin renders all information about a single course:
- Title, description, content
- Objectives, target groups, admission requirements
- Images
- List of events with dates, prices, and locations
- Contact persons with phone and email
- Similar courses
The EventDetail plugin renders a single event:
- Title, event code, description
- Start/end dates, duration
- Price (formatted with currency symbol, or hidden for on-request events)
- Location with full address
- Schedule of single events (for multi-day events)