[PLUGINS] +set de base
[lhc/web/www.git] / www / plugins / notifications2 / notifications / forumprive.php
1 <?php
2 /*
3 * Plugin Notifications
4 * (c) 2009-2012 SPIP
5 * Distribue sous licence GPL
6 *
7 */
8
9 if (!defined("_ECRIRE_INC_VERSION")) return;
10
11 /**
12 * notification appelee quand on poste un forum prive
13 *
14 * @param string $quoi
15 * @param int $id_forum
16 * @param array $options
17 * @return <type>
18 */
19 function notifications_forumprive_dist($quoi, $id_forum, $options) {
20 include_spip('base/abstract_sql');
21
22 $t = sql_fetsel("*", "spip_forum", "id_forum=".intval($id_forum));
23 if (!$t)
24 return;
25
26 include_spip('inc/texte');
27 include_spip('inc/filtres');
28 include_spip('inc/autoriser');
29
30 // Qui va-t-on prevenir ?
31 $tous = array();
32
33 // 1. Prevenir les auteurs
34 if ($GLOBALS['notifications']['prevenir_auteurs_prive']) {
35
36 // 1.1. Les auteurs du message (si c'est un message)
37 if ($t['objet']=='message' AND $t['id_objet']) {
38 $result = sql_select("auteurs.email","spip_auteurs AS auteurs JOIN spip_auteurs_liens AS lien ON auteurs.id_auteur=lien.id_auteur","lien.objet='message' AND lien.id_objet=".intval($t['id_objet']));
39
40 while ($qui = sql_fetch($result))
41 $tous[] = $qui['email'];
42
43 $url = url_absolue(generer_url_entite($t['id_objet'], 'message'));
44 $t['texte'] .= "\n\n"._T('forum_ne_repondez_pas')."\n<html>$url</html>";
45 }
46
47 // 1.2. Les auteurs de l'article (si c'est un article)
48 elseif ($t['objet']=='article' AND $t['id_objet']) {
49 $result = sql_select("auteurs.email","spip_auteurs AS auteurs JOIN spip_auteurs_liens AS lien ON auteurs.id_auteur=lien.id_auteur","lien.objet='article' AND lien.id_objet=".intval($t['id_objet']));
50
51 while ($qui = sql_fetch($result))
52 $tous[] = $qui['email'];
53 }
54 }
55
56 // 2. Les moderateurs
57 if ($GLOBALS['notifications']['moderateurs_forum_prive']){
58 foreach (explode(',', $GLOBALS['notifications']['moderateurs_forum_prive']) as $m) {
59 $tous[] = $m;
60 }
61 }
62
63 $options['forum'] = $t;
64 $destinataires = pipeline('notifications_destinataires',
65 array(
66 'args'=>array('quoi'=>$quoi,'id'=>$id_forum,'options'=>$options)
67 ,
68 'data'=>$tous)
69 );
70
71 // Nettoyer le tableau
72 // Ne pas ecrire au posteur du message !
73 notifications_nettoyer_emails($destinataires,array($t['email_auteur']));
74
75 //
76 // Envoyer les emails
77 //
78 $email_notification_forum = charger_fonction('email_notification_forum','inc');
79 foreach ($destinataires as $email) {
80 $texte = $email_notification_forum($t, $email);
81 notifications_envoyer_mails_texte_ou_html($email, $texte);
82 }
83 }
84
85 ?>