Skip to content
Extraits de code Groupes Projets
email.php 17,57 Kio
<?php

// Sécurité
if (!defined('_ECRIRE_INC_VERSION')) {
	return;
}
include_spip('inc/utils');
include_spip('inc/formidable_fichiers');

function traiter_email_dist($args, $retours) {
	if (!isset($retours['fichiers'])) {
		$retours['fichiers'] = array();
		$ajouter_fichier = true;
	} else {
		$ajouter_fichier = false;
	}
	$timestamp = time();
	$retours['timestamp'] = $timestamp;
	$formulaire = $args['formulaire'];
	$options = $args['options'];
	$saisies = unserialize($formulaire['saisies']);
	$traitements = unserialize($formulaire['traitements']);
	$champs = saisies_lister_champs($saisies);
	$destinataires = array();
	$taille_fichiers = 0; //taille des fichiers en email
	// On récupère les destinataires
	if ($options['champ_destinataires']) {
		$destinataires = _request($options['champ_destinataires']);
		if (!is_array($destinataires)) {
			if (intval($destinataires)) {
				$destinataires = array($destinataires);
			} else {
				$destinataires = array();
			}
		}
		if (count($destinataires)) {
			// On récupère les mails des destinataires
			$destinataires = array_map('intval', $destinataires);
			$destinataires = sql_allfetsel(
				'email',
				'spip_auteurs',
				sql_in('id_auteur', $destinataires)
			);
			$destinataires = array_map('reset', $destinataires);
		}
	}

	if ($options['champ_courriel_destinataire_form']) {
		$courriel_champ_form = _request($options['champ_courriel_destinataire_form']);
		$destinataires[] = $courriel_champ_form;
	}


	// On ajoute les destinataires en plus
	if ($options['destinataires_plus']) {
		$destinataires_plus = explode(',', $options['destinataires_plus']);
		$destinataires_plus = array_map('trim', $destinataires_plus);
		$destinataires = array_merge($destinataires, $destinataires_plus);
		$destinataires = array_unique($destinataires);
	}

	// On ajoute les destinataires en fonction des choix de saisie dans le formulaire
	// @selection_1@/choix1 : mail@domain.tld
	// @selection_1@/choix2 : autre@domain.tld, lapin@domain.tld
	if (!empty($options['destinataires_selon_champ'])) {
		if ($destinataires_selon_champ = formidable_traiter_email_destinataire_selon_champ($options['destinataires_selon_champ'])) {
			$destinataires = array_merge($destinataires, $destinataires_selon_champ);
			$destinataires = array_unique($destinataires);
		}
	}