X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fregister.php;h=69a8ae59fe17098b8347b058b4e7dec7fa6b5dc3;hb=91288d86e195bc79e894c39ccf4d6560f707a0e7;hp=c3e4a7b625d71ada61f6a60639243234aec104ef;hpb=787bb3d745141f2f85bd947ad7dd775d2c63f908;p=platal.git diff --git a/modules/register.php b/modules/register.php index c3e4a7b..69a8ae5 100644 --- a/modules/register.php +++ b/modules/register.php @@ -1,6 +1,6 @@ $this->make_hook('end', AUTH_PUBLIC), 'register/end.php' => $this->make_hook('end_old', AUTH_PUBLIC), 'register/success' => $this->make_hook('success', AUTH_MDP), + 'register/save' => $this->make_hook('save', AUTH_MDP), ); } @@ -143,10 +144,12 @@ class RegisterModule extends PLModule "valide, en particulier, il ne peut pas être renvoyé vers lui-même."; } $birth = trim(Env::v('naissance')); - if (!preg_match('/^[0-3][0-9][01][0-9][12][90][0-9][0-9]$/', $birth)) { + if (!preg_match('@^[0-3]?\d/[01]?\d/(19|20)?\d{2}$@', $birth)) { $err[] = "La 'Date de naissance' n'est pas correcte."; } else { - $year = (int)substr($birth, 4, 4); + $birth = explode('/', $birth, 3); + $year = intval($birth[2]); + if ($year < 100) $year += 1900; $promo = (int)$sub_state['promo']; if ($year > $promo - 15 || $year < $promo - 30) { $err[] = "La 'Date de naissance' n'est pas correcte."; @@ -182,10 +185,8 @@ class RegisterModule extends PLModule if (isset($err)) { $err = join('
', $err); } else { - $sub_state['naissance'] = sprintf("%s-%s-%s", - substr($birth,4,4), - substr($birth,2,2), - substr($birth,0,2)); + $sub_state['naissance'] = sprintf("%04d-%02d-%02d", + intval($birth[2]), intval($birth[1]), intval($birth[0])); if ($sub_state['naissance_ini'] != '0000-00-00' && $sub_state['naissance'] != $sub_state['naissance_ini']) { $alert .= "Date de naissance incorrecte à l'inscription - "; } @@ -311,6 +312,9 @@ class RegisterModule extends PLModule require_once('user.func.inc.php'); user_reindex($uid); + // update number of subscribers (perms has changed) + update_NbIns(); + if (!start_connexion($uid, false)) { return PL_FORBIDDEN; } @@ -320,16 +324,20 @@ class RegisterModule extends PLModule /************* envoi d'un mail au démarcheur ***************/ /***********************************************************/ $res = XDB::iterRow( - "SELECT DISTINCT sa.alias, IF(s.nom_usage,s.nom_usage,s.nom) AS nom, - s.prenom, FIND_IN_SET('femme', s.flags) AS femme + "SELECT sa.alias, IF(s.nom_usage,s.nom_usage,s.nom) AS nom, + s.prenom, FIND_IN_SET('femme', s.flags) AS femme, + GROUP_CONCAT(m.email) AS mails FROM register_marketing AS m INNER JOIN auth_user_md5 AS s ON ( m.sender = s.user_id ) INNER JOIN aliases AS sa ON ( sa.id = m.sender AND FIND_IN_SET('bestalias', sa.flags) ) - WHERE m.uid = {?}", $uid); + WHERE m.uid = {?} + GROUP BY m.sender", $uid); XDB::execute("UPDATE register_mstats SET success=NOW() WHERE uid={?}", $uid); - while (list($salias, $snom, $sprenom, $sfemme) = $res->next()) { + $market = array(); + while (list($salias, $snom, $sprenom, $sfemme, $mails) = $res->next()) { + $market[] = " - par $snom $sprenom sur $mails"; $mymail = new PlMailer(); $mymail->setSubject("$prenom $nom s'est inscrit à Polytechnique.org !"); $mymail->setFrom('"Marketing Polytechnique.org" mail->domain . '>'); @@ -360,7 +368,10 @@ class RegisterModule extends PLModule . " - email : $email\n" . " - sexe : $femme\n" . " - ip : {$logger->ip} ({$logger->host})\n" - . ($logger->proxy_ip ? " - proxy : {$logger->proxy_ip} ({$logger->proxy_host})\n" : ""); + . ($logger->proxy_ip ? " - proxy : {$logger->proxy_ip} ({$logger->proxy_host})\n" : "") + . "\n\n" + . "Les marketings suivants avaient été effectués :\n" + . implode("\n", $market); $mymail->setTxtBody($msg); $mymail->send(); } @@ -413,6 +424,51 @@ class RegisterModule extends PLModule $page->addJsLink('motdepasse.js'); } + + function handler_save(&$page) + { + global $globals; + + // Finish registration procedure + if (Post::v('register_from_ax_question')) { + XDB::execute('UPDATE auth_user_quick + SET profile_from_ax = 1 + WHERE user_id = {?}', + S::v('uid')); + } + if (Post::v('add_to_nl')) { + require_once 'newsletter.inc.php'; + NewsLetter::subscribe(); + } + if (Post::v('add_to_ax')) { + require_once dirname(__FILE__) . '/axletter/axletter.inc.php'; + AXLetter::subscribe(); + } + if (Post::v('add_to_promo')) { + $r = XDB::query('SELECT id FROM groupex.asso WHERE diminutif = {?}', + S::v('promo')); + $asso_id = $r->fetchOneCell(); + XDB::execute('REPLACE INTO groupex.membres (uid,asso_id) + VALUES ({?}, {?})', + S::v('uid'), $asso_id); + $mmlist = new MMList(S::v('uid'), S::v('password')); + $mmlist->subscribe("promo".S::v('promo')); + } + if (Post::v('sub_ml')) { + $subs = array_keys(Post::v('sub_ml')); + $current_domain = null; + foreach ($subs as $list) { + list($sub, $domain) = explode('@', $list); + if ($domain != $current_domain) { + $current_domain = $domain; + $client = new MMList(S::v('uid'), S::v('password'), $domain); + } + $client->subscribe($sub); + } + } + + pl_redirect('profile/edit'); + } } // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: