Migrates the validation architecture to an User-based model, instead of the deprecate...
[platal.git] / include / validations / marketing.inc.php
CommitLineData
0337d704 1<?php
2/***************************************************************************
179afa7f 3 * Copyright (C) 2003-2008 Polytechnique.org *
0337d704 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
0337d704 22
23class MarkReq extends Validate
24{
25 // {{{ properties
26
612a2d8a 27 public $perso;
0337d704 28
5daf68f6 29 public $m_user;
612a2d8a 30 public $m_email;
612a2d8a 31 public $m_relance;
e654517d 32 public $m_type;
33 public $m_data;
0337d704 34
faefdbb7
SJ
35 public $rules = "Accepter si l'adresse email parait correcte, et pas absurde (ou si le marketeur est de confiance). Si le
36 demandeur marque sa propre adresse email, refuser dans tous les cas.
cb04af2c 37 Ne pas marqueter au nom de Polytechnique.org plus d'une fois par an.
7c09ce41 38 Sauf abus flagrant, il n'y a pas de raison de refuser des marketing perso répétés.";
0337d704 39 // }}}
40 // {{{ constructor
41
5daf68f6 42 public function __construct(User $sender, User $mark, $email, $perso, $type, $data)
612a2d8a 43 {
44 parent::__construct($sender, false, 'marketing');
5daf68f6 45 $this->m_user = $mark;
0337d704 46 $this->m_email = $email;
47 $this->perso = $perso;
e654517d 48 $this->m_type = $type;
49 $this->m_data = $data;
0337d704 50 }
51
52 // }}}
53 // {{{ function formu()
54
612a2d8a 55 public function formu()
6e112b58 56 {
57 $res = XDB::query('SELECT IF(MAX(m.last)>p.relance, MAX(m.last), p.relance)
58 FROM auth_user_md5 AS u
59 LEFT JOIN register_pending AS p ON p.uid = u.user_id
60 LEFT JOIN register_marketing AS m ON m.uid = u.user_id
61 WHERE user_id = {?}',
5daf68f6 62 $this->m_user->id());
6e112b58 63 $this->m_relance = $res->fetchOneCell();
64 return 'include/form.valid.mark.tpl';
65 }
0337d704 66
67 // }}}
68 // {{{ function _mail_subj
eaf30d86 69
612a2d8a 70 protected function _mail_subj()
0337d704 71 {
5daf68f6 72 return "[Polytechnique.org] Marketing de {$this->m_user->fullName()} ({$this->m_user->promo()})";
0337d704 73 }
74
75 // }}}
76 // {{{ function _mail_body
77
612a2d8a 78 protected function _mail_body($isok)
0337d704 79 {
80 if ($isok) {
faefdbb7 81 return " Un email de marketing vient d'être envoyé "
5daf68f6
VZ
82 . ($this->perso ? 'en ton nom' : 'en notre nom')
83 . " à {$this->m_user->fullName()} ({$this->m_user->promo()}) "
84 . "pour l'encourager à s'inscrire !\n\n"
85 . "Merci de ta participation !\n";
0337d704 86 } else {
5daf68f6
VZ
87 return " Nous n'avons pas jugé bon d'envoyer d'email de marketing à "
88 . "{$this->m_user->fullName()} ({$this->m_user->promo()}).";
0337d704 89 }
90 }
91
92 // }}}
93 // {{{ function commit()
94
612a2d8a 95 public function commit()
0337d704 96 {
5daf68f6 97 $market = Marketing::get($this->m_user->id(), $this->m_email);
e654517d 98 if ($market == null) {
99 return false;
100 }
eaf30d86 101 $market->send();
0337d704 102 return true;
103 }
104
105 // }}}
106}
107
a7de4ef7 108// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
0337d704 109?>