Je souhaite réécrire l'URL du résultat de la recherche dans indexed_search mais cela ne fonctionne pas. Rien n'arrive. J'ai ajouté RouteEnhancer à mon config.yaml
routeEnhancers: IndexedSearchPlugin: type: Extbase limitToPages: - 38 extension: IndexedSearch plugin: Pi2 routes: - routePath: '/page/{page}' _controller: 'Search::search' _arguments: page: '@widget_0/currentPage' defaultController: 'Search::search' defaults: page: '0' requirements: page: \d+ aspects: page: type: StaticRangeMapper start: '1' end: '100'
Peut-être que quelqu'un a une idée?
3 Réponses :
Je n'utilise pas beaucoup index_search, mais j'ai jeté un coup d'œil rapide au code du navigateur de pages. Le navigateur de pages pour indexed_search se fait à l'aide d'un formulaire et de JavaScript, pas de liens directs. Ainsi, lorsque vous cliquez sur une page dans le navigateur de pages, un champ masqué est défini et le formulaire est soumis. Les améliorations d'itinéraire ne fonctionneront que pour les liens générés par TYPO3. Je ne sais pas pourquoi cela est fait de cette façon, mais sans changer le fonctionnement du navigateur de page, vous ne pouvez pas améliorer ces URL.
Rudy Gnodde a raison: il n'y a pas de paramètre "page", vous n'avez donc pas besoin de le configurer.
Il vous suffit d'utiliser routeEnhancer pour avoir une URL comme www.domain.com/my-search-page/ rechercher où ma-page-de-recherche est la page contenant le plugin indexed_search.
routeEnhancers: IndexedSearchPlugin: type: Extbase extension: IndexedSearch plugin: Pi2 routes: - routePath: '/search' _controller: 'Search::search' defaultController: 'Search::search'
Je suppose que cela dépend de ce que vous essayez d'embellir. Dans mon cas, j'utilise ce config.yaml
pour obtenir une URL propre pour les résultats de la recherche (le champ de recherche est généré par TypoScript) et pouvoir effectuer une recherche par requête.
Disons que nous ' re avoir une page https: example.de/search/
avec le plugin indexed_search placé dessus.
À présent, la recherche à partir de n'importe quelle page avec le champ de recherche aboutira à cet uri:
https:example.de/search/results
Et vous pouvez créer un lien profond vers un résultat de recherche spécial (ici nous recherchons 'lorem') en utilisant simplement cet uri:
https:example.de/search/query/lorem
routeEnhancers: IndexedSearchPlugin: type: Extbase namespace: tx_indexedsearch_pi2 routes: - routePath: '/results' _controller: 'Search::search' _action: 'search::search' - routePath: '/query/{search/sword}' _controller: 'Search::search' _action: 'search::search' requirements: - search/sword: '[^/=?]*' defaultController: 'Search::search' defaultAction: 'search::search'
Au moins cela a fonctionné pour moi dans TYPO3 v10.4.8 (sans tester la pagination ou recherche avancée).
Si quelqu'un sait comment unir ces deux routes et ajouter la valeur de publication à l'URI, n'hésitez pas à laisser un commentaire.