Update of /home/spip-cvs/spip
In directory alan:/tmp/cvs-serv22105
Modified Files:
inc-admin.php3 inc-compilo-index.php3 inc-compilo.php3
inc-criteres.php3
Log Message:
non à la délation publique ! Ne donner les erreurs du squelette qu'au webmestre (enfin, admin identifié ou pas, ou debuggueur actif)
Index: inc-criteres.php3
RCS file: /home/spip-cvs/spip/inc-criteres.php3,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- inc-criteres.php3 18 Sep 2004 13:34:20 -0000 1.15
+++ inc-criteres.php3 21 Sep 2004 19:40:08 -0000 1.16
@@ -15,7 +15,7 @@
$boucle = &$boucles[$idb];
if ($param != 'racine' OR $not)
- return array(_T('info_erreur_squelette'), $param);
+ erreur_squelette(_T('info_erreur_squelette'), $param);
$boucle->where[] = $boucle->id_table.".id_parent='0'";
@@ -27,7 +27,7 @@
$boucle = &$boucles[$idb];
if ($param != 'exclus' OR $not)
- return array(_T('info_erreur_squelette'), $param);
+ erreur_squelette(_T('info_erreur_squelette'), $param);
$boucle->where[] = $boucle->id_table . '.' . $boucle->primary."!='\"."
. calculer_argument_precedent($idb,$boucle->primary, $boucles) .
@@ -42,7 +42,7 @@
if (!preg_match("/(doublons|unique)[[:space:]]*([a-z_0-9]*)/i",
$param, $match))
- return array(_T('info_erreur_squelette'), $param);
+ erreur_squelette(_T('info_erreur_squelette'), $param);
$boucle->doublons = $boucle->type_requete . $match[2];
$boucle->where[] = '" .' .
@@ -61,7 +61,7 @@
$lang_select = ($lang_select=='oui')?'non':'oui';
$boucle->lang_select = $lang_select;
}
- else return array(_T('info_erreur_squelette'), $param);
+ else erreur_squelette(_T('info_erreur_squelette'), $param);
}
// {debut_xxx}
@@ -73,7 +73,7 @@
$boucle->limit =
'intval($GLOBALS["'.$debut_lim.'"]).",'.$match[2] .'"' ;
}
- else return array(_T('info_erreur_squelette'), $param);
+ else erreur_squelette(_T('info_erreur_squelette'), $param);
}
// {recherche}
@@ -116,10 +116,10 @@
if ($boucle->order)
$boucle->order .= ".' DESC'";
else
- return array(_L("inversion d'un ordre inexistant"),
- "BOUCLE" . $idb);
+ erreur_squelette(_L("inversion d'un ordre inexistant"),
+ "BOUCLE" . $idb);
} else
- return array(_T('info_erreur_squelette'), $param);
+ erreur_squelette(_T('info_erreur_squelette'), "{$param} BOUCLE$idb");
}
// {traduction}
@@ -140,7 +140,7 @@
$boucles)
. ".\"'))";
} else
- return array(_T('info_erreur_squelette'), $param);
+ erreur_squelette(_T('info_erreur_squelette'), $param);
}
// {origine_traduction}
@@ -151,7 +151,7 @@
$boucle->where[] = $boucle->id_table.".id_trad = "
. $boucle->id_table . '.' . $boucle->primary;
else
- return array(_T('info_erreur_squelette'), $param);
+ erreur_squelette(_T('info_erreur_squelette'), $param);
}
@@ -160,7 +160,7 @@
function critere_meme_parent_dist($idb, &$boucles, $param, $not) {
$boucle = &$boucles[$idb];
if ($param != 'meme_parent')
- return array(_T('info_erreur_squelette'), $param);
+ erreur_squelette(_T('info_erreur_squelette'), $param);
else {
if ($boucle->type_requete == 'rubriques') {
$boucle->where[] = $boucle->id_table.".id_parent='\"."
@@ -175,7 +175,7 @@
$boucle->where[] = $boucle->id_table.".id_parent > 0";
$boucle->plat = true;
} else
- return array(_L("{meme_parent} ne s'applique qu'aux boucles (FORUMS) ou (RUBRIQUES)"), "BOUCLE" . $idb);
+ erreur_squelette(_L("{meme_parent} ne s'applique qu'aux boucles (FORUMS) ou (RUBRIQUES)"), "BOUCLE" . $idb);
}
}
@@ -199,7 +199,7 @@
else
$boucle->where[] = $where;
} else
- return array(_T('info_erreur_squelette'), $param);
+ erreur_squelette(_T('info_erreur_squelette'), $param);
}
// Tri : {par xxxx}
@@ -207,7 +207,7 @@
function critere_par_dist($idb, &$boucles, $param, $not) {
$boucle = &$boucles[$idb];
if ($not)
- return array(_T('info_erreur_squelette'), $param);
+ erreur_squelette(_T('info_erreur_squelette'), $param);
preg_match('/par[[:space:]]*(.*)/ims', $param, $regs);
$tri = trim($regs[1]);
@@ -275,9 +275,12 @@
// fonction critere standard ?
if (!function_exists($f))
$f = 'calculer_critere_DEFAUT';
+
+ // Applique le critere
$res = $f($idb, $boucles, $param, $not);
- if (is_array($res)) return $res; # erreur
-
+
+ // gestion d'erreur
+ if (is_array($res)) erreur_squelette($res);
}
}
@@ -327,7 +330,8 @@
if ($match[3]) {
if (strtoupper($op) != 'IN') {
$val = calculer_param_dynamique($match[6], $boucles, $idb);
- if (is_array($val)) return $val;
+ // gestion d'erreur
+ if (is_array($val)) erreur_squelette($val);
}
else {
// traitement special des valeurs textuelles
@@ -335,7 +339,7 @@
$val2 = split(" *, *", $val2[1]);
foreach ($val2 as $v) {
$v = calculer_param_dynamique($v, $boucles, $idb);
- if (is_array($v)) return $v;
+ if (is_array($v)) erreur_squelette($v);
if (strpos('"0123456789',$v[0]) !== false)
$val3[] = $v;
else
Index: inc-admin.php3
RCS file: /home/spip-cvs/spip/inc-admin.php3,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -d -r1.35 -r1.36
--- inc-admin.php3 21 Sep 2004 16:26:19 -0000 1.35
+++ inc-admin.php3 21 Sep 2004 19:40:08 -0000 1.36
@@ -180,26 +180,24 @@
// ajouter &var_debug=oui pour voir les erreurs et en parler sur spip@rezo.net
function affiche_erreurs_execution_page() {
- global $tableau_des_erreurs, $affiche_boutons_admin;
- echo "<div style='height: 100%; width: 100%; position: absolute; top: 10px; z-index: 1000; background-color: pink;'>";
- if (!$affiche_boutons_admin)
- echo "<h2>",(_T('info_travaux_titre')), "</h2>";
- else {
- echo "<h2>",
- _L("Squelette invalide"),
- "</h2>",
- "<p>",
- _L("PHP a rencontré les erreurs suivantes :"),
- "<code><ul>";
- foreach ($tableau_des_erreurs as $err) {
- echo "<li>$err[2] $err[3] $err[1]",
- "<small>$err[4]</small><br><br>",
- "</li>\n";
- }
- echo "</ul></code>";
- $GLOBALS['bouton_admin_debug'] = true;
+ global $tableau_des_erreurs, $affiche_boutons_admin;
+
+ if ($affiche_boutons_admin) {
+ echo "<div style='position: absolute; top: 10px;
+ z-index: 1000; background-color: pink;'>";
+ echo "<h2>",
+ _L("Erreur(s) dans le squelette"),
+ "</h2>",
+ "<code><ul>";
+ foreach ($tableau_des_erreurs as $err) {
+ echo "<li>$err[2] $err[3] $err[1]",
+ "<small>$err[4]</small><br><br>",
+ "</li>\n";
+ }
+ echo "</ul></code>";
+ echo "</div>";
+ $GLOBALS['bouton_admin_debug'] = true;
}
- echo "</div>";
}
//
@@ -253,24 +251,25 @@
//
-// Erreur de syntaxe des squelettes : afficher le code fautif
+// Erreur de syntaxe des squelettes : memoriser le code fautif
//
-function erreur_squelette($message, $lieu) {
+function erreur_squelette($message='', $lieu='') {
global $auteur_session;
static $runs;
-
+
+ if (is_array($message)) list($message, $lieu) = $message;
+
spip_log("Erreur squelette: $message | $lieu ("
. $GLOBALS['fond'].".html)");
$GLOBALS['bouton_admin_debug'] = true;
spip_error_handler(1," $message $lieu ", '','','?');
// Eviter les boucles infernales
if (++$runs > 4) {
- if (!$HTTP_COOKIE_VARS['spip_admin'] AND
- !$auteur_session AND
- !$GLOBALS['var_debug'])
- $messages = "<h2>".(_T('info_travaux_titre')). "</h2>";
- die ("<div style='position: fixed; top: 10px; left: 10px;
- z-index: 10000; background-color: pink;'>$message</div>");
+ if ($HTTP_COOKIE_VARS['spip_admin'] OR
+ $auteur_session['statut'] == '0minirezo' OR
+ $GLOBALS['var_debug'])
+ die ("<div style='position: fixed; top: 10px; left: 10px;
+ z-index: 10000; background-color: pink;'>$message</div>");
}
}
Index: inc-compilo.php3
RCS file: /home/spip-cvs/spip/inc-compilo.php3,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -d -r1.22 -r1.23
--- inc-compilo.php3 19 Sep 2004 12:31:35 -0000 1.22
+++ inc-compilo.php3 21 Sep 2004 19:40:08 -0000 1.23
@@ -12,29 +12,21 @@
// Definition de la structure $p, et fonctions de recherche et de reservation
// dans l'arborescence des boucles
include_local("inc-compilo-index.php3"); # index ? structure ? pile ?
-#include_local("inc-index-squel.php3"); # (anciens noms des fichiers)
// definition des boucles
include_local("inc-boucles.php3");
-#include_local("inc-reqsql-squel.php3");
// definition des criteres
include_local("inc-criteres.php3");
-#include_local("inc-arg-squel.php3");
// definition des balises
include_local("inc-balises.php3");
-#include_local("inc-logo-squel.php3");
-#include_local("inc-vrac-squel.php3");
// gestion des balises de forums
include_local("inc-forum.php3");
-#include_local("inc-form-squel.php3");
// definition de l'API
include_local("inc-compilo-api.php3");
-#include_local("inc-bcl-squel.php3");
-#include_local("inc-champ-squel.php3");
# definition des tables
include_ecrire('inc_serialbase.php3');
@@ -439,7 +431,7 @@
$p->params,
$id_boucle,
$boucles);
- $commentaire = "<INCLURE($p->fichier)>";
+ $commentaire = '<INCLURE('.$p->fichier.')>';
$avant='';
$apres='';
$altern = "''";
@@ -454,16 +446,18 @@
ereg_replace("-","_", $nom) . $descr['nom'] .
'($Cache, $Pile, $doublons, $Numrows, $SP)';
$commentaire='';
- $avant = calculer_liste($p->cond_avant, $newdescr, $boucles, $id_boucle, $niv+2);
- $apres = calculer_liste($p->cond_apres, $newdescr, $boucles, $id_boucle, $niv+2);
- $altern = calculer_liste($p->cond_altern, $newdescr, $boucles, $id_boucle, $niv+1);
+ $avant = calculer_liste($p->cond_avant,
+ $newdescr, $boucles, $id_boucle, $niv+2);
+ $apres = calculer_liste($p->cond_apres,
+ $newdescr, $boucles, $id_boucle, $niv+2);
+ $altern = calculer_liste($p->cond_altern,
+ $newdescr, $boucles, $id_boucle, $niv+1);
break;
// balise SPIP
default:
- // cette structure pourrait etre completee dès le phrasé (a faire)
-
+ // cette structure pourrait etre completee des le phrase' (a faire)
$p->id_boucle = $id_boucle;
$p->boucles = &$boucles;
$p->id_mere = $descr['id_mere'];
@@ -473,8 +467,10 @@
$code = calculer_champ($p);
$commentaire = '#' . $p->nom_champ . $p->etoile;
- $avant = calculer_liste($p->cond_avant, $descr, $boucles, $id_boucle, $niv+1);
- $apres = calculer_liste($p->cond_apres, $descr, $boucles, $id_boucle, $niv+1);
+ $avant = calculer_liste($p->cond_avant,
+ $descr, $boucles, $id_boucle, $niv+1);
+ $apres = calculer_liste($p->cond_apres,
+ $descr, $boucles, $id_boucle, $niv+1);
$altern = "''";
break;
@@ -526,7 +522,7 @@
# include_local('inc-compilo-debug.php3');
# afftable($racine);
# affboucles($boucles);
-
+
// tableau des informations sur le squelette
$descr = array('nom' => $nom, 'documents' => false);
@@ -541,48 +537,48 @@
// Commencer par reperer les boucles appelees explicitement
// car elles indexent les arguments de maniere derogatoire
foreach($boucles as $id => $boucle) {
- if ($boucle->type_requete == 'boucle') {
- $rec = &$boucles[$boucle->param];
- if (!$rec) {
- return array(_T('info_erreur_squelette'),
- ($boucle->param .
- _L(' boucle recursive non definie')));
- }
- $rec->externe = $id;
- $descr['id_mere'] = $id;
- $boucles[$id]->return =
- calculer_liste(array($rec),
- $descr,
- $boucles,
- $boucle->param);
- }
- }
- foreach($boucles as $id => $boucle)
- {
- $type = $boucle->type_requete;
- if ($type != 'boucle')
- {
- $boucles[$id]->id_table = $table_des_tables[$type];
- if ($boucles[$id]->id_table) {
- $boucles[$id]->primary = $table_primary[$type];
- } else {
- // table non Spip.
- $boucles[$id]->id_table = $type;
- $serveur = $boucle->sql_serveur;
- $boucles[$id]->primary = $tables_des_serveurs_sql[$serveur ? $serveur : 'localhost'][$type]['key']["PRIMARY KEY"];
- }
- if ($boucle->param) {
- $res = calculer_criteres($id, $boucles);
- if (is_array($res)) return $res; # erreur
+ if ($boucle->type_requete == 'boucle') {
+ $rec = &$boucles[$boucle->param];
+ if (!$rec) {
+ return array(_T('info_erreur_squelette'),
+ ($boucle->param
+ . _L(' boucle recursive non definie')));
+ } else {
+ $rec->externe = $id;
+ $descr['id_mere'] = $id;
+ $boucles[$id]->return =
+ calculer_liste(array($rec),
+ $descr,
+ $boucles,
+ $boucle->param);
+ }
}
- $descr['id_mere'] = $id;
- $boucles[$id]->return =
- calculer_liste($boucle->milieu,
+ }
+ foreach($boucles as $id => $boucle) {
+ $type = $boucle->type_requete;
+ if ($type != 'boucle') {
+ $boucles[$id]->id_table = $table_des_tables[$type];
+ if ($boucles[$id]->id_table) {
+ $boucles[$id]->primary = $table_primary[$type];
+ } else {
+ // table non Spip.
+ $boucles[$id]->id_table = $type;
+ $serveur = $boucle->sql_serveur;
+ $boucles[$id]->primary = $tables_des_serveurs_sql[$serveur ? $serveur : 'localhost'][$type]['key']["PRIMARY KEY"];
+ }
+ if ($boucle->param) {
+ $res = calculer_criteres($id, $boucles);
+ if (is_array($res))
+ return $res; # erreur
+ }
+ $descr['id_mere'] = $id;
+ $boucles[$id]->return =
+ calculer_liste($boucle->milieu,
$descr,
$boucles,
$id);
- }
- }
+ }
+ }
}
// idem pour la racine
@@ -598,15 +594,17 @@
$code = '';
if ($boucles) {
+
foreach($boucles as $id => $boucle) {
- // appeler la fonction de definition de la boucle
+ // appeler la fonction de definition de la boucle
$f = 'boucle_'.strtoupper($boucle->type_requete);
- // si pas de definition perso, definition spip
+ // si pas de definition perso, definition spip
if (!function_exists($f)) $f = $f.'_dist';
- // laquelle a une definition par defaut
- if (!function_exists($f)) $f = 'boucle_DEFAUT';
+ // laquelle a une definition par defaut
+ if (!function_exists($f)) $f = 'boucle_DEFAUT';
$boucles[$id]->return = $f($id, $boucles);
}
+
foreach($boucles as $id => $boucle) {
// Reproduire la boucle en commentaire
Index: inc-compilo-index.php3
RCS file: /home/spip-cvs/spip/inc-compilo-index.php3,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -d -r1.22 -r1.23
--- inc-compilo-index.php3 21 Sep 2004 15:35:37 -0000 1.22
+++ inc-compilo-index.php3 21 Sep 2004 19:40:08 -0000 1.23
@@ -31,7 +31,7 @@
$c = strtolower($nom_champ);
// attention: entre la boucle nommee 0, "" et le tableau vide,
- // il y a incohérences qu'il vaut mieux éviter
+ // il y a incoherences qu'il vaut mieux eviter
while ($boucles[$idb]) {
# spip_log("Cherche: $nom_champ '$idb' '$c'");
$r = $boucles[$idb]->type_requete;