<?php
/***************************************************************************
- * Copyright (C) 2003-2008 Polytechnique.org *
+ * Copyright (C) 2003-2009 Polytechnique.org *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
$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,
$res = XDB::iterator(
"SELECT r.*, a.alias
FROM register_marketing AS r
- INNER JOIN aliases AS a ON (r.sender=a.id AND a.type = 'a_vie')
+ LEFT JOIN aliases AS a ON (r.sender=a.id AND a.type = 'a_vie')
WHERE uid={?}
ORDER BY date", $user->id());
$page->assign('addr', $res);
pl_redirect('emails/redirect');
}
- $res = Xdb::query("SELECT u.nom, u.prenom, u.promo, FIND_IN_SET('femme', u.flags) AS sexe,
- u.deces = '0000-00-00' AS alive, u.hruid, a.alias AS forlife, b.alias AS bestalias,
- IF(e.email IS NOT NULL, e.email, IF(FIND_IN_SET('googleapps', u.mail_storage), 'googleapps', NULL)) AS email, e.last
- FROM auth_user_md5 AS u
- INNER JOIN aliases AS a ON (a.id = u.user_id AND a.type = 'a_vie')
- INNER JOIN aliases AS b ON (b.id = u.user_id AND FIND_IN_SET('bestalias', b.flags))
- LEFT JOIN emails AS e ON (e.flags = 'active' AND e.uid = u.user_id)
- WHERE u.hruid = {?}
- ORDER BY e.panne_level, e.last", $user->login());
+ $res = XDB::query(
+ "SELECT u.deces = '0000-00-00' AS alive, e.last,
+ IF(e.email IS NOT NULL, e.email, IF(FIND_IN_SET('googleapps', u.mail_storage), 'googleapps', NULL)) AS email
+ FROM auth_user_md5 AS u
+ LEFT JOIN emails AS e ON (e.flags = 'active' AND e.uid = u.user_id)
+ WHERE u.user_id = {?}
+ ORDER BY e.panne_level, e.last", $user->id());
if (!$res->numRows()) {
return PL_NOT_FOUND;
}
- $user_data = $res->fetchOneAssoc();
- $page->assign('user', $user_data);
+ $user->addProperties($res->fetchOneAssoc());
+ $page->assign('user', $user);
$email = null;
require_once 'emails.inc.php';
WHERE email = {?} AND uid = {?}", $email, $user->id());
$state = $res->numRows() ? $res->fetchOneCell() : null;
if ($state == 'panne') {
- $page->trigWarning("L'adresse que tu as fournie est l'adresse actuelle de {$user_data['prenom']} et est en panne.");
+ $page->trigWarning("L'adresse que tu as fournie est l'adresse actuelle de {$user->fullName()} et est en panne.");
} elseif ($state == 'active') {
- $page->trigWarning("L'adresse que tu as fournie est l'adresse actuelle de {$user_data['prenom']}");
- } elseif ($user_data['email'] && !trim(Post::v('comment'))) {
+ $page->trigWarning("L'adresse que tu as fournie est l'adresse actuelle de {$user->fullName()}");
+ } elseif ($user->email && !trim(Post::v('comment'))) {
$page->trigError("Il faut que tu ajoutes un commentaire à ta proposition pour justifier le "
- . "besoin de changer la redirection de " . $user_data['prenom']);
+ . "besoin de changer la redirection de {$user->fullName()}.");
} else {
require_once 'validations.inc.php';
- $valid = new BrokenReq(S::i('uid'), $user_data, $email, trim(Post::v('comment')));
+ $valid = new BrokenReq(S::user(), $user, $email, trim(Post::v('comment')));
$valid->submit();
$page->assign('sent', true);
}
$sent = Array();
foreach (array_keys($_POST['relance']) as $uid) {
if ($tmp = Marketing::relance($uid, $nbdix)) {
- $sent[] = $tmp.' a été relancé';
+ $sent[] = $tmp . ' a été relancé.';
}
}
$page->assign('sent', $sent);