On tente de corriger un problème de calcul de l'objet à afficher à partir...
On tente de corriger un problème de calcul de l'objet à afficher à partir d’une URL dans des cas où une un article a la même URL (hors rubrique de langue) dans 2 langues différentes, par exemple lorsqu'on a un article "contact" dans la rubrique FR et dans la rubrique EN. En URLs arborescentes standard, on obtient les URLs 'fr/contact' et 'en/contact' et il est donc possible de discriminer l’article en fonction de sa rubrique parente qui est présente dans l’URL. Avec ce plugin par contre, on a 'domaine.fr/contact' et 'domaine.en/contact', et l'URL reçue à analyser est simplement 'contact' (avec l'environnement 'lang=fr' ou 'lang=en' renseigné). Les URLs arbos ne sont pas capables de déduire quel article 'contact' est à utiliser car la rubrique n'est pas indiqué dans l’URL. On modifie du coup, pour les cas où il n’y a aucun / dans l’URL (considérant que c'est un article ou une rubrique), l'appel au calcul de l’objet par les urls arborescentes, en préfixant la langue fr/ ou en/ . Ce faisant, les urls arborestentes trouvent bien l’article correct, mais veulent rediriger sur sa véritable URL du coup (ie: 'domaine.fr/contact' et pas 'fr/contact' qu'on lui envoie grosso modo). On annule la redirection si cette redirection est l'URL sur laquelle on arrivait effectivement. Il faudrait trouver mieux comme solution tout de même. En 3.2 il pourrait être sage, par exemple, d'utiliser le champ 'langue' de spip_urls, et de générer des URLs de langue pour toute la branche article/rubrique d’une langue automatiquement par défaut. On pourrait ainsi utiliser ce champ 'langue' pour départager 2 urls identiques lorsqu'on a la langue dans l'environnement comme ici. Au passage, on corrige un autre bug : return urls_arbo_dist($i, $entite, $args = '', $ancre = ''); Ce return écrasait $args et $ancre (copié collé !). C'était pas malin.
parent
4c9d0dae
Veuillez vous inscrire ou vous se connecter pour commenter