Вход Регистрация
Файл: oc-includes/osclass/model/BanRule.php
Строк: 99
<?php if ( !defined('ABS_PATH') ) exit('ABS_PATH is not loaded. Direct access is not allowed.');

/*
 * Copyright 2014 Osclass
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

    /**
     * BanRule DAO
     */
    
class BanRule extends DAO
    
{
        
/**
         *
         * @var type
         */
        
private static $instance;

        public static function 
newInstance()
        {
            if( !
self::$instance instanceof self ) {
                
self::$instance = new self;
            }
            return 
self::$instance;
        }

        
/**
         *
         */
        
function __construct()
        {
            
parent::__construct();
            
$this->setTableName('t_ban_rule');
            
$this->setPrimaryKey('pk_i_id');
            
$array_fields = array(
                
'pk_i_id',
                
's_name',
                
's_ip',
                
's_email'
            
);
            
$this->setFields($array_fields);
        }

        
/**
         * Return list of ban rules
         *
         * @access public
         * @since 3.1
         * @param int $start
         * @param int $end
         * @param string $order_column
         * @param string $order_direction
         * @parma string $name
         * @return array
         */
        
public function search($start 0$end 10$order_column 'pk_i_id'$order_direction 'DESC'$name '')
        {
            
// SET data, so we always return a valid object
            
$rules = array();
            
$rules['rows']          = 0;
            
$rules['total_results'] = 0;
            
$rules['rules']         = array();

            
$this->dao->select('SQL_CALC_FOUND_ROWS *');
            
$this->dao->from($this->getTableName());
            
$this->dao->orderBy($order_column$order_direction);
            
$this->dao->limit($start$end);
            if( 
$name != '' ) {
                
$this->dao->like('s_name'$name);
            }
            
$rs $this->dao->get();

            if( 
$rs == false ) {
                return 
$rules;
            }

            
$rules['rules'] = $rs->result();

            
$rsRows $this->dao->query('SELECT FOUND_ROWS() as total');
            
$data   $rsRows->row();
            if( 
$data['total'] ) {
                
$rules['total_results'] = $data['total'];
            }

            
$rsTotal $this->dao->query('SELECT COUNT(*) as total FROM '.$this->getTableName());
            
$data   $rsTotal->row();
            if( 
$data['total'] ) {
                
$rules['rows'] = $data['total'];
            }

            return 
$rules;
        }

        
/**
         * Return number of ban rules
         *
         * @since 3.1
         * @return int
         */
        
public function countRules()
        {
            
$this->dao->select("COUNT(*) as i_total");
            
$this->dao->from($this->getTableName());

            
$result $this->dao->get();

            if( 
$result == false || $result->numRows() == 0) {
                return 
0;
            }

            
$row $result->row();
            return 
$row['i_total'];
        }

    }

?>
Онлайн: 1
Реклама