Skip to content
Extraits de code Groupes Projets
Valider acb33c22 rédigé par cerdic's avatar cerdic Validation de b_b
Parcourir les fichiers

fix: quand une URL de redirection contient une querystring avec des crochets,...

fix: quand une URL de redirection contient une querystring avec des crochets, les encoder pour générer l'URL affichée

Refs #4697
parent 0fe5e7c8
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -422,7 +422,20 @@ function lien_article_virtuel($virtuel) { ...@@ -422,7 +422,20 @@ function lien_article_virtuel($virtuel) {
return ''; return '';
} }
return propre('[->' . $virtuel . ']'); $joli = $virtuel;
$parts = parse_url($virtuel);
if (!empty($parts['query']) and str_contains($parts['query'], ']')) {
$query = str_replace(['[', ']'], [urlencode('['), urlencode(']')], $parts['query']);
$virtuel = str_replace("?" . $parts['query'], "?$query", $virtuel);
}
if ($virtuel !== $joli) {
$joli = propre('[' . $joli . ' -> ' . $virtuel . ']');
}
else {
$joli = propre('[->' . $virtuel . ']');
}
return $joli;
} }
......
...@@ -36,10 +36,12 @@ function formulaires_rediriger_article_charger_dist($id_article, $retour = '') { ...@@ -36,10 +36,12 @@ function formulaires_rediriger_article_charger_dist($id_article, $retour = '') {
include_spip('inc/texte'); include_spip('inc/texte');
include_spip('inc/filtres_ecrire');
$valeurs = [ $valeurs = [
'redirection' => $redirection, 'redirection' => $redirection,
'id' => $id_article, 'id' => $id_article,
'_afficher_url' => ($redirection ? propre("[->$redirection]") : ''), '_afficher_url' => ($redirection ? lien_article_virtuel($redirection) : ''),
]; ];
return $valeurs; return $valeurs;
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter