From: Stéphane Jacob Date: Thu, 3 Nov 2011 09:53:17 +0000 (+0100) Subject: Uses UserFilters to count NL members. X-Git-Tag: xorg/1.1.4~32 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=332cf4b955ef4c61587d612953305919155e7598;p=platal.git Uses UserFilters to count NL members. Signed-off-by: Stéphane Jacob --- diff --git a/include/newsletter.inc.php b/include/newsletter.inc.php index b9e51dc..7733f02 100644 --- a/include/newsletter.inc.php +++ b/include/newsletter.inc.php @@ -400,23 +400,16 @@ class NewsLetter */ public function subscriberCount() { - return XDB::fetchOneCell('SELECT COUNT(uid) - FROM newsletter_ins - WHERE nlid = {?}', $this->id); + $uf = new UserFilter(new UFC_NLSubscribed($this->id)); + return $uf->getTotalCount(); } /** Get the count of subscribers with non valid redirection. */ public function lostSubscriberCount() { - return XDB::fetchOneCell('SELECT COUNT(DISTINCT(n.uid)) - FROM newsletter_ins AS n - INNER JOIN accounts AS a ON (n.uid = a.uid) - INNER JOIN account_types AS t ON (t.type = a.type) - LEFT JOIN email_redirect_account AS r ON (r.uid = a.uid AND r.flags = \'active\' AND r.broken_level < 3 - AND r.type != \'imap\' AND r.type != \'homonym\') - WHERE n.nlid = {?} AND r.redirect IS NULL AND a.state = \'active\' AND FIND_IN_SET(\'mail\', t.perms)', - $this->id); + $uf = new UserFilter(new PFC_And(new UFC_NLSubscribed($this->id), new PFC_Not(new UFC_HasEmailRedirect()))); + return $uf->getTotalCount(); } /** Get the number of subscribers to the NL whose last received mailing was $last.