3 /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
6 * Members list filters and paginator
10 * Copyright © 2009-2012 The Galette Team
12 * This file is part of Galette (http://galette.tuxfamily.org).
14 * Galette is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU General Public License as published by
16 * the Free Software Foundation, either version 3 of the License, or
17 * (at your option) any later version.
19 * Galette is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 * GNU General Public License for more details.
24 * You should have received a copy of the GNU General Public License
25 * along with Galette. If not, see <http://www.gnu.org/licenses/>.
30 * @author Johan Cwiklinski <johan@x-tnd.be>
31 * @copyright 2009-2012 The Galette Team
32 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL License 3.0 or (at your option) any later version
34 * @link http://galette.tuxfamily.org
35 * @since march, 3rd 2009
38 namespace Galette\Filters
;
40 use Galette\Core\Pagination
as Pagination
;
41 use Galette\Repository\Members
as Members
;
44 * Members list filters and paginator
50 * @author Johan Cwiklinski <johan@x-tnd.be>
51 * @copyright 2009-2012 The Galette Team
52 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL License 3.0 or (at your option) any later version
53 * @link http://galette.tuxfamily.org
56 class MembersList
extends Pagination
60 private $_field_filter;
61 private $_membership_filter;
62 private $_account_status_filter;
63 private $_email_filter;
66 private $_unreachable;
71 public function __construct()
77 * Returns the field we want to default set order to
79 * @return string field name
81 protected function getDefaultOrder()
87 * Reinit default parameters
91 public function reinit()
94 $this->_filter_str
= null;
95 $this->_field_filter
= null;
96 $this->_membership_filter
= null;
97 $this->_account_status_filter
= null;
98 $this->_email_filter
= Members
::FILTER_DC_EMAIL
;
99 $this->_selected
= array();
103 * Global getter method
105 * @param string $name name of the property we want to retrive
107 * @return object the called property
109 public function __get($name)
114 '[MembersList] Getting property `' . $name . '`',
118 if ( in_array($name, $this->pagination_fields
) ) {
119 return parent
::__get($name);
125 'account_status_filter',
130 if (in_array($name, $return_ok)) {
135 '[MembersList] Unable to get proprety `' .$name . '`',
143 * Global setter method
145 * @param string $name name of the property we want to assign a value to
146 * @param object $value a relevant value for the property
150 public function __set($name, $value)
154 if ( in_array($name, $this->pagination_fields
) ) {
155 parent
::__set($name, $value);
158 '[MembersList] Setting property `' . $name . '`',
165 if (is_array($value)) {
167 $this->$name = $value;
170 '[MembersList] Value for property `' . $name .
171 '` should be an array (' . gettype($value) . ' given)',
178 $this->$name = $value;
181 case 'membership_filter':
182 case 'account_status_filter':
183 if ( is_numeric($value) ) {
185 $this->$name = $value;
188 '[MembersList] Value for property `' . $name .
189 '` should be an integer (' . gettype($value) . ' given)',
196 case Members
::FILTER_DC_EMAIL
:
197 case Members
::FILTER_W_EMAIL
:
198 case Members
::FILTER_WO_EMAIL
:
199 $this->_email_filter
= $value;
203 '[MembersList] Value for email filter should be either ' .
204 Members
::FILTER_DC_EMAIL
. ', ' .
205 Members
::FILTER_W_EMAIL
. ' or ' .
206 Members
::FILTER_WO_EMAIL
. ' (' . $value . ' given)',
214 '[MembersList] Unable to set proprety `' . $name . '`',
225 * @param Zend_Db_Select $select Original select
229 public function setLimit($select)
231 return $this->setLimits($select);
237 * @param int $c Count
241 public function setCounter($c)
243 $this->counter
= (int)$c;