Usage 

Adding the registration form 

The registration form is displayed on an event detail page or any page where visitors should be able to sign up for a specific event.

  1. Edit the page where the form should appear.
  2. Add a new content element of type Registration Form (dveducationregistration_registrationform).
  3. The form receives the eventUid either via a GET parameter (when linked from an event list) or from the TypoScript setting settings.eventUid.

The form collects the following participant data:

  • Salutation, first name, last name
  • Email address, phone number
  • Company name
  • Address, city, zip code
  • Notes (free text)

A checkbox for accepting the terms and conditions is rendered if settings.termsPageUid is set.

Confirmation workflow 

The double opt-in confirmation follows these steps:

  1. User submits the registration form -- the createAction stores a new Participant record with confirmed = false and generates a random 64-character hex hash (confirmationHash).
  2. Confirmation email is sent -- the participant receives an email containing a unique confirmation link. The link points to the page configured in settings.confirmationPid and includes the hash as a parameter.
  3. User clicks the confirmation link -- the confirmAction looks up the participant by hash. If found, it sets confirmed = true and displays a success message.
  4. Invalid or expired hash -- if no matching record is found (e.g., the hash is wrong or the record was already deleted by garbage collection), an error message is shown.

At the same time, an admin notification email is sent to the address configured in settings.adminEmail immediately when the registration is created (step 1), so the admin is informed without waiting for confirmation.

Confirmation page setup 

The confirmation page needs its own Registration Form content element:

  1. Create a dedicated page (e.g., "Registration Confirmation").
  2. Insert the Registration Form content element on this page.
  3. Set the UID of this page as settings.confirmationPid in TypoScript constants.
  4. The confirmation link in the email will direct users to this page with the hash parameter.

Inquiry form setup 

The inquiry form allows visitors to request inhouse training or general information about a course.

  1. Edit the page where the inquiry form should appear (typically the course detail page).
  2. Add a content element of type Inquiry Form (dveducationregistration_inquiryform).

The form collects:

  • Salutation, first name, last name
  • Email address, phone number
  • Company name
  • Request type: info (general information) or inhouse (on-site training request)
  • Course UID (can be passed automatically from the course detail context)
  • Notes (free text)

On submission, an admin notification email is sent to the address configured in settings.adminEmail.

Admin notifications 

Three types of email notifications are sent to the admin:

New registration
Sent immediately when a participant submits the registration form. Contains: participant name, email, company, and event UID.
New inquiry
Sent when a visitor submits the inquiry form. Contains: request type (info/inhouse), name, email, company, and notes.

All emails are sent from the address configured in $GLOBALS['TYPO3_CONF_VARS']['MAIL']['defaultMailFromAddress'].

Typical page structure 

A recommended page tree setup:

Root
+-- Courses (list view from dv_education_courses)
|   +-- Course Detail (detail view from dv_education_courses)
|       +-- Event Registration
|       |   Content: Registration Form plugin
|       +-- Inquiry
|           Content: Inquiry Form plugin
+-- Registration Confirmation
|   Content: Registration Form plugin (handles confirm action)
+-- Terms and Conditions
|   Content: Regular text content with T&C
+-- Storage (SysFolder, not in menu)
    Stores: Participant records, InquiryRequest records
Copied!

Configuration summary for this setup:

  • persistence.storagePid = UID of "Storage" folder
  • settings.adminEmail = admin email address
  • settings.confirmationPid = UID of "Registration Confirmation" page
  • settings.termsPageUid = UID of "Terms and Conditions" page