From 06b6af7382442bf75fd27e21fae17b62e1b369bf Mon Sep 17 00:00:00 2001 From: "Committo,Ergo:sum" <esj@rezo.net> Date: Sat, 8 Aug 2009 13:05:08 +0000 Subject: [PATCH] =?UTF-8?q?Renommage=20de=20{{{denoncer=5Finclure=5Fdynami?= =?UTF-8?q?que}}}=20(car=20[14363]=20avait=20en=20fait=20renomm=C3=A9=20{{?= =?UTF-8?q?{fliquer=5Finclure=5Fdynamique}}}=20en=20{{{memoriser=5Fcontext?= =?UTF-8?q?e=5Fcompil}}})=20en=20{{{reconstruire=5Fcontexte=5Fcompil}}}=20?= =?UTF-8?q?avec=20un=20petit=20chgt=20de=20fonctionnalit=C3=A9,=20et=20pet?= =?UTF-8?q?ites=20am=C3=A9liorations=20pour=20avoir=20des=20appels=20au=20?= =?UTF-8?q?d=C3=A9busqueur=20plus=20uniformes.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ecrire/balise/formulaire_ecrire_auteur.php | 3 ++- ecrire/balise/formulaire_signature.php | 3 ++- ecrire/balise/formulaire_site.php | 3 ++- ecrire/base/abstract_sql.php | 11 ++------- ecrire/index.php | 2 +- ecrire/public/compiler.php | 27 ++++++++++++++++------ ecrire/public/composer.php | 6 ++--- ecrire/public/criteres.php | 19 +++++++-------- ecrire/public/quete.php | 12 ---------- 9 files changed, 42 insertions(+), 44 deletions(-) diff --git a/ecrire/balise/formulaire_ecrire_auteur.php b/ecrire/balise/formulaire_ecrire_auteur.php index cac9483582..4a8c0ffe40 100644 --- a/ecrire/balise/formulaire_ecrire_auteur.php +++ b/ecrire/balise/formulaire_ecrire_auteur.php @@ -33,7 +33,8 @@ function balise_FORMULAIRE_ECRIRE_AUTEUR_stat($args, $context_compil) { array ('champ' => 'FORMULAIRE_ECRIRE_AUTEUR', 'motif' => 'AUTEURS/ARTICLES')); - denoncer_inclure_dynamique($msg, $context_compil); + include_spip('public/compiler'); + erreur_squelette($msg, reconstruire_contexte_compil($context_compil)); return ''; } // Si on est dans un contexte article, diff --git a/ecrire/balise/formulaire_signature.php b/ecrire/balise/formulaire_signature.php index 84a3246451..5d969c87b6 100644 --- a/ecrire/balise/formulaire_signature.php +++ b/ecrire/balise/formulaire_signature.php @@ -38,7 +38,8 @@ function balise_FORMULAIRE_SIGNATURE_stat($args, $context_compil) { $msg = array('zbug_champ_hors_motif', array ('champ' => 'FORMULAIRE_SIGNATURE', 'motif' => 'ARTICLES')); - denoncer_inclure_dynamique($msg, $context_compil); + include_spip('public/compiler'); + erreur_squelette($msg, reconstruire_contexte_compil($context_compil)); return ''; } // article sans petition => pas de balise diff --git a/ecrire/balise/formulaire_site.php b/ecrire/balise/formulaire_site.php index a92f8f4bd9..af25f7ed3e 100644 --- a/ecrire/balise/formulaire_site.php +++ b/ecrire/balise/formulaire_site.php @@ -28,7 +28,8 @@ function balise_FORMULAIRE_SITE_stat($args, $context_compil) { $msg = array('zbug_champ_hors_motif', array ('champ' => 'FORMULAIRE_SITE', 'motif' => 'RUBRIQUES')); - denoncer_inclure_dynamique($msg, $context_compil); + include_spip('public/compiler'); + erreur_squelette($msg, reconstruire_contexte_compil($context_compil)); return ''; } // Verifier que les visisteurs sont autorises a proposer un site diff --git a/ecrire/base/abstract_sql.php b/ecrire/base/abstract_sql.php index dc652b5f17..e0183102b8 100644 --- a/ecrire/base/abstract_sql.php +++ b/ecrire/base/abstract_sql.php @@ -99,15 +99,8 @@ function sql_select ( } if (is_resource($res)) return $res; - $errno = sql_errno(); - $error = sql_error(); - $msg = array($errno, $error, $query); - if (!is_array($option)) - erreur_squelette($msg); - else { - include_spip('quete.php'); - denoncer_inclure_dynamique($msg, $option); - } + include_spip('public/compiler'); + erreur_squelette(array(sql_errno(), sql_error(), $query), reconstruire_contexte_compil($context_compil)); return false; } diff --git a/ecrire/index.php b/ecrire/index.php index 21de9a6d03..5d2e0038f8 100644 --- a/ecrire/index.php +++ b/ecrire/index.php @@ -158,7 +158,7 @@ $var_f = charger_fonction($exec); $var_f(); if ($GLOBALS['var_mode'] == 'debug') { - erreur_squelette("", ""); + erreur_squelette('', ''); } if (isset($tableau_des_erreurs) AND count($tableau_des_erreurs) AND $affiche_boutons_admin) { include_spip('public/debusquer'); diff --git a/ecrire/public/compiler.php b/ecrire/public/compiler.php index 865a2ebcf3..59bc91e338 100644 --- a/ecrire/public/compiler.php +++ b/ecrire/public/compiler.php @@ -118,8 +118,8 @@ function argumenter_inclure($params, $rejet_filtres, $p, &$boucles, $id_boucle, define('CODE_INCLURE_SCRIPT', 'if (is_readable($path = %s)) include $path; -else denoncer_inclure_dynamique(array("fichier_introuvable", array("fichier" => "%s")), - array(%s));' +else { include_spip("public/compiler"); + erreur_squelette(array("fichier_introuvable", array("fichier" => "%s")), reconstruire_contexte_compil(array(%s)));}' ); // http://doc.spip.org/@calculer_inclure @@ -438,6 +438,18 @@ function memoriser_contexte_compil($p) { _q($GLOBALS['spip_lang']))); } +function reconstruire_contexte_compil($context_compil) +{ + if (!is_array($context_compil)) return $context_compil; + include_spip('public/interfaces'); + $p = new Contexte; + $p->descr = array('sourcefile' => $context_compil[0], + 'nom' => $context_compil[1]); + $p->id_boucle = $context_compil[2]; + $p->ligne = $context_compil[3]; + $p->lang = $context_compil[4]; + return $p; +} // http://doc.spip.org/@calculer_dec function calculer_dec($nom, $val) @@ -914,14 +926,15 @@ function compiler_squelette($squelette, $boucles, $nom, $descr, $sourcefile, $co $boucles[$id]->jointures = $x; } else { $boucles[$id]->type_requete = ''; - $x = $boucles[$id]->sql_serveur; - $x = $x ? "$x:$type" : $type; - // ne pas renvoyer d'erreur si la table est optionnelle - // declare par ? avant ) dans <BOUCLE_A(table ?)> + // Pas une erreur si la table est optionnelle if (!$boucles[$id]->table_optionnelle) { + $boucle = $boucles[$id]; + $x = (!$boucle->sql_serveur ? '' : + ($boucle->sql_serveur . ":")) . + $type; $msg = array('zbug_table_inconnue', array('table' => $x)); - erreur_squelette($msg, $boucles[$id]); + erreur_squelette($msg, $boucle); } } } diff --git a/ecrire/public/composer.php b/ecrire/public/composer.php index 576a5f4395..2fc3c2c40d 100644 --- a/ecrire/public/composer.php +++ b/ecrire/public/composer.php @@ -68,7 +68,7 @@ function public_composer_dist($squelette, $mime_type, $gram, $source, $connect=' $f = $boucle->return; if (@eval("return true; $f ;") === false) { // Code syntaxiquement faux (critere etc mal programme') - erreur_squelette(_T('zbug_erreur_compilation'), $boucle); + erreur_squelette(_T('zbug_erreur_compilation'), $boucle); // continuer pour trouver d'autres fautes eventuelles // mais prevenir que c'est mort $nom = ''; @@ -366,7 +366,7 @@ function executer_balise_dynamique($nom, $args, $context_compil) { else { $msg = "<span class='spip-debug-arg'>$nom</span> " . _T('zxml_inconnu_balise'); - denoncer_inclure_dynamique($msg, $context_compil); + erreur_squelette($msg, reconstruire_contexte_compil($context_compil)); return ''; } } @@ -389,7 +389,7 @@ function executer_balise_dynamique($nom, $args, $context_compil) { $msg = "<span class='spip-debug-arg'>$nom</span> " . _T('zxml_inconnu_balise'); - denoncer_inclure_dynamique($msg, $context_compil); + erreur_squelette($msg, reconstruire_contexte_compil($context_compil)); return ''; } } diff --git a/ecrire/public/criteres.php b/ecrire/public/criteres.php index 252fc985fc..3f73b400e8 100644 --- a/ecrire/public/criteres.php +++ b/ecrire/public/criteres.php @@ -625,15 +625,16 @@ function calculer_critere_parties_aux($idb, &$boucles, $param) { // Sinon, ne retourne rien (affectation directe dans l'arbre) // http://doc.spip.org/@calculer_criteres -function calculer_criteres ($idb, &$boucles) { - +function calculer_criteres ($idb, &$boucles) +{ + $msg = ''; + $boucle = $boucles[$idb]; + $table = strtoupper($boucle->id_table); $defaut = charger_fonction('DEFAUT', 'calculer_critere'); - $err = ''; - foreach($boucles[$idb]->criteres as $crit) { + foreach($boucle->criteres as $crit) { $critere = $crit->op; // critere personnalise ? - if ( - (!function_exists($f="critere_".strtoupper($boucles[$idb]->id_table)."_".$critere)) + if ((!function_exists($f="critere_".$table."_".$critere)) AND (!function_exists($f=$f."_dist")) AND (!function_exists($f="critere_".$critere)) AND (!function_exists($f=$f."_dist")) ) { @@ -645,11 +646,11 @@ function calculer_criteres ($idb, &$boucles) { // Gestion centralisee des erreurs pour pouvoir propager if (is_array($res)) { - $err = $res; - erreur_squelette($res, $boucles[$idb]); + $msg = $res; + erreur_squelette($msg, $boucle); } } - return $err; + return $msg; } // Madeleine de Proust, revision MIT-1958 sqq, revision CERN-1989 diff --git a/ecrire/public/quete.php b/ecrire/public/quete.php index aae7f673f1..c2ddbeb758 100644 --- a/ecrire/public/quete.php +++ b/ecrire/public/quete.php @@ -265,16 +265,4 @@ function quete_debut_pagination($primary,$valeur,$pas,$res,$serveur=''){ // sinon, calculer le bon numero de page return floor($pos/$pas)*$pas; } - -function denoncer_inclure_dynamique($msg, $context_compil) -{ - include_spip('public/interfaces'); - $p = new Contexte; - $p->descr = array('sourcefile' => $context_compil[0], - 'nom' => $context_compil[1]); - $p->id_boucle = $context_compil[2]; - $p->ligne = $context_compil[3]; - $p->lang = $context_compil[4]; - erreur_squelette($msg, $p); -} ?> \ No newline at end of file -- GitLab