Решение простое, но, похоже, документация неверна. Согласно документам, пользовательский усилитель должен быть зарегистрирован в ext_tables.php с помощью $ GLOBALS ['TYPO3_CONF_VARS'] ['SYS'] ['routing'] ['CustomPlugin'].
UPDATE
Если преобразователь зарегистрирован в ext_tables.php, он работает только в том случае, если вы вошли в TYPO3 BE. Картограф должен быть зарегистрирован в ext_localconf.php. Тогда он работает без входа в систему BE
Просмотр массива $ GLOBALS ['TYPO3_CONF_VARS'] ['SYS'] ['routing'] показывает, где зарегистрированы аспекты и средства улучшения:
Зарегистрируйте маппер в ext_tables.php:
// Custom Routing Aspects Mapper
$GLOBALS['TYPO3_CONF_VARS']['SYS']['routing']['aspects']['IdentifierValueMapper'] = \VENDOR\Extension\Routing\Aspect\IdentifierValueMapper::class;
Класс аспектов:
<?php
namespace VENDOR\Extension\Routing\Aspect;
use TYPO3\CMS\Core\Routing\Aspect\StaticMappableAspectInterface;
use TYPO3\CMS\Core\Site\SiteLanguageAwareTrait;
class IdentifierValueMapper implements StaticMappableAspectInterface
{
use SiteLanguageAwareTrait;
/**
* {@inheritdoc}
*/
public function generate(string $value): ?string
{
...
return $value !== false ? (string)$value : null;
}
/**
* {@inheritdoc}
*/
public function resolve(string $value): ?string
{
...
return isset($value) ? (string)$value : null;
}
}
Без пользовательского сопоставления мой URL всегда имеет (в моем случае абсолютно бесполезный / только некрасивый) атрибут cHash TYPO3:
/ страница / 2 / цена / по возрастанию / 03510890954e251e285104f156298e55952e4c7d? CHash = dd66994f041278f4c6bf2f7f64fb09e4
Теперь я получил URL без кеша:
/ страница / 3 / цена / по возрастанию / ae636e66563e72d3e4f592173f328fecbee5e44f