| @@ -9,9 +9,79 @@ | ||
| 9 | 9 | |
| 10 | 10 | public function index() |
| 11 | 11 | { |
| 12 | 12 | $this->load->model('messages_m'); |
| 13 | + $this->load->model('listing_m'); | |
| 14 | + $this->data['form'] = &$this->form; | |
| 13 | 15 | |
| 16 | + $dbusers = get_users( array( 'search' => '', | |
| 17 | + 'orderby' => 'display_name', 'order' => 'ASC')); | |
| 18 | + $users = array(); | |
| 19 | + foreach($dbusers as $dbuser) { | |
| 20 | + $this->data['users'][wmvc_show_data('ID', $dbuser)] = '#'.wmvc_show_data('ID', $dbuser).', '.wmvc_show_data('display_name', $dbuser); | |
| 21 | + } | |
| 22 | + | |
| 23 | + /* [Table Actions Bulk Form] */ | |
| 24 | + | |
| 25 | + $table_action = $this->input->post_get('table_action'); | |
| 26 | + $action = $this->input->post_get('action'); | |
| 27 | + $posts_selected = $this->input->post_get('post'); | |
| 28 | + | |
| 29 | + if(!empty($table_action)) | |
| 30 | + { | |
| 31 | + switch ($action) { | |
| 32 | + case 'delete': | |
| 33 | + $this->bulk_delete($posts_selected); | |
| 34 | + break; | |
| 35 | + case 'deactivate': | |
| 36 | + $this->bulk_deactivate($posts_selected); | |
| 37 | + break; | |
| 38 | + case 'activate': | |
| 39 | + $this->bulk_activate($posts_selected); | |
| 40 | + break; | |
| 41 | + default: | |
| 42 | + } | |
| 43 | + } | |
| 44 | + | |
| 45 | + /* [Search Form] */ | |
| 46 | + | |
| 47 | + global $wpdb; | |
| 48 | + $wp_usermeta_table = $wpdb->users; | |
| 49 | + | |
| 50 | + $controller = 'messages'; | |
| 51 | + $columns = array($this->messages_m->_table_name.'.idmessage',$this->listing_m->_table_name.'.user_id_editor',$wp_usermeta_table.'.display_name',$wp_usermeta_table.'.user_login', $wp_usermeta_table.'.user_email', 'search',$this->messages_m->_table_name.'.email_sender', $this->messages_m->_table_name.'.message'); | |
| 52 | + $external_columns = array($this->listing_m->_table_name.'.user_id_editor',$wp_usermeta_table.'.display_name',$wp_usermeta_table.'.user_login', $wp_usermeta_table.'.user_email',$this->messages_m->_table_name.'.email_sender', $this->messages_m->_table_name.'.message'); | |
| 53 | + | |
| 54 | + $this->data['order_by'] = array('idmessage DESC' => __('ID DESC', 'wpdirectorykit'), | |
| 55 | + 'idmessage ASC' => __('ID ASC', 'wpdirectorykit'), | |
| 56 | + 'display_name DESC' => __('User DESC', 'wpdirectorykit'), | |
| 57 | + 'display_name ASC' => __('User ASC', 'wpdirectorykit'), | |
| 58 | + ); | |
| 59 | + | |
| 60 | + $rules = array( | |
| 61 | + array( | |
| 62 | + 'field' => 'search', | |
| 63 | + 'label' => __('Search tag', 'wpdirectorykit'), | |
| 64 | + 'rules' => '' | |
| 65 | + ), | |
| 66 | + array( | |
| 67 | + 'field' => 'order_by', | |
| 68 | + 'label' => __('Order By', 'wpdirectorykit'), | |
| 69 | + 'rules' => '' | |
| 70 | + ), | |
| 71 | + array( | |
| 72 | + 'field' => 'user_id_editor', | |
| 73 | + 'label' => __('User', 'wpdirectorykit'), | |
| 74 | + 'rules' => '' | |
| 75 | + ), | |
| 76 | + ); | |
| 77 | + | |
| 78 | + $this->data['db_data'] = $this->messages_m->prepare_data($this->input->get(), $rules); | |
| 79 | + | |
| 80 | + | |
| 81 | + $this->db->join($this->db->prefix.'wdk_listings ON '.$this->db->prefix.'wdk_listings.post_id = '.$this->messages_m->_table_name.'.post_id', NULL, 'LEFT'); | |
| 82 | + $this->db->join($wp_usermeta_table.' ON '.$this->db->prefix.'wdk_listings.user_id_editor = '.$wp_usermeta_table.'.ID', NULL, 'LEFT'); | |
| 83 | + wdk_messages_prepare_search_query_GET($columns, $controller.'_m', $external_columns); | |
| 14 | 84 | $total_items = $this->messages_m->total(); |
| 15 | 85 | |
| 16 | 86 | $current_page = 1; |
| 17 | 87 | if(isset($_GET['paged'])) |
| @@ -26,10 +96,17 @@ | ||
| 26 | 96 | |
| 27 | 97 | if(function_exists('wmvc_wp_paginate')) |
| 28 | 98 | $this->data['pagination_output'] = wmvc_wp_paginate($total_items, $per_page); |
| 29 | 99 | |
| 100 | + wdk_messages_prepare_search_query_GET($columns, $controller.'_m', $external_columns); | |
| 101 | + | |
| 102 | + $post_table = $this->db->prefix.'posts'; | |
| 103 | + $this->db->select($this->messages_m->_table_name.'.*,'.$this->db->prefix.'wdk_listings.*, '.$this->messages_m->_table_name.'.date AS message_date,'.$post_table.'.post_title,'.$wp_usermeta_table.'.display_name,'.$wp_usermeta_table.'.user_login,' | |
| 104 | + .$wp_usermeta_table.'.user_email'); | |
| 105 | + $this->db->join($this->db->prefix.'wdk_listings ON '.$this->db->prefix.'wdk_listings.post_id = '.$this->messages_m->_table_name.'.post_id', NULL, 'LEFT'); | |
| 106 | + $this->db->join($wp_usermeta_table.' ON '.$this->db->prefix.'wdk_listings.user_id_editor = '.$wp_usermeta_table.'.ID', NULL, 'LEFT'); | |
| 30 | 107 | $this->data['messages'] = $this->messages_m->get_pagination($per_page, $offset); |
| 31 | - | |
| 108 | + | |
| 32 | 109 | // Load view |
| 33 | 110 | $this->load->view('wdk_messages/index', $this->data); |
| 34 | 111 | } |
| 35 | 112 | |
| @@ -36,21 +113,41 @@ | ||
| 36 | 113 | public function delete() |
| 37 | 114 | { |
| 38 | 115 | $id = (int) $this->input->post_get('id'); |
| 39 | 116 | $paged = (int) $this->input->post_get('paged'); |
| 117 | + | |
| 118 | + // Check _wpnonce | |
| 119 | + check_admin_referer( 'wdk-messages-delete_'.$id, '_wpnonce' ); | |
| 40 | 120 | |
| 41 | 121 | $this->load->model('messages_m'); |
| 42 | - | |
| 122 | + wdk_access_check('messages_m', $id); | |
| 43 | 123 | $this->messages_m->delete($id); |
| 44 | 124 | |
| 45 | 125 | wp_redirect(admin_url("admin.php?page=wdk_messages&paged=$paged")); |
| 46 | 126 | } |
| 127 | + | |
| 128 | + public function bulk_delete($posts_selected) | |
| 129 | + { | |
| 130 | + // Check _wpnonce | |
| 131 | + check_admin_referer( 'wdk-messages-bulk', '_wpnonce'); | |
| 132 | + | |
| 133 | + $this->load->model('messages_m'); | |
| 134 | + | |
| 135 | + foreach($posts_selected as $id) | |
| 136 | + { | |
| 137 | + wdk_access_check('messages_m', $id); | |
| 138 | + $this->messages_m->delete($id); | |
| 139 | + } | |
| 140 | + | |
| 141 | + wp_redirect(admin_url("admin.php?page=wdk_messages&is_updated=true&custom_message=".urlencode(esc_html__('Selected Messages removed', 'wpdirectorykit')))); | |
| 142 | + exit(); | |
| 143 | + } | |
| 47 | 144 | |
| 48 | 145 | public function edit() |
| 49 | 146 | { |
| 50 | 147 | $this->load->model('messages_m'); |
| 51 | 148 | |
| 52 | - $id = $this->input->post_get('id'); | |
| 149 | + $id = (int) $this->input->post_get('id'); | |
| 53 | 150 | wdk_access_check('messages_m', $id); |
| 54 | 151 | $this->data['db_data'] = NULL; |
| 55 | 152 | |
| 56 | 153 | $this->data['form'] = &$this->form; |
| @@ -74,9 +171,9 @@ | ||
| 74 | 171 | 'rules' => '' |
| 75 | 172 | ), |
| 76 | 173 | array( |
| 77 | 174 | 'field' => 'is_readed', |
| 78 | - 'label' => __('Readed', 'wpdirectorykit'), | |
| 175 | + 'label' => __('I read it', 'wpdirectorykit'), | |
| 79 | 176 | 'rules' => '' |
| 80 | 177 | ), |
| 81 | 178 | ); |
| 82 | 179 | |
| @@ -81,10 +178,14 @@ | ||
| 81 | 178 | ); |
| 82 | 179 | |
| 83 | 180 | if($this->form->run($rules)) |
| 84 | 181 | { |
| 182 | + | |
| 183 | + // Check _wpnonce | |
| 184 | + check_admin_referer( 'wdk-messages-edit_'.$id, '_wpnonce' ); | |
| 185 | + | |
| 85 | 186 | // Save procedure for basic data |
| 86 | - $data = $this->messages_m->prepare_data($this->input->post(), $rules); | |
| 187 | + $data = $this->messages_m->prepare_data(wdk_get_post(), $rules); | |
| 87 | 188 | |
| 88 | 189 | // Save standard wp post |
| 89 | 190 | |
| 90 | 191 | $insert_id = $this->messages_m->insert($data, $id); |