From bf438cba875fdddbde4175646243e48636e0afdd Mon Sep 17 00:00:00 2001 From: x2000bedo Date: Wed, 18 Aug 2004 23:45:52 +0000 Subject: [PATCH] Migration de step4.php --- configs/mails.conf | 18 +++++ etat_migration | 2 +- htdocs/step4.php | 138 ++++++++++++++++++++++++++++++++ include/inscription_forums_base.inc.php | 54 +++++++++++++ include/inscription_listes_base.inc.php | 49 ++++++++++++ templates/mails/forums.promo.tpl | 7 ++ templates/mails/inscription.reussie.tpl | 15 ++++ templates/mails/listes.promo.tpl | 6 ++ templates/mails/marketing.thanks.tpl | 13 +++ templates/mails/polyedu.error.tpl | 10 +++ templates/step4.tpl | 59 ++++++++++++++ 11 files changed, 370 insertions(+), 1 deletion(-) create mode 100644 htdocs/step4.php create mode 100644 include/inscription_forums_base.inc.php create mode 100644 include/inscription_listes_base.inc.php create mode 100644 templates/mails/forums.promo.tpl create mode 100644 templates/mails/inscription.reussie.tpl create mode 100644 templates/mails/listes.promo.tpl create mode 100644 templates/mails/marketing.thanks.tpl create mode 100644 templates/mails/polyedu.error.tpl create mode 100644 templates/step4.tpl diff --git a/configs/mails.conf b/configs/mails.conf index 90eea4a..86541eb 100644 --- a/configs/mails.conf +++ b/configs/mails.conf @@ -32,5 +32,23 @@ from=Polytechnique.org [marketing_relance] from=Pre-Inscription +[marketing_thanks] +from=Marketing Polytechnique.org + [inscrire] from=Pre-Inscription + +[forums_promo] +from=Forums +to=news@polytechnique.org + +[listes_promo] +from=web@polytechnique.org +to=web@polytechnique.org + +[polyedu_error] +from=support+edu@polytechnique.org +to=support@polytechnique.org + +[inscription] +from=support@polytechnique.org diff --git a/etat_migration b/etat_migration index 9e67947..754742c 100644 --- a/etat_migration +++ b/etat_migration @@ -20,7 +20,7 @@ Etat | Ancien nom | Nouveau nom ------+-[ emails ... ]----------------------------+---------------- x | routage-mail.php | ------+-[ inscription + mdp ]---------------------+---------------- -; | step4.php | +x | step4.php | ; | tmpPWD.php | ------+-[ bordel ]--------------------------------+---------------- x | recherche.php | diff --git a/htdocs/step4.php b/htdocs/step4.php new file mode 100644 index 0000000..28cb13b --- /dev/null +++ b/htdocs/step4.php @@ -0,0 +1,138 @@ +db->query($sql); + //vérifions que la référence de l'utilisateur est valide + if (!list($username, $loginbis, $matricule, $promo, $password, $nom, $prenom,$nationalite, + $email, $naissance,$date,$appli_id1,$appli_type1,$appli_id2,$appli_type2) = mysql_fetch_row($res)) { + $page->assign('error',ERROR_REF); + $page->run(); + } + + // vérifions qu'il n'y a pas déjà une inscription dans le passé + // ce qui est courant car les double-clic... + $sql = "SELECT user_id FROM auth_user_md5 where username='$username'"; + $res = $globals->db->query($sql); + if ( mysql_num_rows($res) != 0) { + $page->assign('error',ERROR_ALREADY_SUBSCRIBED); + $page->run(); + } + + $nom = stripslashes($nom); + $prenom = stripslashes($prenom); + $sql = "INSERT INTO auth_user_md5 SET username='$username',loginbis='$loginbis',matricule='$matricule',promo=$promo, + password='$password',nom='".addslashes($nom)."',prenom='".addslashes($prenom)."',nationalite=$nationalite, + date='$date',naissance=$naissance, date_ins = NULL, lastnewslogin='$lastnewslogin'"; + $globals->db->query($sql); + + // on vérifie qu'il n'y a pas eu d'erreur + if ($globals->db->err()) { + $page->assign('error',ERROR_DB); + $page->assign('error_db',$globals->db->error()); + $page->run(); + } + // ok, pas d'erreur, on continue + $uid=$globals->db->insert_id(); + + // on cree un objet logger et on log l'evenement + $logger = new DiogenesCoreLogger($uid); + $logger->log("inscription",$email); + $page->assign('username',$username); + + /****************** insertion de l'email dans la table emails ***/ + require("mtic.inc.php"); + $flags = 'filtre'.(check_mtic($email) ? ',mtic':''); + $sql = "insert into emails set uid = $uid, num = 0, email = '\"|maildrop /var/mail/.maildrop_filters/tag_spams $uid\"', flags = 'active'"; + $globals->db->query($sql); + $sql = "insert into emails set uid = $uid, num = 1, email = '$email', flags = '$flags'"; + $globals->db->query($sql); + /****************** ajout des formations ****************/ + if (($appli_id1>0)&&($appli_type1)) + $globals->db->query("insert into applis_ins set uid=$uid,aid=$appli_id1,type='$appli_type1',ordre=0"); + if (($appli_id2>0)&&($appli_type2)) + $globals->db->query("insert into applis_ins set uid=$uid,aid=$appli_id2,type='$appli_type2',ordre=1"); + /****************** envoi d'un mail au démarcheur ***************/ + /* si la personne a été marketingnisée, alors on prévient son démarcheur */ + $res = $globals->db->query("SELECT a.username,e.date_envoi FROM envoidirect as e INNER JOIN auth_user_md5 as a ON e.sender = a.user_id + WHERE e.matricule = '".$matricule."' GROUP BY a.username"); + while (list($sender_usern, $sender_date) = mysql_fetch_row($res)) { + $mymail = new TplMailer('marketing.thanks.tpl'); + $mymail->assign('to', $sender_usern); + $mymail->assign('prenom', $prenom); + $mymail->assign('nom',$nom); + $mymail->assign('promo',$promo); + $mymail->send(); + } + + /****************** inscription à la liste promo ****************/ + $inspromo = inscription_liste_promo($uid,$promo); + /****************** inscription à la newsletter ****************/ + $insnewsletter = inscription_newsletter($uid); + /****************** inscription à la newsletter ****************/ + $insforumpromo = inscription_forum_promo($uid,$promo); + /****************** inscription à la newsletter ****************/ + $insforums = inscription_forums($uid); + + // effacer la pré-inscription devenue inscription + $globals->db->query("update en_cours set loginbis='INSCRIT' WHERE username='$username'"); + + // insérer l'inscription dans la table des inscriptions confirmées + $globals->db->query("INSERT INTO ins_confirmees SET id=$uid"); + + // insérer une ligne dans user_changes pour que les coordonnées complètes + // soient envoyées a l'AX + $globals->db->query("insert into user_changes ($uid)"); + + // inscription sur polytechnique.edu + $polyedu_ok=false; + $db_edu = connect_polyedu(); + if($db_edu) { + $result = mysql_query("select a.id, a.alias from x, aliases as a" + ." where x.id=a.id and x.matricule = $matricule", $db_edu); + if($result and list($id_edu, $alias_edu) = mysql_fetch_row($result)) { + mysql_free_result($result); + mysql_query("replace into emails (id,email) values ($id_edu,'$username@m4x.org')", $db_edu); + $polyedu_ok = (mysql_errno($db_edu)==0); + } // if($result) + } // if($db_edu) + if(!$polyedu_ok) $polyedu_error = mysql_errno($db_edu). ": ". mysql_error($db_edu); + mysql_close($db_edu); + + // si erreur sur polyedu, envoi du mail aux gestionnaires + if(!$polyedu_ok) { + $mymail = new TplMailer('polyedu.error.tpl'); + $mymail->assign('username', $username); + $mymail->assign('polyedu_error', $polyedu_error); + $mymail->send(); + } + + // envoi du mail à l'utilisateur + $mymail = new TplMailer('inscription.reussie.tpl'); + $mymail->assign('username', $username); + $mymail->assign('prenom', $prenom); + $mymail->send(); + + // s'il est dans la table envoidirect, on le marque comme inscrit + $globals->db->query("update envoidirect set date_succes=NOW() where matricule = $matricule"); +} +else + $page->assign('error',ERROR_REF); + +$page->assign('dev',(isset($site_dev) && $site_dev)?1:0); +$page->run(); diff --git a/include/inscription_forums_base.inc.php b/include/inscription_forums_base.inc.php new file mode 100644 index 0000000..fe83d5a --- /dev/null +++ b/include/inscription_forums_base.inc.php @@ -0,0 +1,54 @@ +db->query("SELECT fid FROM forums.list WHERE nom='xorg.promo.x$promo'"); + if (!list($fid)=mysql_fetch_row($result)) { // pas de forum promo, il faut le créer + $req_au=$globals->db->query("SELECT count(*) FROM auth_user_md5 WHERE promo='$promo'"); + list($effau) = mysql_fetch_row($req_au); + $req_id=$globals->db->query("SELECT count(*) FROM identification WHERE promo='$promo'"); + list($effid) = mysql_fetch_row($req_id); + if (5*$effau>$effid) { // + de 20% d'inscrits + $mymail = new TplMailer('forums.promo.tpl'); + $mymail->assign('promo', $promo); + $mymail->send(); + } + $fid = false; + } + mysql_free_result($result); + if ($fid) { + $globals->db->query("INSERT INTO forums.abos (fid,uid) VALUES ('$fid','$uid')"); + $res = !($globals->db->err()); + } else $res = false; + return $res; +} + + +/** inscrit UID aux forums par défaut + * @param $uid UID + * @return la reponse MySQL globale + * @see step4.php + */ +function inscription_forums($uid) { + global $globals; + $res = true; + $cible = array('xorg.general','xorg.pa.emploi','xorg.pa.divers','xorg.pa.logements'); + while (list ($key, $val) = each ($cible)) { + $result=$globals->db->query("SELECT fid FROM forums.list WHERE nom='$val'"); + list($fid)=mysql_fetch_row($result); + $globals->db->query("INSERT INTO forums.abos (fid,uid) VALUES ('$fid','$uid')"); + $res = $res and !($globals->db->err()); + } + return $res; +} + + + +?> diff --git a/include/inscription_listes_base.inc.php b/include/inscription_listes_base.inc.php new file mode 100644 index 0000000..82e51cb --- /dev/null +++ b/include/inscription_listes_base.inc.php @@ -0,0 +1,49 @@ +db->query("select id from aliases where alias = 'promo$promo' and type = 'liste'"); + if (!list($Lid)=mysql_fetch_row($result)) { // pas de liste promo, il faut la créer + $mymail = new TplMailer('listes.promo.tpl'); + $mymail->assign('promo', $promo); + $mymail->send(); + $Lid=false; + } + mysql_free_result($result); + if ($Lid) { + $globals->db->query("insert into listes_ins set idl=$Lid, idu=$uid"); + $res = !($globals->db->err()); + } else $res = false; + return $res; +} + + + +/** inscription à la newsletter + * @param $uid UID + * @return reponse MySQL + * @see admin/RegisterNewUser.php + * @see step4.php + */ +function inscription_newsletter($uid) { + global $globals; + $result=$globals->db->query("select id from aliases where alias = 'newsletter' and type = 'liste'"); + if (list($Lid)=mysql_fetch_row($result)) { + $globals->db->query("insert into listes_ins set idl=$Lid, idu=$uid"); + $res = !($globals->db->err()); + } else $res = false; + mysql_free_result($result); + return $res; +} + +?> diff --git a/templates/mails/forums.promo.tpl b/templates/mails/forums.promo.tpl new file mode 100644 index 0000000..ee1b62f --- /dev/null +++ b/templates/mails/forums.promo.tpl @@ -0,0 +1,7 @@ +{config_load file="mails.conf" section="forums_promo"} +{from full=#from#} +{to addr=#to#} +{subject text="Création du forum promo $promo"} + +Création du forum promo {$promo} à faire ! +(+ de 20% d'inscrits) diff --git a/templates/mails/inscription.reussie.tpl b/templates/mails/inscription.reussie.tpl new file mode 100644 index 0000000..00c2abd --- /dev/null +++ b/templates/mails/inscription.reussie.tpl @@ -0,0 +1,15 @@ +{config_load file="mails.conf" section="inscription"} +{from full=#from#} +{to addr="$username@polytechnique.org"} +{subject text="Bienvenue parmi les X sur le web !"} + +{$prenom}, félicitations pour ton inscription :o)) + +N'oublie pas de changer ton mot de passe sur le site. C'est très important +si tu veux garder accès au site et ton e-mail en fonction. + +Tu as maintenant accès à l'annuaire en ligne, aux services de listes de diffusion, +aux infos promo, etc. N'oublie pas de mettre ta fiche-annuaire à jour. +-- +Polytechnique.org +"Le portail des élèves & anciens élèves de l'Ecole polytechnique" diff --git a/templates/mails/listes.promo.tpl b/templates/mails/listes.promo.tpl new file mode 100644 index 0000000..2667f51 --- /dev/null +++ b/templates/mails/listes.promo.tpl @@ -0,0 +1,6 @@ +{config_load file="mails.conf" section="listes_promo"} +{from full=#from#} +{to addr=#to#} +{subject text="Création de la liste promo $promo"} + +Création de la liste promo {$promo} à faire ! diff --git a/templates/mails/marketing.thanks.tpl b/templates/mails/marketing.thanks.tpl new file mode 100644 index 0000000..e874e02 --- /dev/null +++ b/templates/mails/marketing.thanks.tpl @@ -0,0 +1,13 @@ +{config_load file="mails.conf" section="marketing_thanks"} +{from full=#from#} +{to addr="$to"} +{subject text="$prenom $nom s'est inscrit à Polytechnique.org !"} +Bonjour, + +Nous t'écrivons juste pour t'informer que {$prenom} {$nom} (X{$promo}), que tu avais incité à s'inscrire à Polytechnique.org, vient à l'instant de terminer son inscription !! :o) + +Merci de ta participation active à la reconnaissance de ce site !!! + +Bien cordialement, +L'équipe Polytechnique.org +"Le portail des élèves & anciens élèves de l'Ecole polytechnique" diff --git a/templates/mails/polyedu.error.tpl b/templates/mails/polyedu.error.tpl new file mode 100644 index 0000000..2509d33 --- /dev/null +++ b/templates/mails/polyedu.error.tpl @@ -0,0 +1,10 @@ +{config_load file="mails.conf" section="polyedu_error"} +{from full=#from#} +{to addr=#to#} +{subject text="Erreur d'inscription sur polyedu pour le username $username"} + +Erreur d'inscription sur polyedu pour le username {$username}. +Pour corriger, un petit tour dans la page d'admin suffit normalement. +Le message d'erreur mysql est (s'il est vide, c'est qu'il n'y a pas d'entrée dans la table X, sûrement un homonyme qui devrait envoyer un mail avec une proposition d'alias) : + +{$polyedu_error} diff --git a/templates/step4.tpl b/templates/step4.tpl new file mode 100644 index 0000000..1bdc03e --- /dev/null +++ b/templates/step4.tpl @@ -0,0 +1,59 @@ +{if !isset($error)} +
+ Dernière étape +
+

