diff --git a/ecrire/public/admin.php b/ecrire/public/admin.php index b0d5333f91e0cca74c79606035fe075b1882ce6e..50546909712c2681b766add7fbf4bd1b6ab838dd 100644 --- a/ecrire/public/admin.php +++ b/ecrire/public/admin.php @@ -40,11 +40,8 @@ function affiche_boutons_admin($contenu) { // include_spip('inc/lang'); include_spip('base/abstract_sql'); - $lang = spip_abstract_fetsel(array('lang'), - array('spip_auteurs'), - array("login='" . - addslashes(ereg_replace('^@','',$GLOBALS['spip_admin'])) . - "'")); + $login = ereg_replace('^@','',$GLOBALS['spip_admin']); + $lang = spip_abstract_fetsel(array('lang'), array('spip_auteurs'), array("login='" . addslashes($login) . "'")); if ($lang['lang']) lang_select($lang['lang']); // Recuperer sans l'afficher la balise #FORMULAIRE_ADMIN, en float diff --git a/ecrire/public/assembler.php b/ecrire/public/assembler.php index 16339c508cd262ce88af73cc0bd1814e32da46cf..04448347677fd311a99cf75fbafa4cd8925aa024 100644 --- a/ecrire/public/assembler.php +++ b/ecrire/public/assembler.php @@ -60,16 +60,6 @@ function public_assembler_dist($fond) { } -// Remplir les globals pour les boutons d'admin - -function restaurer_globales ($contexte) { - if (is_array($contexte)) { - foreach ($contexte as $var=>$val) { - $GLOBALS[$var] = $val; - } - } -} - function is_preview() { global $var_mode; @@ -126,9 +116,11 @@ function assembler_page ($fond) { $page['entetes']["Connection"] = "close"; $page['texte'] = ""; } else { - if (!$use_cache) - restaurer_globales($page['contexte']); - else { + if (!$use_cache && isset($page['contexte'])) { +// Remplir les globals pour les boutons d'admin + foreach ($contexte as $var=>$val) + $GLOBALS[$var] = $val; + } else { $f = charger_fonction('parametrer', 'public'); $page = $f($fond, '', $chemin_cache); if ($chemin_cache) @@ -192,7 +184,7 @@ function auto_expire($page) if (!isset($flag_dynamique)) { if (preg_match("/header\s*\(\s*.Expire:([\s\d])*.\s*\)/is",$page['texte'], $r)) $flag_dynamique = (intval($r[1]) === 0); - else if (preg_match("/([\s\d])*.\s*\)/is",$page['entetes']['Expire'], $r)) + else if (isset($page['entetes']['Expire']) AND preg_match("/([\s\d])*.\s*\)/is",$page['entetes']['Expire'], $r)) $flag_dynamique = (intval($r[1]) === 0); } } diff --git a/ecrire/public/balises.php b/ecrire/public/balises.php index 26d1dc3ffdaff2db81c3dbc50d42323df9babff3..4edd7214a03a66a6b800b0997e1e595414967e73 100644 --- a/ecrire/public/balises.php +++ b/ecrire/public/balises.php @@ -523,8 +523,7 @@ function calculer_balise_logo ($p) { } // analyser les faux filtres - $flag_fichier = 0; - $filtres = ''; + $flag_fichier = $flag_stop = $flag_lien_auto = $code_lien = $filtres = $align = $lien = ''; if (is_array($p->fonctions)) { foreach($p->fonctions as $couple) { @@ -594,7 +593,7 @@ function calculer_balise_logo ($p) { else { if (!$code_lien) $code_lien = "''"; - $code_lien .= ", '". addslashes($align) . "'"; + $code_lien .= ", '". $align . "'"; } // cas des documents diff --git a/ecrire/public/cacher.php b/ecrire/public/cacher.php index a10f86100ec1b69b9a19fdc4550a4ef80f06591d..eeff3c3411442e1dece245537131f132bdcff239 100644 --- a/ecrire/public/cacher.php +++ b/ecrire/public/cacher.php @@ -92,12 +92,7 @@ function retire_caches($chemin = '') { // En priorite le cache qu'on appelle maintenant if ($chemin) { - $f = spip_abstract_fetsel(array("fichier"), - array("spip_caches"), - array("fichier = '".addslashes($chemin)."' ", "type='x'"), - "", - array(), - 1); + $f = spip_abstract_fetsel(array("fichier"), array("spip_caches"), array("fichier = '".addslashes($chemin)."' ", "type='x'"), "", array(), 1); if ($f['fichier']) $suppr[$f['fichier']] = true; } @@ -156,10 +151,10 @@ function cache_valide_autodetermine($chemin_cache, $page, $date) { if (!$page) return 1; if (isset($page['entetes']['X-Spip-Cache'])) { - $duree = $page['entetes']['X-Spip-Cache']; + $duree = intval($page['entetes']['X-Spip-Cache']); if ($duree == 0) #CACHE{0} return -1; - else if ($date + intval($duree) < time()) + else if ($date + $duree < time()) return $duree; else return 0; @@ -178,8 +173,8 @@ function creer_cache(&$page, &$chemin_cache, $duree) { // arbitrage entre ancien et nouveau modele de delai: // primaute a la duree de vie de la page donnee a l'interieur de la page - if (strlen($t = $page['entetes']['X-Spip-Cache'])) - $duree = intval($t); + if (isset($page['entetes']['X-Spip-Cache'])) + $duree = intval($page['entetes']['X-Spip-Cache']); // Enregistrer le fichier cache qui contient // 1) la carte d'identite de la page (ses "globals", genre id_article=7) @@ -288,9 +283,9 @@ function public_cacher_dist($contexte, &$use_cache, &$chemin_cache, &$page, &$la } // cas sans jamais de cache pour raison interne - if ($GLOBALS['var_mode'] && - ($GLOBALS['_COOKIE']['spip_session'] - || $GLOBALS['_COOKIE']['spip_admin'] + if (isset($GLOBALS['var_mode']) && + (isset($GLOBALS['_COOKIE']['spip_session']) + || isset($GLOBALS['_COOKIE']['spip_admin']) || @file_exists(_ACCESS_FILE_NAME))) { supprimer_fichier(_DIR_CACHE . $chemin_cache); } diff --git a/ecrire/public/compiler.php b/ecrire/public/compiler.php index 82d2be652f30874926db40ef7d5f3d61a3367982..ea049fdf11ef6502f33a13826f2c5fd4698090e8 100644 --- a/ecrire/public/compiler.php +++ b/ecrire/public/compiler.php @@ -101,8 +101,9 @@ function calculer_boucle($id_boucle, &$boucles) { ("\n\t$init = array();") : '') . calculer_requete_sql($boucles[$id_boucle]); } + $notrace = isset($GLOBALS['var_mode_affiche']) ? ($GLOBALS['var_mode_affiche'] != 'resultat') : true; return $req . $corps - . (($GLOBALS['var_mode_affiche'] != 'resultat') ? "" : " + . ($notrace ? "" : " boucle_debug_resultat('$id_boucle', 'resultat', \$t0);") . "\n return \$t0;"; } diff --git a/ecrire/public/composer.php b/ecrire/public/composer.php index 73441584988374ac79978b4fa2e3d2ad00569c09..fd045eb1b8cec12d1fb8e0ef4f8a172ef1b7a2fa 100644 --- a/ecrire/public/composer.php +++ b/ecrire/public/composer.php @@ -119,13 +119,13 @@ function affiche_logos($logos, $lien, $align) { } if ($artoff) - $mouseover = " onmouseover=\"this.src='$artoff'\" " + $artoff = " onmouseover=\"this.src='$artoff'\" " ."onmouseout=\"this.src='$arton'\""; $milieu = "<img src=\"$arton\" alt=\"\"" . ($align ? " align=\"$align\"" : '') . $taille - . $mouseover + . $artoff . ' style="border-width: 0px;" class="spip_logos" />'; return (!$lien ? $milieu : diff --git a/ecrire/public/criteres.php b/ecrire/public/criteres.php index eeb76894be4c1d0c6db3aacf4a628084a062f944..eef8912e87c11d53d7b7a1f7dcd20807bc0a9420 100644 --- a/ecrire/public/criteres.php +++ b/ecrire/public/criteres.php @@ -330,11 +330,11 @@ function critere_inverse_dist($idb, &$boucles, $crit) { else { $order = "' DESC'"; - // Classement par ordre inverse fonction eventuelle de #ENV{...} - if ($crit->param[0]){ - $critere = calculer_liste($crit->param[0], array(), $boucles, $boucles[$idb]->id_parent); - $order = "(($critere)?' DESC':'')"; - } + // Classement par ordre inverse fonction eventuelle de #ENV{...} + if (isset($crit->param[0])){ + $critere = calculer_liste($crit->param[0], array(), $boucles, $boucles[$idb]->id_parent); + $order = "(($critere)?' DESC':'')"; + } $n = count($boucle->order); if ($n) @@ -482,6 +482,15 @@ function calculer_criteres ($idb, &$boucles) { } } +// Madeleine de Proust, revision MIT-1958 sqq, revision CERN-1989 + +function kwote($lisp) +{ + return preg_match(",^(\n//[^\n]*\n)? *'(.*)' *$,", $lisp, $r) ? + ($r[1] . "'\\'" . addslashes($r[2]) . "\\''") : + ("'\\'' . addslashes(" . $lisp . ") . '\\''"); +} + function critere_IN_dist ($idb, &$boucles, $crit) { static $cpt = 0; @@ -587,7 +596,7 @@ function calculer_critere_infixe($idb, &$boucles, $crit) { $nom = $table_des_tables[$type]; list($nom, $desc) = trouver_def_table($nom ? $nom : $type, $boucle); if (@!array_key_exists($col, $desc['field'])) { - if ($exceptions_des_jointures[$col]) + if (isset($exceptions_des_jointures[$col])) // on ignore la table, quel luxe! list($t, $col) = $exceptions_des_jointures[$col]; $table = calculer_critere_externe_init($boucle, $col, $desc, $crit, $t); @@ -778,10 +787,10 @@ function trouver_def_table($nom, &$boucle) $nom_table = 'spip_' . $nom; } - $desc = $tables_des_serveurs_sql[$s][$nom_table]; + $desc = $tables_des_serveurs_sql[$s]; - if ($desc) - return array($nom_table, $desc); + if (isset($desc[$nom_table])) + return array($nom_table, $desc[$nom_table]); include_spip('base/auxiliaires'); $nom_table = 'spip_' . $nom; diff --git a/ecrire/public/parametrer.php b/ecrire/public/parametrer.php index b2088ff1be62ee34c20d2ee47022f3011b07bef4..325ed4c5e34c44d355824371f39363dc04a1f054 100644 --- a/ecrire/public/parametrer.php +++ b/ecrire/public/parametrer.php @@ -52,7 +52,7 @@ function calculer_contexte() { $contexte[$var] = $val; } - if ($GLOBALS['date']) + if (isset($GLOBALS['date'])) $contexte['date'] = $contexte['date_redac'] = normaliser_date($GLOBALS['date']); else $contexte['date'] = $contexte['date_redac'] = date("Y-m-d H:i:s"); @@ -94,7 +94,7 @@ function analyse_resultat_skel($nom, $cache, $corps) { 'process_ins' => ((strpos($corps,'<'.'?')=== false)?'html':'php'), 'invalideurs' => $cache, 'entetes' => $headers, - 'duree' => $headers['X-Spip-Cache'] + 'duree' => isset($headers['X-Spip-Cache']) ? intval($headers['X-Spip-Cache']) : 0 ); } @@ -103,7 +103,8 @@ function analyse_resultat_skel($nom, $cache, $corps) { function sql_rubrique_fond($contexte) { - if ($id = intval($contexte['id_rubrique'])) { + if (isset($contexte['id_rubrique'])) { + $id = intval($contexte['id_rubrique']); $row = spip_abstract_fetsel(array('lang'), array('spip_rubriques'), array("id_rubrique=$id")); @@ -112,7 +113,8 @@ function sql_rubrique_fond($contexte) { return array ($id, $lang); } - if ($id = intval($contexte['id_breve'])) { + if (isset($contexte['id_breve'])) { + $id = intval($contexte['id_breve']); $row = spip_abstract_fetsel(array('id_rubrique', 'lang'), array('spip_breves'), array("id_breve=$id")); @@ -122,7 +124,8 @@ function sql_rubrique_fond($contexte) { return array($id_rubrique_fond, $lang); } - if ($id = intval($contexte['id_syndic'])) { + if (isset($contexte['id_syndic'])) { + $id = intval($contexte['id_syndic']); $row = spip_abstract_fetsel(array('id_rubrique'), array('spip_syndic'), array("id_syndic=$id")); @@ -135,7 +138,8 @@ function sql_rubrique_fond($contexte) { return array($id_rubrique_fond, $lang); } - if ($id = intval($contexte['id_article'])) { + if (isset($contexte['id_article'])) { + $id = intval($contexte['id_article']); $row = spip_abstract_fetsel(array('id_rubrique', 'lang'), array('spip_articles'), array("id_article=$id")); @@ -244,11 +248,15 @@ function sql_accepter_forum($id_article) { # Determine les parametres d'URL (hors r้้criture) et consorts # En deduit un contexte disant si la page est une redirection ou # exige un squelette deductible de $fond et du contexte linguistique. -# Aplique alors le squelette sur le contexte et le nom du cache. -# Retourne un tableau de 3 elements: +# Applique alors le squelette sur le contexte et le nom du cache. +# Retourne un tableau ainsi construit # 'texte' => la page calculee # 'process_ins' => 'html' ou 'php' si presence d'un '< ?php' # 'invalideurs' => les invalideurs de ce cache +# 'entetes' => headers http +# 'duree' => duree de vie du cache +# 'signal' => contexte (les id_* globales) + # En cas d'erreur process_ins est absent et texte est un tableau de 2 chaines function public_parametrer_dist($fond, $local='', $cache='') { @@ -302,7 +310,7 @@ function public_parametrer_dist($fond, $local='', $cache='') { if (isset($local['lang'])) $lang = $local['lang']; - if (!$lang) + if (!isset($lang)) $lang = $GLOBALS['meta']['langue_site']; if (!$GLOBALS['forcer_lang']) diff --git a/ecrire/public/references.php b/ecrire/public/references.php index f513926dfe852eb954a7f6eb3a4bd4d3e52f66b7..6e76c207ae9edace24946d066d5dd8446b5c11e4 100644 --- a/ecrire/public/references.php +++ b/ecrire/public/references.php @@ -116,7 +116,9 @@ function index_tables_en_pile($idb, $nom_champ, &$boucles) { } $t= $desc['type']; - $excep = $exceptions_des_tables[$r][$nom_champ]; + $excep = isset($exceptions_des_tables[$r]) ? $exceptions_des_tables[$r] : ''; + if ($excep) + $excep = isset($excep[$nom_champ]) ? $excep[$nom_champ] : ''; if ($excep) { return index_exception($boucles[$idb], $desc, $nom_champ, $excep); @@ -283,7 +285,7 @@ function collecter_balise_dynamique($l, &$p, $nom) { function balise_distante_interdite($p) { $nom = $p->id_boucle; - if ($p->boucles[$nom]->sql_serveur) { + if ($nom AND $p->boucles[$nom]->sql_serveur) { erreur_squelette($p->nom_champ .' '._T('zbug_distant_interdit'), $nom); } } @@ -296,6 +298,8 @@ function balise_distante_interdite($p) { function champs_traitements ($p) { global $table_des_traitements; + if (!isset($table_des_traitements[$p->nom_champ])) + return $p->code; $ps = $table_des_traitements[$p->nom_champ]; if (is_array($ps)) { // new style @@ -432,15 +436,6 @@ function calculer_argument_precedent($idb, $nom_champ, &$boucles) { index_pile($prec, $nom_champ, $boucles)); } -// Madeleine de Proust, revision MIT-1958 sqq, revision CERN-1989 - -function kwote($lisp) -{ - return preg_match(",^(\n//[^\n]*\n)? *'(.*)' *$,", $lisp, $r) ? - ($r[1] . "'\\'" . addslashes($r[2]) . "\\''") : - ("'\\'' . addslashes(" . $lisp . ") . '\\''"); -} - // // Rechercher dans la pile des boucles actives celle ayant un critere // comportant un certain $motif, et construire alors une reference