From 4d8b569ba5086e7c9b9555d01f2fd3cf22bbedc4 Mon Sep 17 00:00:00 2001 From: Fil <fil@rezo.net> Date: Mon, 28 May 2007 10:11:10 +0000 Subject: [PATCH] [9000] avait tue la langue dans les modeles (Paolo) --- ecrire/action/redirect.php | 1 + ecrire/inc/lang.php | 12 ++++++++--- ecrire/inc/texte.php | 42 +++++++++++++++++++------------------- ecrire/public.php | 5 +++-- 4 files changed, 34 insertions(+), 26 deletions(-) diff --git a/ecrire/action/redirect.php b/ecrire/action/redirect.php index 368c94d189..04246accc3 100644 --- a/ecrire/action/redirect.php +++ b/ecrire/action/redirect.php @@ -21,6 +21,7 @@ charger_generer_url(); function action_redirect_dist() { global $redirect; + $redirect = _request('redirect'); if ($mode = _request('var_mode')) $mode = "var_mode=$mode"; diff --git a/ecrire/inc/lang.php b/ecrire/inc/lang.php index 594bdc2f06..2e911e87be 100644 --- a/ecrire/inc/lang.php +++ b/ecrire/inc/lang.php @@ -77,11 +77,17 @@ function lang_dir($lang='', $droitier='ltr', $gaucher='rtl') { // http://doc.spip.org/@lang_typo function lang_typo($lang='') { if (!$lang) { - $lang = isset($GLOBALS['lang_objet']) ? $GLOBALS['lang_objet'] : $GLOBALS['spip_lang']; + $lang = isset($GLOBALS['lang_objet']) + ? $GLOBALS['lang_objet'] + : $GLOBALS['spip_lang']; } - if ($lang == 'eo' OR $lang == 'fr' OR substr($lang, 0, 3) == 'fr_' OR $lang == 'cpf') + if ($lang == 'eo' + OR $lang == 'fr' + OR substr($lang, 0, 3) == 'fr_' + OR $lang == 'cpf') return 'fr'; - else return 'en'; + else + return 'en'; } // gestion de la globale $lang_objet pour que les textes soient affiches diff --git a/ecrire/inc/texte.php b/ecrire/inc/texte.php index 931a94e8d7..56ef7a88fd 100644 --- a/ecrire/inc/texte.php +++ b/ecrire/inc/texte.php @@ -457,28 +457,31 @@ function typo($letexte, $echapper=true) { // Caracteres de controle "illegaux" $letexte = corriger_caracteres($letexte); - // Proteger les caracteres typographiques a l'interieur des tags html - $protege = "!':;?~%"; - $illegal = "\x1\x2\x3\x4\x5\x6\x7"; - if (preg_match_all(",</?[a-z!][^<>]*[!':;\?~%][^<>]*>,imsS", - $letexte, $regs, PREG_SET_ORDER)) { - foreach ($regs as $reg) { - $insert = $reg[0]; - // hack: on transforme les caracteres a proteger en les remplacant - // par des caracteres "illegaux". (cf corriger_caracteres()) - $insert = strtr($insert, $protege, $illegal); - $letexte = str_replace($reg[0], $insert, $letexte); + // Charger & appliquer la fonction de typographie + if ($typographie = charger_fonction(lang_typo(), 'typographie')) { + + // Proteger les caracteres typographiques a l'interieur des tags html + $protege = "!':;?~%"; + $illegal = "\x1\x2\x3\x4\x5\x6\x7"; + if (preg_match_all(",</?[a-z!][^<>]*[!':;\?~%][^<>]*>,imsS", + $letexte, $regs, PREG_SET_ORDER)) { + foreach ($regs as $reg) { + $insert = $reg[0]; + // hack: on transforme les caracteres a proteger en les remplacant + // par des caracteres "illegaux". (cf corriger_caracteres()) + $insert = strtr($insert, $protege, $illegal); + $letexte = str_replace($reg[0], $insert, $letexte); + } } - } - $lang = lang_typo(); - lang_select($lang); - $typographie = charger_fonction($lang, 'typographie'); + $letexte = $typographie($letexte); + + // Retablir les caracteres proteges + $letexte = strtr($letexte, $illegal, $protege); + + } - $letexte = $typographie($letexte); - // Retablir les caracteres proteges - $letexte = strtr($letexte, $illegal, $protege); // // Installer les modeles, notamment images et documents ; @@ -495,9 +498,6 @@ function typo($letexte, $echapper=true) { if (function_exists('apres_typo')) $letexte = apres_typo($letexte); - // remettre la langue precedente - if ($lang) lang_select(); - // reintegrer les echappements if ($echapper) $letexte = echappe_retour($letexte, 'TYPO'); diff --git a/ecrire/public.php b/ecrire/public.php index c6c7353f1c..e17ef8f403 100644 --- a/ecrire/public.php +++ b/ecrire/public.php @@ -56,8 +56,9 @@ if (defined('_INC_PUBLIC')) { include_spip('inc/headers'); $var_f = charger_fonction($action, 'action'); $var_f(); - if (_request('redirect')) - redirige_par_entete(urldecode(_request('redirect'))); + if ($GLOBALS['redirect'] + OR $GLOBALS['redirect'] = _request('redirect')) + redirige_par_entete(urldecode($GLOBALS['redirect'])); if (!headers_sent()) http_status(204); // No Content exit; -- GitLab