Fixes vim mode line.
[platal.git] / include / validations / marketing.inc.php
1 <?php
2 /***************************************************************************
3 * Copyright (C) 2003-2014 Polytechnique.org *
4 * http://opensource.polytechnique.org/ *
5 * *
6 * This program is free software; you can redistribute it and/or modify *
7 * it under the terms of the GNU General Public License as published by *
8 * the Free Software Foundation; either version 2 of the License, or *
9 * (at your option) any later version. *
10 * *
11 * This program is distributed in the hope that it will be useful, *
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14 * GNU General Public License for more details. *
15 * *
16 * You should have received a copy of the GNU General Public License *
17 * along with this program; if not, write to the Free Software *
18 * Foundation, Inc., *
19 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
20 ***************************************************************************/
21
22
23 class MarkReq extends Validate
24 {
25 // {{{ properties
26
27 public $perso;
28
29 public $m_user;
30 public $m_email;
31 public $m_relance;
32 public $m_type;
33 public $m_data;
34 public $m_personal_notes;
35
36 public $rules = "Accepter si l'adresse email parait correcte, et pas absurde (ou si le marketeur est de confiance). Si le
37 demandeur marque sa propre adresse email, refuser dans tous les cas.
38 Ne pas marqueter au nom de Polytechnique.org plus d'une fois par an.
39 Sauf abus flagrant, il n'y a pas de raison de refuser des marketing perso répétés.";
40 // }}}
41 // {{{ constructor
42
43 public function __construct(User $sender, User $mark, $email, $perso, $type, $data, $personal_notes)
44 {
45 parent::__construct($sender, false, 'marketing');
46 $this->m_user = &$mark;
47 $this->m_email = $email;
48 $this->perso = $perso;
49 $this->m_type = $type;
50 $this->m_data = $data;
51 $this->m_personal_notes = $personal_notes;
52 }
53
54 // }}}
55 // {{{ function formu()
56
57 public function formu()
58 {
59 $res = XDB::query('SELECT IF(MAX(m.last)>p.relance, MAX(m.last), p.relance)
60 FROM accounts AS a
61 LEFT JOIN register_pending AS p ON p.uid = a.uid
62 LEFT JOIN register_marketing AS m ON m.uid = a.uid
63 WHERE a.uid = {?}',
64 $this->m_user->id());
65 $this->m_relance = $res->fetchOneCell();
66 return 'include/form.valid.mark.tpl';
67 }
68
69 // }}}
70 // {{{ function _mail_subj
71
72 protected function _mail_subj()
73 {
74 return "[Polytechnique.org] Marketing de {$this->m_user->fullName()} ({$this->m_user->promo()})";
75 }
76
77 // }}}
78 // {{{ function _mail_body
79
80 protected function _mail_body($isok)
81 {
82 $your1 = ($this->formal ? 'votre' : 'ton');
83 $your2 = ($this->formal ? 'votre' : 'ta');
84 if ($isok) {
85 return " Un email de marketing vient d'être envoyé "
86 . ($this->perso ? "en $your1 nom" : 'en notre nom')
87 . " à {$this->m_user->fullName()} ({$this->m_user->promo()}) "
88 . "pour l'encourager à s'inscrire !\n\n"
89 . "Merci de $your2 participation !\n";
90 } else {
91 return " Nous n'avons pas jugé bon d'envoyer d'email de marketing à "
92 . "{$this->m_user->fullName()} ({$this->m_user->promo()}).";
93 }
94 }
95
96 // }}}
97 // {{{ function commit()
98
99 public function commit()
100 {
101 $market = Marketing::get($this->m_user->id(), $this->m_email);
102 if ($market == null) {
103 return false;
104 }
105 $market->send();
106 return true;
107 }
108
109 // }}}
110 }
111
112 // vim:set et sw=4 sts=4 sws=4 foldmethod=marker fenc=utf-8:
113 ?>