From df6d9034e62dd23020e58cdb0a0f0f5bd5187c0f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rapha=C3=ABl=20Barrois?= Date: Sun, 6 Mar 2011 00:52:11 +0100 Subject: [PATCH] Adds UFC_HasValidEmail (Closes #1402) MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit * Use it for Newsletters * Make it exportable, as well as UFC_HasEmailRedirect. Signed-off-by: Raphaël Barrois --- classes/userfilter/conditions.inc.php | 29 ++++++++++++++++++++++++++++- include/newsletter.inc.php | 2 +- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/classes/userfilter/conditions.inc.php b/classes/userfilter/conditions.inc.php index ed9c898..b8cc437 100644 --- a/classes/userfilter/conditions.inc.php +++ b/classes/userfilter/conditions.inc.php @@ -173,6 +173,8 @@ abstract class UserFilterCondition implements PlFilterCondition break; case 'has_profile': + case 'has_email_redirect': + case 'has_valid_email': $class = 'ufc_' . str_replace('_', '', $type); $cond = new $class(); break; @@ -331,7 +333,7 @@ class UFC_Hrpid extends UserFilterCondition } // }}} // {{{ class UFC_HasEmailRedirect -/** Filters users, keeping only those with a valid email redirection. +/** Filters users, keeping only those with a valid email redirection (only X.org accounts). */ class UFC_HasEmailRedirect extends UserFilterCondition { @@ -340,6 +342,31 @@ class UFC_HasEmailRedirect extends UserFilterCondition $sub_redirect = $uf->addEmailRedirectFilter(); return 'ra' . $sub_redirect . '.flags = \'active\''; } + + public function export() + { + $export = $this->buildExport('has_email_redirect'); + return $export; + } +} +// }}} +// {{{ class UFC_HasValidEmail +/** Filters users, keeping only those with a valid email address (all accounts). + */ +class UFC_HasValidEmail extends UserFilterCondition +{ + public function buildCondition(PlFilter $uf) + { + $sub_redirect = $uf->addEmailRedirectFilter(); + $uf->requireAccounts(); + return 'ra' . $sub_redirect . '.flags = \'active\' OR a.email IS NOT NULL'; + } + + public function export() + { + $export = $this->buildExport('has_valid_email'); + return $export; + } } // }}} // {{{ class UFC_Ip diff --git a/include/newsletter.inc.php b/include/newsletter.inc.php index b8c248e..667099c 100644 --- a/include/newsletter.inc.php +++ b/include/newsletter.inc.php @@ -1090,7 +1090,7 @@ class NLIssue WHERE id = {?}', $this->id); - $ufc = new PFC_And($this->getRecipientsUFC(), new UFC_NLSubscribed($this->nl->id, $this->id), new UFC_HasEmailRedirect()); + $ufc = new PFC_And($this->getRecipientsUFC(), new UFC_NLSubscribed($this->nl->id, $this->id), new UFC_HasValidEmail()); $emailsCount = 0; $uf = new UserFilter($ufc, array(new UFO_IsAdmin(), new UFO_Uid())); $limit = new PlLimit(self::BATCH_SIZE); -- 2.1.4