Add own module group and migrate old menu to different modules.
This should improve user experience as most users are used to modules
and are not aware of the dropdown menu.
Rename Overview controller to Configuration controller
As it handled configurations.
This streamlines with labels and identifiers.
First check for existence before accessing.
The ObjectStorage itself has no check which will result in an PHP
warning due to accessing a none existing array key.
Relates: #10197
This allows to fetch merged opening hours instead of actually edited
opening hours.
They will be merged per valid time span.
The data structure is a bit different as each time span has a list of
week days, each with its own open and end.
Relates: #10246
The schema is very flexible and some values are not validated upfront.
This will result in many objects which we currently can not map.
This resulted in an exception breaking the rest of the import.
We now handle the broken mapping and skip those objects with proper
logging.
This allows to continue with import and report and debug those objects
in order to improve the mapping step by step.
Relates: #10198
Adds a new type of import configuration.
This configuration allows to define a single resource.
All the resources referenced via schema:containsPlace will be imported.
Relates: #10237
The objects might have an openingHours property.
This would break as our internal name would match during symfony
serialization.
We now use the expected property name.
The ctrl configuration already existed, just the corresponding column
configuration was missing.
It is now possible to hide and unhide the records within TYPO3 as usual.
Relates: #10230
Strip off seconds from strings.
Prepare code to easily provide a structured data to allow integrators to
format timing differently.
Provide a method to easily check if an opening hour is only valid for a
single day.
Relates: #10185
This broke with introduction of latest import date.
This could not be validated, but we do not need validation anyway and
therefore turn it off.
Relates: #9266
Opening hours are filtered. Opening hours from the past are no longer
available.
Opening hours are sorted. Newer opening hours are shown last.
Relates: #10185
The import resulted in an exception if there was an array of types
instead of a string.
Both situations are now handled and API of models is kept.
Existing imported data is also kept.
Not all things are managed by TouristMarketingCompany, some are managed
by generic organisations.
Those are now handled the same way as TouristMarketingCompany are
already handled.
That way those things can also be imported, as they now can import their
manager.
This is deprecated in newer PHP versions, one should use native
str_ends_with() instead.
We remove the deprecation by using this function. But we also support
older PHP versions, so we add symfony/polyfill-php80 as dependency to
always ensure this function exists.
The implementation of the TYPO3 RequestFactory and Uri classes is
internal API.
It is therefore better to decorate the PSR-17 interfaces instead
of extending or using the TYPO3 implementation directly.
* Support generation of code coverage generation
* Remove useless caching within GitHub
* Add TYPO3 11.5 within CI
* Update phpstan
Replace friendsoftypo3/phpstan-typo3 with saschaegerer/phpstan.
The friendsoftypo3 is intended for TYPO3 itself, while saschaegerer is
intended for community.
Also update all related packages.
Fix some new findings and update baseline.
* Run composer none interactive in CI
* Remove dependency checker
* Migrate tests to no longer use legacy dependencies
* https://forge.typo3.org/issues/97479
* Fix phpstan findings