This allows 3rd party to alter the query of dates when demand is used.
E.g. allow more complex filters specific for some situations like CEs.
Relates: #9505
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
Update of TYPO3 results in the following error:
------ -----------------------------------------------------------------------
Line Classes/Service/DestinationDataImportService.php
------ -----------------------------------------------------------------------
135 Property
Wrm\Events\Service\DestinationDataImportService::$objectManager with
generic class TYPO3\CMS\Extbase\Object\ObjectManager does not specify
its types: T
💡 You can turn this off by setting
checkGenericClassInNonGenericObjectType: false in your
phpstan.neon.
160 Method Wrm\Events\Service\DestinationDataImportService::__construct()
has parameter $objectManager with generic class
TYPO3\CMS\Extbase\Object\ObjectManager but does not specify its
types: T
💡 You can turn this off by setting
checkGenericClassInNonGenericObjectType: false in your
phpstan.neon.
------ -----------------------------------------------------------------------
We disable the check for now.
Most of the time dates are fetched and shown.
They need the event to show info like title.
But they nearly never need further dates, except in detail view.
Turning this property lazy will save a lot of data fetching and mapping
and provides a huge performance impact.
Properly cleanup system.
Delete further records when deleting everything.
Also respect further records when purging old entries.
Respect:
* sys_category_record_mm
* sys_file_reference
* sys_file_metadata
Destination data provides an attribute "DETAILS_ABGESAGT" to mark an
event as canceled.
We now fetch that info and mark all dates of that event as canceled.
This also contains refactoring of creation of dates within import.
All dates had the same info, and are now created at a single place.
Relates: #9280
Extbase Category repository was used, while custom Category instances
were expected.
The repository didn't inherit from Extbase Repository and therefore
didn't provide expected findByUid method.
The properties should always be ObjectStorage instances.
We streamline the annotation and initialization to ensure exactly that.
Also import needs small adjustment as it still expected null as possible
return type.
Some sites do not use postponed_date at all.
It would be a massive performance issue to still search for them for
each and every date instance that is created.
This small addition will solve the issue for those pages.
It will still once at least one internal reference is added.
We could then try to add proxies which are build and added, but don't
use the DB. That way the performance would still be okay, and data will
only be fetched when used.
Do not check for models, but actual file.
They might be missing, e.g. cause not downloaded from production into
dev environment.
The new checks ensure the page will not break with an exception, but
show default images.
The old identifier had a trailing comma.
Old installations would break if we do not keep the command under this
identifier.
Updating scheduler tasks is a bad thing, so we keep compatibility.
The process will not call __construct, the object storages might not be
initialized. Therefore initializeObject is now implemented which is
calling the existing method to initialize object storages.
Adjust cache name to match TYPO3 v10 convention without "cache_" prefix.
Add default configuration to prevent issue if integrator does not
configure cache.
Extbase will properly use mm sorting.
But categories can't be sorted within the TCA tree component.
Therefore it makes more sense to use actual sys_category sorting.
In order to do so, we add our own model and pass the sorting.
That way PHP can do the sorting.
That's the easiest approach.
Also events shouldn't contain to many categories. A performance impact
should not be high.
Relates: #8459
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