marketing done
authorPierre Habouzit (MadCoder <pierre.habouzit@m4x.org>
Thu, 30 Dec 2004 12:40:58 +0000 (12:40 +0000)
committerFlorent Bruneau <florent.bruneau@polytechnique.org>
Thu, 26 Jun 2008 21:27:07 +0000 (23:27 +0200)
git-archimport-id: opensource@polytechnique.org--2005/platal--mainline--0.9--patch-200

htdocs/marketing/envoidirect.php
htdocs/marketing/index.php
htdocs/marketing/public.php
htdocs/marketing/relance.php
htdocs/marketing/utilisateurs_marketing.php
htdocs/marketing/volontaire.php

index 83ea697..d6f7964 100644 (file)
@@ -23,7 +23,7 @@ require_once("xorg.inc.php");
 new_admin_page('marketing/envoidirect.tpl');
 
 // effacement des inscrits il y a plus de 8 jours
-$globals->db->query("DELETE FROM envoidirect WHERE DATE_ADD(date_succes, INTERVAL 8 DAY) < CURRENT_DATE AND date_succes <> '0000-00-00'");
+$globals->xdb->execute("DELETE FROM envoidirect WHERE DATE_ADD(date_succes, INTERVAL 8 DAY) < CURRENT_DATE AND date_succes <> '0000-00-00'");
 $sql = "SELECT  e.date_succes,e.date_envoi,a.promo,a.nom,a.prenom,e.email,b.nom as sender
           FROM  envoidirect   AS e
     INNER JOIN  auth_user_md5 AS a ON e.matricule = a.matricule
index 4f849b7..c5701fb 100644 (file)
@@ -24,40 +24,31 @@ new_admin_page('marketing/index.tpl');
 
 # Quelques statistiques
 
-$sql = "SELECT count(*) as vivants,
-              count(NULLIF(perms!='pending', 0)) as inscrits,
-              100*count(NULLIF(perms!='pending', 0))/count(*) as ins_rate,
-              count(NULLIF(promo >= 1972, 0)) as vivants72,
-              count(NULLIF(promo >= 1972 AND perms!='pending', 0)) as inscrits72,
-              100 * count(NULLIF(promo >= 1972 AND perms!='pending', 0)) /
-                   count(NULLIF(promo >= 1972, 0)) as ins72_rate,
-              count(NULLIF(FIND_IN_SET('femme', flags), 0)) as vivantes,
-              count(NULLIF(FIND_IN_SET('femme', flags) AND perms!='pending', 0)) as inscrites,
-              100 * count(NULLIF(FIND_IN_SET('femme', flags) AND perms!='pending', 0)) /
-                  count(NULLIF(FIND_IN_SET('femme', flags), 0)) as inse_rate
-          FROM auth_user_md5
-         WHERE deces = 0";
-$res = $globals->db->query($sql);
-$stats = mysql_fetch_assoc($res);
-
+$res   = $globals->xdb->query(
+          "SELECT COUNT(*) AS vivants,
+                  COUNT(NULLIF(perms!='pending', 0)) AS inscrits,
+                  100*COUNT(NULLIF(perms!='pending', 0))/COUNT(*) AS ins_rate,
+                  COUNT(NULLIF(promo >= 1972, 0)) AS vivants72,
+                  COUNT(NULLIF(promo >= 1972 AND perms!='pending', 0)) AS inscrits72,
+                  100 * COUNT(NULLIF(promo >= 1972 AND perms!='pending', 0)) /
+                      COUNT(NULLIF(promo >= 1972, 0)) AS ins72_rate,
+                  COUNT(NULLIF(FIND_IN_SET('femme', flags), 0)) AS vivantes,
+                  COUNT(NULLIF(FIND_IN_SET('femme', flags) AND perms!='pending', 0)) AS inscrites,
+                  100 * COUNT(NULLIF(FIND_IN_SET('femme', flags) AND perms!='pending', 0)) /
+                      COUNT(NULLIF(FIND_IN_SET('femme', flags), 0)) AS inse_rate
+             FROM auth_user_md5
+            WHERE deces = 0");
+$stats = $res->fetchOneAssoc();
 $page->assign('stats', $stats);
-mysql_free_result($res);
-
-$res = $globals->db->query("SELECT count(*) FROM auth_user_md5 WHERE date_ins > ".date("Ymd", strtotime ("last Monday"))."*1000000");
-list($nbInsSem) = mysql_fetch_row($res);
-mysql_free_result($res);
 
-$page->assign('nbInsSem', $nbInsSem);
+$res   = $globals->xdb->query("SELECT count(*) FROM auth_user_md5 WHERE date_ins > ".date("Ymd", strtotime ("last Monday"))."*1000000");
+$page->assign('nbInsSem', $res->fetchOneCell());
 
-$res = $globals->db->query("SELECT count(*) FROM en_cours WHERE loginbis != 'INSCRIT'");
-list($nbInsEnCours) = mysql_fetch_row($res);
-mysql_free_result($res);
-$page->assign('nbInsEnCours', $nbInsEnCours);
+$res = $globals->xdb->query("SELECT count(*) FROM en_cours WHERE loginbis != 'INSCRIT'");
+$page->assign('nbInsEnCours', $res->fetchOneCell());
 
-$res = $globals->db->query("SELECT count(*) FROM envoidirect as e left join auth_user_md5 as a ON e.matricule = a.matricule WHERE a.nom is null");
-list($nbInsEnvDir) = mysql_fetch_row($res);
-mysql_free_result($res);
-$page->assign('nbInsEnvDir', $nbInsEnvDir);
+$res = $globals->xdb->query("SELECT count(*) FROM envoidirect as e left join auth_user_md5 as a ON e.matricule = a.matricule WHERE a.nom is null");
+$page->assign('nbInsEnvDir', $res->fetchOneCell());
 
 $page->run();
 ?>
index 6788d5b..9a66d24 100644 (file)
 require_once("xorg.inc.php");
 new_skinned_page('marketing/public.tpl', AUTH_MDP);
 
-if (! isset($_REQUEST["num"])) { exit; }
+if (! Env::has('num')) { exit; }
 
-$mat = $_REQUEST["num"];
+$mat = Env::get('num');
 
-$res = $globals->db->query("SELECT nom,prenom,promo FROM auth_user_md5 WHERE matricule = '$mat' AND perms='pending'");
-if (list($nom, $prenom, $promo) = mysql_fetch_row($res)) {
+$res = $globals->xdb->query("SELECT nom,prenom,promo FROM auth_user_md5 WHERE matricule={?} AND perms='pending'", $mat);
+if (list($nom, $prenom, $promo) = $res->fetchOneRow()) {
     $page->assign('prenom', $prenom);
     $page->assign('nom', $nom);
     $page->assign('promo', $promo);
 }
 
 if (isset($_REQUEST["valide"])) {
-       $globals->db->query(
-         "INSERT INTO marketing
-       SET expe = {$_SESSION['uid']}, dest = '$mat', email = '{$_REQUEST['mail']}', flags = '".(($_REQUEST["origine"]=="perso") ? "mail_perso" : "")."'"
-       );
+    $globals->xdb->execute("INSERT INTO marketing SET expe={?}, dest={?}, email={?}, flags={?}",
+            Session::getInt('uid'), $mat, Env::get('mail'), (Env::get('origine') == 'perso' ? 'mail_perso', ''));
 }
 
 $page->run();
index d1a709b..892d6d8 100644 (file)
@@ -28,18 +28,17 @@ if (isset($_POST["relancer"]) && isset($_POST["relancer"]) != "") {
     require_once("xorg.mailer.inc.php");
     
     
-    $res=$globals->db->query("SELECT COUNT(*) FROM auth_user_md5");
-    list($nbdix) = mysql_fetch_row($res);
-    mysql_free_result($res);
-
-    $res = $globals->db->query("SELECT  e.date,e.promo,e.nom,e.prenom,e.matricule,e.email,e.username
-                          FROM  en_cours      AS e
-                    INNER JOIN  auth_user_md5 AS a ON (e.matricule=a.matricule AND a.perms = 'pending')");
+    $res   = $globals->xdb->query("SELECT COUNT(*) FROM auth_user_md5");
+    $nbdix = $res->fetchOneCell();
+    $res   = $globals->xdb->iterRow(
+            "SELECT  e.date,e.promo,e.nom,e.prenom,e.matricule,e.email,e.username
+               FROM  en_cours      AS e
+         INNER JOIN  auth_user_md5 AS a ON (e.matricule=a.matricule AND a.perms = 'pending')");
 
     $sent = Array();
 
-    while (list($ldate, $lpromo, $lnom, $lprenom, $lmatricule, $lemail, $lusername) = mysql_fetch_row($res)) {
-        if (isset($_POST[$lmatricule]) && $_POST[$lmatricule] == "1") {
+    while (list($ldate, $lpromo, $lnom, $lprenom, $lmatricule, $lemail, $lusername) = $res->next()) {
+        if (Post::get($lmatricule) == "1") {
             $lins_id = rand_url_id(12);
             $nveau_pass = rand_pass();
             $lpass = md5($nveau_pass);
@@ -56,9 +55,7 @@ if (isset($_POST["relancer"]) && isset($_POST["relancer"]) != "") {
             $mymail->assign('lemail',$lemail);
             $mymail->assign('subj',$lusername."@polytechnique.org");
 
-            $globals->db->query("UPDATE  en_cours
-                            SET  ins_id='$lins_id',password='$lpass',relance='".date("Y-m-j")."'
-                          WHERE  matricule = '$lmatricule'");
+            $globals->xdb->execute("UPDATE en_cours SET ins_id={?}, password={?}, relance=NOW(), WHERE matricule = {?}", $lins_id, $lpass $lmatricule);
             // envoi du mail à l'utilisateur
 
             $mymail->send();
index 16d7d2e..5dbb9ea 100644 (file)
@@ -24,41 +24,46 @@ $id_actions = array('Mailer');
 require_once("select_user.inc.php");
 
 //actions possible une fois un X désigné par son matricule
-switch ($_REQUEST["submit"]) {
+switch (Env::get('submit')) {
     case "Mailer":
-       $result=$globals->db->query("SELECT user_id FROM auth_user_md5 where matricule={$_REQUEST['xmat']} AND perms!='pending'");
-       if ($myrow = mysql_fetch_assoc($result)) 
+       $res = $globals->xdb->query("SELECT user_id FROM auth_user_md5 where matricule={?} AND perms!='pending'", Env::getInt('xmat'));
+       if ($row = $res->fetchOneAssoc()) {
             exit_error("Le matricule existe d&eacute;j&agrave; dans la table auth_user_md5.");
+        }
   
-       $result = $globals->db->query("SELECT * FROM auth_user_md5 WHERE matricule=".$_REQUEST["xmat"]);
-       $myrow = mysql_fetch_array($result);
+       $res = $globals->xdb->query('SELECT * FROM auth_user_md5 WHERE matricule={?}', Env::getInt('xmat'));
+       $row = $res->fetchOneAssoc();
 
         new_admin_page('marketing/utilisateurs_form.tpl');
 
         $page->assign('row', $myrow);
 
-       $prenom=$myrow["prenom"];
-       $nom=$myrow["nom"];
-       $promo=$myrow["promo"];
-       $from = "Equipe Polytechnique.org <register@polytechnique.org>";
+       $prenom = $myrow["prenom"];
+       $nom    = $myrow["nom"];
+       $promo  = $myrow["promo"];
+       $from   = "Equipe Polytechnique.org <register@polytechnique.org>";
 
         $page->run();
        break;
 
     case "Envoyer le mail":
         require_once('xorg.misc.inc.php');
-       $result=$globals->db->query("SELECT user_id FROM auth_user_md5 where matricule={$_REQUEST['xmat']} AND perms!='pending'");
-       if ($myrow = mysql_fetch_assoc($result))
+       
+        $res = $globals->xdb->query("SELECT user_id FROM auth_user_md5 where matricule={?} AND perms!='pending'", Env::getInt('xmat'));
+       if ($row = $res->fetchOneAssoc()) {
             exit_error("Le matricule existe d&eacute;j&agrave; dans la table auth_user_md5.");
-                       
-       if (!isvalid_email_redirection($_REQUEST["mail"]))
+        }
+
+       if (!isvalid_email_redirection(Env::get('mail')) {
             exit_error("L'email n'est pas valide.");
+        }
                
-       $result=$globals->db->query("SELECT prenom,nom,promo,FIND_IN_SET('femme', flags)
-                                     FROM auth_user_md5
-                                     WHERE matricule=".$_REQUEST['xmat']);
-       if (!list($prenom,$nom,$promo,$femme) = mysql_fetch_row($result))
+       $res = $globals->xdb->query(
+            "SELECT prenom,nom,promo,FIND_IN_SET('femme', flags) FROM auth_user_md5 WHERE matricule={?}",
+            $_REQUEST['xmat']);
+       if (!list($prenom,$nom,$promo,$femme) = $res->fetchOneRow()) {
             exit_error("Le matricule n'a pas été trouvé dans table auth_user_md5.");
+        }
                        
        // calcul de l'envoyeur
         list($envoyeur) = explode('@', $_REQUEST["from"]);
@@ -77,23 +82,19 @@ switch ($_REQUEST["submit"]) {
        $nom_envoyeur=ucfirst($nom_envoyeur);
                        
        // tirage aléatoire de UID et mot de passe
-       $user_id=rand_url_id(12);
-       $date=date("Y-m-j");
+       $user_id = rand_url_id(12);
+       $date    = date("Y-m-j");
 
        // decompte du nombre d'utilisateurs;
-       $result=$globals->db->query("SELECT COUNT(*) FROM auth_user_md5");
-       $num_users=mysql_result($result,0,"count(*)");
+       $res = $globals->xdb->query("SELECT COUNT(*) FROM auth_user_md5");
+        $num_users = $res->fetchOneCell();
                        
        // calcul du login
        $mailorg = make_forlife($prenom,$nom,$promo);
                        
-       $globals->db->query("UPDATE  auth_user_md5
-                                SET  last_known_email='{$_REQUEST['mail']}'
-                              WHERE  matricule='{$_REQUEST['xmat']}'");
-       $requete="INSERT INTO  envoidirect
-                          SET  matricule='{$_REQUEST['xmat']}',uid='$user_id',
-                               email='{$_REQUEST['mail']}',sender='{$_REQUEST['sender']}',date_envoi='$date'";
-       $globals->db->query($requete);
+       $globals->xdb->execute("UPDATE auth_user_md5 SET last_known_email={?} WHERE matricule={?}", Env::get('mail'), Env::get('xmat'));
+        $globals->xdb->execute("INSERT INTO envoidirect SET matricule={?}, uid={?}, email={?}, sender={?},date_envoi={?}",
+                Env::get('xmat'), $user_id, Env::get('mail'), Env::get('sender'), $date);
        // pas d'erreur pour l'insert
 
        // envoi du mail à l'utilisateur
index 44ed436..8efc855 100644 (file)
@@ -24,17 +24,17 @@ new_admin_page('marketing/volontaire.tpl');
 
 // traitement des paramètres éventuels
 if (!empty($_GET["del"])) {
-    $globals->db->query("DELETE FROM marketing WHERE id ='{$_GET['del']}'");
+    $globals->xdb->execute("DELETE FROM marketing WHERE id ={?}" , Get::get('del'));
     $page->trig("Entrée effacée");
 }
 if (!empty($_GET["done"])) {
-    $globals->db->query("UPDATE marketing SET flags = CONCAT(flags,',envoye') WHERE id ='{$_GET['done']}'");
+    $globals->xdb->execute("UPDATE marketing SET flags = CONCAT(flags,',envoye') WHERE id = {?}", Get::get('done'));
     $page->trig("Entrée mise à jour");
 }
 
 $sql = "SELECT  m.id, m.expe, m.dest, m.email, 
-               i.promo, i.nom, i.prenom, i.last_known_email, 
-               u.promo AS spromo, u.nom AS snom, u.prenom AS sprenom, a.alias AS forlife,
+                i.promo, i.nom, i.prenom, i.last_known_email, 
+                u.promo AS spromo, u.nom AS snom, u.prenom AS sprenom, a.alias AS forlife,
                 FIND_IN_SET('mail_perso', m.flags) AS mailperso
           FROM  marketing     AS m
     INNER JOIN  auth_user_md5 AS i  ON i.matricule = m.dest
@@ -55,18 +55,16 @@ $sql = "SELECT  a.promo, a.nom, a.prenom,
 
 $page->mysql_assign($sql, 'used', 'nbused');
 
-$sql = "SELECT  COUNT(a.perms != 'pending') AS j,
-                COUNT(i.matricule) AS i,
-                100 * COUNT(a.nom) / COUNT(i.matricule) as rate
-          FROM  marketing     AS m
-    INNER JOIN  auth_user_md5 AS i  ON i.matricule = m.dest
-    INNER JOIN  auth_user_md5 AS sa ON sa.user_id = m.expe
-    LEFT  JOIN  auth_user_md5 AS a  ON (a.matricule = m.dest AND a.perms!='pending')
-         WHERE  FIND_IN_SET('envoye', m.flags)";
-$res = $globals->db->query($sql);
-
-$page->assign('rate', mysql_fetch_assoc($res));
-mysql_free_result($res);
+$res = $globals->xdb->query(
+        "SELECT  COUNT(a.perms != 'pending') AS j,
+                 COUNT(i.matricule) AS i,
+                 100 * COUNT(a.nom) / COUNT(i.matricule) as rate
+           FROM  marketing     AS m
+     INNER JOIN  auth_user_md5 AS i  ON i.matricule = m.dest
+     INNER JOIN  auth_user_md5 AS sa ON sa.user_id = m.expe
+     LEFT  JOIN  auth_user_md5 AS a  ON (a.matricule = m.dest AND a.perms!='pending')
+          WHERE  FIND_IN_SET('envoye', m.flags)");
+$page->assign('rate', $res->fetchOneAssoc());
 
 $page->run();
 ?>