+ Tu as maintenant accès au site en utilisant les paramètres reçus par mail. + Les adresses électroniques {$username}@polytechnique.org + et {$username}@m4x.org sont déjà ouvertes, essaie-les ! +

+

+ Remarque: m4x.org est un domaine "discret" qui veut dire "mail for X" et + qui comporte exactement les mêmes adresses que le domaine polytechnique.org. +

+

+ Clique ici pour changer ton mot de passe. +

+

+ N'oublie pas : si tu perds ton mot de passe, nous n'avons aucun engagement, en + particulier en termes de rapidité, mais pas seulement, à te redonner accès au + site. Cela peut prendre plusieurs semaines, les pertes de mot de passe sont + traitées avec la priorité minimale. +

+{elseif $error eq $smarty.const.ERROR_DB} + {$error_db} + +

+ Une erreur s'est produite lors de la mise en place définitive de ton inscription, + essaie à nouveau, si cela ne fonctionne toujours pas, envoie un mail à + webmaster@polytechnique.org +

+{elseif $error eq $smarty.const.ERROR_ALREADY_SUBSCRIBED} +

+ Tu es déjà inscrit à polytechnique.org. Tu as sûrement cliqué deux fois sur le même lien de + référence ou effectué un double clic. Consultes tes mails pour obtenir ton identifiant et ton + mot de passe. +

+{elseif $error eq $smarty.const.ERROR_REF} +
+ OOOooups ! +
+

+ Cette adresse n'existe pas, ou plus, sur le serveur. +

+

+ Causes probables : +

+
    +
  1. + Vérifie que tu visites l'adresse du dernier e-mail reçu s'il y en a eu plusieurs. +
  2. +
  3. + Tu as peut-être mal copié l'adresse reçue par mail, vérifie-la à la main. +
  4. +
  5. + Tu as peut-être attendu trop longtemps pour confirmer. Les + pré-inscriptions sont annulées tous les 30 jours. +
  6. +
+{/if} -- 2.1.4