X-Git-Url: http://git.cyclocoop.org/?p=velocampus%2Fweb%2Fwww.git;a=blobdiff_plain;f=www%2Fextensions%2Fvertebres%2Fpublic%2Fvertebrer.php;fp=www%2Fextensions%2Fvertebres%2Fpublic%2Fvertebrer.php;h=c1d8ee0a3d024b78f8511c0933d1cd8bb1f9a0c1;hp=0000000000000000000000000000000000000000;hb=80b4d3e85f78d402ed2e73f8f5d1bf4c19962eed;hpb=aaf970bf4cdaf76689ecc10609048e18d073820c
diff --git a/www/extensions/vertebres/public/vertebrer.php b/www/extensions/vertebres/public/vertebrer.php
new file mode 100644
index 0000000..c1d8ee0
--- /dev/null
+++ b/www/extensions/vertebres/public/vertebrer.php
@@ -0,0 +1,174 @@
+ $t) {
+ $tri = $direction . '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') 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,'_');
+ $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}
+
+
+
+
+
+
#ENV{page}
+
+[]
+
+
+ <:info_numero_abbreviation:> | $sort
+
+
+ | $form
+
+
+
+ #COMPTEUR_BOUCLE | $cell
+
+
+
+ <:info_numero_abbreviation:> | $tros
+
+
+\n
<:texte_vide:>
+/B1>
+
+
+
+";
+}
+?>