You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
2.3 KiB
63 lines
2.3 KiB
<?php |
|
|
|
/***************************************************************************\ |
|
* SPIP, Systeme de publication pour l'internet * |
|
* * |
|
* Copyright (c) 2001-2020 * |
|
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * |
|
* * |
|
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. * |
|
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * |
|
\***************************************************************************/ |
|
|
|
if (!defined('_ECRIRE_INC_VERSION')) { |
|
return; |
|
} |
|
|
|
|
|
/** |
|
* Envoyer les notifications consecutives a l'envoi d'un message |
|
* (ie passage en statut=publie) |
|
* |
|
* @param string $quoi |
|
* @param int $id_message |
|
* @param array $options |
|
*/ |
|
function notifications_instituermessage_dist($quoi, $id_message, $options = array()) { |
|
|
|
// ne devrait jamais se produire |
|
if ($options['statut'] == $options['statut_ancien']) { |
|
spip_log('statut inchange', 'notifications'); |
|
return; |
|
} |
|
|
|
if ($options['statut'] == 'publie') { |
|
include_spip('inc/messages'); |
|
$type = sql_getfetsel('type', 'spip_messages', 'id_message=' . intval($id_message)); |
|
$vue = "notifications/message_{$type}_publie"; |
|
if (trouver_fond($vue)) { |
|
$envoyer_mail = charger_fonction('envoyer_mail', 'inc'); // pour nettoyer_titre_email |
|
$texte = recuperer_fond($vue, array('id_message' => $id_message)); |
|
|
|
// recuperer tous les emails des auteurs qui ont recu le message dans leur boite |
|
// si c'est une annonce generale, on envoie a tout le monde |
|
include_spip('inc/messages'); |
|
$where = array( |
|
"email!=''", |
|
"statut!='5poubelle'", |
|
sql_in('statut', messagerie_statuts_destinataires_possibles()) |
|
); |
|
// pour une annonce : tous ceux qui recoivent des messages |
|
if ($type !== 'affich') { |
|
$ids = sql_allfetsel('id_auteur', 'spip_auteurs_liens', "objet='message' AND id_objet=" . intval($id_message)); |
|
$ids = array_map('reset', $ids); |
|
$where[] = sql_in('id_auteur', $ids); |
|
} |
|
$emails = sql_allfetsel('email', 'spip_auteurs', $where); |
|
$emails = array_map('reset', $emails); |
|
|
|
include_spip('inc/notifications'); |
|
notifications_envoyer_mails($emails, $texte); |
|
} |
|
} |
|
}
|
|
|