Typo3 8.7.x / Extbase / Realurl: добавить префикс для созданной HTML-страницы - PullRequest
0 голосов
/ 07 ноября 2018

Можно ли добавить префикс для сгенерированных страниц моего расширения с помощью realurl? Я использую следующую конфигурацию:

...
'postVarSets' => [
    '_DEFAULT' => [


        'gallery' => [
            [
                'GETvar' => 'tx_myext_p1gallery[action]',
                'noMatch' => 'bypass',
            ],
            [
                'GETvar' => 'tx_myext_p1gallery[controller]',
                'noMatch' => 'bypass',
            ],
            [
                'GETvar' => 'tx_myext_p1gallery[backId]',
                'noMatch' => 'bypass',
            ],
            [
                'GETvar' => 'tx_myext_p1gallery[gallery]',
                'lookUpTable' => [
                    'table' => 'tx_myext_domain_model_gallery',
                    'id_field' => 'uid',
                    'alias_field' => 'title',
                    'addWhereClause' => 'AND NOT deleted',
                    'useUniqueCache' => 1,
                    'useUniqueCache_conf' => [
                        'strtolower' => 1,
                        'spaceCharacter' => '-',
                    ],
                ],
            ],
            [
                'GETvar' => 'tx_myext_p1gallery[page]',
            ],
        ],

Теперь у меня есть такой URL: https://www.mydomain/galerie/2016-foobar/1.html Но я хочу это https://www.mydomain/galerie/2016-foobar/page1.html

1 Ответ

0 голосов
/ 07 ноября 2018

Единственное решение - как я знаю - будет использовать userFunc , который добавляет это поведение.

        [
            'GETvar' => 'tx_myext_p1gallery[page]',
            'userFunc' => SomeClass::class . '->somefunction'
        ],

Ваша функция должна затем добавить префикс страницы при кодировании или удалить префикс при декодировании.

public function somefunction($parameters = [])
{
  $value = $parameters['value'];

  if ($parameters['decodeAlias']) {
     return preg_replace('#^page([0-9]*)$#i', '$1', $value);
  } else {
     return 'page' . $value;
  }
}
...