/** * Récupère des informations sur les contacts concernés * * @return array */ public function contacts() { // On liste les éléments d'historique concernés $query = 'SELECT * FROM `historique` WHERE `campagne_id` = :id'; $query = $this->_link->prepare($query); $query->bindParam(':id', $this->get('campagne_id'), PDO::PARAM_INT); $query->execute(); $historique = $query->fetchAll(PDO::FETCH_ASSOC); // On fait le tableau des différents contacts concernés $contacts = []; foreach ($historique as $h) { $contacts[] = $h['contact_id']; } // On retraite le tableau des ids $ids = implode(',', $contacts); // On cherche tous les contacts concernés par l'envoi $query = 'SELECT *, MD5(`contact_id`) AS `contact_md5` FROM `contacts` WHERE `contact_id` IN (' . $ids . ')'; $query = $this->_link->query($query); if ($query->rowCount()) { $contacts = $query->fetchAll(PDO::FETCH_ASSOC); // Pour chaque contact, on rajoute le nom de la ville // et on traite le nom d'affichage foreach ($contacts as $key => $contact) { if ($contact['adresse_id']) { $ville = Carto::villeParImmeuble($contact['adresse_id']); } elseif ($contact['immeuble_id']) { $ville = Carto::villeParImmeuble($contact['immeuble_id']); } else { $ville = 'Ville inconnue'; } $contacts[$key]['ville'] = $ville; $contacts[$key]['nom_affichage'] = mb_convert_case($contact['contact_nom'], MB_CASE_UPPER) . ' ' . mb_convert_case($contact['contact_nom_usage'], MB_CASE_UPPER) . ' ' . mb_convert_case($contact['contact_prenoms'], MB_CASE_TITLE); } } else { $contacts = array(); } return $contacts; }