<?php /** * SegmentPlugin for phplist. * * This file is a part of SegmentPlugin. * * SegmentPlugin is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * CriteriaPlugin is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * @category phplist * * @author Duncan Cameron * @copyright 2014-2016 Duncan Cameron * @license http://www.gnu.org/licenses/gpl.html GNU General Public License, Version 3 */ /** * @category phplist */ class SegmentPlugin_AttributeConditionCheckbox extends SegmentPlugin_Condition { public function operators() { return array( SegmentPlugin_Operator::IS => s('is checked'), SegmentPlugin_Operator::ISNOT => s('is not checked'), ); } public function display($op, $value, $namePrefix) { return ''; } public function joinQuery($operator, $value) { $ua = $this->createUniqueAlias('ua'); $op = $operator == SegmentPlugin_Operator::IS ? '=' : '!='; $r = new stdClass(); $r->join = "LEFT JOIN {$this->tables['user_attribute']} $ua ON u.id = $ua.userid AND $ua.attributeid = {$this->field['id']} "; $r->where = "COALESCE($ua.value, '') $op 'on'"; return $r; } }