kernel
[ class tree: kernel ] [ index: kernel ] [ all elements ]

Source for file ban_lib.php

Documentation is available at ban_lib.php

  1. <?php
  2. /**
  3.  * User access Banning Library
  4.  *
  5.  * @package kernel
  6.  * @version $Header: /cvsroot/bitweaver/_bit_tidbits/ban_lib.php,v 1.5 2007/01/06 09:46:26 squareing Exp $
  7.  */
  8.  
  9. /**
  10.  * User access Banning Library
  11.  *
  12.  * @package kernel
  13.  */
  14. class BanLib extends BitBase {
  15.     function BanLib({                
  16.     BitBase::BitBase();
  17.     }
  18.  
  19.     function get_rule($ban_id{
  20.         $query "select * from `".BIT_DB_PREFIX."tidbits_banning` where `ban_id`=?";
  21.  
  22.         $result $this->mDb->query($query,array($ban_id));
  23.         $res $result->fetchRow();
  24.         $aux array();
  25.         $query2 "select `package` from `".BIT_DB_PREFIX."tidbits_banning_packages` where `ban_id`=?";
  26.         $result2 $this->mDb->query($query2,array($ban_id));
  27.         $aux array();
  28.  
  29.         while ($res2 $result2->fetchRow()) {
  30.             $aux[$res2['package'];
  31.         }
  32.  
  33.         $res['packages'$aux;
  34.         return $res;
  35.     }
  36.  
  37.     function remove_rule($ban_id{
  38.         $query "delete from `".BIT_DB_PREFIX."tidbits_banning` where `ban_id`=?";
  39.  
  40.         $this->mDb->query($query,array($ban_id));
  41.         $query "delete from `".BIT_DB_PREFIX."tidbits_banning_packages` where `ban_id`=?";
  42.         $this->mDb->query($query,array($ban_id));
  43.     }
  44.  
  45.     function list_rules($offset$max_records$sort_mode$find$where ''{
  46.         global $gBitSystem;
  47.         if ($find{
  48.             $findesc '%' strtoupper$find '%';
  49.             $mid " WHERE ((UPPER(`ban_message`) LIKE ?) OR (UPPER(`title`) LIKE ?))";
  50.             $bindvars=array($findesc,$findesc);
  51.         else {
  52.             $mid "";
  53.             $bindvars=array();
  54.         }
  55.  
  56.         // DB abstraction: TODO
  57.         if ($where{
  58.             if ($mid{
  59.                 $mid .= " and ($where";
  60.             else {
  61.                 $mid "where ($where";
  62.             }
  63.         }
  64.  
  65.         $query "select * from `".BIT_DB_PREFIX."tidbits_banning$mid order by ".$this->mDb->convertSortmode($sort_mode);
  66.         $query_cant "select count(*) from `".BIT_DB_PREFIX."tidbits_banning$mid";
  67.         $result $this->mDb->query($query,$bindvars,$max_records,$offset);
  68.         $cant $this->mDb->getOne($query_cant,$bindvars);
  69.         $ret array();
  70.  
  71.         while ($res $result->fetchRow()) {
  72.             $aux array();
  73.  
  74.             $query2 "select * from `".BIT_DB_PREFIX."tidbits_banning_packages` where `ban_id`=?";
  75.             $result2 $this->mDb->query($query2,array($res['ban_id']));
  76.  
  77.             while ($res2 $result2->fetchRow()) {
  78.                 $aux[$res2;
  79.             }
  80.  
  81.             $res['packages'$aux;
  82.             $ret[$res;
  83.         }
  84.  
  85.         $retval array();
  86.         $retval["data"$ret;
  87.         $retval["cant"$cant;
  88.         $now $gBitSystem->getUTCTime();
  89.         $query "SELECT `ban_id` FROM `".BIT_DB_PREFIX."tidbits_banning` WHERE `use_dates`=? AND `date_to` < ?";
  90.         $result $this->mDb->query($query,array('y',$now));
  91.  
  92.         while ($res $result->fetchRow()) {
  93.             $this->remove_rule($res['ban_id']);
  94.         }
  95.  
  96.         return $retval;
  97.     }
  98.  
  99.     /*
  100.     ban_id integer(12) not null auto_increment,
  101.       mode enum('user','ip'),
  102.       title varchar(200),
  103.       ip1 integer(3),
  104.       ip2 integer(3),
  105.       ip3 integer(3),
  106.       ip4 integer(3),
  107.       user varchar(200),
  108.       date_from timestamp,
  109.       date_to timestamp,
  110.       use_dates char(1),
  111.       ban_message text,
  112.       primary key(ban_id)
  113.       */
  114.     function replace_rule($ban_id$mode$title$ip1$ip2$ip3$ip4$user$date_from$date_to$use_dates$message,
  115.         $packages{
  116.  
  117.         if ($ban_id{
  118.             $query " UPDATE `".BIT_DB_PREFIX."tidbits_banning` SET
  119.               `title`=?,
  120.               `ip1`=?,
  121.               `ip2`=?,
  122.               `ip3`=?,
  123.               `ip4`=?,
  124.               `ban_user`=?,
  125.               `date_from` = ?,
  126.               `date_to` = ?,
  127.               `use_dates` = ?,
  128.               `ban_message` = ?
  129.               WHERE `ban_id`=?
  130.           ";
  131.  
  132.             $this->mDb->query($query,array($title,$ip1,$ip2,$ip3,$ip4,$user,$date_from,$date_to,$use_dates,$message,$ban_id));
  133.         else {
  134.             global $gBitSystem;
  135.             $now $gBitSystem->getUTCTime();
  136.  
  137.             $query "INSERT INTO `".BIT_DB_PREFIX."tidbits_banning`(`mode`,`title`,`ip1`,`ip2`,`ip3`,`ip4`,`ban_user`,`date_from`,`date_to`,`use_dates`,`ban_message`,`created`)
  138.         values(?,?,?,?,?,?,?,?,?,?,?,?)";
  139.             $this->mDb->query($query,array($mode,$title,$ip1,$ip2,$ip3,$ip4,$user,$date_from,$date_to,$use_dates,$message,$now));
  140.             $ban_id $this->mDb->getOne("SELECT MAX(`ban_id`) FROM `".BIT_DB_PREFIX."tidbits_banning` WHERE `created`=?",array($now));
  141.         }
  142.  
  143.         $query "DELETE FROM `".BIT_DB_PREFIX."tidbits_banning_packages` WHERE `ban_id`=?";
  144.         $this->mDb->query($query,array($ban_id));
  145.  
  146.         foreach ($packages as $package{
  147.             $query "INSERT INTO `".BIT_DB_PREFIX."tidbits_banning_packages`(`ban_id`,`package`) VALUES(?,?)";
  148.  
  149.             $this->mDb->query($query,array($ban_id,$package));
  150.         }
  151.     }
  152. }
  153.  
  154. $banlib new BanLib();
  155.  
  156. ?>

Documentation generated on Thu, 15 Feb 2007 20:28:48 +0000 by phpDocumentor 1.3.0