From 7b6442d9c32466da1971876a00312d3302f04d9d Mon Sep 17 00:00:00 2001 From: "kent1@arscenic.info" <> Date: Tue, 14 Apr 2015 12:47:57 +0000 Subject: [PATCH] utiliser $GLOBALS['visiteur_session'] au lieu de global $auteur_session Indentation --- traiter/enregistrement.php | 324 ++++++++++++++++++------------------- 1 file changed, 162 insertions(+), 162 deletions(-) diff --git a/traiter/enregistrement.php b/traiter/enregistrement.php index 80aedc18..fc240d52 100644 --- a/traiter/enregistrement.php +++ b/traiter/enregistrement.php @@ -4,173 +4,173 @@ if (!defined("_ECRIRE_INC_VERSION")) return; function traiter_enregistrement_dist($args, $retours){ - include_spip('inc/formidable'); - include_spip('base/abstract_sql'); - $options = $args['options']; - $formulaire = $args['formulaire']; - $id_formulaire = $args['id_formulaire']; - $saisies = unserialize($formulaire['saisies']); - $saisies = saisies_lister_par_nom($saisies); - - // La personne a-t-elle un compte ? - global $auteur_session; - $id_auteur = $auteur_session ? intval($auteur_session['id_auteur']) : 0; - - // traitement de l'anonymisation - if ($options['anonymiser'] == 'on') { - // mod de l'id_auteur - $variables_anonymisation = - $GLOBALS['formulaires']['variables_anonymisation'][$options['anonymiser_variable']]; - $id = eval("return $variables_anonymisation;"); - $id_auteur = formidable_scramble($id, $id_formulaire); - } - // On cherche le cookie et sinon on le crée - $nom_cookie = formidable_generer_nom_cookie($id_formulaire); - if (isset($_COOKIE[$nom_cookie])) - $cookie = $_COOKIE[$nom_cookie]; - else { - include_spip("inc/acces"); - $cookie = creer_uniqid(); - } - - // On regarde si c'est une modif d'une réponse existante - $id_formulaires_reponse = $args['id_formulaires_reponse']; - - // recherche d'éventuelles anciennes réponses - $reponses = formidable_verifier_reponse_formulaire( - $id_formulaire, - $options['identification'], - ($options['anonymiser'] == 'on') - ? $options['anonymiser_variable'] - : false + include_spip('inc/formidable'); + include_spip('base/abstract_sql'); + $options = $args['options']; + $formulaire = $args['formulaire']; + $id_formulaire = $args['id_formulaire']; + $saisies = unserialize($formulaire['saisies']); + $saisies = saisies_lister_par_nom($saisies); + + // La personne a-t-elle un compte ? + $id_auteur = isset($GLOBALS['visiteur_session']) ? ($GLOBALS['visiteur_session']['id_auteur'] ? $GLOBALS['visiteur_session']['id_auteur'] : 0) : 0; + + // traitement de l'anonymisation + if ($options['anonymiser'] == 'on'){ + // mod de l'id_auteur + $variables_anonymisation = + $GLOBALS['formulaires']['variables_anonymisation'][$options['anonymiser_variable']]; + $id = eval("return $variables_anonymisation;"); + $id_auteur = formidable_scramble($id, $id_formulaire); + } + + // On cherche le cookie et sinon on le crée + $nom_cookie = formidable_generer_nom_cookie($id_formulaire); + if (isset($_COOKIE[$nom_cookie])) + $cookie = $_COOKIE[$nom_cookie]; + else { + include_spip("inc/acces"); + $cookie = creer_uniqid(); + } + + // On regarde si c'est une modif d'une réponse existante + $id_formulaires_reponse = $args['id_formulaires_reponse']; + + // recherche d'éventuelles anciennes réponses + $reponses = formidable_verifier_reponse_formulaire( + $id_formulaire, + $options['identification'], + ($options['anonymiser'] == 'on') + ? $options['anonymiser_variable'] + : false ); - - // pas d'id_formulaires_reponse : on cherche une éventuelle réponse en base - if ($id_formulaires_reponse == false) { - $traitements_formulaire = unserialize($formulaire['traitements']); - - if (isset($traitements_formulaire['enregistrement'])) { - $options = $traitements_formulaire['enregistrement']; - - if (isset($options['multiple']) && $options['multiple'] == '' - && isset($options['modifiable']) && $options['modifiable'] == 'on' + + // pas d'id_formulaires_reponse : on cherche une éventuelle réponse en base + if ($id_formulaires_reponse == false) { + $traitements_formulaire = unserialize($formulaire['traitements']); + + if (isset($traitements_formulaire['enregistrement'])) { + $options = $traitements_formulaire['enregistrement']; + + if (isset($options['multiple']) && $options['multiple'] == '' + && isset($options['modifiable']) && $options['modifiable'] == 'on' && is_array($reponses) && count($reponses) > 0) { - $id_formulaires_reponse = max($reponses); - } - } - } else { - // vérifier que l'auteur est bien l'auteur de la réponse, si non, on invalide l'id_formulaires_reponse - if (in_array($id_formulaires_reponse, $reponses) == false) $id_formulaires_reponse = false; - } - - // Si la moderation est a posteriori ou que la personne est un boss, on publie direct - if ($options['moderation'] == 'posteriori' or autoriser('instituer', 'formulaires_reponse', $id_formulaires_reponse, null, array('id_formulaire'=>$id_formulaire, 'nouveau_statut'=>'publie'))) - $statut='publie'; - else - $statut = 'prop'; - - // Si ce n'est pas une modif d'une réponse existante, on crée d'abord la réponse - if (!$id_formulaires_reponse){ - $id_formulaires_reponse = sql_insertq( - 'spip_formulaires_reponses', - array( - 'id_formulaire' => $id_formulaire, - 'id_auteur' => $id_auteur, - 'cookie' => $cookie, - 'ip' => $args['options']['ip'] == 'on' ? $GLOBALS['ip'] : '', - 'date' => 'NOW()', - 'statut' => $statut - ) - ); - // Si on a pas le droit de répondre plusieurs fois ou que les réponses seront modifiables, il faut poser un cookie - if (!$options['multiple'] or $options['modifiable']){ - include_spip("inc/cookie"); - // Expiration dans 30 jours - spip_setcookie($nom_cookie, $_COOKIE[$nom_cookie] = $cookie, time() + 30 * 24 * 3600); - } - } else { - // simple mise à jour du champ maj de la table spip_formulaires_reponses - sql_updateq( - 'spip_formulaires_reponses', - array('maj' => 'NOW()'), - "id_formulaires_reponse = $id_formulaires_reponse" - ); - } - - // Si l'id n'a pas été créé correctement alors erreur - if (!($id_formulaires_reponse > 0)){ - $retours['message_erreur'] .= "\n<br/>"._T('formidable:traiter_enregistrement_erreur_base'); - } - // Sinon on continue à mettre à jour - else{ - $champs = array(); - $insertions = array(); - foreach($saisies as $nom => $saisie){ - // On ne prend que les champs qui ont effectivement été envoyés par le formulaire - if (($valeur = _request($nom)) !== null){ - $champs[] = $nom; - $insertions[] = array( - 'id_formulaires_reponse' => $id_formulaires_reponse, - 'nom' => $nom, - 'valeur' => is_array($valeur) ? serialize($valeur) : $valeur - ); - } - } - - // S'il y a bien des choses à modifier - if ($champs){ - // On supprime d'abord les champs - sql_delete( - 'spip_formulaires_reponses_champs', - array( - 'id_formulaires_reponse = '.$id_formulaires_reponse, - sql_in('nom', $champs) - ) - ); - - // Puis on insère les nouvelles valeurs - sql_insertq_multi( - 'spip_formulaires_reponses_champs', - $insertions - ); - } - if (!isset($retours['message_ok'])) { $retours['message_ok'] = ''; } - $retours['message_ok'] .= "\n"._T('formidable:traiter_enregistrement_message_ok'); - $retours['id_formulaires_reponse'] = $id_formulaires_reponse; - } - - // noter qu'on a deja fait le boulot, pour ne pas risquer double appel - $retours['traitements']['enregistrement'] = true; - return $retours; + $id_formulaires_reponse = max($reponses); + } + } + } else { + // vérifier que l'auteur est bien l'auteur de la réponse, si non, on invalide l'id_formulaires_reponse + if (in_array($id_formulaires_reponse, $reponses) == false) $id_formulaires_reponse = false; + } + + // Si la moderation est a posteriori ou que la personne est un boss, on publie direct + if ($options['moderation'] == 'posteriori' or autoriser('instituer', 'formulaires_reponse', $id_formulaires_reponse, null, array('id_formulaire'=>$id_formulaire, 'nouveau_statut'=>'publie'))) + $statut='publie'; + else + $statut = 'prop'; + + // Si ce n'est pas une modif d'une réponse existante, on crée d'abord la réponse + if (!$id_formulaires_reponse){ + $id_formulaires_reponse = sql_insertq( + 'spip_formulaires_reponses', + array( + 'id_formulaire' => $id_formulaire, + 'id_auteur' => $id_auteur, + 'cookie' => $cookie, + 'ip' => $args['options']['ip'] == 'on' ? $GLOBALS['ip'] : '', + 'date' => 'NOW()', + 'statut' => $statut + ) + ); + // Si on a pas le droit de répondre plusieurs fois ou que les réponses seront modifiables, il faut poser un cookie + if (!$options['multiple'] or $options['modifiable']){ + include_spip("inc/cookie"); + // Expiration dans 30 jours + spip_setcookie($nom_cookie, $_COOKIE[$nom_cookie] = $cookie, time() + 30 * 24 * 3600); + } + } else { + // simple mise à jour du champ maj de la table spip_formulaires_reponses + sql_updateq( + 'spip_formulaires_reponses', + array('maj' => 'NOW()'), + "id_formulaires_reponse = $id_formulaires_reponse" + ); + } + + // Si l'id n'a pas été créé correctement alors erreur + if (!($id_formulaires_reponse > 0)){ + $retours['message_erreur'] .= "\n<br/>"._T('formidable:traiter_enregistrement_erreur_base'); + } + // Sinon on continue à mettre à jour + else{ + $champs = array(); + $insertions = array(); + foreach($saisies as $nom => $saisie){ + // On ne prend que les champs qui ont effectivement été envoyés par le formulaire + if (($valeur = _request($nom)) !== null){ + $champs[] = $nom; + $insertions[] = array( + 'id_formulaires_reponse' => $id_formulaires_reponse, + 'nom' => $nom, + 'valeur' => is_array($valeur) ? serialize($valeur) : $valeur + ); + } + } + + // S'il y a bien des choses à modifier + if ($champs){ + // On supprime d'abord les champs + sql_delete( + 'spip_formulaires_reponses_champs', + array( + 'id_formulaires_reponse = '.$id_formulaires_reponse, + sql_in('nom', $champs) + ) + ); + + // Puis on insère les nouvelles valeurs + sql_insertq_multi( + 'spip_formulaires_reponses_champs', + $insertions + ); + } + if (!isset($retours['message_ok'])) { $retours['message_ok'] = ''; } + $retours['message_ok'] .= "\n"._T('formidable:traiter_enregistrement_message_ok'); + $retours['id_formulaires_reponse'] = $id_formulaires_reponse; + } + + // noter qu'on a deja fait le boulot, pour ne pas risquer double appel + $retours['traitements']['enregistrement'] = true; + return $retours; } function traiter_enregistrement_update_dist($id_formulaire, $traitement, $saisies_anciennes, $saisies_nouvelles){ - include_spip('inc/saisies'); - include_spip('base/abstract_sql'); - $comparaison = saisies_comparer($saisies_anciennes, $saisies_nouvelles); - - // Si des champs ont été supprimés, il faut supprimer les réponses à ces champs - if ($comparaison['supprimees']){ - // On récupère les réponses du formulaire - $reponses = sql_allfetsel( - 'id_formulaires_reponse', - 'spip_formulaires_reponses', - 'id_formulaire = '.$id_formulaire - ); - $reponses = array_map('reset', $reponses); - - // Tous les noms de champs à supprimer - $noms = array_keys($comparaison['supprimees']); - - // On supprime - sql_delete( - 'spip_formulaires_reponses_champs', - array( - sql_in('id_formulaires_reponse', $reponses), - sql_in('nom', $noms) - ) - ); - } + include_spip('inc/saisies'); + include_spip('base/abstract_sql'); + $comparaison = saisies_comparer($saisies_anciennes, $saisies_nouvelles); + + // Si des champs ont été supprimés, il faut supprimer les réponses à ces champs + if ($comparaison['supprimees']){ + // On récupère les réponses du formulaire + $reponses = sql_allfetsel( + 'id_formulaires_reponse', + 'spip_formulaires_reponses', + 'id_formulaire = '.$id_formulaire + ); + $reponses = array_map('reset', $reponses); + + // Tous les noms de champs à supprimer + $noms = array_keys($comparaison['supprimees']); + + // On supprime + sql_delete( + 'spip_formulaires_reponses_champs', + array( + sql_in('id_formulaires_reponse', $reponses), + sql_in('nom', $noms) + ) + ); + } } ?> -- GitLab