diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php index f5fe4decd32cf7c3ba5285f848974e0315d3041e..c835f1e42c9e1d8a04edd1fa22411753d7105f3c 100644 --- a/ecrire/inc/utils.php +++ b/ecrire/inc/utils.php @@ -415,28 +415,32 @@ function parametre_url($url, $c, $v=NULL, $sep='&') { $a = array_shift($url); if (!$a) $a= './'; + $regexp = ',^(' . $c . ')(=.*)?$,'; + $ajouts = array_flip(explode('|',$c)); + $u = rawurlencode($v); // lire les variables et agir foreach ($url as $n => $val) { - if (preg_match(',^'.preg_quote($c,',').'(=.*)?$,', urldecode($val), $r)) { + if (preg_match($regexp, urldecode($val), $r)) { if ($v === NULL) { - return $r[1]?substr($r[1],1):''; + return $r[2]?substr($r[2],1):''; } elseif (!$v) {// suppression unset($url[$n]); } else { - $url[$n] = $c.'='.rawurlencode($v); - $v = ''; + $url[$n] = $r[1].'='.$u; + unset($ajouts[$r[1]]); } } } - // ajouter notre parametre si on ne l'a pas encore trouve + // traiter les parametres pas encore trouves if ($v === NULL AND $args = func_get_args() AND count($args)==2) return $v; - elseif ($v) - $url[] = $c.'='.rawurlencode($v); + elseif ($v) { + foreach($ajouts as $k => $n) $url[] = $k .'=' . $u; + } // eliminer les vides $url = array_filter($url); diff --git a/ecrire/public/debug.php b/ecrire/public/debug.php index 9e337c3b523a2810167b155e2bd36c73b05b9b6c..48d0236f3f39b9f7228e40c6aee688824ddc3c4f 100644 --- a/ecrire/public/debug.php +++ b/ecrire/public/debug.php @@ -399,8 +399,8 @@ function debug_dumpfile ($texte, $fonc, $type) { ob_end_clean(); $self = str_replace("\\'", ''', self()); $self = parametre_url($self,'var_mode', 'debug'); - echo debug_debut($fonc); + if ($var_mode_affiche !== 'validation') { $self = parametre_url($self,'var_mode', 'debug'); foreach ($debug_objets['sourcefile'] as $nom_skel => $sourcefile) { @@ -452,31 +452,8 @@ function debug_dumpfile ($texte, $fonc, $type) { echo "</fieldset>\n"; } echo "</div>\n<a id='$fonc'></a>\n"; - if ($var_mode_objet && ($res = $debug_objets[$var_mode_affiche][$var_mode_objet])) { - echo "<div id=\"debug_boucle\"><fieldset>"; - if ($var_mode_affiche == 'resultat') { - echo "<legend>",$debug_objets['pretty'][$var_mode_objet],"</legend>"; - $req = $debug_objets['requete'][$var_mode_objet]; - if (function_exists('traite_query')) - $req = traite_query($req); - echo ancre_texte($req); - foreach ($res as $view) - if ($view) echo "\n<br /><fieldset>",interdire_scripts($view),"</fieldset>"; - - } else if ($var_mode_affiche == 'code') { - echo "<legend>",$debug_objets['pretty'][$var_mode_objet],"</legend>"; - echo ancre_texte("<"."?php\n".$res."\n?".">"); - } else if ($var_mode_affiche == 'boucle') { - echo "<legend>",$debug_objets['pretty'][$var_mode_objet],"</legend>"; - echo ancre_texte($res); - } else if ($var_mode_affiche == 'squelette') { - echo "<legend>",$debug_objets['sourcefile'][$var_mode_objet],"</legend>"; - echo ancre_texte($debug_objets['squelette'][$var_mode_objet]); - } - echo "</fieldset></div>"; - } + echo debug_affiche($fonc, $debug_objets, $var_mode_objet, $var_mode_affiche); } - if ($texte) { $err = ""; @@ -507,6 +484,34 @@ function debug_dumpfile ($texte, $fonc, $type) { exit; } +function debug_affiche($fonc, $tout, $objet, $affiche) +{ + if (!$objet) {if ($affiche == 'squelette') $objet = $fonc;} + if (!$objet OR !$res = $tout[$affiche][$objet]) return; + $res = "<div id=\"debug_boucle\"><fieldset>"; + if ($affiche == 'resultat') { + $res .= "<legend>" .$tout['pretty'][$objet] ."</legend>"; + $req = $tout['requete'][$objet]; + if (function_exists('traite_query')) + $req = traite_query($req); + $res .= ancre_texte($req); + foreach ($res as $view) + if ($view) $res .= "\n<br /><fieldset>" .interdire_scripts($view) ."</fieldset>"; + + } else if ($affiche == 'code') { + $res .= "<legend>" .$tout['pretty'][$objet] ."</legend>"; + $res .= ancre_texte("<"."?php\n".$res."\n?".">"); + } else if ($affiche == 'boucle') { + $res .= "<legend>" .$tout['pretty'][$objet] ."</legend>"; + $res .= ancre_texte($res); + } else if ($affiche == 'squelette') { + $res .= "<legend>" .$tout['sourcefile'][$objet] ."</legend>"; + $res .= ancre_texte($tout['squelette'][$objet]); + } + $res .= "</fieldset></div>"; + return $res; +} + // http://doc.spip.org/@debug_debut function debug_debut($titre) { diff --git a/ecrire/public/styliser.php b/ecrire/public/styliser.php index c1d959d5acffd663d5cbc58bdc23fe86bc06456d..eb31e22602c46986fc188275d6aebd48661a9960 100644 --- a/ecrire/public/styliser.php +++ b/ecrire/public/styliser.php @@ -30,7 +30,7 @@ function public_styliser_dist($fond, $id_rubrique, $lang='', $connect='', $ext=' AND $table = $trouver_table($fond, $connect)) { $base = _DIR_TMP . $fond . ".$ext"; if (!file_exists($base) - OR $GLOBALS['var_mode'] == 'recalcul') { + OR $GLOBALS['var_mode']) { $vertebrer = charger_fonction('vertebrer', 'public'); $f = fopen($base, 'w'); fwrite($f, $vertebrer($table)); diff --git a/ecrire/public/vertebrer.php b/ecrire/public/vertebrer.php index 5d358b1d33d03a7867e9bb93f0316d6ed676f1f2..cca75bd822da8b4c61f9747c9bad1e024fa7c061 100755 --- a/ecrire/public/vertebrer.php +++ b/ecrire/public/vertebrer.php @@ -33,13 +33,14 @@ function vertebrer_sort($fields, $direction) foreach($fields as $n => $t) { $tri = $direction . ((test_sql_int($t) OR test_sql_date($r)) ? 'tri_n' : 'tri'); - $args =""; + $url =""; foreach (array('tri', 'tri_n', '_tri', '_tri_n') as $c) { - if ($tri != $c) $args .= '|parametre_url{' . $c .',""}'; + if ($tri != $c) $url .= "|$c"; } - // #SELF contient tous les parametes *tri*. A ameliorer - $url = "[(#SELF$args|parametre_url{" . $tri . ",'" . $n . "'})]"; - $res .= "\n\t\t<th><a href='$url'>$n</a></th>"; + $url = "|parametre_url{" . $tri . ",'" . $n . "'}" + . '|parametre_url{"' . substr($url,1) .'",""}'; + + $res .= "\n\t\t<th><a href='[(#SELF$url)]'>$n</a></th>"; } return $res; } @@ -96,18 +97,24 @@ function public_vertebrer_dist($desc) <h1 style='text-align:center'>SPIPAdmin $surnom</h1><br />\n" . // au minimum: "<BOUCLE1($fond)></BOUCLE1>#TOTAL_BOUCLE<//B1>") // au maximum: - "<B1>#ANCRE_PAGINATION[<p class='pagination'>(#PAGINATION)</p>]" . - "<table class='spip' border='1' width='90%'>" . - "<tr>\n\t<th>Nb</th>" . + "<B1>#ANCRE_PAGINATION" . + "\n<p class='pagination'>" . + "\n<a style='float:left;' " . + "href='./?page=$surnom&var_mode=debug&var_mode_affiche=squelette#debug_boucle'>squelette" . + "</a>" . + "\n#PAGINATION" . + "\n</p>\n<table class='spip' border='1' width='90%'>" . + "\n\t<tr>\n\t\t<th>Nb</th>" . vertebrer_sort($field,'') . - "\n</tr>\n<BOUCLE1($surnom)" . + "\n\t</tr>\n<BOUCLE1($surnom)" . vertebrer_crit($field) . '>' . vertebrer_cell($field) . "\n\t</tr>\n</BOUCLE1>" . - "\n\t<tr>\n\t<th>Nb</th>" . + "\n\t<tr>\n\t\t<th>Nb</th>" . vertebrer_sort($field,'_') . - "\n</tr></table>" . -"</B1><h2 style='text-align:center'><:texte_vide:></h2><//B1></div></body></html>"; + "\n\t</tr>\n</table>" . +"\n</B1>\n<h2 style='text-align:center'><:texte_vide:></h2>" . +"\n<//B1></div></body></html>"; } ?>