Мне очень нравится легкость, с которой Typo3 9.5.0 создает говорящие URL-адреса.
Единственная проблема, которая у меня есть, - заставить его работать с расширениями, такими как новости. Не могу найти способ заставить его работать и понятия не имею, с чего начать. Ценю вашу помощь.
С наилучшими пожеланиями Дэн
TYPO3 9.5.0 Новости 7.0.7





Новости расширения готовы для использования основных URL-адресов, начиная с версии 7.0.6. Убедитесь, что у вас есть правильная конфигурация, например настройка модуля «Сайт в Сайтах».
Вы можете сделать это с помощью директивы routeEnhancers в файле YAML конфигурации вашего сайта (обычно htdocs / config / sites // config.yaml). В официальной документации есть пример, хотя и немного скрытый:
Я активно использую эту конфигурацию:
rootPageId: <site id>
...
routeEnhancers:
NewsPlugin:
type: Extbase
limitToPages:
- 49 (when your news detail page id is 49)
- ...
extension: News
plugin: Pi1
routes:
-
routePath: '/blog/{page}'
_controller: 'News::list'
_arguments:
page: '@widget_0/currentPage'
-
routePath: '/tag/{tag_name}'
_controller: 'News::list'
_arguments:
tag_name: overwriteDemand/tags
-
routePath: '/{news_title}'
_controller: 'News::detail'
_arguments:
news_title: news
-
routePath: '/archive/{year}/{month}'
_controller: 'News::archive'
defaultController: 'News::list'
defaults:
page: '0'
aspects:
news_title:
type: PersistedAliasMapper
tableName: tx_news_domain_model_news
routeFieldName: path_segment
Привет, Павел, здорово, работает как шарм! Также ценю ссылку на руководство. Было слишком скрыто для меня. С уважением, Дэн
Я использую эту конфигурацию, но при переходе на следующую страницу на мою страницу со списком всегда добавляются деньги - кто-нибудь знает почему?
Как вы думаете, есть ли способ не жестко закодировать здесь идентификаторы страниц для limitToPages, а сказать что-то вроде «ограничить страницы, на которых есть плагин для детализации новостей»?
config / sites / config.yaml это новое соглашение, куда помещать конфигурации усилителя маршрута? этот каталог не существует по умолчанию или в предыдущих версиях с реальным URL-адресом
Рабочий пример typo3 9.5.5 с tx_news 7.1.0 с PersistedPatternMapper:
routeEnhancers:
NewsPlugin:
type: Extbase
limitToPages: [20,23,29,30]
extension: News
plugin: Pi1
routes:
- { routePath: '{page}',_controller: 'News::list',_arguments: {'page': '@widget_0/currentPage'} }
- { routePath: '{news_title}',_controller: 'News::detail',_arguments: {'news_title': 'news'} }
defaultController: 'News::list'
defaults:
page: '0'
requirements:
page: '\d+'
aspects:
news_title:
type: PersistedPatternMapper
tableName: 'tx_news_domain_model_news'
routeFieldPattern: '^(?P<path_segment>.+)-(?P<uid>\d+)$'
routeFieldResult: '{path_segment}-{uid}'
page:
type: StaticRangeMapper
start: '1'
end: '200'
Не могли бы вы подробно объяснить, что делают эти настройки, или хотя бы добавить ссылку на какую-нибудь документацию.
Чао Томас, вы уверены, что компетентны, видел много хороших предложений от вас, не могли бы вы сказать еще немного об этом ответе, я не понял ...