A new class is added which will add meta tags for dates and events.
The class has an interface which allows it to be replaced via DI to
alter behaviour.
Refactor import regarding data handler. We now also need to add a new
column "keywords". We use the new DataHandler approach.
But that approach only covered relations so far. We therefore refactor
that area to be more generic and use that one for new keywords column.
Relates: #10642
The pages now receive proper cache tags.
The import now properly clears those cache tags.
That way all corresponding pages will show updated content after import
finished.
We need one test that executes frontend requests and import command.
The separation is therefore removed and tests are streamlined to have a
single parent providing all necessary information and setup.
Move to a dedicated factory for easier re use.
Add dependencies and apply stdWrap to properties.
That allows to dynamically set values like dates by using stdWrap
features.
E.g.:
settings {
end {
strtotime = midnight +1 day
}
}
Relates: #9505
Using a FlexForm results in stored Unixtimestamps.
Adding 00:00 and using strtotime will result in false, resulting in
null.
We now just keep the provided value as integer.
That way underlying code works as expected and delivers events from
given start date.
Relates: #9352, #8581
Respect start and end when creating demand from settings.
That way integrator can configure it via TypoScript, or provide an
FlexForm.
Also the query was adjusted. It now respects a single value and doesn't
need start and end.
That way upcoming events can be created.
Relates: #8581
Make controller smaller, remove unused code.
Move creation of demand object into its own factory.
Reduce npath complexity in repository and move parts into named methods.
Allow editors to select specific events to display.
Therefore add new necessary demand and setting for events and respect
them within repository.
Relates: #8092
Allow editor to reference TYPO3 page records from events.
E.g. used to provide further internal information links.
Also those pages are resolved via DataProcessing.
That allows integrators to be 100% flexible to resolve those page info.
By default a menu is generated and media is resolved.
Also validation is ignored, as this improves performance and allows to
use the new class as injected property without validation fails.
Models are not managed via frontend and therefore don't need validation.
Relates: #8092
Allow configuration of synonyms via TypoScript.
This is taken into account when searching dates via submitted demand.
The configuration looks like the following:
plugin.tx_events {
settings {
synonyms {
10 {
word = Stadtführung
synonyms = Tour, Stadtführungen, Führung
}
}
}
}
The 10, 11, … is necessary as umlauts won't work as keys.
So `synonyms.Stadtführung = Tour, Stadtführungen` will not work.
Relates: #9158