X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fmarketing.php;h=a703131f9fb978714d372b297824b18eceeb831f;hb=232577de412b7ad4f29f1aeed23a2181c198f3cd;hp=45a3fd920e0cdacb53ba3c1a1b86c1d43701e984;hpb=1f58ccb1e75eca08fbd04971d617ea372bc77b5a;p=platal.git
diff --git a/modules/marketing.php b/modules/marketing.php
index 45a3fd9..a703131 100644
--- a/modules/marketing.php
+++ b/modules/marketing.php
@@ -42,38 +42,55 @@ class MarketingModule extends PLModule
$page->setTitle('Marketing');
- // Quelques statistiques
-
- $res = XDB::query(
- "SELECT COUNT(*) AS vivants,
- COUNT(NULLIF(perms='admin' OR perms='user', 0)) AS inscrits,
- 100*COUNT(NULLIF(perms='admin' OR perms='user', 0))/COUNT(*) AS ins_rate,
- COUNT(NULLIF(promo >= 1972, 0)) AS vivants72,
- COUNT(NULLIF(promo >= 1972 AND (perms='admin' OR perms='user'), 0)) AS inscrits72,
- 100 * COUNT(NULLIF(promo >= 1972 AND (perms='admin' OR perms='user'), 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='admin' OR perms='user'), 0)) AS inscrites,
- 100 * COUNT(NULLIF(FIND_IN_SET('femme', flags) AND (perms='admin' OR perms='user'), 0)) /
- COUNT(NULLIF(FIND_IN_SET('femme', flags), 0)) AS inse_rate
- FROM auth_user_md5
- WHERE deces = 0");
+ // Some statistics
+ $res = XDB::query(
+ "SELECT COUNT(*) AS vivants,
+ COUNT(NULLIF(perms='admin' OR perms='user', 0)) AS inscrits,
+ 100*COUNT(NULLIF(perms='admin' OR perms='user', 0))/COUNT(*) AS ins_rate,
+ COUNT(NULLIF(promo >= 1972, 0)) AS vivants72,
+ COUNT(NULLIF(promo >= 1972 AND (perms='admin' OR perms='user'), 0)) AS inscrits72,
+ 100 * COUNT(NULLIF(promo >= 1972 AND (perms='admin' OR perms='user'), 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='admin' OR perms='user'), 0)) AS inscrites,
+ 100 * COUNT(NULLIF(FIND_IN_SET('femme', flags) AND (perms='admin' OR perms='user'), 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);
- $res = XDB::query("SELECT count(*) FROM auth_user_md5 WHERE date_ins > ".
- date('Ymd000000', strtotime('1 week ago')));
+ $res = XDB::query('SELECT COUNT(*)
+ FROM auth_user_md5
+ WHERE date_ins > ' . date('Ymd000000', strtotime('1 week ago')));
$page->assign('nbInsSem', $res->fetchOneCell());
- $res = XDB::query("SELECT count(*) FROM register_pending WHERE hash != 'INSCRIT'");
+ $res = XDB::query("SELECT COUNT(*)
+ FROM register_pending
+ WHERE hash != 'INSCRIT'");
$page->assign('nbInsEnCours', $res->fetchOneCell());
- $res = XDB::query("SELECT count(*) FROM register_marketing");
- $page->assign('nbInsMarket', $res->fetchOneCell());
-
- $res = XDB::query("SELECT count(*) FROM register_mstats
- WHERE TO_DAYS(NOW()) - TO_DAYS(success) <= 7");
- $page->assign('nbInsMarkOK', $res->fetchOneCell());
+ $res = XDB::query('SELECT COUNT(*) AS count
+ FROM register_marketing
+ GROUP BY sender = 0');
+ $nbInsMarketNo = $res->fetchAllAssoc();
+ $res = XDB::query('SELECT COUNT(*)
+ FROM register_marketing
+ WHERE TO_DAYS(NOW()) - TO_DAYS(last) <= 7');
+ $page->assign('nbInsMarketNoPerso', $nbInsMarketNo[0]['count']);
+ $page->assign('nbInsMarketNoXorg', $nbInsMarketNo[1]['count']);
+ $page->assign('nbInsMarketNoWeek', $res->fetchOneCell());
+
+ $res = XDB::query('SELECT COUNT(*) AS count
+ FROM register_mstats
+ GROUP BY sender = 0');
+ $nbInsMarketOk = $res->fetchAllAssoc();
+ $res = XDB::query('SELECT COUNT(*)
+ FROM register_mstats
+ WHERE TO_DAYS(NOW()) - TO_DAYS(success) <= 7');
+ $page->assign('nbInsMarketOkPerso', $nbInsMarketOk[0]['count']);
+ $page->assign('nbInsMarketOkXorg', $nbInsMarketOk[1]['count']);
+ $page->assign('nbInsMarketOkWeek', $res->fetchOneCell());
}
function handler_private(&$page, $hruid = null,
@@ -241,7 +258,7 @@ class MarketingModule extends PLModule
}
$page->assign('promo', $promo);
- $sql = "SELECT u.user_id, u.nom, u.prenom, u.last_known_email, u.matricule_ax,
+ $sql = "SELECT u.user_id, u.hruid, u.nom, u.prenom, u.last_known_email,
IF(MAX(m.last) > p.relance, MAX(m.last), p.relance) AS dern_rel, p.email
FROM auth_user_md5 AS u
LEFT JOIN register_pending AS p ON p.uid = u.user_id
@@ -280,7 +297,7 @@ class MarketingModule extends PLModule
require_once 'emails.inc.php';
if (!isvalid_email_redirection($email)) {
- $page->trigError("Email invalide !");
+ $page->trigError('Email invalide !');
} else {
// On cherche les marketings précédents sur cette adresse
// email, en se restreignant au dernier mois
@@ -290,10 +307,30 @@ class MarketingModule extends PLModule
} else {
$page->assign('ok', true);
check_email($email, "Une adresse surveillée est proposée au marketing par " . S::user()->login());
- $market = new Marketing($user->id(), $email, 'default', null, Post::v('origine'), S::v('uid'));
+ $market = new Marketing($user->id(), $email, 'default', null, Post::v('origine'), S::v('uid'),
+ Post::v('origine') == 'user' ? Post::v('personal_notes') : null);
$market->add();
}
}
+ } else {
+ global $globals;
+ require_once 'marketing.inc.php';
+
+ $sender = User::getSilent(S::v('uid'));
+ $market = new AnnuaireMarketing(null, true);
+ $text = $market->getText(array(
+ 'sexe' => $user->isFemale(),
+ 'forlife_email' => $user->login() . '@' . $globals->mail->domain,
+ 'forlife_email2' => $user->login() . '@' . $globals->mail->domain2
+ ));
+ $text = str_replace('%%hash%%', '', $text);
+ $text = str_replace('%%personal_notes%%', '', $text);
+ $text = str_replace('%%sender%%',
+ "" . $sender->fullName() . '', $text);
+ $page->assign('text', nl2br($text));
+ // TODO (JAC): define a unique Xorg signature for all the emails we send.
+ $page->assign('xorg_signature', "L'équipe de Polytechnique.org,
Le portail des élèves & anciens élèves de l'Ãcole polytechnique");
+ $page->assign('perso_signature', $sender->fullName());
}
}