priorist / edm-typo3
Provides a plugin to render events from EDM in TYPO3.
Installs: 541
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Language:JavaScript
Type:typo3-cms-extension
pkg:composer/priorist/edm-typo3
Requires
- priorist/edm-sdk: ^1.0
- typo3/cms-backend: ^12.4 || ^13.4
- typo3/cms-core: ^12.4 || ^13.4
- dev-master
- v3.1.7
- v3.1.6
- v3.1.5
- v3.1.4
- v3.1.3
- v3.1.2
- v3.1.1
- v3.1.0
- v3.0.10
- v3.0.9
- v3.0.8
- v3.0.7
- v3.0.6
- v3.0.5
- v3.0.4
- v3.0.3
- v3.0.2
- v3.0.1
- v3.0.0
- v2.0.2
- v1.2.11
- v1.2.10
- v1.2.9
- v1.2.8
- v1.2.7
- v1.2.6
- v1.2.5
- v1.2.4
- v1.2.3
- v1.2.2
- v1.2.1
- v1.2.0
- v1.1.9
- v1.1.8
- v1.1.7
- v1.1.6
- v1.1.5
- v1.1.4
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.9
- v1.0.8
- v1.0.7
- v1.0.6
- v1.0.5
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
- v0.9.9
- v0.9.8
- v0.9.7
- 0.9.6
- v0.9.3
- v0.9.2
- v0.9.1
- v0.9.0
- v0.8.0
- v0.7.0
- 0.6.0
- v0.5.0
- 0.4.0
- 0.3.0
- 0.2.0
- 0.1.0
This package is auto-updated.
Last update: 2025-10-30 14:00:07 UTC
README
A Typo3 extension that interacts with Education Manager (EDM).
Necessary Typo3 Setup
In order for the extension to work properly, there are some things to configure within your Typo3 instance.
TypoScript
Firstly, you should create a root template that defines the following TypoScript constants (not setup!):
plugin.tx_edmtypo3 {
edm {
url = <URL of your EDM instance>
auth {
// OAuth App (configured in EDM) for general authentication, i.e. listing events
anonymous {
clientId = <Client ID for general authentication>
clientSecret = <Client Secret for general authentication>
}
// OAuth App (configured in EDM) for actual user authentication if EDM Login Portal is activated (optional)
profile {
clientId = <Client ID if EDM Login Portal is activated>
redirectUri = <Redirect URI after successful login>
}
}
}
// Used in Fluid templates to load correct file versions
versions {
form = <Version number of the registration form, i.e 2.0.3>
config = <Version number of the registration form config, i.e 1.3.1>
profile-snippet = <Version number of the EDM profile snippet, i.e 1.0.0>
}
errors {
enrollment {
mailFrom = <Sender of the error mail>
mailTo = <Recipient of the error mail>
mailSubject = <Subject of the error mail>
}
}
// Page UIDs that are used to properly link from TYPO3 templates
pageuids {
eventSearch = <puid>
eventDetail = <puid>
eventEnrollment = <puid>
locationDetail = <puid>
lecturerDetail = <puid>
}
customConditions {
// Used in EventController to specify EDM event types for which all events should be shown, regardless of dates or price
eventTypes {
showAllEvents = <eventId>
}
}
}
Page Structure
How you use the extension is totally up to you, but in general the following page setup is advisable:
- A page containing the
Eventdetailplugin ("Veranstaltungen: Detailseite"). This shows detailed information about a single event. - A page containing the
Enrollmentnewplugin ("Veranstaltungen: Anmeldung"). The template must integrate ouredm-registration-formReact application to handle enrollments (see below). - A page containing either the
Eventsearchplugin ("Veranstaltungen: Suche") or using theEventlistplugin ("Veranstaltungen: Liste") wherever you want to. Both list events, but theEventsearchplugin providesfilterDataandcategoryTreeto the Fluid template, making it possible to build search/filter functionality on top. Whereas theEventlistplugin offers more filters in the TYPO3 backend.
Enrollment to Events
To enable enrollments in EDM through the website, the following has to be ensured:
- A page includes the
Enrollmentnewplugin. - The
Private/Ext/edm/Templates/Enrollment/New.htmltemplate includes theedm-registration-formJavascript files (formandconfig) - The
Private/Ext/edm/Templates/Enrollment/New.htmltemplate exposes theaccessTokenprovided by the controller as a Javascript variable called__authToken - The
edm-registration-formis initialised like so:
EdmForm.init( EdmForm.config, // DO NOT CHANGE __event, // The Javascript variable the `event` from the controller is stored into "event", // DO NOT CHANGE document.getElementById("edm-registration-form"), // CSS selector of an HTML element the form is attached to 680, // Max width of the form application; defaults to "none" 16, // Padding that should be applied to the form application; defaults to 0 "", // Only relevant for "newsletter" variant, not for "event" "", // Only relevant for "newsletter" variant, not for "event" "de" // Language the form should render in, currently works with "de", "en", "fr" and "es"; defaults to "de" );
Filter for Events
This extension provides a basic jQuery filter plugin and template to use the data provided by the Eventsearch plugin. It requires jQuery to be available on the website.
The Search template also includes the following Javascript libraries that are leveraged by the filter plugin:
The filter plugin is initialised within the Search template like so:
<script> $(".edm-event-search").eventFilterPlugin(); </script>
Optionally you can pass an options objects to override any configurable settings of the filter plugin, e.g. selectors, texts or filter definitions.
Extend Extension
It is possible to further extend the extension for your needs. This can be done either through hooks or by adding to already existing controller actions.
Since the provided templates are very rudimentary, it is advised to build your own in a separate extension, overwriting the ones from the edm-typo3 extension.