From 2436748315a5eeabb67403ba2da2516daf40417e Mon Sep 17 00:00:00 2001
From: Cerdic <cedric@yterium.com>
Date: Sun, 13 Dec 2015 10:39:11 +0000
Subject: [PATCH] utiliser $GLOBALS plutot que global pour favoriser la
 lisibilite du code

---
 ecrire/public/assembler.php  |  34 ++++++-----
 ecrire/public/composer.php   |   4 +-
 ecrire/public/criteres.php   |  57 +++++++++----------
 ecrire/public/debusquer.php  |  51 ++++++++---------
 ecrire/public/interfaces.php | 106 +++++++++++++++++------------------
 ecrire/public/references.php |  14 ++---
 ecrire/public/tracer.php     |   3 +-
 7 files changed, 125 insertions(+), 144 deletions(-)

diff --git a/ecrire/public/assembler.php b/ecrire/public/assembler.php
index 8ebb4a8b8f..1e096715aa 100644
--- a/ecrire/public/assembler.php
+++ b/ecrire/public/assembler.php
@@ -29,9 +29,8 @@ function assembler($fond, $connect = ''){
 	// flag_preserver est modifie ici, et utilise en globale
 	// use_cache sert a informer le bouton d'admin pr savoir s'il met un *
 	// contexte est utilise en globale dans le formulaire d'admin
-	global $flag_preserver, $use_cache, $contexte;
 
-	$contexte = calculer_contexte();
+	$GLOBALS['contexte'] = calculer_contexte();
 	$page = array('contexte_implicite'=>calculer_contexte_implicite());
 	$page['contexte_implicite']['cache'] = $fond . preg_replace(',\.[a-zA-Z0-9]*$,', '', preg_replace('/[?].*$/', '', $GLOBALS['REQUEST_URI']));
 	// Cette fonction est utilisee deux fois
@@ -39,9 +38,9 @@ function assembler($fond, $connect = ''){
 	// Les quatre derniers parametres sont modifies par la fonction:
 	// emplacement, validite, et, s'il est valide, contenu & age
 	if ($cacher)
-		$res = $cacher($GLOBALS['contexte'], $use_cache, $chemin_cache, $page, $lastmodified);
+		$res = $cacher($GLOBALS['contexte'], $GLOBALS['use_cache'], $chemin_cache, $page, $lastmodified);
 	else
-		$use_cache = -1;
+		$GLOBALS['use_cache'] = -1;
 	// Si un resultat est retourne, c'est un message d'impossibilite
 	if ($res) {return array('texte' => $res);}
 
@@ -77,10 +76,10 @@ function assembler($fond, $connect = ''){
 		$page['texte'] = "";
 	} else {
 		// si la page est prise dans le cache
-		if (!$use_cache)  {
+		if (!$GLOBALS['use_cache'])  {
 			// Informer les boutons d'admin du contexte
 			// (fourni par urls_decoder_url ci-dessous lors de la mise en cache)
-			$contexte = $page['contexte'];
+			$GLOBALS['contexte'] = $page['contexte'];
 
 			// vider les globales url propres qui ne doivent plus etre utilisees en cas
 			// d'inversion url => objet
@@ -95,7 +94,7 @@ function assembler($fond, $connect = ''){
 			// et calculer la page
 			if (!test_espace_prive()) {
 				include_spip('inc/urls');
-				list($fond,$contexte,$url_redirect) = urls_decoder_url(nettoyer_uri(),$fond,$contexte,true);
+				list($fond,$GLOBALS['contexte'],$url_redirect) = urls_decoder_url(nettoyer_uri(),$fond,$GLOBALS['contexte'],true);
 			}
 			// squelette par defaut
 			if (!strlen($fond))
@@ -103,7 +102,7 @@ function assembler($fond, $connect = ''){
 
 			// produire la page : peut mettre a jour $lastmodified
 			$produire_page = charger_fonction('produire_page','public');
-			$page = $produire_page($fond, $contexte, $use_cache, $chemin_cache, NULL, $page, $lastmodified, $connect);
+			$page = $produire_page($fond, $GLOBALS['contexte'], $GLOBALS['use_cache'], $chemin_cache, NULL, $page, $lastmodified, $connect);
 			if ($page === '') {
 				$erreur = _T('info_erreur_squelette2',
 					array('fichier'=>spip_htmlspecialchars($fond).'.'._EXTENSION_SQUELETTES));
@@ -117,18 +116,18 @@ function assembler($fond, $connect = ''){
 
 		auto_content_type($page);
 
-		$flag_preserver |=  headers_sent();
+		$GLOBALS['flag_preserver'] |=  headers_sent();
 
 		// Definir les entetes si ce n'est fait 
-		if (!$flag_preserver) {
+		if (!$GLOBALS['flag_preserver']) {
 			if ($GLOBALS['flag_ob']) {
 				// Si la page est vide, produire l'erreur 404 ou message d'erreur pour les inclusions
 				if (trim($page['texte']) === ''
 				AND _VAR_MODE != 'debug'
 				AND !isset($page['entetes']['Location']) // cette page realise une redirection, donc pas d'erreur
 				) {
-					$contexte['fond_erreur'] = $fond;
-				  $page = message_page_indisponible($page, $contexte);
+					$GLOBALS['contexte']['fond_erreur'] = $fond;
+				  $page = message_page_indisponible($page, $GLOBALS['contexte']);
 				}
 				// pas de cache client en mode 'observation'
 				if (defined('_VAR_MODE') AND _VAR_MODE) {
@@ -217,16 +216,15 @@ function calculer_contexte_implicite(){
 
 // http://code.spip.net/@auto_content_type
 function auto_content_type($page){
-	global $flag_preserver;
-	if (!isset($flag_preserver)){
-		$flag_preserver = ($page && preg_match("/header\s*\(\s*.content\-type:/isx",$page['texte']) || (isset($page['entetes']['Content-Type'])));
+
+	if (!isset($GLOBALS['flag_preserver'])){
+		$GLOBALS['flag_preserver'] = ($page && preg_match("/header\s*\(\s*.content\-type:/isx",$page['texte']) || (isset($page['entetes']['Content-Type'])));
 	}
 }
 
 // http://code.spip.net/@inclure_page
 function inclure_page($fond, $contexte, $connect = ''){
 	static $cacher, $produire_page;
-	global $lastmodified;
 
 	// enlever le fond de contexte inclus car sinon il prend la main
 	// dans les sous inclusions -> boucle infinie d'inclusion identique
@@ -253,8 +251,8 @@ function inclure_page($fond, $contexte, $connect = ''){
 			$produire_page = charger_fonction('produire_page','public');
 		$page = $produire_page($fond, $contexte, $use_cache, $chemin_cache, $contexte, $page, $lastinclude, $connect);
 	}
-	// dans tous les cas, mettre a jour $lastmodified
-	$lastmodified = max($lastmodified, $lastinclude);
+	// dans tous les cas, mettre a jour $GLOBALS['lastmodified']
+	$GLOBALS['lastmodified'] = max($GLOBALS['lastmodified'], $lastinclude);
 
 	return $page;
 }
diff --git a/ecrire/public/composer.php b/ecrire/public/composer.php
index d526dc2e6e..e026ae91e8 100644
--- a/ecrire/public/composer.php
+++ b/ecrire/public/composer.php
@@ -505,13 +505,13 @@ function executer_balise_dynamique($nom, $args, $context_compil) {
  *     Liste des identifiants ayant un logo (séparés par une virgule)
 **/
 function lister_objets_avec_logos ($type) {
-	global $formats_logos;
+
 	$logos = array();
 	$chercher_logo = charger_fonction('chercher_logo', 'inc');
 	$type = '/'
 	. type_du_logo($type)
 	. "on(\d+)\.("
-	. join('|',$formats_logos)
+	. join('|',$GLOBALS['formats_logos'])
 	. ")$/";
 
 	if ($d = @opendir(_DIR_LOGOS)) {
diff --git a/ecrire/public/criteres.php b/ecrire/public/criteres.php
index b78696f917..920c4e1bce 100644
--- a/ecrire/public/criteres.php
+++ b/ecrire/public/criteres.php
@@ -41,11 +41,11 @@ define('_CODE_QUOTE', ",^(\n//[^\n]*\n)? *'(.*)' *$,");
  * @return void
 **/
 function critere_racine_dist($idb, &$boucles, $crit){
-	global $exceptions_des_tables;
+
 	$not = $crit->not;
 	$boucle = &$boucles[$idb];
-	$id_parent = isset($exceptions_des_tables[$boucle->id_table]['id_parent']) ?
-		$exceptions_des_tables[$boucle->id_table]['id_parent'] :
+	$id_parent = isset($GLOBALS['exceptions_des_tables'][$boucle->id_table]['id_parent']) ?
+		$GLOBALS['exceptions_des_tables'][$boucle->id_table]['id_parent'] :
 		'id_parent';
 
 	$c = array("'='", "'$boucle->id_table."."$id_parent'", 0);
@@ -435,15 +435,15 @@ function critere_origine_traduction_dist($idb, &$boucles, $crit){
  * @return void
 **/
 function critere_meme_parent_dist($idb, &$boucles, $crit){
-	global $exceptions_des_tables;
+
 	$boucle = &$boucles[$idb];
 	$arg = kwote(calculer_argument_precedent($idb, 'id_parent', $boucles));
-	$id_parent = isset($exceptions_des_tables[$boucle->id_table]['id_parent']) ?
-		$exceptions_des_tables[$boucle->id_table]['id_parent'] :
+	$id_parent = isset($GLOBALS['exceptions_des_tables'][$boucle->id_table]['id_parent']) ?
+		$GLOBALS['exceptions_des_tables'][$boucle->id_table]['id_parent'] :
 		'id_parent';
 	$mparent = $boucle->id_table.'.'.$id_parent;
 
-	if ($boucle->type_requete=='rubriques' OR isset($exceptions_des_tables[$boucle->id_table]['id_parent'])){
+	if ($boucle->type_requete=='rubriques' OR isset($GLOBALS['exceptions_des_tables'][$boucle->id_table]['id_parent'])){
 		$boucle->where[] = array("'='", "'$mparent'", $arg);
 
 	}
@@ -618,7 +618,7 @@ function critere_par_dist($idb, &$boucles, $crit){
 
 // http://code.spip.net/@critere_parinverse
 function critere_parinverse($idb, &$boucles, $crit, $sens = ''){
-	global $exceptions_des_jointures;
+
 	$boucle = &$boucles[$idb];
 	if ($crit->not) $sens = $sens ? "" : " . ' DESC'";
 	$collecte = (isset($boucle->modificateur['collecte'])) ? " . ".$boucle->modificateur['collecte'] : "";
@@ -692,8 +692,8 @@ function critere_parinverse($idb, &$boucles, $crit, $sens = ''){
 						$order = "'alea'";
 					}
 						// par titre_mot ou type_mot voire d'autres
-					else if (isset($exceptions_des_jointures[$par])){
-						list($table, $champ) = $exceptions_des_jointures[$par];
+					else if (isset($GLOBALS['exceptions_des_jointures'][$par])){
+						list($table, $champ) = $GLOBALS['exceptions_des_jointures'][$par];
 						$order = critere_par_joint($table, $champ, $boucle, $idb);
 						if (!$order)
 							return (array('zbug_critere_inconnu', array('critere' => $crit->op." $par")));
@@ -1443,9 +1443,6 @@ function calculer_critere_DEFAUT_args($idb, &$boucles, $crit, $args){
 **/
 function calculer_critere_infixe($idb, &$boucles, $crit){
 
-	global $table_criteres_infixes;
-	global $exceptions_des_jointures, $exceptions_des_tables;
-
 	$boucle = &$boucles[$idb];
 	$type = $boucle->type_requete;
 	$table = $boucle->id_table;
@@ -1463,9 +1460,9 @@ function calculer_critere_infixe($idb, &$boucles, $crit){
 		$col = $boucle->primary;
 
 	// Cas particulier : id_parent => verifier les exceptions de tables
-	if ( (in_array($col,array('id_parent','id_secteur')) AND isset($exceptions_des_tables[$table][$col]))
-	  OR (isset($exceptions_des_tables[$table][$col]) AND is_string($exceptions_des_tables[$table][$col])) )
-		$col = $exceptions_des_tables[$table][$col];
+	if ( (in_array($col,array('id_parent','id_secteur')) AND isset($GLOBALS['exceptions_des_tables'][$table][$col]))
+	  OR (isset($GLOBALS['exceptions_des_tables'][$table][$col]) AND is_string($GLOBALS['exceptions_des_tables'][$table][$col])) )
+		$col = $GLOBALS['exceptions_des_tables'][$table][$col];
 
 	// et possibilite de gerer un critere secteur sur des tables de plugins (ie forums)
 	else if (($col=='id_secteur') AND ($critere_secteur = charger_fonction("critere_secteur_$type", "public", true))){
@@ -1475,8 +1472,8 @@ function calculer_critere_infixe($idb, &$boucles, $crit){
 	// cas id_article=xx qui se mappe en id_objet=xx AND objet=article
 	// sauf si exception declaree : sauter cette etape
 	else if (
-		!isset($exceptions_des_jointures[table_objet_sql($table)][$col])
-		AND !isset($exceptions_des_jointures[$col])
+		!isset($GLOBALS['exceptions_des_jointures'][table_objet_sql($table)][$col])
+		AND !isset($GLOBALS['exceptions_des_jointures'][$col])
 		    AND count(trouver_champs_decomposes($col, $desc))>1
 	){
 		$e = decompose_champ_id_objet($col);
@@ -1523,7 +1520,7 @@ function calculer_critere_infixe($idb, &$boucles, $crit){
 	// et int sinon si la valeur est numerique
 	// sinon introduire le vrai type du champ si connu dans le sql_quote (ou int NOT NULL sinon)
 	// Ne pas utiliser intval, PHP tronquant les Bigint de SQL
-	if ($op=='=' OR in_array($op, $table_criteres_infixes)){
+	if ($op=='=' OR in_array($op, $GLOBALS['table_criteres_infixes'])){
 
 		// defaire le quote des int et les passer dans sql_quote avec le bon type de champ si on le connait, int sinon
 		// prendre en compte le debug ou la valeur arrive avec un commentaire PHP en debut
@@ -1599,23 +1596,23 @@ function calculer_critere_infixe($idb, &$boucles, $crit){
  *     Chaîne vide si on ne trouve pas le champ par jointure...
 **/
 function calculer_critere_infixe_externe($boucle, $crit, $op, $desc, $col, $col_alias, $table){
-	global $exceptions_des_jointures;
+
 	$where = '';
 
 	$calculer_critere_externe = 'calculer_critere_externe_init';
 	// gestion par les plugins des jointures tordues
 	// pas automatiques mais necessaires
 	$table_sql = table_objet_sql($table);
-	if (isset($exceptions_des_jointures[$table_sql])
-	  AND is_array($exceptions_des_jointures[$table_sql])
+	if (isset($GLOBALS['exceptions_des_jointures'][$table_sql])
+	  AND is_array($GLOBALS['exceptions_des_jointures'][$table_sql])
 	  AND
 			(
-			isset($exceptions_des_jointures[$table_sql][$col])
+			isset($GLOBALS['exceptions_des_jointures'][$table_sql][$col])
 			OR
-			isset($exceptions_des_jointures[$table_sql][''])
+			isset($GLOBALS['exceptions_des_jointures'][$table_sql][''])
 			)
 		){
-		$t = $exceptions_des_jointures[$table_sql];
+		$t = $GLOBALS['exceptions_des_jointures'][$table_sql];
 		$index = isset($t[$col])
 			? $t[$col] : (isset($t['']) ? $t[''] : array());
 
@@ -1631,8 +1628,8 @@ function calculer_critere_infixe_externe($boucle, $crit, $op, $desc, $col, $col_
 		else
 			$t = ''; // jointure non declaree. La trouver.
 	}
-	elseif (isset($exceptions_des_jointures[$col]))
-		list($t, $col) = $exceptions_des_jointures[$col];
+	elseif (isset($GLOBALS['exceptions_des_jointures'][$col]))
+		list($t, $col) = $GLOBALS['exceptions_des_jointures'][$col];
 	else
 		$t = ''; // jointure non declaree. La trouver.
 
@@ -2330,7 +2327,7 @@ function critere_POUR_tableau_dist($idb, &$boucles, $crit){
  * @param Critere $crit   Paramètres du critère dans cette boucle
  */
 function critere_noeud_dist($idb, &$boucles, $crit){
-	global $exceptions_des_tables;
+
 	$not = $crit->not;
 	$boucle = &$boucles[$idb];
 	$primary = $boucle->primary;
@@ -2342,8 +2339,8 @@ function critere_noeud_dist($idb, &$boucles, $crit){
 	$table = $boucle->type_requete;
 	$table_sql = table_objet_sql(objet_type($table));
 
-	$id_parent = isset($exceptions_des_tables[$boucle->id_table]['id_parent']) ?
-		$exceptions_des_tables[$boucle->id_table]['id_parent'] :
+	$id_parent = isset($GLOBALS['exceptions_des_tables'][$boucle->id_table]['id_parent']) ?
+		$GLOBALS['exceptions_des_tables'][$boucle->id_table]['id_parent'] :
 		'id_parent';
 
 	$in = "IN";
diff --git a/ecrire/public/debusquer.php b/ecrire/public/debusquer.php
index 3cd667f83c..394aa72548 100644
--- a/ecrire/public/debusquer.php
+++ b/ecrire/public/debusquer.php
@@ -64,8 +64,6 @@ defined('_DEBUG_MAX_SQUELETTE_ERREURS') || define('_DEBUG_MAX_SQUELETTE_ERREURS'
  *     - string si $message à false.
 **/
 function public_debusquer_dist($message = '', $lieu = '', $opt = array()){
-	global $visiteur_session;
-	global $debug_objets;
 	static $tableau_des_erreurs = array();
 
 	// Pour des tests unitaires, pouvoir récupérer les erreurs générées
@@ -92,10 +90,10 @@ function public_debusquer_dist($message = '', $lieu = '', $opt = array()){
 		$urgence = (_DEBUG_MAX_SQUELETTE_ERREURS AND count($tableau_des_erreurs)>_DEBUG_MAX_SQUELETTE_ERREURS);
 		if (!$urgence) return;
 	}
-	if (empty($debug_objets['principal'])) {
+	if (empty($GLOBALS['debug_objets']['principal'])) {
 		// espace public ?
 		if (isset($GLOBALS['fond'])) {
-			$debug_objets['principal'] = $GLOBALS['fond'];
+			$GLOBALS['debug_objets']['principal'] = $GLOBALS['fond'];
 		} 
 	}
 
@@ -116,7 +114,7 @@ function public_debusquer_dist($message = '', $lieu = '', $opt = array()){
 		ob_end_clean();
 	}
 
-	lang_select($visiteur_session['lang']);
+	lang_select($GLOBALS['visiteur_session']['lang']);
 	$fonc = _request('var_mode_objet');
 	$mode = _request('var_mode_affiche');
 	$self = str_replace("\\'", '&#39;', self());
@@ -135,8 +133,8 @@ function public_debusquer_dist($message = '', $lieu = '', $opt = array()){
 		$titre = parametre_url($titre, 'var_mode', '');
 	}
 	else {
-		if (!$fonc) $fonc = $debug_objets['principal'];
-		$titre = !$mode ? $fonc : ($mode . (isset($debug_objets['sourcefile'][$fonc]) ? " " . $debug_objets['sourcefile'][$fonc] : ""));
+		if (!$fonc) $fonc = $GLOBALS['debug_objets']['principal'];
+		$titre = !$mode ? $fonc : ($mode . (isset($GLOBALS['debug_objets']['sourcefile'][$fonc]) ? " " . $GLOBALS['debug_objets']['sourcefile'][$fonc] : ""));
 	}
 	if ($message===false){
 		lang_select();
@@ -334,21 +332,20 @@ function debusquer_requete($message){
 
 // http://code.spip.net/@trouve_boucle_debug
 function trouve_boucle_debug($n, $nom, $debut = 0, $boucle = ""){
-	global $debug_objets;
 
 	$id = $nom . $boucle;
-	if (is_array($debug_objets['sequence'][$id])){
-		foreach ($debug_objets['sequence'][$id] as $v){
+	if (is_array($GLOBALS['debug_objets']['sequence'][$id])){
+		foreach ($GLOBALS['debug_objets']['sequence'][$id] as $v){
 
 			if (!preg_match('/^(.*)(<\?.*\?>)(.*)$/s', $v[0], $r))
 				$y = substr_count($v[0], "\n");
 			else {
 				if ($v[1][0]=='#')
 					// balise dynamique
-					$incl = $debug_objets['resultat'][$v[2]];
+					$incl = $GLOBALS['debug_objets']['resultat'][$v[2]];
 				else
 					// inclusion
-					$incl = $debug_objets['squelette'][trouve_squelette_inclus($v[0])];
+					$incl = $GLOBALS['debug_objets']['squelette'][trouve_squelette_inclus($v[0])];
 				$y = substr_count($incl, "\n")
 					+substr_count($r[1], "\n")
 					+substr_count($r[3], "\n");
@@ -370,7 +367,7 @@ function trouve_boucle_debug($n, $nom, $debut = 0, $boucle = ""){
 
 // http://code.spip.net/@trouve_squelette_inclus
 function trouve_squelette_inclus($script){
-	global $debug_objets;
+
 	preg_match('/include\(.(.*).php3?.\);/', $script, $reg);
 	// si le script X.php n'est pas ecrire/public.php
 	// on suppose qu'il prend le squelette X.html (pas sur, mais y a pas mieux)
@@ -382,7 +379,7 @@ function trouve_squelette_inclus($script){
 				$reg[1] = "inconnu";
 	$incl = ',' . $reg[1] . '[.]\w$,';
 
-	foreach ($debug_objets['sourcefile'] as $k => $v){
+	foreach ($GLOBALS['debug_objets']['sourcefile'] as $k => $v){
 		if (preg_match($incl, $v)) return $k;
 	}
 	return "";
@@ -475,10 +472,9 @@ function ancre_texte($texte, $fautifs = array(), $nocpt = false) {
 // l'environnement graphique du debuggueur 
 
 function debusquer_squelette($fonc, $mode, $self){
-	global $debug_objets;
 
 	if ($mode!=='validation'){
-		if (isset($debug_objets['sourcefile']) and $debug_objets['sourcefile']){
+		if (isset($GLOBALS['debug_objets']['sourcefile']) and $GLOBALS['debug_objets']['sourcefile']){
 			$res = "<div id='spip-boucles'>\n"
 				. debusquer_navigation_squelettes($self)
 				. "</div>";
@@ -491,9 +487,9 @@ function debusquer_squelette($fonc, $mode, $self){
 				list($legend, $texte, $res2) = debusquer_source($fonc, $mode);
 				$texte .= $res2;
 			}
-			elseif (!empty($debug_objets[$mode][$fonc . 'tout'])) {
+			elseif (!empty($GLOBALS['debug_objets'][$mode][$fonc . 'tout'])) {
 				$legend = _T('zbug_' . $mode);
-				$texte = $debug_objets[$mode][$fonc . 'tout'];
+				$texte = $GLOBALS['debug_objets'][$mode][$fonc . 'tout'];
 				$texte = ancre_texte($texte, array('', ''));
 			}
 		}
@@ -510,9 +506,9 @@ function debusquer_squelette($fonc, $mode, $self){
 	}
 	else {
 		$valider = charger_fonction('valider', 'xml');
-		$val = $valider($debug_objets['validation'][$fonc . 'tout']);
+		$val = $valider($GLOBALS['debug_objets']['validation'][$fonc . 'tout']);
 		// Si erreur, signaler leur nombre dans le formulaire admin
-		$debug_objets['validation'] = $val->err ? count($val->err) : '';
+		$GLOBALS['debug_objets']['validation'] = $val->err ? count($val->err) : '';
 		list($texte, $err) = emboite_texte($val, $fonc, $self);
 		if ($err===false)
 			$err = _T('impossible');
@@ -623,16 +619,15 @@ function count_occ($regs){
 }
 
 function debusquer_navigation_squelettes($self){
-	global $debug_objets, $spip_lang_right;
 
 	$res = '';
-	$boucles = !empty($debug_objets['boucle']) ? $debug_objets['boucle'] : '';
-	$contexte = $debug_objets['contexte'];
+	$boucles = !empty($GLOBALS['debug_objets']['boucle']) ? $GLOBALS['debug_objets']['boucle'] : '';
+	$contexte = $GLOBALS['debug_objets']['contexte'];
 	$t_skel = _T('squelette');
-	foreach ($debug_objets['sourcefile'] as $nom => $sourcefile){
+	foreach ($GLOBALS['debug_objets']['sourcefile'] as $nom => $sourcefile){
 		$self2 = parametre_url($self, 'var_mode_objet', $nom);
 		$nav = !$boucles ? '' : debusquer_navigation_boucles($boucles, $nom, $self, $sourcefile);
-		$temps = !isset($debug_objets['profile'][$sourcefile]) ? '' : _T('zbug_profile', array('time' => $debug_objets['profile'][$sourcefile]));
+		$temps = !isset($GLOBALS['debug_objets']['profile'][$sourcefile]) ? '' : _T('zbug_profile', array('time' => $GLOBALS['debug_objets']['profile'][$sourcefile]));
 
 		$res .= "<fieldset id='f_".$nom."'><legend>"
 			. $t_skel
@@ -649,7 +644,7 @@ function debusquer_navigation_squelettes($self){
 			. "'>"
 			. _T('zbug_calcul')
 			. "</a></legend>"
-			. (!$temps ? '' : ("\n<span style='display:block;float:$spip_lang_right'>$temps</span><br />"))
+			. (!$temps ? '' : ("\n<span style='display:block;float:$GLOBALS['spip_lang_right']'>$temps</span><br />"))
 			. debusquer_contexte($contexte[$sourcefile])
 			. (!$nav ? '' : ("<table width='100%'>\n$nav</table>\n"))
 			. "</fieldset>\n";
@@ -770,7 +765,7 @@ function debusquer_source($objet, $affiche){
 
 // http://code.spip.net/@debusquer_entete
 function debusquer_entete($titre, $corps){
-	global $debug_objets;
+
 	include_spip('balise/formulaire_admin');
 	include_spip('public/assembler'); // pour inclure_balise_dynamique
 	include_spip('inc/texte'); // pour corriger_typo
@@ -792,7 +787,7 @@ function debusquer_entete($titre, $corps){
 		"<body style='margin:0 10px;'>\n" .
 		"<div id='spip-debug-header'>" .
 		$corps .
-		inclure_balise_dynamique(balise_FORMULAIRE_ADMIN_dyn('spip-admin-float', $debug_objets), false) .
+		inclure_balise_dynamique(balise_FORMULAIRE_ADMIN_dyn('spip-admin-float', $GLOBALS['debug_objets']), false) .
 		'</div></body></html>';
 }
 
diff --git a/ecrire/public/interfaces.php b/ecrire/public/interfaces.php
index 674db16c83..a685ea0608 100644
--- a/ecrire/public/interfaces.php
+++ b/ecrire/public/interfaces.php
@@ -762,86 +762,80 @@ $exception_des_connect[] = ''; // ne pas transmettre le connect='' par les inclu
  * @return void
  */
 function declarer_interfaces(){
-	global $exceptions_des_tables, $table_des_tables, $table_date, $table_titre, $table_statut;
 
-	$table_des_tables['articles']='articles';
-	$table_des_tables['auteurs']='auteurs';
-	$table_des_tables['rubriques']='rubriques';
-	$table_des_tables['hierarchie']='rubriques';
+	$GLOBALS['table_des_tables']['articles']='articles';
+	$GLOBALS['table_des_tables']['auteurs']='auteurs';
+	$GLOBALS['table_des_tables']['rubriques']='rubriques';
+	$GLOBALS['table_des_tables']['hierarchie']='rubriques';
 
 	// definition des statuts de publication
-	global $tables_statut;
-	$table_statut = array();
+	$GLOBALS['table_statut'] = array();
 
 	//
 	// tableau des tables de jointures
 	// Ex: gestion du critere {id_mot} dans la boucle(ARTICLES)
-	global $tables_jointures;
-	$tables_jointures = array();
-	$tables_jointures['spip_jobs'][] = 'jobs_liens';
+	$GLOBALS['tables_jointures'] = array();
+	$GLOBALS['tables_jointures']['spip_jobs'][] = 'jobs_liens';
 
-	global  $exceptions_des_jointures;
-	#$exceptions_des_jointures['titre_mot'] = array('spip_mots', 'titre'); // pour exemple
-	$exceptions_des_jointures['profondeur'] = array('spip_rubriques', 'profondeur');
-
-	global  $table_des_traitements;
+	// $GLOBALS['exceptions_des_jointures']['titre_mot'] = array('spip_mots', 'titre'); // pour exemple
+	$GLOBALS['exceptions_des_jointures']['profondeur'] = array('spip_rubriques', 'profondeur');
 
 	define('_TRAITEMENT_TYPO', 'typo(%s, "TYPO", $connect, $Pile[0])');
 	define('_TRAITEMENT_RACCOURCIS', 'propre(%s, $connect, $Pile[0])');
 	define('_TRAITEMENT_TYPO_SANS_NUMERO', 'typo(supprimer_numero(%s), "TYPO", $connect, $Pile[0])');
 
-	$table_des_traitements['BIO'][]= _TRAITEMENT_RACCOURCIS;
-	$table_des_traitements['CHAPO'][]= _TRAITEMENT_RACCOURCIS;
-	$table_des_traitements['DATE'][]= 'normaliser_date(%s)';
-	$table_des_traitements['DATE_REDAC'][]= 'normaliser_date(%s)';
-	$table_des_traitements['DATE_MODIF'][]= 'normaliser_date(%s)';
-	$table_des_traitements['DATE_NOUVEAUTES'][]= 'normaliser_date(%s)';
-	$table_des_traitements['DESCRIPTIF'][]= _TRAITEMENT_RACCOURCIS;
-	$table_des_traitements['INTRODUCTION'][]= _TRAITEMENT_RACCOURCIS;
-	$table_des_traitements['NOM_SITE_SPIP'][]= _TRAITEMENT_TYPO;
-	$table_des_traitements['NOM'][]= _TRAITEMENT_TYPO_SANS_NUMERO;
-	$table_des_traitements['AUTEUR'][]= _TRAITEMENT_TYPO;
-	$table_des_traitements['PS'][]= _TRAITEMENT_RACCOURCIS;
-	$table_des_traitements['SOURCE'][]= _TRAITEMENT_TYPO;
-	$table_des_traitements['SOUSTITRE'][]= _TRAITEMENT_TYPO;
-	$table_des_traitements['SURTITRE'][]= _TRAITEMENT_TYPO;
-	$table_des_traitements['TAGS'][]= '%s';
-	$table_des_traitements['TEXTE'][]= _TRAITEMENT_RACCOURCIS;
-	$table_des_traitements['TITRE'][]= _TRAITEMENT_TYPO_SANS_NUMERO;
-	$table_des_traitements['TYPE'][]= _TRAITEMENT_TYPO;
-	$table_des_traitements['DESCRIPTIF_SITE_SPIP'][]= _TRAITEMENT_RACCOURCIS;
-	$table_des_traitements['SLOGAN_SITE_SPIP'][]= _TRAITEMENT_TYPO;
-	$table_des_traitements['ENV'][]= 'entites_html(%s,true)';
+	$GLOBALS['table_des_traitements']['BIO'][]= _TRAITEMENT_RACCOURCIS;
+	$GLOBALS['table_des_traitements']['CHAPO'][]= _TRAITEMENT_RACCOURCIS;
+	$GLOBALS['table_des_traitements']['DATE'][]= 'normaliser_date(%s)';
+	$GLOBALS['table_des_traitements']['DATE_REDAC'][]= 'normaliser_date(%s)';
+	$GLOBALS['table_des_traitements']['DATE_MODIF'][]= 'normaliser_date(%s)';
+	$GLOBALS['table_des_traitements']['DATE_NOUVEAUTES'][]= 'normaliser_date(%s)';
+	$GLOBALS['table_des_traitements']['DESCRIPTIF'][]= _TRAITEMENT_RACCOURCIS;
+	$GLOBALS['table_des_traitements']['INTRODUCTION'][]= _TRAITEMENT_RACCOURCIS;
+	$GLOBALS['table_des_traitements']['NOM_SITE_SPIP'][]= _TRAITEMENT_TYPO;
+	$GLOBALS['table_des_traitements']['NOM'][]= _TRAITEMENT_TYPO_SANS_NUMERO;
+	$GLOBALS['table_des_traitements']['AUTEUR'][]= _TRAITEMENT_TYPO;
+	$GLOBALS['table_des_traitements']['PS'][]= _TRAITEMENT_RACCOURCIS;
+	$GLOBALS['table_des_traitements']['SOURCE'][]= _TRAITEMENT_TYPO;
+	$GLOBALS['table_des_traitements']['SOUSTITRE'][]= _TRAITEMENT_TYPO;
+	$GLOBALS['table_des_traitements']['SURTITRE'][]= _TRAITEMENT_TYPO;
+	$GLOBALS['table_des_traitements']['TAGS'][]= '%s';
+	$GLOBALS['table_des_traitements']['TEXTE'][]= _TRAITEMENT_RACCOURCIS;
+	$GLOBALS['table_des_traitements']['TITRE'][]= _TRAITEMENT_TYPO_SANS_NUMERO;
+	$GLOBALS['table_des_traitements']['TYPE'][]= _TRAITEMENT_TYPO;
+	$GLOBALS['table_des_traitements']['DESCRIPTIF_SITE_SPIP'][]= _TRAITEMENT_RACCOURCIS;
+	$GLOBALS['table_des_traitements']['SLOGAN_SITE_SPIP'][]= _TRAITEMENT_TYPO;
+	$GLOBALS['table_des_traitements']['ENV'][]= 'entites_html(%s,true)';
 
 	// valeur par defaut pour les balises non listees ci-dessus
-	$table_des_traitements['*'][]= false; // pas de traitement, mais permet au compilo de trouver la declaration suivante
+	$GLOBALS['table_des_traitements']['*'][]= false; // pas de traitement, mais permet au compilo de trouver la declaration suivante
 	// toujours securiser les DATA
-	$table_des_traitements['*']['DATA']= 'safehtml(%s)';
+	$GLOBALS['table_des_traitements']['*']['DATA']= 'safehtml(%s)';
 	// expliciter pour VALEUR qui est un champ calcule et ne sera pas protege par le catch-all *
-	$table_des_traitements['VALEUR']['DATA']= 'safehtml(%s)';
+	$GLOBALS['table_des_traitements']['VALEUR']['DATA']= 'safehtml(%s)';
 
 
 	// gerer l'affectation en 2 temps car si le pipe n'est pas encore declare, on ecrase les globales
 	$interfaces = pipeline('declarer_tables_interfaces',
 			array(
-			'table_des_tables'=>$table_des_tables,
-			'exceptions_des_tables'=>$exceptions_des_tables,
-			'table_date'=>$table_date,
-			'table_titre'=>$table_titre,
-			'tables_jointures'=>$tables_jointures,
-			'exceptions_des_jointures'=>$exceptions_des_jointures,
-			'table_des_traitements'=>$table_des_traitements,
-			'table_statut'=>$table_statut,
+			'table_des_tables'=>$GLOBALS['table_des_tables'],
+			'exceptions_des_tables'=>$GLOBALS['exceptions_des_tables'],
+			'table_date'=>$GLOBALS['table_date'],
+			'table_titre'=>$GLOBALS['table_titre'],
+			'tables_jointures'=>$GLOBALS['tables_jointures'],
+			'exceptions_des_jointures'=>$GLOBALS['exceptions_des_jointures'],
+			'table_des_traitements'=>$GLOBALS['table_des_traitements'],
+			'table_statut'=>$GLOBALS['table_statut'],
 			));
 	if ($interfaces){
-			$table_des_tables = $interfaces['table_des_tables'];
-			$exceptions_des_tables = $interfaces['exceptions_des_tables'];
-			$table_date = $interfaces['table_date'];
-			$table_titre = $interfaces['table_titre'];
-			$tables_jointures = $interfaces['tables_jointures'];
-			$exceptions_des_jointures = $interfaces['exceptions_des_jointures'];
-			$table_des_traitements = $interfaces['table_des_traitements'];
-	    $table_statut = $interfaces['table_statut'];
+			$GLOBALS['table_des_tables'] = $interfaces['table_des_tables'];
+			$GLOBALS['exceptions_des_tables'] = $interfaces['exceptions_des_tables'];
+			$GLOBALS['table_date'] = $interfaces['table_date'];
+			$GLOBALS['table_titre'] = $interfaces['table_titre'];
+			$GLOBALS['tables_jointures'] = $interfaces['tables_jointures'];
+			$GLOBALS['exceptions_des_jointures'] = $interfaces['exceptions_des_jointures'];
+			$GLOBALS['table_des_traitements'] = $interfaces['table_des_traitements'];
+	    $GLOBALS['table_statut'] = $interfaces['table_statut'];
 	}
 }
 
diff --git a/ecrire/public/references.php b/ecrire/public/references.php
index f16d09a7a2..eec26ccf58 100644
--- a/ecrire/public/references.php
+++ b/ecrire/public/references.php
@@ -190,7 +190,6 @@ function index_compose($conditionnel, $defaut) {
  *     Les éléments de la liste sont vides si on ne trouve rien.
 **/
 function index_tables_en_pile($idb, $nom_champ, &$boucles, &$joker) {
-	global $exceptions_des_tables;
 
 	$r = $boucles[$idb]->type_requete;
 	// boucle recursive, c'est foutu...
@@ -203,7 +202,7 @@ function index_tables_en_pile($idb, $nom_champ, &$boucles, &$joker) {
 
 	$desc = $boucles[$idb]->show;
 	// le nom du champ est il une exception de la table ? un alias ?
-	$excep = isset($exceptions_des_tables[$r]) ? $exceptions_des_tables[$r] : '';
+	$excep = isset($GLOBALS['exceptions_des_tables'][$r]) ? $GLOBALS['exceptions_des_tables'][$r] : '';
 	if ($excep) {
 		$excep = isset($excep[$nom_champ]) ? $excep[$nom_champ] : '';
 	}
@@ -645,16 +644,15 @@ function balise_distante_interdite($p) {
 //
 // http://code.spip.net/@champs_traitements
 function champs_traitements ($p) {
-	global $table_des_traitements;
 
-	if (isset($table_des_traitements[$p->nom_champ])) {
-		$ps = $table_des_traitements[$p->nom_champ];
+	if (isset($GLOBALS['table_des_traitements'][$p->nom_champ])) {
+		$ps = $GLOBALS['table_des_traitements'][$p->nom_champ];
 	} else {
 		// quand on utilise un traitement catch-all *
 		// celui-ci ne s'applique pas sur les balises calculees qui peuvent gerer
 		// leur propre securite
 		if (!$p->balise_calculee)
-			$ps = $table_des_traitements['*'];
+			$ps = $GLOBALS['table_des_traitements']['*'];
 		else
 			$ps = false;
 	}
@@ -778,9 +776,9 @@ function compose_filtres(&$p, $code) {
 // et comparateurs
 function filtre_logique($fonc, $code, $arg)
 {
-	global $table_criteres_infixes;
+
 	switch (true) {
-		case in_array($fonc, $table_criteres_infixes):
+		case in_array($fonc, $GLOBALS['table_criteres_infixes']):
 			return "($code $fonc $arg)";
 		case ($fonc == 'and') OR ($fonc == 'et'):
 			return "((($code) AND ($arg)) ?' ' :'')";
diff --git a/ecrire/public/tracer.php b/ecrire/public/tracer.php
index 1b6882b065..fb2912d6b1 100644
--- a/ecrire/public/tracer.php
+++ b/ecrire/public/tracer.php
@@ -40,7 +40,6 @@ function trace_query_chrono($m1, $m2, $query, $result, $serveur = '')
 {
 	include_spip('inc/filtres_mini');
 	static $tt = 0, $nb=0;
-	global $tableau_des_temps;
 
 	$x = _request('var_mode_objet');
 	if (isset($GLOBALS['debug']['aucasou'])) {
@@ -63,7 +62,7 @@ function trace_query_chrono($m1, $m2, $query, $result, $serveur = '')
 	$q = preg_replace('/([a-z)`])\s+([A-Z])/', "$1\n<br />$2",spip_htmlentities($query));
 	$e =  sql_explain($query, $serveur);
 	$r = str_replace('Resource id ','',(is_object($result)?get_class($result):$result));
-	$tableau_des_temps[] = array($dt, $nb, $boucle, $q, $e, $r, $contexte);
+	$GLOBALS['tableau_des_temps'][] = array($dt, $nb, $boucle, $q, $e, $r, $contexte);
 }
 
 
-- 
GitLab