* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
-//
-// Production dynamique d'un squelette lorsqu'il ne figure pas
-// dans les dossiers de squelettes mais que son nom est celui d'une table SQL:
-// on produit une table HTML montrant le contenu de la table SQL
-// Le squelette produit illustre quelques possibilites de SPIP:
-// - pagination automatique
-// - tri ascendant et descendant sur chacune des colonnes
-// - critere conditionnel donnant l'extrait correspondant a la colonne en URL
-//
-
-if (!defined("_ECRIRE_INC_VERSION")) return;
-
-// nomme chaque colonne par le nom du champ,
-// qui sert de lien vers la meme page, avec la table triee selon ce champ
-// distingue champ numerique et non numerique
-
-// https://code.spip.net/@vertebrer_sort
-function vertebrer_sort($fields, $direction)
-{
+/**
+ * Échafaudage du contenu du d'un squelette présentant le contenu d'une table SQL
+ *
+ * Production dynamique d'un squelette lorsqu'il ne figure pas dans les dossiers
+ * de squelettes mais que son nom est celui d'une table SQL:
+ * on produit une table HTML montrant le contenu de la table SQL
+ *
+ * Le squelette produit illustre quelques possibilites de SPIP:
+ * - pagination automatique
+ * - tri ascendant et descendant sur chacune des colonnes
+ * - critere conditionnel donnant l'extrait correspondant a la colonne en URL
+ *
+ * @package SPIP\Vertebres\Fonctions
+ **/
+
+if (!defined("_ECRIRE_INC_VERSION")) {
+ return;
+}
+
+
+/**
+ * Retourne un morceau de squelette pour ajouter les noms des colonnes
+ * et des tris possibles dessus
+ *
+ * @param array $fields
+ * Liste des champs de la table
+ * @return string
+ * Ligne de tableau
+ **/
+function vertebrer_sort($fields) {
$res = '';
- foreach($fields as $n => $t) {
- $res .= "\n\t\t<th scope='col'>[(#TRI{"."$n,$n,ajax})]</th>";
+ foreach ($fields as $n => $t) {
+ $res .= "\n\t\t<th scope='col'>[(#TRI{" . "$n,$n,ajax})]</th>";
}
+
return $res;
}
-// Autant de formulaire que de champs (pour les criteres conditionnels)
-// https://code.spip.net/@vertebrer_form
-function vertebrer_form($fields)
-{
+/**
+ * Retourne un morceau de squelette pour ajouter des recherches sur chaque champ de la table
+ *
+ * Autant de formulaire que de champs (pour les criteres conditionnels)
+ *
+ * @param array $fields
+ * Liste des champs de la table
+ * @return string
+ * Ligne de tableau
+ **/
+function vertebrer_form($fields) {
$res = '';
$url = join('|', array_keys($fields));
$url = "#SELF|\n\t\t\tparametre_url{'$url',''}";
- foreach($fields as $n => $t) {
+ foreach ($fields as $n => $t) {
$s = sql_test_int($t) ? 11
- : (preg_match('/char\s*\((\d)\)/i', $t, $r) ? $r[1] : '');
+ : (preg_match('/char\s*\((\d)\)/i', $t, $r) ? $r[1] : '');
- if (!in_array($n, array('date', 'date_redac', 'lang'))){
+ if (!in_array($n, array('date', 'date_redac', 'lang'))) {
$res .= "\n\t\t<td>
- [(#ENV{".$n."}|non)
+ [(#ENV{" . $n . "}|non)
<a href='#' onclick=\"jQuery(this).toggle('fast').siblings('form').toggle('fast');return false;\">[(#CHEMIN_IMAGE{rechercher-20.png}|balise_img)]</a>
]
- <form class='[(#ENV{".$n."}|non)none-js]' action='./' method='get'>"
- . "<div>"
- . "\n\t\t\t<input name='$n'"
- . ($s ? " size='$s'" : '')
- . "value=\"[(#ENV{".$n."}|entites_html)]\""
- . " />\n\t\t\t[($url|\n\t\t\tform_hidden)]"
- . "\n\t\t</div></form></td>";
- }
- else
+ <form class='[(#ENV{" . $n . "}|non)none-js]' action='./' method='get'>"
+ . "<div>"
+ . "\n\t\t\t<input name='$n'"
+ . ($s ? " size='$s'" : '')
+ . "value=\"[(#ENV{" . $n . "}|entites_html)]\""
+ . " />\n\t\t\t[($url|\n\t\t\tform_hidden)]"
+ . "\n\t\t</div></form></td>";
+ } else {
$res .= "<td></td>";
+ }
}
+
return $res;
}
-// Autant de criteres conditionnels que de champs
-
-// https://code.spip.net/@vertebrer_crit
-function vertebrer_crit($v)
-{
+/**
+ * Retourne un morceau de squelette pour ajouter les critères à la boucle
+ *
+ * Autant de criteres conditionnels que de champs
+ *
+ * @param array $fields
+ * Liste des champs de la table
+ * @return string
+ * Critères de boucles
+ **/
+function vertebrer_crit($fields) {
$res = "";
- foreach($v as $n => $t) {
- if (!in_array($n, array('date', 'date_redac', 'lang', 'recherche','logo')))
- $res .= "\n\t\t{" . $n . " ?}";
+ foreach ($fields as $n => $t) {
+ if (!in_array($n, array('date', 'date_redac', 'lang', 'recherche', 'logo'))) {
+ $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)
-
-// https://code.spip.net/@vertebrer_cell
-function vertebrer_cell($fields)
-{
+/**
+ * Retourne un morceau de squelette pour afficher le contenu de chaque
+ * champ SQL dans une ligne d'un tableau
+ *
+ * Class CSS en fonction de la parité 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 estampillé.
+ *
+ * Si une colonne référence une table, ajoute un href sur sa page dynamique
+ * (il faudrait aller chercher sa def pour ilustrer les jointures en SPIP)
+ *
+ * @param array $fields
+ * Liste des champs de la table
+ * @return string
+ * Ligne de tableau
+ **/
+function vertebrer_cell($fields) {
$res = "";
- foreach($fields as $n => $t) {
- $texte = "#CHAMP_SQL{".$n."}";
- if (preg_match('/\s+references\s+([\w_]+)/' , $t, $r)) {
+ foreach ($fields as $n => $t) {
+ $texte = "#CHAMP_SQL{" . $n . "}";
+ if (preg_match('/\s+references\s+([\w_]+)/', $t, $r)) {
$url = "[(#SELF|parametre_url{page,'" . $r[1] . "'})]";
$texte = "<a href='$url'>" . $texte . "</a>";
}
- if (sql_test_int($t))
+ if (sql_test_int($t)) {
$s = " style='text-align: right;'";
- else {
+ } else {
$s = '';
- if (sql_test_date($t))
+ if (sql_test_date($t)) {
$texte = "[($texte|affdate_heure)]";
+ }
}
$res .= "\n\t\t<td$s>$texte</td>";
}
+
return $res;
}
-// https://code.spip.net/@public_vertebrer_dist
-function public_vertebrer_dist($desc)
-{
+/**
+ * Calcule le contenu d'un squelette pour lister le contenu d'une
+ * table SQL à partir de la description de cette table.
+ *
+ * @see base_trouver_table_dist()
+ * @uses vertebrer_form()
+ * @uses vertebrer_crit()
+ * @uses vertebrer_cell()
+ * @uses vertebrer_sort()
+ *
+ * @param array $desc
+ * Descrption de la table, telle que retournéer par trouver_table.
+ * @return string
+ * Contenu du squelette pour la table
+ **/
+function public_vertebrer_dist($desc) {
$nom = $desc['table'];
$surnom = $desc['id_table'];
$connexion = $desc['connexion'];
$form = vertebrer_form($field);
$crit = vertebrer_crit($field);
$cell = vertebrer_cell($field);
- $sort = vertebrer_sort($field,'');
+ $sort = vertebrer_sort($field);
$distant = !$connexion ? '' : "&connect=$connexion";
return
-"#CACHE{0}
+ "#CACHE{0}
<B1>
<h2>[(#GRAND_TOTAL|singulier_ou_pluriel{vertebres:1_donnee,vertebres:nb_donnees})]</h2>
[<p class='pagination'>(#PAGINATION)</p>]
</div>
";
}
-?>