X-Git-Url: http://git.cyclocoop.org/?p=lhc%2Fweb%2Fwww.git;a=blobdiff_plain;f=www%2Fecrire%2Finc%2Futils.php;h=b875aa28464726b0705564bcca4c0f465ff25e7e;hp=03340b28ad3603d6cf444a7b32db18c9f8fdceaa;hb=122c920eb07e3f665789f8734965b576e6c25515;hpb=226942065cd4f604eb464addf45a065c9e5bc916 diff --git a/www/ecrire/inc/utils.php b/www/ecrire/inc/utils.php index 03340b28..b875aa28 100644 --- a/www/ecrire/inc/utils.php +++ b/www/ecrire/inc/utils.php @@ -3,7 +3,7 @@ /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * - * Copyright (c) 2001-2012 * + * Copyright (c) 2001-2014 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * @@ -45,7 +45,7 @@ function charger_fonction($nom, $dossier='exec', $continue=false) { if (!preg_match(',^\w+$,', $f)){ if ($continue) return false; //appel interne, on passe - die(htmlspecialchars($nom)." pas autorise"); + die(spip_htmlspecialchars($nom)." pas autorise"); } // passer en minuscules (cf les balises de formulaires) @@ -66,7 +66,7 @@ function charger_fonction($nom, $dossier='exec', $continue=false) { include_spip('inc/minipres'); echo minipres(_T('forum_titre_erreur'), - _T('fichier_introuvable', array('fichier'=> ''.htmlentities($d).''))); + _T('fichier_introuvable', array('fichier'=> ''.spip_htmlentities($d).''))); exit; } @@ -114,7 +114,6 @@ function minipipe($fonc,&$val){ // fonction if (function_exists($fonc)) $val = call_user_func($fonc, $val); - // Class::Methode else if (preg_match("/^(\w*)::(\w*)$/S", $fonc, $regs) AND $methode = array($regs[1], $regs[2]) @@ -407,11 +406,16 @@ function nettoyer_uri($reset = null) return $propre = (preg_replace(',[?&]$,', '', $uri1)); } -// -// donner l'URL de base d'un lien vers "soi-meme", modulo -// les trucs inutiles -// -// http://doc.spip.org/@self + +/** + * Donner l'URL de base d'un lien vers "soi-meme", modulo les trucs inutiles + * + * @param string $amp + * Style des esperluettes + * @param bool $root + * @return string + * URL vers soi-même +**/ function self($amp = '&', $root = false) { $url = nettoyer_uri(); if (!$root @@ -437,7 +441,8 @@ function self($amp = '&', $root = false) { } // eviter les hacks - $url = htmlspecialchars($url); + include_spip('inc/filtres_mini'); + $url = spip_htmlspecialchars($url); // & ? if ($amp != '&') @@ -512,7 +517,7 @@ function _T($texte, $args=array(), $options=array()) { $text = $texte; // pour les chaines non traduites, assurer un service minimum - if (!$GLOBALS['test_i18n']) + if (!$GLOBALS['test_i18n'] AND (_request('var_mode') != 'traduction')) $text = str_replace('_', ' ', (($n = strpos($text,':')) === false ? $texte : substr($texte, $n+1))); @@ -541,8 +546,8 @@ function _L($text, $args=array(), $class=null) { if ($args) spip_log("$f: variables inutilisees " . join(', ', array_keys($args)),_LOG_DEBUG); } - if ($GLOBALS['test_i18n'] AND $class===null) - return "$text"; + if (($GLOBALS['test_i18n'] OR (_request('var_mode') == 'traduction')) AND $class===null) + return "$text"; else return $text; } @@ -1795,6 +1800,9 @@ function spip_initialisation_suite() { else if (!defined('_INTERDIRE_COMPACTE_HEAD_ECRIRE')) define('_INTERDIRE_COMPACTE_HEAD_ECRIRE',true); // evite une page blanche car on ne saura pas calculer la css dans ce hit } + // Protocoles a normaliser dans les chaines de langues + if (!defined('_PROTOCOLES_STD')) + define('_PROTOCOLES_STD', 'http|https|ftp|mailto|webcal'); init_var_mode(); } @@ -1813,7 +1821,7 @@ function init_var_mode(){ if (!defined('_VAR_MODE')) define('_VAR_MODE',$_GET['var_mode']); } // preview, debug, blocs, urls et images necessitent une autorisation - else if (in_array($_GET['var_mode'],array('preview','debug','inclure','urls','images'))) { + else if (in_array($_GET['var_mode'],array('preview','debug','inclure','urls','images','traduction'))) { include_spip('inc/autoriser'); if (autoriser( ($_GET['var_mode'] == 'preview') @@ -1821,6 +1829,12 @@ function init_var_mode(){ : 'debug' )) { switch($_GET['var_mode']){ + case 'traduction': + // forcer le calcul pour passer dans traduire + if (!defined('_VAR_MODE')) define('_VAR_MODE','calcul'); + // et ne pas enregistrer de cache pour ne pas trainer les surlignages sur d'autres pages + if (!defined('_VAR_NOCACHE')) define('_VAR_NOCACHE',true); + break; case 'preview': // basculer sur les criteres de preview dans les boucles if (!defined('_VAR_PREVIEW')) define('_VAR_PREVIEW',true); @@ -2134,7 +2148,7 @@ function recuperer_fond($fond, $contexte=array(), $options = array(), $connect=' } $page = pipeline('recuperer_fond',array( - 'args'=>array('fond'=>$fond,'contexte'=>$contexte,'options'=>$options,'connect'=>$connect), + 'args'=>array('fond'=>$f,'contexte'=>$contexte,'options'=>$options,'connect'=>$connect), 'data'=>$page )); if (isset($options['ajax']) AND $options['ajax']){