$t) {
$tri = $direction
. ((sql_test_int($t) OR sql_test_date($r)) ? 'tri_n' : 'tri');
$url = vertebrer_sanstri($tri)
. "|parametre_url{" . $tri . ",'" . $n . "'}";
$res .= "\n\t\t
"
. "\n\t\t\t$n"
. "\n\t\t | ";
}
return $res;
}
// http://doc.spip.org/@vertebrer_sanstri
function vertebrer_sanstri($sauf='')
{
$url ="";
foreach (array('tri', 'tri_n', '_tri', '_tri_n') as $c) {
if ($sauf != $c) $url .= "|$c";
}
return '|parametre_url{"' . substr($url,1) .'",""}';
}
// Autant de formulaire que de champs (pour les criteres conditionnels)
// http://doc.spip.org/@vertebrer_form
function vertebrer_form($fields)
{
$res = '';
$url = join('|', array_keys($fields));
$url = "#SELF|\n\t\t\tparametre_url{'$url',''}";
foreach($fields as $n => $t) {
$s = sql_test_int($t) ? 11
: (preg_match('/char\s*\((\d)\)/i', $t, $r) ? $r[1] : '');
$res .= "\n\t\t | ";
}
return $res;
}
// Autant de criteres conditionnels que de champs
// http://doc.spip.org/@vertebrer_crit
function vertebrer_crit($v)
{
$res = "";
foreach($v as $n => $t) { $res .= "\n\t\t{" . $n . " ?}"; }
return $res;
}
// Class CSS en fonction de la parite du numero de ligne.
// Style text-align en fonction du type SQL (numerique ou non).
// Filtre de belle date sur type SQL signalant une date ou une estampille.
// Si une colonne reference une table, ajoute un href sur sa page dynamique
// (il faudrait aller chercher sa def pour ilustrer les jointures en SPIP)
// http://doc.spip.org/@vertebrer_cell
function vertebrer_cell($fields)
{
$res = "";
foreach($fields as $n => $t) {
$texte = "#" . strtoupper($n);
if (preg_match('/\s+references\s+([\w_]+)/' , $t, $r)) {
$url = "[(#SELF|parametre_url{page,'" . $r[1] . "'})]";
$texte = "" . $texte . "";
}
if (sql_test_int($t))
$s = " style='text-align: right;'";
else {
$s = '';
if (sql_test_date($t))
$texte = "[($texte|affdate_heure)]";
}
$res .= "\n\t\t$texte | ";
}
return $res;
}
// http://doc.spip.org/@public_vertebrer_dist
function public_vertebrer_dist($desc)
{
$nom = $desc['table'];
$surnom = $desc['id_table'];
$connexion = $desc['connexion'];
$field = $desc['field'];
$key = $desc['key'];
ksort($field);
$form = vertebrer_form($field);
$crit = vertebrer_crit($field);
$cell = vertebrer_cell($field);
$sort = vertebrer_sort($field,'');
$tros = vertebrer_sort($field,'_');
$titre = "[(#ENV{page}|image_typo{police=dustismo_bold.ttf,taille=36,couleur=4433bb})]";
$distant = !$connexion ? '' : "&connect=$connexion";
$skel = "./?"._SPIP_PAGE."=table:$surnom$distant&var_mode=debug&var_mode_affiche=squelette#debug_boucle";
return
"#CACHE{0}
[(#NOM_SITE_SPIP|textebrut)] - #ENV{page}
$titre
[]
<:info_numero_abbreviation:> | $sort
| $form
#COMPTEUR_BOUCLE | $cell
<:info_numero_abbreviation:> | $tros
\n
<:texte_vide:>
/B1>
";
}
?>