Source for file UserList.class.php

Documentation is available at UserList.class.php

  1. <?php
  2. /**
  3.  * R.E. Login 2.0 - Felhasználó lista - class/UserList.class.php
  4.  *
  5.  * Felhasználólista osztálya<br />
  6.  * <br />
  7.  * <b>Dátum:</b> 2010.04.02.
  8.  *
  9.  * <b>Szerző weboldala:</b> {@link http://rimelek.hu/}<br />
  10.  * <b>Login weblapja:</b> {@link http://rimelek.hu/meghivos-loginrendszer-r-e-login-v2-0 R.E. Login v2.0}
  11.  *
  12.  * @author Takács Ákos (Rimelek), programmer [at] rimelek [dot] hu
  13.  * @copyright Copyright (C) 2010, Takács Ákos
  14.  * @license http://www.gnu.org/licenses/gpl.html
  15.  * @package RELogin
  16.  * @version 2.0
  17.  */
  18.  
  19. /**
  20.  * @ignore
  21.  */
  22. require_once System::getIncLoginDir().'classes/User.class.php';
  23.  
  24. /**
  25.  * @ignore
  26.  */
  27. require_once System::getIncLoginDir().'classes/UserFilter.class.php';
  28.  
  29. /**
  30.  * Felhasználó lista
  31.  *
  32.  * {@link UserFilter} -el szűrt felhasználó listát hoz létre.
  33.  * A példány maga az iterálható lista, ami {@link User} objektumokat tartalmaz.
  34.  *
  35.  * <b>Szerző weboldala:</b> {@link http://rimelek.hu/}<br />
  36.  * <b>Login weblapja:</b> {@link http://rimelek.hu/meghivos-loginrendszer-r-e-login-v2-0 R.E. Login v2.0}
  37.  *
  38.  * @author Takács Ákos (Rimelek), programmer [at] rimelek [dot] hu
  39.  * @copyright Copyright (C) 2010, Takács Ákos
  40.  * @license http://www.gnu.org/licenses/gpl.html
  41.  * @package RELogin
  42.  */
  43. class UserList extends IsMySQLListClass
  44. {
  45.     /**
  46.      *
  47.      * @param array $fields Lekérdezendő mezők listája.
  48.      *         array(tábla1=>array(érték1,érték2,...),...)
  49.      *         formátumban
  50.      * @param UserFilter $filter 
  51.      */
  52.     public function  __construct($fields=null,UserFilter $filter=null)
  53.     {
  54.         parent::__construct(self::getTables($fields)'User');  
  55.         parent::page(self::getSql($filter),10);
  56.     }
  57.  
  58.  
  59.     /**
  60.      * Lekérdezéshez az SQL kód összeállítása
  61.      *
  62.      * @param UserFilter $filter 
  63.      * @return string From utáni SQL kód
  64.      */
  65.     public static function getSql(UserFilter $filter=null)
  66.     {
  67.         $sql =
  68.             Config::DBPREF."users as users left join ".
  69.             Config::DBPREF."profiles as profiles using(userid)";
  70.  
  71.         if (is_null($filter)) return $sql;
  72.         $sql .= $filter->filterString();
  73.         return $sql;
  74.     }
  75.  
  76.     /**
  77.      *
  78.      * @param array $fields lekérdezendő mezők és táblák listája.
  79.      *             Ha null, akkor minden mező.
  80.      * @return $fields lekérdezendő mezők és táblák listája
  81.      */
  82.     public static function getTables($fields=null)
  83.     {
  84.         if(!isset($fields['users']or !is_array($fields['users']or count($fields['users'])==0)
  85.         {
  86.             $fields['users'array('*');
  87.         }
  88.         if(!isset($fields['profiles']or !is_array($fields['profiles']or count($fields['profiles'])==0)
  89.         {
  90.             $fields['profiles'array('*');
  91.         
  92.         $tables array(
  93.             Config::DBPREF.'users as users'=>$fields['users'],
  94.             Config::DBPREF.'profiles as profiles'=>$fields['profiles']
  95.         );
  96.         
  97.         return $tables;
  98.     }
  99.  
  100.     /**
  101.      * Mező érték keresése a users, vagy profiles táblában
  102.      *
  103.      * Megszámolja hány olyan rekord van, ahol a $field mező értéke $value
  104.      *
  105.      * @param string $field Mező neve
  106.      * @param mixed $value Mező értéke
  107.      * @param bool $inprofiles Ha True, akkor a profiles táblában keres,
  108.      *                 ha false, akkor a users táblában
  109.      * @return int 
  110.      */
  111.     public static function exists($field,$value,$inprofiles=true)
  112.     {
  113.         $table Config::DBPREF.(($inprofiles'profiles' 'users');
  114.  
  115.         $value mysql_real_escape_string($value);
  116.         $query mysql_query("select userid from `$table` where `$field` = '$value'");
  117.  
  118.         $ret=array();
  119.         while ($row mysql_fetch_row($query))
  120.         {
  121.             $ret[$row[0];
  122.         
  123.         return count($ret$ret false;
  124.     }
  125.  
  126.     /**
  127.      * Felhasználók száma összesen
  128.      *
  129.      * @return int 
  130.      */
  131.     public static function countUsers()
  132.     {
  133.         return (int)array_shift(mysql_fetch_row(
  134.                 mysql_query('select count(*) from '.Config::DBPREF.'users')));
  135.     }
  136. }
  137. ?>

Documentation generated on Sun, 04 Apr 2010 22:43:54 +0200 by phpDocumentor 1.4.1