source: spip-zone/_plugins_/_test_/recommander/action/fragment_recommander.php @ 16351

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

"versions tout en squelette, remise au gout du jour"

File size: 3.6 KB
Line 
1<?php
2
3if (!defined("_ECRIRE_INC_VERSION")) return;
4
5// initaliser le secret la premiere fois : md5 de l'url et de la date
6if (!isset($GLOBALS['meta']['recommander_secret'])){
7        include_spip('inc/meta');
8        ecrire_meta('recommander_secret',md5(self().date('Y-m-d H:i:s')));
9        ecrire_metas();
10}
11
12function verifier_email_ou_erreur($email) {
13        if (!$email = trim($email))
14                return _T('form_prop_indiquer_email');
15        if (!email_valide($email))
16                return _T('pass_erreur_non_valide',
17                                array(
18                                'email_oubli' => htmlspecialchars($email)
19                                )
20                        );
21}
22
23//
24// Fonction appelee des qu'il y a un $_POST avec le bouton 'recommander'
25//
26function envoi_recommander($contexte_inclus) {
27        include_spip('inc/filtres');
28        $retour = '';
29
30        lang_select($contexte_inclus['lang']);
31
32        // verifier que le formulaire est bien rempli
33        if ($retour = verifier_email_ou_erreur(_request('recommander_from'))
34        . verifier_email_ou_erreur(_request('recommander_to')))
35                return $retour;
36
37        // envoyer le mail
38        include_spip('inc/filtres');
39#       var_dump($contexte_inclus);
40
41# i18n
42# _T('recommander_titre', array('nom_site' =>
43# supprimer_tags(extraire_multi($GLOBALS['meta']['nom_site'])))
44        $subject = sinon ($contexte_inclus['subject'],
45                _L("A lire sur ").lire_meta('nom_site')." -- "
46                .sinon($contexte_inclus['titre'], _request('recommander_titre'))
47        );
48
49# i18n
50# _T('recommander_lecture', array('from' => _request('recommander_from')))
51        $contexte = array(
52                'titre'=>$contexte_inclus['titre'],
53                'texte'=>$contexte_inclus['texte'],
54                'url'=>$contexte_inclus['url']?$contexte_inclus['url']:self(),
55                'recommander_from'=>_request('recommander_from'),
56                'recommander_to'=>_request('recommander_to'),
57                'recommander_message'=>_request('recommander_message'),
58        );
59        include_spip('public/assembler');
60        $body = recuperer_fond('recommander/email',$contexte);
61
62        lang_dselect();
63
64        $envoyer_mail = charger_fonction('envoyer_mail','inc');
65        if (!$envoyer_mail(
66                _request('recommander_to'),
67                $subject,
68                $body,
69                _request('recommander_from'),
70                "X-Originating-IP: ".$GLOBALS['ip']
71        ))
72                return _L("Erreur lors de l'envoi du message.");
73
74}
75
76
77function action_fragment_recommander($return = false, $contexte_inclus = array()) {
78        if (!_request('recommander_env')
79        OR (_request('recommander_cle') <> md5($GLOBALS['meta']['recommander_secret']._request('recommander_env')))
80        OR $erreur = envoi_recommander(
81                @unserialize(base64_decode(_request('recommander_env'))))
82        ) {
83                if (!_request('recommander_cle')) {
84                        $contexte = base64_encode(serialize($contexte_inclus));
85                        $cle = md5($GLOBALS['meta']['recommander_secret'].$contexte);
86                } else {
87                        $contexte = htmlspecialchars(_request('recommander_env'));
88                        $cle = htmlspecialchars(_request('recommander_cle'));
89                }
90               
91                $contexte = array(
92                        'erreur' =>$erreur,
93                        'recommander_env'=>$contexte,
94                        'recommander_cle'=>$cle,
95                        'recommander_from'=>_request('recommander_from'),
96                        'recommander_to'=>_request('recommander_to'),
97                        'recommander_message'=>_request('recommander_message'),
98                        'titre'=>$contexte_inclus['titre'],
99                        'texte'=>$contexte_inclus['texte'],
100                        'url'=>$contexte_inclus['url'],
101                        'self'=>self()
102                );
103                include_spip('public/assembler');
104                $r = recuperer_fond('recommander/formulaire',$contexte);
105        }
106       
107        else {
108                $contexte = array(
109                        'recommander_from'=>_request('recommander_from'),
110                        'recommander_to'=>_request('recommander_to'),
111                        'recommander_message'=>_request('recommander_message'),
112                        'titre'=>$contexte_inclus['titre'],
113                        'texte'=>$contexte_inclus['texte'],
114                        'url'=>$contexte_inclus['url'],
115                );
116                include_spip('public/assembler');
117                $r = recuperer_fond('recommander/envoye',$contexte);
118        }
119
120        if ($return)
121                return $r;
122        else 
123                echo $r;
124}
125
126?>
Note: See TracBrowser for help on using the repository browser.