Advertisement
reynierpm

members_model

Sep 17th, 2012
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 7.18 KB | None | 0 0
  1. <?php
  2.  
  3. defined('BASEPATH') or exit('No direct script access allowed');
  4.  
  5. /**
  6.  * Modelo para la clase Miembros
  7.  *
  8.  * @author Reynier PĂ©rez Mira
  9.  * @package Members\Models
  10.  */
  11. class Members_m extends MY_Model {
  12.  
  13.     protected $_table = 'users';
  14.     protected $_table_profiles = 'profiles';
  15.     protected $_table_blog = 'cmvblog';
  16.     protected $_table_event = 'event';
  17.     protected $_table_friend = 'friend';
  18.     protected $_table_friend_list = 'friend_list';
  19.     protected $_table_privacy = 'privacy';
  20.     protected $_table_groups = 'groups';
  21.  
  22.     public function __construct() {
  23.         parent::__construct();
  24.     }
  25.  
  26.     // ------------------------------------------------------
  27.     // Miembros
  28.     // ------------------------------------------------------
  29.     public function getAllMembers($params = array()) {
  30.         $sql = "SELECT u.id, u.email, p.first_name, p.last_name, p.display_name, p.phone_1, p.phone_2 FROM " . $this->db->dbprefix($this->_table) . " u
  31.                LEFT JOIN " . $this->db->dbprefix($this->_table_profiles) . " p ON (p.user_id = u.id)";
  32.  
  33.         if (isset($params['query_string'])) {
  34.             $sql .= " WHERE (u.email LIKE '%" . $params['query_string'] . "%' OR u.username LIKE '%" . $params['query_string'] . "%')
  35.             AND u.id != " . intval($this->current_user->id) . " AND u.active = 1";
  36.         } else {
  37.             $sql .= " WHERE u.id != " . intval($this->current_user->id) . " AND u.active = 1";
  38.         }
  39.  
  40.         $sql .= " ORDER BY p.display_name DESC";
  41.  
  42.         if (isset($params ['limit']) && is_array($params ['limit']))
  43.             $sql .= " LIMIT " . (int) $params ['limit'] [1] . ", " . (int) $params ['limit'] [0];
  44.         elseif (isset($params ['limit']))
  45.             $sql .= " LIMIT " . (int) $params ['limit'];
  46.  
  47.         return $this->db->query($sql)->result();
  48.     }
  49.  
  50.     public function countAllMembers($params = array()) {
  51.         $sql = "SELECT
  52.             COUNT(*) AS num_rows
  53.         FROM " . $this->db->dbprefix($this->_table) . " u
  54.                LEFT JOIN " . $this->db->dbprefix($this->_table_profiles) . " p
  55.             ON (p.user_id = u.id)";
  56.  
  57.         if (isset($params['query_string'])) {
  58.             $sql .= " WHERE (u.email LIKE '%" . $params['query_string'] . "%' OR u.username LIKE '%" . $params['query_string'] . "%')
  59.             AND u.id != " . intval($this->current_user->id) . " AND u.active = 1";
  60.         } else {
  61.             $sql .= " WHERE u.id != " . intval($this->current_user->id) . " AND u.active = 1";
  62.         }
  63.  
  64.         return $this->db->query($sql)->row()->num_rows;
  65.     }
  66.  
  67.     /**
  68.      * Obtener los usuarios pertenecientes al grupo CAMARAS
  69.      */
  70.     public function getCamaras() {
  71.         $sql = "SELECT
  72.                    u.id,
  73.                    p.first_name,
  74.                    p.last_name,
  75.                    p.display_name
  76.                FROM " . $this->db->dbprefix($this->_table_profiles) . " p
  77.                LEFT JOIN " . $this->db->dbprefix($this->_table) . " u
  78.                    ON (p.user_id = u.id)
  79.                WHERE (u.group_id = 4 OR u.group_id = 5) AND u.active = 1
  80.                ORDER BY p.first_name ASC";
  81.  
  82.         return $this->db->query($sql)->result();
  83.     }
  84.  
  85.     // ------------------------------------------------------
  86.     // Busquedas
  87.     // ------------------------------------------------------
  88.  
  89.     /**
  90.      * Funcion que permite contar la cantidad de empresas, camaras, fedecamaras
  91.      * regionales
  92.      * y que es usada para paginar los resultados
  93.      *
  94.      * El campo users.group_id esta atado a valores especificos
  95.      * 3: Empresas
  96.      * 4: Camaras
  97.      * 5: Fedecamaras Regionales
  98.      *
  99.      * @param $qs string
  100.      * @return Arreglo de objetos
  101.      */
  102.     function count_companies($params = array()) {
  103.         $sql = "SELECT
  104.             COUNT(*) AS num_rows
  105.         FROM " . $this->db->dbprefix($this->_table) . " u
  106.                LEFT JOIN " . $this->db->dbprefix($this->_table_profiles) . " p
  107.             ON (p.user_id = u.id)";
  108.  
  109.         if (isset($params['query_string'])) {
  110.             $sql .= " WHERE (u.email LIKE '%" . $params['query_string'] . "%' OR u.username LIKE '%" . $params['query_string'] . "%')
  111.             AND (u.group_id = 3 OR u.group_id = 4 OR u.group_id = 5)
  112.             AND u.active = 1";
  113.         } else {
  114.             $sql .= " WHERE (u.group_id = 3 OR u.group_id = 4 OR u.group_id = 5) AND u.active = 1";
  115.         }
  116.  
  117.         return $this->db->query($sql)->row()->num_rows;
  118.     }
  119.  
  120.     /**
  121.      * Funcion para obtener los resultados de la busqueda
  122.      *
  123.      * El campo users.group_id esta atado a valores especificos
  124.      * 3: Empresas
  125.      * 4: Camaras
  126.      * 5: Fedecamaras Regionales
  127.      *
  128.      * @param $qs string
  129.      * @return Arreglo de objetos
  130.      */
  131.     function get_companies($params = array()) {
  132.         $sql = "SELECT u.id, u.email, p.first_name, p.last_name, p.display_name, p.phone_1, p.phone_2 FROM " . $this->db->dbprefix($this->_table) . " u
  133.                LEFT JOIN " . $this->db->dbprefix($this->_table_profiles) . " p ON (p.user_id = u.id)";
  134.  
  135.         if (isset($params['query_string'])) {
  136.             $sql .= " WHERE (u.email LIKE '%" . $params['query_string'] . "%' OR u.username LIKE '%" . $params['query_string'] . "%')
  137.             AND (u.group_id = 3 OR u.group_id = 4 OR u.group_id = 5)
  138.             AND u.active = 1";
  139.         } else {
  140.             $sql .= " WHERE (u.group_id = 3 OR u.group_id = 4 OR u.group_id = 5) AND u.active = 1";
  141.         }
  142.  
  143.         $sql .= " ORDER BY p.display_name DESC";
  144.  
  145.         if (isset($params ['limit']) && is_array($params ['limit']))
  146.             $sql .= " LIMIT " . (int) $params ['limit'] [1] . ", " . (int) $params ['limit'] [0];
  147.         elseif (isset($params ['limit']))
  148.             $sql .= " LIMIT " . (int) $params ['limit'];
  149.  
  150.         return $this->db->query($sql)->result();
  151.     }
  152.  
  153.     function count_filter($params = array()) {
  154.         $sql = "SELECT
  155.             COUNT(*) AS num_rows
  156.         FROM " . $this->db->dbprefix($this->_table) . " u
  157.                LEFT JOIN " . $this->db->dbprefix($this->_table_profiles) . " p
  158.             ON (p.user_id = u.id)";
  159.  
  160.         $sql .= " WHERE (u.email LIKE '%" . $params['query_string'] . "' OR u.username LIKE '%" . $params['query_string'] . "')
  161.             AND (u.group_id = 3 OR u.group_id = 4 OR u.group_id = 5)
  162.             AND u.active = 1";
  163.  
  164.         return $this->db->query($sql)->row()->num_rows;
  165.     }
  166.  
  167.     function get_filter($params = array()) {
  168.         $sql = "SELECT u.id, u.email, p.first_name, p.last_name, p.display_name, p.phone_1, p.phone_2 FROM " . $this->db->dbprefix($this->_table) . " u
  169.                LEFT JOIN " . $this->db->dbprefix($this->_table_profiles) . " p ON (p.user_id = u.id)";
  170.  
  171.         $sql .= " WHERE (u.email LIKE '%" . $params['query_string'] . "' OR u.username LIKE '%" . $params['query_string'] . "')
  172.             AND (u.group_id = 3 OR u.group_id = 4 OR u.group_id = 5)
  173.             AND u.active = 1";
  174.  
  175.         $sql .= " ORDER BY p.display_name DESC";
  176.  
  177.         if (isset($params ['limit']) && is_array($params ['limit']))
  178.             $sql .= " LIMIT " . (int) $params ['limit'] [1] . ", " . (int) $params ['limit'] [0];
  179.         elseif (isset($params ['limit']))
  180.             $sql .= " LIMIT " . (int) $params ['limit'];
  181.  
  182.         return $this->db->query($sql)->result();
  183.     }
  184.  
  185. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement