Вход Регистрация
Файл: Just Wallet 2.0.4/application/models/Contact_model.php
Строк: 86
<?php defined('BASEPATH') OR exit('No direct script access allowed');

class 
Contact_model extends CI_Model {

    
/**
     * @vars
     */
    
private $_db;


    
/**
     * Constructor
     */
    
function __construct()
    {
        
parent::__construct();

        
// define primary table
        
$this->_db 'emails';
    }


    
/**
     * Save generated CAPTCHA to database
     *
     * @param  array $data
     * @return boolean
     */
    
public function save_captcha($data=array())
    {
        
// CAPTCHA data required
        
if ($data)
        {
            
// insert CAPTCHA
            
$query $this->db->insert_string('captcha'$data);
            
$this->db->query($query);

            
// return
            
return TRUE;
        }

        return 
FALSE;
    }


    
/**
     * Verify CAPTCHA
     *
     * @param  string $captcha
     * @return boolean
     */
    
public function verify_captcha($captcha=NULL)
    {
        
// CAPTCHA string required
        
if ($captcha)
        {
            
// remove old CAPTCHA
            
$expiration time() - 7200// 2-hour limit
            
$this->db->query("DELETE FROM captcha WHERE captcha_time < {$expiration}");

            
// build query
            
$sql "
                SELECT
                    COUNT(*) AS count
                FROM captcha
                WHERE word = " 
$this->db->escape($captcha) . "
                    AND ip_address = '" 
$this->input->ip_address() . "'
                    AND captcha_time > '
{$expiration}'
            "
;

            
// execute query
            
$query $this->db->query($sql);

            
// return results
            
if ($query->row()->count 0)
            {
                return 
TRUE;
            }
        }

        return 
FALSE;
    }


    
/**
     * Save and email contact message
     *
     * @param  array $data
     * @param  array $settings
     * @return boolean
     */
    
public function save_and_send_message($data=array(), $settings=array())
    {
        
// post data and settings required
        
if ($data && $settings)
        {
            
// build query
            
$sql "
                INSERT INTO 
{$this->_db} (
                    name, email, title, message, created
                ) VALUES (
                    " 
$this->db->escape($data['name']) . ",
                    " 
$this->db->escape($data['email']) . ",
                    " 
$this->db->escape($data['title']) . ",
                    " 
$this->db->escape($data['message']) . ",
                    '" 
date('Y-m-d H:i:s') . "'
                )
            "
;

            
// execute query
            
$this->db->query($sql);

            if (
$id $this->db->insert_id())
            {
              return 
TRUE;

            }
        }

        return 
FALSE;
    }


    
/**
     * Get list of non-deleted users
     *
     * @param  int $limit
     * @param  int $offset
     * @param  array $filters
     * @param  string $sort
     * @param  string $dir
     * @return array|boolean
     */
    
function get_all($limit=0$offset=0$filters=array(), $sort='created'$dir='DESC')
    {
        
// start building query
        
$sql "
            SELECT SQL_CALC_FOUND_ROWS *
            FROM 
{$this->_db}
            WHERE 1 = 1
        "
;

        
// apply filters
        
if ( ! empty($filters))
        {
            foreach (
$filters as $key=>$value)
            {
                
$value $this->db->escape('%' $value '%');
                
$sql .= " AND {$key} LIKE {$value}";
            }
        }

        
// continue building query
        
$sql .= " ORDER BY {$sort} {$dir}";

        
// add limit and offset
        
if ($limit)
        {
            
$sql .= " LIMIT {$offset}{$limit}";
        }

        
// execute query
        
$query $this->db->query($sql);

        
// define results
        
if ($query->num_rows() > 0)
        {
            
$results['results'] = $query->result_array();
        }
        else
        {
            
$results['results'] = NULL;
        }

        
// get total count
        
$sql "SELECT FOUND_ROWS() AS total";
        
$query $this->db->query($sql);
        
$results['total'] = $query->row()->total;

        
// return results
        
return $results;
    }


    
/**
     * Set email message as read
     *
     * @param  int $id
     * @param  int $read_by
     * @return boolean
     */
    
public function read($id=NULL$read_by=NULL)
    {
        
// data required
        
if ($id and $read_by)
        {
            
// build query string
            
$sql "
                UPDATE 
{$this->_db}
                SET `read` = '" 
date('Y-m-d H:i:s') . "',
                    read_by = 
{$read_by}
                WHERE id = 
{$id}
            "
;

            
// execute query
            
$this->db->query($sql);

           
// return results
            
if ($this->db->affected_rows())
            {
                return 
TRUE;
            }
        }

        return 
FALSE;
    }

}
Онлайн: 0
Реклама