differentes corrections pour fonctionner correctemetn

This commit is contained in:
Christophe 2022-09-22 16:44:11 +02:00
parent b400bf5e0e
commit 09f7729156

View file

@ -77,14 +77,22 @@ function formulaires_gamucontact_traiter_dist($id_auteur = 0, $redirect = '') {
include_spip('classes/facteur'); include_spip('classes/facteur');
$retour = array(); $retour = [];
$saisies = $GLOBALS['gamucontact']; $saisies = $GLOBALS['gamucontact'];
$set = [];
if (!empty($saisies)) { if (!empty($saisies)) {
foreach ($saisies as $saisie) { foreach ($saisies as $saisie) {
$champ = $saisie['options']['nom']; $champ = $saisie['options']['nom'];
if (isset($f) and !empty($f)) { if (
$set = $f($id_auteur, $champ, _request($champ), $set); 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 { } else {
$set[$champ] = _request($champ); $set[$champ] = _request($champ);
} }
@ -99,6 +107,8 @@ function formulaires_gamucontact_traiter_dist($id_auteur = 0, $redirect = '') {
array( array(
'args' => array( 'args' => array(
'action' => 'gamucontact_pre_contact', 'action' => 'gamucontact_pre_contact',
'table' => 'spip_messages',
'id_objet' => 0
), ),
'data' => $set 'data' => $set
) )
@ -128,7 +138,7 @@ function formulaires_gamucontact_traiter_dist($id_auteur = 0, $redirect = '') {
$Tliste_id_auteur = explode(';', $liste_id_auteur); $Tliste_id_auteur = explode(';', $liste_id_auteur);
if (is_array($Tliste_id_auteur) and count($Tliste_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)); $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'); $t = array_column($t, 'email');
$destinataires = array_merge($t, $destinataires); $destinataires = array_merge($t, $destinataires);
} }
@ -148,10 +158,12 @@ function formulaires_gamucontact_traiter_dist($id_auteur = 0, $redirect = '') {
include_spip('classes/facteur'); include_spip('classes/facteur');
// récupérer les infos de langue des destinataires // 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 // array avec les langues des destinataires
if (is_array($dest_langues) and count($dest_langues)) { if (is_array($dest_langues) and count($dest_langues)) {
$langues = array_filter(array_unique(array_column($dest_langues, 'lang'))); $langues = array_filter(array_unique(array_column($dest_langues, 'lang')));
} else {
$langues[] = lire_config('langue_site');
} }
if (!empty($langues)) { if (!empty($langues)) {