X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=www%2Fecrire%2Finc%2Futils.php;fp=www%2Fecrire%2Finc%2Futils.php;h=b875aa28464726b0705564bcca4c0f465ff25e7e;hb=122c920eb07e3f665789f8734965b576e6c25515;hp=03340b28ad3603d6cf444a7b32db18c9f8fdceaa;hpb=226942065cd4f604eb464addf45a065c9e5bc916;p=lhc%2Fweb%2Fwww.git
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 "";
+ 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']){