Actions
Bug #89185
closedRouting: requirements are not validated for PersistedAliasMapper in PluginEnhancer/ExtbasePluginEnhancer
Status:
Closed
Priority:
Should have
Assignee:
-
Category:
Link Handling, Site Handling & Routing
Target version:
-
Start date:
2019-09-17
Due date:
% Done:
0%
Estimated time:
TYPO3 Version:
9
PHP Version:
7.2
Tags:
Complexity:
Is Regression:
Sprint Focus:
Description
I'd like to add a requirement for an aspect of type PersistedAliasMapper
on a custom slug
field:
routeEnhancers: ExamplePlugin: type: Extbase extension: Example plugin: Entities routes: - routePath: '/{entity}' _arguments: entity: entity requirements: entity: '^...$' aspects: entity: type: PersistedAliasMapper tableName: tx_myext_domain_model_entity routeFieldName: slug
Routing and link generation works like expected, but /{entity}
isn't validated.
PLease have a look at function PluginEnhancer::getNamespacedRequirements():
protected function getNamespacedRequirements(): array { $requirements = []; foreach ($this->configuration['requirements'] ?? [] as $name => $value) { $requirements[$this->namespace . '_' . $name] = $value; } return $requirements; }
This will store the requirement as $requirements['tx_example_entities_entity']
but function VariableProcessor::deflateValues() uses VariableProcessor::LEVEL_DELIMITER
which is __
(double underscore).
Altering getNamespacedRequirements() to also use double underscore fixes this issue.
Actions