Как настроить routeEnhancers для простого параметра GET? - PullRequest
1 голос
/ 11 апреля 2020

Я пытаюсь создать routeEnhancer для простого параметра GET:

/? PageNumber = 1 & cHash = ...

Этот параметр (включая cHa sh) создается браузером страниц многостраничной карты сайта (чистый TypoScript), которую можно смоделировать с помощью следующего упрощенного TypoScript:

page.10 = COA
page.10{
    10 = LOAD_REGISTER
    10{
        pageNumber.cObject = TEXT
        pageNumber.cObject.value = 0
        pageNumber.cObject.override.data= GP:pageNumber
        pageNumber.cObject.wrap = (|+1)
        pageNumber.prioriCalc = intval
    }
    20 = TEXT
    20{
        data = register:pageNumber
        typolink {
            parameter.data = TSFE:id
            additionalParams.data = register:pageNumber
            additionalParams.wrap = &pageNumber=|
        }
    }
}

Результат (без routeEnhancers):

  • На странице 0 (root страница "/"): <a href="/?pageNumber=1&amp;cHash=...">1</a>
  • На странице 1: <a href="/?pageNumber=2&amp;cHash=...">2</a>
  • На странице 2: <a href="/?pageNumber=3&amp;cHash=...">3</a>

И так далее. Это работает, как и ожидалось, но я хотел бы иметь более хорошие URL.

Мои routeEnhancers пытаются переписать URL:

routeEnhancers:
  PageBrowser:
    type: Simple
    routePath: '/page/{page_number}'
    requirements:
      page_number: '[0-9]'
    _arguments:
      page_number: 'pageNumber'

Результат с этим routeEnhancer:

  • На странице 0: <a href="/page/1/">1</a>
  • На странице 1 ссылка , к сожалению, остается неизменной : <a href="/page/1/">1</a>

Кажется, что кодировка работает, но декодирование не удается. Что я делаю не так?

1 Ответ

0 голосов
/ 14 апреля 2020

Похоже, что существует некоторая путаница с page_number и pageNumber:

Я думаю, что эта установка делает то, что вы ищете. (Мне тоже пришлось вручную удалять кеш)

page = PAGE
page.10 = COA
page.10{
    10 = LOAD_REGISTER
    10{
        pageNumber.cObject = TEXT
        pageNumber.cObject.value = 0
        pageNumber.cObject.override.data= GP:pageNumber
        pageNumber.cObject.wrap = (|+1)
        pageNumber.prioriCalc = intval
    }
    20 = TEXT
    20{
        data = register:pageNumber
        typolink {
            parameter.data = TSFE:id
            additionalParams.data = register:pageNumber
            additionalParams.wrap = &pageNumber=|
        }
    }
}


routeEnhancers:
  PageBrowser:
    type: Simple
    routePath: '/page/{pageNumber}'
    requirements:
      pageNumber: '[0-9]+'
...