Source for file UserFilter.class.php
Documentation is available at UserFilter.class.php
* R.E. Login 2.0 - Filter - class/UserFilter.class.php
* Felhasználólista szűrő<br />
* <b>Dátum:</b> 2010.04.02.
* <b>Szerző weboldala:</b> {@link http://rimelek.hu/}<br />
* <b>Login weblapja:</b> {@link http://rimelek.hu/meghivos-loginrendszer-r-e-login-v2-0 R.E. Login v2.0}
* @author Takács Ákos (Rimelek), programmer [at] rimelek [dot] hu
* @copyright Copyright (C) 2010, Takács Ákos
* @license http://www.gnu.org/licenses/gpl.html
* Megadhatók filterek, ami alapján szűri a felhasználókat a listában.
* Például online van-e, mi egy mező értéke illetve érvényes-e az e-mail címe.
* <b>Szerző weboldala:</b> {@link http://rimelek.hu/}<br />
* <b>Login weblapja:</b> {@link http://rimelek.hu/meghivos-loginrendszer-r-e-login-v2-0 R.E. Login v2.0}
* @author Takács Ákos (Rimelek), programmer [at] rimelek [dot] hu
* @copyright Copyright (C) 2010, Takács Ákos
* @license http://www.gnu.org/licenses/gpl.html
const EMAIL_VALID =
'email_valid';
const EMAIL_INVALID =
'email_invalid';
const EMAIL_ALL =
'email_all';
const LIKE_LEFT =
'like_left';
const LIKE_RIGHT =
'like_right';
const LIKE_BOTH =
'like_both';
const LIKE_EQUAL =
'like_equal';
const ONLINE_YES =
'online_yes';
const ONLINE_NO =
'online_no';
* Online és offline felhazsnálók is.
const ONLINE_YES_NO =
'online_yes_no';
private $filters =
array();
public function __construct()
* Online filter felvétele
* @param string $online Értéke lehet {@link UserFilter::ONLINE_YES},
* {@link UserFilter::ONLINE_NO}, {@link UserFilter::ONLINE_YES_NO}
$this->filters['online'] =
" (users.onlinestatus = 1 and
users.refreshtime is not null and
timestampdiff(SECOND, users.refreshtime, '".
$this->filters['online'] =
" (users.onlinestatus = 0 or
users.refreshtime is null or
timestampdiff(SECOND, users.refreshtime, '".
unset
($this->filters['online']);
* Mező értéke szerint szűri a felhasználót
* @param string $field Mező neve
* @param mixed $value Mező értéke
* @param string $like Összehasonlítás módja Lehet
* {@link UserFilter::LIKE_LEFT}, {@link UserFilter::LIKE_RIGHT},
* {@link UserFilter::LIKE_BOTH}, {@link UserFilter::LIKE_EQUAL}
public function addLikeFilter($field, $value,$like=
self::LIKE_BOTH)
$this->filters['like'][] =
array(
* @see UserFilter::addLikeFilter()
* @param string $field Mező neve
* @param mixed $value Mező értéke
* Email érvényesség szerinti szűrés
* @param string $type {@link UserFilter::EMAIL_VALID}, {@link UserFilter::EMAIL_INVALID}
if ($type ==
self::EMAIL_VALID)
$this->filters['valid_email'] =
" profiles.useremail = users.useremail ";
else if ($type ==
self::EMAIL_INVALID)
$this->filters['valid_email'] =
" profiles.useremail != users.useremail ";
* Visszaadja az sql where -t. A where kulcsszóval együtt, ha szükséges.
if (!count($this->filters)) return '';
foreach ($this->filters as $name =>
&$filter)
foreach ($filter as $item)
$left =
($like ==
self::LIKE_BOTH or $like ==
self::LIKE_LEFT)
$right =
($like ==
self::LIKE_BOTH or $like ==
self::LIKE_RIGHT)
$op =
($like ==
self::LIKE_EQUAL)
$like_filter[] =
$field.
$op.
"'".
$left.
$value.
$right.
"'";
$sql .=
" ".
implode(' and ',$like_filter).
" ";
Documentation generated on Sun, 04 Apr 2010 22:43:53 +0200 by phpDocumentor 1.4.1