*/
abstract class UserFilterCondition implements PlFilterCondition
{
- const OP_EQUALS = '==';
+ const OP_EQUALS = '=';
const OP_GREATER = '>';
const OP_NOTGREATER = '<=';
const OP_LESSER = '<';
}
}
// }}}
+// {{{ class UFC_HasEmailRedirect
+/** Filters users, keeping only those with a valid email redirection.
+ */
+class UFC_HasEmailRedirect extends UserFilterCondition
+{
+ public function buildCondition(PlFilter $uf)
+ {
+ $sub_redirect = $uf->addEmailRedirectFilter();
+ $sub_options = $uf->addEmailOptionsFilter();
+ return 'e' . $sub_redirect . '.flags = \'active\' OR FIND_IN_SET(\'googleapps\', ' . $sub_options . '.storage)';
+ }
+}
+// }}}
// {{{ class UFC_Ip
/** Filters users based on one of their last IPs
* @param $ip IP from which connection are checked
public function export()
{
+ $export = $this->buildExport('promo');
$export['comparison'] = $this->comparison;
if ($this->grade != UserFilter::DISPLAY) {
$export['grade'] = $this->grade;
}
}
// }}}
+// {{{ class UFC_NLSubscribed
+/** Filters users based on NL subscription
+ * @param $nlid NL whose subscribers we are selecting
+ * @param $issue Select only subscribers who have not yet received that issue
+ */
+class UFC_NLSubscribed extends UserFilterCondition
+{
+ private $nlid;
+ private $issue_id;
+ public function __construct($nlid, $issue_id)
+ {
+ $this->nlid = $nlid;
+ $this->issue_id = $issue_id;
+ }
+
+ public function buildCondition(PlFilter $uf)
+ {
+ $sub = $uf->addNewsLetterFilter($this->nlid);
+ return XDB::format($sub . '.last < {?}', $this->issue_id);
+ }
+}
+// }}}
// {{{ class UFC_Group
/** Filters users based on group membership
* @param $group Group whose members we are selecting
abstract class UFC_UserRelated extends UserFilterCondition
{
protected $user;
- public function __construct(PlUser &$user)
+ public function __construct(PlUser $user)
{
$this->user =& $user;
}
class UFC_WatchPromo extends UFC_UserRelated
{
private $grade;
- public function __construct(PlUser &$user, $grade = UserFilter::GRADE_ING)
+ public function __construct(PlUser $user, $grade = UserFilter::GRADE_ING)
{
parent::__construct($user);
$this->grade = $grade;