From: Pierre Habouzit (MadCoder Date: Thu, 30 Dec 2004 12:40:58 +0000 (+0000) Subject: marketing done X-Git-Tag: xorg/old~548 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=b0ae2466e0bd8e4498404ec0c609780397f9282c;p=platal.git marketing done git-archimport-id: opensource@polytechnique.org--2005/platal--mainline--0.9--patch-200 --- diff --git a/htdocs/marketing/envoidirect.php b/htdocs/marketing/envoidirect.php index 83ea697..d6f7964 100644 --- a/htdocs/marketing/envoidirect.php +++ b/htdocs/marketing/envoidirect.php @@ -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 diff --git a/htdocs/marketing/index.php b/htdocs/marketing/index.php index 4f849b7..c5701fb 100644 --- a/htdocs/marketing/index.php +++ b/htdocs/marketing/index.php @@ -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(); ?> diff --git a/htdocs/marketing/public.php b/htdocs/marketing/public.php index 6788d5b..9a66d24 100644 --- a/htdocs/marketing/public.php +++ b/htdocs/marketing/public.php @@ -22,22 +22,20 @@ 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(); diff --git a/htdocs/marketing/relance.php b/htdocs/marketing/relance.php index d1a709b..892d6d8 100644 --- a/htdocs/marketing/relance.php +++ b/htdocs/marketing/relance.php @@ -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(); diff --git a/htdocs/marketing/utilisateurs_marketing.php b/htdocs/marketing/utilisateurs_marketing.php index 16d7d2e..5dbb9ea 100644 --- a/htdocs/marketing/utilisateurs_marketing.php +++ b/htdocs/marketing/utilisateurs_marketing.php @@ -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éjà 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 "; + $prenom = $myrow["prenom"]; + $nom = $myrow["nom"]; + $promo = $myrow["promo"]; + $from = "Equipe 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éjà 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 diff --git a/htdocs/marketing/volontaire.php b/htdocs/marketing/volontaire.php index 44ed436..8efc855 100644 --- a/htdocs/marketing/volontaire.php +++ b/htdocs/marketing/volontaire.php @@ -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(); ?>