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,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)) {