source: spip-zone/_plugins_/notifications/notifications/forumprive.php @ 52801

Last change on this file since 52801 was 52801, checked in by kent1@…, 8 years ago

if (!defined("_ECRIRE_INC_VERSION")) return; sur tout fichier PHP pour sécurité future principalement

File size: 2.2 KB
Line 
1<?php
2/*
3 * Plugin Notifications
4 * (c) 2009 SPIP
5 * Distribue sous licence GPL
6 *
7 */
8
9if (!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 */
19function 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['id_message']) {
38                        $result = sql_select("auteurs.email","spip_auteurs AS auteurs, spip_auteurs_messages AS lien","lien.id_message=".intval($t['id_message'])." AND auteurs.id_auteur=lien.id_auteur");
39
40                        while ($qui = sql_fetch($result))
41                                $tous[] = $qui['email'];
42
43                        $url = url_absolue(generer_url_entite($id_message, '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['id_article']) {
49                        $result = sql_select("auteurs.email","spip_auteurs AS auteurs, spip_auteurs_articles AS lien","lien.id_article=".intval($t['id_article'])." AND auteurs.id_auteur=lien.id_auteur");
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        foreach ($destinataires as $email) {
79                $texte = email_notification_forum($t, $email);
80                notifications_envoyer_mails($email, $texte);
81        }
82}
83
84?>
Note: See TracBrowser for help on using the repository browser.