Как заставить TYPO3 Route Enhancers правильно работать с пользовательским расширением (TYPO 3 v10)

Проблема:

В TYPO3 v10 у меня есть собственное расширение с простой моделью элементов, использующей системные категории. Я пытаюсь настроить сегменты URL-адресов системной категории (например, www.mywebsite.com/categories/<▪books) для маршрутизации к действию listitemsbycategory в моем контроллере элементов, чтобы отображать элементы по этой конкретной категории. На самом деле у меня есть страница, содержащая подключаемый модуль FE моего расширения (Myextensionplugin), расположенный по адресу www.mywebsite.com/categories/. Мне просто нужен URL-адрес www.mywebsite.com/categories/books для вызова действия listitemsbycategory, чтобы я мог использовать заголовок категории (в данном случае книги) для получения записей этой категории. Однако размещение приведенного ниже кода в коде config.yaml моего сайта не работает. Он просто перенаправляет www.mywebsite.com/categories/books на домашнюю страницу - вот и все. Я играл с файлом конфигурации около целого дня - похоже, ничего не работает.

Подводя итог тому, чего я пытаюсь достичь:

Сделайте так, чтобы www.mywebsite.com/categories/books вызывал действие listitemsbycategory моего контроллера на www.mywebsite.com/ категории / страница.

Код config.yaml (только часть routeEnhancers):

routeEnhancers:
  MyextensionCategory:
    type: Extbase
    limitToPages: [0,1,2]
    extension: Myextension
    plugin: Myextensionplugin
    routes:
      -
        routePath: '/categories/{category_title}'
        _controller: 'Item::listitemsbycategory'
        _arguments:
          category_title: category
    defaultController: 'Item::listitemsbycategory'
    requirements:
      category_title: '^[a-z0-9].*$'
    aspects:
      category_title:
        type: PersistedAliasMapper
        tableName: sys_category
        routeFieldName: slug

person R_K    schedule 07.04.2021    source источник
comment
На какой странице вы разместили свой плагин? Ваша конфигурация говорит на страницах UID 0, 1 и 2 (limitToPages). Сомневаюсь, что ваш плагин интегрирован на странице UID = 0 ...   -  person Julian Hofmann    schedule 07.04.2021
comment
Путь маршрута не требует / категорий (/ {category_title}) должно быть достаточно, так как страница плагина уже доставляет эту часть. Кроме того, я не вижу явных ошибок в вашей конфигурации.   -  person Christoph Kern    schedule 07.04.2021
comment
Спасибо Кристофу Керну и Джулиану Хофманну - оба ваших комментария помогли мне найти рабочее решение. В самом деле, limitToPages нужно было правильно установить только на одну страницу, на которой я фактически использовал плагин, И категории нужно было исключить из раздела routePath кода. Спасибо еще раз!   -  person R_K    schedule 07.04.2021


Ответы (1)


В качестве решения этой конкретной проблемы - limitToPages нужно было правильно установить только на одну страницу, на которой я фактически использовал плагин, И часть категорий необходимо было исключить из раздела routePath кода.

Спасибо @ChristophKern и @JulianHofmann за необходимые подсказки !.

person R_K    schedule 07.04.2021