From b38d7eec423c9fe31e43459812ef120a9969f2c8 Mon Sep 17 00:00:00 2001 From: Cerdic <cedric@yterium.com> Date: Mon, 28 Feb 2022 12:07:42 +0100 Subject: [PATCH] =?UTF-8?q?Fix=20#5067=20:=20ne=20pas=20se=20rabattre=20su?= =?UTF-8?q?r=20les=20urls=20pages=20si=20un=20type=20d'url=20a=20=C3=A9t?= =?UTF-8?q?=C3=A9=20demand=C3=A9=20explicitement=20(appel=20depuis=20urls?= =?UTF-8?q?=5Ftransition=5Fretrouver=5Fanciennes=5Furl=5Fpropres())=20nota?= =?UTF-8?q?mment?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ecrire/inc/utils.php | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php index ac64ab17d8..fb8309844b 100644 --- a/ecrire/inc/utils.php +++ b/ecrire/inc/utils.php @@ -1789,17 +1789,18 @@ function charger_fonction_url(string $quoi, string $type = '') { return ''; } - if (!$type) { - $type = $GLOBALS['type_urls'] ?? $GLOBALS['meta']['type_urls'] ?? 'page'; // sinon type "page" par défaut + $url_type = $type; + if (!$url_type) { + $url_type = $GLOBALS['type_urls'] ?? $GLOBALS['meta']['type_urls'] ?? 'page'; // sinon type "page" par défaut } // inclure le module d'url - include_spip('urls/' . $type); + include_spip('urls/' . $url_type); switch ($quoi) { case 'page': if ( - function_exists($f = "urls_{$type}_generer_url_page") + function_exists($f = "urls_{$url_type}_generer_url_page") or function_exists($f .= '_dist') // ou une fonction custom utilisateur independante du type d'url or function_exists($f = 'generer_url_page') @@ -1814,18 +1815,18 @@ function charger_fonction_url(string $quoi, string $type = '') { default: $fquoi = ($quoi === 'objet' ? 'generer_url_objet' : 'decoder_url'); if ( - function_exists($f = "urls_{$type}_{$fquoi}") + function_exists($f = "urls_{$url_type}_{$fquoi}") or function_exists($f .= '_dist') ) { return $f; } // est-ce qu'on a une ancienne fonction urls_xxx_dist() ? // c'est un ancien module d'url, on appelle l'ancienne fonction qui fait tout - if ($f = charger_fonction($type, 'urls', true)) { + if ($f = charger_fonction($url_type, 'urls', true)) { return $f; } - // sinon on se rabat sur les urls page - if ($type !== 'page') { + // sinon on se rabat sur les urls page si ce n'est pas un type demande explicitement + if (!$type and $url_type !== 'page'){ return charger_fonction_url($quoi, 'page'); } return ''; -- GitLab