PluginProbe
WP Directory Kit / 1.5.9
WP Directory Kit v1.5.9
1.5.9 1.5.7 1.5.6 1.5.5 1.5.4 1.5.3 trunk 1.1.0 1.1.6 1.1.8 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.8 All 37 releases
← All changes | application/models/Location_m.php +75 -2 1.1.6 → 1.5.9 View file →
@@ -14,13 +14,49 @@
14 14 public $_timestamps = TRUE;
15 15 protected $_primary_filter = 'intval';
16 16 public $form_admin = array();
17 17 public $fields_list = NULL;
18 + public $allowedOrderBy = array(
19 + 'idlocation',
20 + 'parent_id',
21 + 'page_id',
22 + 'lang_code',
23 + 'date',
24 + 'parent_path',
25 + 'order_index',
26 + 'level',
27 + 'icon_id',
28 + 'image_id',
29 + 'font_icon_code',
30 + 'code',
31 + 'hubspot_id',
32 + 'location_title',
33 + 'marker_image_id',
34 + 'level_0_id',
35 + 'icon_path',
36 + 'image_path',
37 + 'marker_image_path',
38 + 'location_color',
39 + 'titles_for_search'
40 + );
18 41
19 42 public function __construct(){
20 43 parent::__construct();
44 +
45 + // Add allowedOrderBy with table + prefix format
46 + $table_prefix = $this->db->prefix . $this->_table_name . '.';
47 + $updatedAllowedOrderBy = array();
48 + foreach ($this->allowedOrderBy as $col) {
49 + $updatedAllowedOrderBy[] = $col;
50 + $updatedAllowedOrderBy[] = $table_prefix . $col;
51 + }
52 + $this->allowedOrderBy = array_unique($updatedAllowedOrderBy);
21 53 }
22 54
55 + public function getAllowedOrderBy() {
56 + return $this->allowedOrderBy;
57 + }
58 +
23 59 /* [START] For dynamic data table */
24 60
25 61 public function get_available_fields()
26 62 {
@@ -49,13 +85,43 @@
49 85 public function get_pagination($limit, $offset, $where = array(), $order_by = NULL)
50 86 {
51 87 $this->load->model('listing_m');
52 88
53 - $this->db->select($this->_table_name.'.*, COUNT('.$this->listing_m->_table_name.'.post_id) AS listings_counter');
89 +
90 + $this->db->select($this->_table_name.'.*, COUNT(DISTINCT '.$this->listing_m->_table_name.'.post_id) AS listings_counter, MAX('.$this->_table_name.'.level) as level');
91 +
92 + $this->db->join($this->_table_name.' AS location_table ON (CONCAT(",", location_table.parent_path, ",") LIKE CONCAT("%,", '.$this->_table_name.'.idlocation ,",%"))', TRUE, 'LEFT');
93 + $this->db->join($this->listing_m->_table_name.' ON (
94 + ('.$this->listing_m->_table_name.'.is_activated = 1 AND '.$this->listing_m->_table_name.'.is_approved = 1) AND
95 + ('.$this->listing_m->_table_name.'.location_id = '.$this->_table_name.'.idlocation
96 + OR '.$this->listing_m->_table_name.'.location_id = location_table.idlocation)
97 +
98 + )', TRUE, 'LEFT');
99 +
54 100 $this->db->from($this->_table_name);
101 + $this->db->where($where);
102 + $this->db->limit($limit);
103 + $this->db->offset($offset);
104 + $this->db->group_by('idlocation');
55 105
56 - $this->db->join($this->listing_m->_table_name.' ON '.$this->listing_m->_table_name.'.location_id = '.$this->_table_name.'.idlocation', TRUE, 'LEFT');
106 + if(!empty($order_by)){
107 + $this->db->order_by($order_by);
108 + } else {
109 + $this->db->order_by($this->_order_by);
110 + }
57 111
112 + $query = $this->db->get();
113 +
114 + if ($this->db->num_rows() > 0)
115 + return $this->db->results();
116 +
117 + return array();
118 + }
119 +
120 + public function get_pagination_simple($limit, $offset, $where = array(), $order_by = NULL)
121 + {
122 + $this->load->model('listing_m');
123 +
58 124 $this->db->from($this->_table_name);
59 125 $this->db->where($where);
60 126 $this->db->limit($limit);
61 127 $this->db->offset($offset);
@@ -93,8 +159,9 @@
93 159
94 160 if($this->_timestamps === TRUE && !isset($data['date']))
95 161 $data['date'] = current_time( 'mysql' );
96 162
163 + $data['level_0_id'] = 0;
97 164 $data['level'] = 0;
98 165 $data['parent_path'] = '';
99 166
100 167 if(!empty($data['parent_id']))
@@ -104,8 +171,14 @@
104 171 if(isset($parent[0]))
105 172 {
106 173 $data['level'] = $parent[0]->level + 1;
107 174 $data['parent_path'] = $parent[0]->parent_path.(!empty($parent[0]->parent_path)?',':'').$parent[0]->idlocation;
175 +
176 + if(strpos($data['parent_path'], ',') !== FALSE) {
177 + $data['level_0_id'] = substr($data['parent_path'],0,strpos($data['parent_path'], ','));
178 + } else {
179 + $data['level_0_id'] = $data['parent_path'];
180 + }
108 181 }
109 182 }
110 183
111 184 if(empty($data['order_index']))