web-dev-qa-db-fra.com

JRoute :: _ ('index.php') n'ajoute plus Itemid depuis Joomla 3.8.4

J'ai un composant personnalisé qui gère génère une page contenant une liste d'événements et une page fournissant des détails pour l'événement. Auparavant, je devais configurer un élément de menu pour gérer la page de liste:

Code: JRoute::_('index.php?Itemid=102&component=com_event&view=events');`            
Result: /index.php?Itemid=102&option=com_event&view=events
SEF: /events

Pour gérer l'URL des détails d'événements spécifiques, j'utiliserais simplement les éléments suivants:

Code: JRoute::_('index.php?component=com_event&view=event&id=1');
Result: /index.php?Itemid=102&option=com_event&view=event&id=1
SEF: /events/event/1

Depuis Joomla 3.8.4:

Code: JRoute::_('index.php?component=com_event&view=event&id=1');
Result: /index.php?option=com_event&view=event&id=1
SEF: /components/com_events/event/1

Le Itemid n'est plus inclus automatiquement. Cela crée un problème avec la vérification active des éléments de menu. Existe-t-il un moyen de résoudre ce problème en dehors de l'édition de chaque instance de JRoute pour inclure manuellement Itemid?

2
Chaosxmk

Il semble y avoir un bug avec le routage dans Joomla 3.8.4, problème connu et actuellement en discussion sur Github, ici:

https://github.com/joomla/joomla-cms/issues/19496

J'ai l'impression ailleurs qu'une solution rapide (temporaire) consiste à remplacer le fichier suivant:

bibliothèques/src/Router/SiteRouter.php

avec celui de Joomla 3.8.3

Il existe également une demande d'extraction ici: https://github.com/joomla/joomla-cms/pull/19498

1
Lodder