Bonjour,
pour
le DELETE est indispensable car pour un (id_form,id_donnee,champ) on peut avoir plusieurs valeurs. La mise a jour ne peut donc pas faire d'update, ce qui necessite du coup un insert precede d'un delete.
On peut sans doute ameliorer cela du point de vue fiabilite en mettant le delete apres sur un critere de date du champ maj, mais cela demande des tests que je n'ai pas le temps de faire maintenant.
Je corrige donc ton commit.
Sinon, tu as ajoute un parametre id_donnee sur Forms_valide_conformite_champs_reponse_post et Forms_valide_champs_reponse_post dont tu ne te sers pas. Quel etait le but de cela ?
De maniere generale il faut faire attention aux changement de prototypes des fonctions car est de plus en plus utilise par d'autres plugins.
Je suis en train d'essayer de regrouper toute l'api a destination des autres plugins dans base/forms_api, mais cela n'est pas encore tout complet.
Cedric
phil@africacomputing.org a écrit :
Author: phil@africacomputing.org
Date: Tue Apr 3 10:34:43 2007
New Revision: 10915Log:
Correction bug lors d'une maj d'une donnéee (date de publication d'une donnée réinitialisée à la date de mise à jour) + suppression d'un var_dump oublié lors d'un précédent commit (oups!)Modified:
_plugins_/_stable_/forms/forms_et_tables_1_9_1/inc/forms.php
_plugins_/_stable_/forms/forms_et_tables_1_9_1/inc/forms_type_champs.phpModified: _plugins_/_stable_/forms/forms_et_tables_1_9_1/inc/forms.php
--- _plugins_/_stable_/forms/forms_et_tables_1_9_1/inc/forms.php (original)
+++ _plugins_/_stable_/forms/forms_et_tables_1_9_1/inc/forms.php Tue Apr 3 10:34:43 2007
@@ -593,7 +593,7 @@
// D'abord creer la reponse dans la base de donnees
if ($ok) {
if ($id_donnee>0 AND autoriser('modifier', 'donnee', $id_donnee, NULL, array('id_form'=>$id_form))){
- spip_query("UPDATE spip_forms_donnees SET date=NOW(), ip="._q($GLOBALS['ip']).", url="._q($url).", confirmation="._q($confirmation).", cookie="._q($cookie)." ".
+ spip_query("UPDATE spip_forms_donnees SET ip="._q($GLOBALS['ip']).", url="._q($url).", confirmation="._q($confirmation).", cookie="._q($cookie)." ".
"WHERE id_donnee="._q($id_donnee));
// Pourquoi ce Delete alors qu'il est effectué avant l'insertion des données ? => redondant + risque de perte de données
//spip_query("DELETE FROM spip_forms_donnees_champs WHERE id_donnee="._q($id_donnee));Modified: _plugins_/_stable_/forms/forms_et_tables_1_9_1/inc/forms_type_champs.php
--- _plugins_/_stable_/forms/forms_et_tables_1_9_1/inc/forms_type_champs.php (original)
+++ _plugins_/_stable_/forms/forms_et_tables_1_9_1/inc/forms_type_champs.php Tue Apr 3 10:34:43 2007
@@ -146,7 +146,7 @@
}
}
}
- if ($type == 'fichier') {var_dump($_FILES[$champ]); exit;
+ if ($type == 'fichier') {
if (!$taille = $_FILES[$champ]['size']) {
$erreur[$champ] = _T("forms:echec_upload");
}_______________________________________________
Spip-zone-commit@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone-commit