le commit est parti trop vite, avant que je corrige le commentaire :
(DONNEES) -> les donnees d'une table
(TABLE_CHAMPS) -> les champs d'une table
(DONNEE_CHAMPS) -> les valeur des champs pour une donnee (donc attention DONNEE au singulier, CHAMPS au pluriel)
voila ces nommages vont alleger l'ecriture
Par ailleurs, le formulaire de recherche sur les tables applique un AND entre les conditions des champs (il faut que le champ 1 ait telle valeur ET le champ 2 telle valeur)
Mais, attention tout de meme, sur les champs de type multiple, cela reste un OU entre les valeurs du meme champ (champ 1 ait telle ou telle valeur ET champ 2 aie telle valeur)
Pour etendre le formulaire de recherche à tous les types de champs(select,multiple, mot par defaut) il suffit de personaliser formulaires/forms_recherche dans son dossier squelette)
cedric@yterium.com a écrit :
Author: cedric@yterium.com
Date: Tue Apr 17 11:00:15 2007
New Revision: 11357Log:
"des alias DONNEES (au lieu de FORMS_DONNEES), TABLE_CHAMPS (au lieur de FORMS_CHAMPS) et DONNEES_CHAMPS au lieu de (FORMS_DONNEES_CHAMPS)
pour les skelette"Modified:
_plugins_/_stable_/forms/forms_et_tables_1_9_1/public/forms_boucles.phpModified: _plugins_/_stable_/forms/forms_et_tables_1_9_1/public/forms_boucles.php
--- _plugins_/_stable_/forms/forms_et_tables_1_9_1/public/forms_boucles.php (original)
+++ _plugins_/_stable_/forms/forms_et_tables_1_9_1/public/forms_boucles.php Tue Apr 17 11:00:15 2007
@@ -69,6 +69,11 @@
$boucle->modificateur['crit_filtre'] = 1;
//$boucle->where= array("'='", "'$boucle->id_table." . "id_parent'", 0);
}
+
+ function boucle_DONNEES_dist($id_boucle, &$boucles){
+ if (function_exists($f='boucle_FORMS_DONNEES') OR function_exists($f='boucle_FORMS_DONNEES_dist'))
+ return $f($id_boucle, &$boucles);
+ }
//
// <BOUCLE(FORMS_DONNEES)>
//
@@ -105,13 +110,13 @@
if ((\$r = _request(\$row['champ']))!==NULL){
if (is_array(\$r)){
if (strlen(implode("",\$r))) - \$filtre .= " OR (dc.champ="._q(\$row['champ'])." AND dc.valeur IN (".implode(',',array_map('_q',\$r))."))";
+ \$filtre .= " AND (dc.champ="._q(\$row['champ'])." AND dc.valeur IN (".implode(',',array_map('_q',\$r))."))";
}
elseif (strlen(\$r))
- \$filtre .= " OR (dc.champ="._q(\$row['champ'])." AND dc.valeur="._q(\$r).")";
+ \$filtre .= " AND (dc.champ="._q(\$row['champ'])." AND dc.valeur="._q(\$r).")";
}
}
- if (strlen(\$filtre)) \$filtre = substr(\$filtre,4);
+ if (strlen(\$filtre)) \$filtre = substr(\$filtre,5);
else \$filtre="1=1";
code;
$boucle->where = '$filtre';
@@ -162,6 +167,10 @@
return calculer_boucle($id_boucle, $boucles); }
+ function boucle_TABLE_CHAMPS_dist($id_boucle, &$boucles){
+ if (function_exists($f='boucle_FORMS_CHAMPS') OR function_exists($f='boucle_FORMS_CHAMPS_dist'))
+ return $f($id_boucle, &$boucles);
+ }
//
// <BOUCLE(FORMS_CHAMPS)>
//
@@ -177,6 +186,10 @@
return calculer_boucle($id_boucle, $boucles); }
+ function boucle_DONNEE_CHAMPS_dist($id_boucle, &$boucles){
+ if (function_exists($f='boucle_FORMS_DONNEES_CHAMPS') OR function_exists($f='boucle_FORMS_DONNEES_CHAMPS_dist'))
+ return $f($id_boucle, &$boucles);
+ }
//
// <BOUCLE(FORMS_DONNEES_CHAMPS)>
//_______________________________________________
Spip-zone-commit@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone-commit