X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=include%2Fmarketing.inc.php;h=abd848248ce064dbd34b262146687012392b8e52;hb=baa62e58cdfb6839040e156ef91e2827bdde1600;hp=a49b4aa0c2be250a09215b22b1d06fd00f855358;hpb=799cdbcdfea53397d3bde1b145cdc018d21d6f5a;p=platal.git diff --git a/include/marketing.inc.php b/include/marketing.inc.php index a49b4aa..abd8482 100644 --- a/include/marketing.inc.php +++ b/include/marketing.inc.php @@ -43,12 +43,12 @@ class Marketing { $this->user = $this->getUser($uid, $email); $this->sender_mail = $this->getFrom($from, $sender); - $this->engine =& $this->getEngine($type, $data, $from == 'user' ? null : $this->sender); + $this->engine =& $this->getEngine($type, $data, $from == 'user' ? $sender : null); $this->type = $type; $this->data = $data; $this->from = $from; - $this->sender = $sender; + $this->sender = $sender; } private function getUser($uid, $email) @@ -59,7 +59,7 @@ class Marketing WHERE user_id = {?}", $uid); if ($res->numRows() == 0) { return null; - } + } $user = $res->fetchOneAssoc(); $user['id'] = $uid; $user['forlife'] = make_forlife($user['prenom'], $user['nom'], $user['promo']); @@ -71,16 +71,16 @@ class Marketing private function getFrom($from, $sender) { global $globals; - + if ($from == 'staff') { - return '"Equipe Polytechnique.org" mail->domain . '>'; + return '"L\'équipe de Polytechnique.org" mail->domain . '>'; } else { $res = XDB::query("SELECT u.nom, u.prenom, a.alias FROM auth_user_md5 AS u INNER JOIN aliases AS a ON (a.id = u.user_id AND FIND_IN_SET('bestalias', a.flags)) WHERE u.user_id = {?}", $sender); if (!$res->numRows()) { - return '"Equipe Polytechnique.org" mail->domain . '>'; + return '"L\'équipe de Polytechnique.org" mail->domain . '>'; } $sender = $res->fetchOneAssoc(); return '"' . $sender['prenom'] . ' ' . $sender['nom'] . '" <' . $sender['alias'] . '@' . $globals->mail->domain . '>'; @@ -143,7 +143,7 @@ class Marketing if ($valid) { require_once 'validations.inc.php'; $valid = new MarkReq($this->sender, $this->user['id'], $this->user['mail'], - $this->from == 'user', $this->type, $this->data); + $this->from == 'user', $this->type, $this->data); $valid->submit(); } return true; @@ -168,11 +168,14 @@ class Marketing return $array; } - static public function get($uid, $email) + static public function get($uid, $email, $recentOnly = false) { $res = XDB::query("SELECT uid, email, message, message_data, type, sender FROM register_marketing - WHERE uid = {?} AND email = {?}", $uid, $email); + WHERE uid = {?} + AND email = {?}".( + $recentOnly ? ' AND DATEDIFF(NOW(), last) < 30' : ''), $uid, $email); + if ($res->numRows() == 0) { return null; } @@ -185,7 +188,7 @@ class Marketing if (!$email) { XDB::execute("DELETE FROM register_marketing WHERE uid = {?}", $uid); } else { - XDB::execute("DELETE FROM register_marketing WHERE uid = {?} AND email = {?}", $uid, $email); + XDB::execute("DELETE FROM register_marketing WHERE uid = {?} AND email = {?}", $uid, $email); } } @@ -197,7 +200,7 @@ class Marketing $res = XDB::query("SELECT COUNT(*) FROM auth_user_md5 WHERE deces=0"); $nbx = $res->fetchOneCell(); } - + $res = XDB::query("SELECT r.date, u.promo, u.nom, u.prenom, r.email, r.bestalias FROM register_pending AS r INNER JOIN auth_user_md5 AS u ON u.user_id = r.uid @@ -205,13 +208,13 @@ class Marketing if (!list($date, $promo, $nom, $prenom, $email, $alias) = $res->fetchOneRow()) { return false; } - + require_once('secure_hash.inc.php'); $hash = rand_url_id(12); $pass = rand_pass(); $pass_encrypted = hash_encrypt($pass); $fdate = strftime('%d %B %Y', strtotime($date)); - + $mymail = new PlMailer('marketing/mail.relance.tpl'); $mymail->assign('nbdix', $nbx); $mymail->assign('fdate', $fdate); @@ -237,18 +240,25 @@ interface MarketingEngine public function process(array $user); } -// +// class AnnuaireMarketing implements MarketingEngine { protected $titre; protected $intro; + protected $signature; public function __construct($data, $from) { - $this->titre = "Annuaire en ligne des Polytechniciens"; - $this->intro = " Ta fiche n'est pas à jour dans l'annuaire des Polytechniciens sur Internet. " - . "Pour la mettre à jour, il te it de visiter cette page ou de copier cette adresse " + $this->titre = "Rejoins la communauté polytechnicienne sur Internet"; + $this->intro = " Tu n'as pas de fiche dans l'annuaire des polytechniciens sur Internet. " + . "Pour y figurer, il te suffit de visiter cette page ou de copier cette adresse " . "dans la barre de ton navigateur :"; + if ($from === null) { + $this->signature = "L'équipe de Polytechnique.org,\n" + . "Le portail des élèves & anciens élèves de l'École polytechnique"; + } else { + $this->signature = "%%sender%%"; + } } public function getTitle() @@ -261,10 +271,16 @@ class AnnuaireMarketing implements MarketingEngine return $this->intro; } + public function getSignature() + { + return $this->signature; + } + protected function prepareText(PlatalPage &$page, array $user) { $page->assign('intro', $this->getIntro()); $page->assign('u', $user); + $page->assign('sign', $this->getSignature()); $res = XDB::query("SELECT COUNT(*) FROM auth_user_md5 WHERE perms IN ('user', 'admin') AND deces = 0"); $page->assign('num_users', $res->fetchOneCell()); } @@ -289,8 +305,8 @@ class ListMarketing extends AnnuaireMarketing { list($this->name, $this->domain) = explode('@', $data); $res = XDB::query("SELECT prenom, IF (nom_usage != '', nom_usage, nom) - FROM auth_user_md5 - WHERE user_id = {?} AND user_id != 0", $from ? $from : 0); + FROM auth_user_md5 + WHERE user_id = {?} AND user_id != 0", $from ? $from : 0); if ($res->numRows()) { list($prenom, $nom) = $res->fetchOneRow(); $from = "$prenom $nom"; @@ -298,22 +314,22 @@ class ListMarketing extends AnnuaireMarketing $from = "Je"; } $this->titre = "Un camarade solicite ton inscription à $data"; - $this->intro = "Polytechnique.org, l'annuaire des Polytechniciens sur internet, " - . "fournit de nombreux services aux groupes X, ainsi que des listes " - . "de diffusion pour les X en faisant la demande.\n\n" - . "$from solicite ton inscription à la liste <$data>. " - . "Cependant, seuls les X inscrits sur Polytechnique.org peuvent " - . "profiter de l'ensemble de nos services, c'est pourquoi nous te " - . "proposons auparavant de t'inscrire sur notre site. Pour cela, il " - . "te suffit de visiter cette page ou de copier cette adresse dans " - . "la barre de ton navigateur :"; + $this->intro = "Polytechnique.org, l'annuaire des polytechniciens sur internet, " + . "fournit de nombreux services aux groupes X, ainsi que des listes " + . "de diffusion pour les X en faisant la demande.\n\n" + . "$from solicite ton inscription à la liste <$data>. " + . "Cependant, seuls les X inscrits sur Polytechnique.org peuvent " + . "profiter de l'ensemble de nos services, c'est pourquoi nous te " + . "proposons auparavant de t'inscrire sur notre site. Pour cela, il " + . "te suffit de visiter cette page ou de copier cette adresse dans " + . "la barre de ton navigateur :"; } public function process(array $user) { return XDB::execute("REPLACE INTO register_subs (uid, type, sub, domain) - VALUES ({?}, 'list', {?}, {?})", - $user['id'], $this->name, $this->domain); + VALUES ({?}, 'list', {?}, {?})", + $user['id'], $this->name, $this->domain); } } @@ -324,8 +340,8 @@ class GroupMarketing extends AnnuaireMarketing { $this->group = $data; $res = XDB::query("SELECT prenom, IF (nom_usage != '', nom_usage, nom) - FROM auth_user_md5 - WHERE user_id = {?} AND user_id != 0", $from ? $from : 0); + FROM auth_user_md5 + WHERE user_id = {?} AND user_id != 0", $from ? $from : 0); if ($res->numRows()) { list($prenom, $nom) = $res->fetchOneRow(); $from = "$prenom $nom vient"; @@ -333,21 +349,21 @@ class GroupMarketing extends AnnuaireMarketing $from = "Je viens"; } $this->titre = "Profite de ton inscription au groupe \"$data\" pour découvrir Polytechnique.org"; - $this->intro = "Polytechnique.org, l'annuaire des Polytechniciens sur internet, fournit " - . "de nombreux services aux groupes X ( listes de diffusion, paiement en " - . "ligne, sites internet...), en particulier pour le groupe \"$data\"\n\n" - . "$from de t'inscrire dans l'annuaire du groupe \"$data\". " - . "Cependant, seuls les X inscrits sur Polytechnique.org peuvent profiter " - . "de l'ensemble de nos services, c'est pourquoi nous te proposons de " - . "t'inscrire sur notre site . Pour cela, il te suffit de visiter cette page " - . "ou de copier cette adresse dans la barre de ton navigateur :"; + $this->intro = "Polytechnique.org, l'annuaire des polytechniciens sur internet, fournit " + . "de nombreux services aux groupes X ( listes de diffusion, paiement en " + . "ligne, sites internet...), en particulier pour le groupe \"$data\"\n\n" + . "$from de t'inscrire dans l'annuaire du groupe \"$data\". " + . "Cependant, seuls les X inscrits sur Polytechnique.org peuvent profiter " + . "de l'ensemble de nos services, c'est pourquoi nous te proposons de " + . "t'inscrire sur notre site . Pour cela, il te suffit de visiter cette page " + . "ou de copier cette adresse dans la barre de ton navigateur :"; } public function process(array $user) { return XDB::execute("REPLACE INTO register_subs (uid, type, sub, domain) - VALUES ({?}, 'group', {?}, '')", - $user['id'], $this->group); + VALUES ({?}, 'group', {?}, '')", + $user['id'], $this->group); } }