Skip to content
Extraits de code Groupes Projets
Valider bce435a7 rédigé par Maïeul's avatar Maïeul
Parcourir les fichiers

En session, les saisies sont identifiées, mais ce n'est pas

systématiquement le cas en base.
Par conséquent les comparatifs de md5 pour vérifier des modifs //
peuvent parfois foirer (PRX38, spipfactory, Nat33 via @marcimat).

On résoud cela en
1. Identifiant retrospectivement les saisies
2. S'assurant avant d'enregistrer en base que les saisies soient bien
identifiées
parent c8badd15
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -108,6 +108,9 @@ function formidable_upgrade($nom_meta_base_version, $version_cible) {
array('sql_alter','TABLE spip_formulaires_reponses ADD column `date_envoi` datetime NOT NULL default "0000-00-00 00:00:00" AFTER `date`'),
array('sql_update', 'spip_formulaires_reponses', array('date_envoi' => 'date')),
);
$maj['0.23.0'] = array(
array('formidable_saisies_identifier')
);
include_spip('base/upgrade');
maj_plugin($nom_meta_base_version, $version_cible, $maj);
}
......@@ -242,19 +245,19 @@ function formidable_migrer_formulaires_afficher_si_remplissage(){
// selection
include_spip('inc/saisies_migrer_afficher_si_remplissage');
if ($res = sql_select(array('id_formulaire','saisies'), 'spip_formulaires')) {
// boucler sur les resultats
while ($row = sql_fetch($res)) {
$id_formulaire = $row["id_formulaire"];
if ($saisies = unserialize($row['saisies'])) {
$saisies = saisies_migrer_afficher_si_remplissage($saisies);
$saisies = serialize($saisies);
sql_updateq(
'spip_formulaires',
array('saisies'=>$saisies),
"id_formulaire=".intval($id_formulaire)
);
}
// boucler sur les resultats
while ($row = sql_fetch($res)) {
$id_formulaire = $row["id_formulaire"];
if ($saisies = unserialize($row['saisies'])) {
$saisies = saisies_migrer_afficher_si_remplissage($saisies);
$saisies = serialize($saisies);
sql_updateq(
'spip_formulaires',
array('saisies'=>$saisies),
"id_formulaire=".intval($id_formulaire)
);
}
}
}
}
......@@ -339,7 +342,7 @@ function formidable_migrer_resume_reponse() {
* Cela ne devrait pas exister
* En outre, cela créait des enregistrements indus
* On annule ces traitements enregistrer vide
**/
**/
function formidable_effacer_traitement_enregistrer_sans_option() {
include_spip('inc/sql');
$res = sql_select('id_formulaire,traitements','spip_formulaires');
......@@ -355,7 +358,7 @@ function formidable_effacer_traitement_enregistrer_sans_option() {
/**
* Migre la config depuis formidable/analyse vers formidable
**/
**/
function formidable_migrer_config() {
include_spip('inc/config');
$config = lire_config("formidable/analyse");
......@@ -398,3 +401,17 @@ function formidable_vider_tables($nom_meta_base_version) {
effacer_meta($nom_meta_base_version);
}
/**
* Identifier toutes les saisies en base
**/
function formidable_saisies_identifier() {
include_spip('inc/saisies');
$res = sql_select('id_formulaire, saisies', 'spip_formulaires');
while ($row = sql_fetch($res)) {
$saisies = unserialize($row['saisies']);
$saisies = saisies_identifier($saisies);
$saisies = serialize($saisies);
sql_updateq('spip_formulaires', array('saisies' => $saisies), 'id_formulaire='.$row['id_formulaire']);
}
}
......@@ -152,7 +152,7 @@ function formulaires_editer_formulaire_champs_traiter($id_formulaire) {
// On envoie les nouvelles dans la table
include_spip('action/editer_objet');
$err = objet_modifier('formulaire', $id_formulaire, array('saisies' => serialize($saisies_nouvelles)));
$err = objet_modifier('formulaire', $id_formulaire, array('saisies' => serialize(saisies_identifier($saisies_nouvelles))));
// Si c'est bon on appelle d'éventuelles fonctions d'update des traitements
// On reinitialise aussi les sessions
......
<paquet
prefix="formidable"
categorie="communication"
version="4.5.2"
version="4.5.3"
etat="stable"
compatibilite="[3.1.0;3.2.*]"
logo="images/formidable-64.png"
schema="0.20.0"
schema="0.23.0"
documentation="https://contrib.spip.net/Formidable-le-generateur-de-formulaires"
>
<nom>Formidable</nom>
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter