source: spip-zone/_core_/plugins/forum/inc/email_notification_forum.php @ 62787

Last change on this file since 62787 was 62787, checked in by cedric@…, 7 years ago

Report de r62738

File size: 3.3 KB
Line 
1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
6 *  Copyright (c) 2001-2011                                                *
7 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
8 *                                                                         *
9 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
10 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
11\***************************************************************************/
12
13if (!defined("_ECRIRE_INC_VERSION")) return;
14
15/**
16 * Construitre l'email personalise de notification d'un forum
17 *
18 * @param array $t
19 * @param string $email
20 * @param array $contexte
21 * @return string
22 */
23function inc_email_notification_forum_dist ($t, $email, $contexte=array()) {
24        static $contextes_store = array();
25
26        if(!isset($contextes_store[$t['id_forum']])){
27                $url = '';
28                $id_forum = $t['id_forum'];
29
30                if ($t['statut'] == 'prive') # forum prive
31                {
32                        if ($t['id_objet'])
33                                $url = generer_url_entite($t['id_objet'], $t['objet'], '', '#id'.$id_forum, false);
34                }
35                else if ($t['statut'] == 'privrac') # forum general
36                {
37                        $url = generer_url_ecrire('forum').'#id'.$id_forum;
38                }
39                else if ($t['statut'] == 'privadm') # forum des admins
40                {
41                        $url = generer_url_ecrire('forum_admin').'#id'.$id_forum;
42                }
43                else if ($t['statut'] == 'publie') # forum publie
44                {
45                        $url = generer_url_entite($id_forum, 'forum');
46                }
47                else #  forum modere, spam, poubelle direct ....
48                {
49                        $url = generer_url_ecrire('controler_forum', "debut_id_forum=".$id_forum);
50                }
51
52                if (!$url) {
53                        spip_log("forum $id_forum sans referent",'notifications');
54                        $url = './';
55                }
56                if ($t['id_objet']) {
57                        include_spip('inc/filtres');
58                        $t['titre_source'] = generer_info_entite($t['id_objet'], $t['objet'], 'titre');
59                }
60
61                $t['url'] = $url;
62
63                // detecter les url des liens du forum
64                // pour la moderation (permet de reperer les SPAMS avec des liens caches)
65                $links = array();
66                foreach ($t as $champ)
67                        $links = $links + extraire_balises($champ,'a');
68                $links = extraire_attribut($links,'href');
69                $links = implode("\n",$links);
70                $t['liens'] = $links;
71
72                $contextes_store[$t['id_forum']] = $t;
73        }
74
75        $fond = "notifications/forum_poste";
76        if (isset($contexte['fond'])){
77                $fond = $contexte['fond'];
78                unset($contexte['fond']);
79        }
80        $t = array_merge($contextes_store[$t['id_forum']],$contexte);
81                // Rechercher eventuellement la langue du destinataire
82        if (NULL !== ($l = sql_getfetsel('lang', 'spip_auteurs', "email=" . sql_quote($email))))
83                $l = lang_select($l);
84
85        $parauteur = (strlen($t['auteur']) <= 2) ? '' :
86                (" " ._T('forum_par_auteur', array(
87                        'auteur' => $t['auteur'])
88                ) .
89                 ($t['email_auteur'] ? ' <' . $t['email_auteur'] . '>' : ''));
90
91        $titre = textebrut(typo($t['titre_source']));
92        $forum_poste_par = ($t['id_article']
93                ? _T('forum:forum_poste_par', array(
94                        'parauteur' => $parauteur, 'titre' => $titre))
95                : $parauteur . ' (' . $titre . ')');
96
97        $t['par_auteur'] = $forum_poste_par;
98
99        $envoyer_mail = charger_fonction('envoyer_mail','inc'); // pour nettoyer_titre_email
100        $corps = recuperer_fond($fond,$t);
101
102        if ($l)
103                lang_select();
104
105        return $corps;
106}
Note: See TracBrowser for help on using the repository browser.