From 09f7729156a83ba25fd9e5911518e0a62196f3b3 Mon Sep 17 00:00:00 2001 From: tofulm Date: Thu, 22 Sep 2022 16:44:11 +0200 Subject: [PATCH] differentes corrections pour fonctionner correctemetn --- formulaires/gamucontact.php | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/formulaires/gamucontact.php b/formulaires/gamucontact.php index 20b0b5f..89dc36b 100644 --- a/formulaires/gamucontact.php +++ b/formulaires/gamucontact.php @@ -77,21 +77,29 @@ function formulaires_gamucontact_traiter_dist($id_auteur = 0, $redirect = '') { include_spip('classes/facteur'); - $retour = array(); + $retour = []; $saisies = $GLOBALS['gamucontact']; - + $set = []; if (!empty($saisies)) { foreach ($saisies as $saisie) { $champ = $saisie['options']['nom']; - if (isset($f) and !empty($f)) { - $set = $f($id_auteur, $champ, _request($champ), $set); + if ( + isset($saisies['options']['fonction']) + and $f = $saisies['options']['fonction'] + ) { + $f($id_auteur, $champ, _request($champ)); + } elseif ( + isset($saisies['options']['modifier']) + and $m = $saisies['options']['modifier'] + ) { + $set[$champ] = $m($champ, _request($champ)); } else { $set[$champ] = _request($champ); } } $set['date_heure'] = date("Y-m-d H:i:s"); - $set['statut'] = 'publie'; - $set['titre'] = _T('gamucontact:formulaire_contact'); + $set['statut'] = 'publie'; + $set['titre'] = _T('gamucontact:formulaire_contact'); if (count($set) > 0) { $set = pipeline( @@ -99,6 +107,8 @@ function formulaires_gamucontact_traiter_dist($id_auteur = 0, $redirect = '') { array( 'args' => array( 'action' => 'gamucontact_pre_contact', + 'table' => 'spip_messages', + 'id_objet' => 0 ), 'data' => $set ) @@ -128,7 +138,7 @@ function formulaires_gamucontact_traiter_dist($id_auteur = 0, $redirect = '') { $Tliste_id_auteur = explode(';', $liste_id_auteur); if (is_array($Tliste_id_auteur) and count($Tliste_id_auteur)) { $t = sql_allfetsel('email', 'spip_auteurs', sql_in('id_auteur', $Tliste_id_auteur)); - if(is_array($t) and count($t)) { + if(!empty($t)) { $t = array_column($t, 'email'); $destinataires = array_merge($t, $destinataires); } @@ -148,10 +158,12 @@ function formulaires_gamucontact_traiter_dist($id_auteur = 0, $redirect = '') { include_spip('classes/facteur'); // récupérer les infos de langue des destinataires - $dest_langues = sql_allfetsel('id_auteur,lang,email', 'spip_auteurs', sql_in('email', $destinataires), 'email'); + $dest_langues = sql_allfetsel('id_auteur, lang, email', 'spip_auteurs', sql_in('email', $destinataires), 'email'); // array avec les langues des destinataires if (is_array($dest_langues) and count($dest_langues)) { $langues = array_filter(array_unique(array_column($dest_langues, 'lang'))); + } else { + $langues[] = lire_config('langue_site'); } if (!empty($langues)) {