Changeset 3261669
- Timestamp:
- 03/25/2025 04:07:36 PM (12 months ago)
- Location:
- smart-answer
- Files:
-
- 4 edited
-
tags/1.6/includes/admin-responses.php (modified) (8 diffs)
-
tags/1.6/includes/metabox-responses.php (modified) (2 diffs)
-
trunk/includes/admin-responses.php (modified) (8 diffs)
-
trunk/includes/metabox-responses.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
smart-answer/tags/1.6/includes/admin-responses.php
r3261606 r3261669 24 24 } 25 25 26 function column_ id($item) {26 function column_question_id($item) { 27 27 $actions = [ 28 28 "edit" => sprintf( … … 54 54 return sprintf( 55 55 "%s %s", 56 $item[" id"],56 $item["question_id"], 57 57 $this->row_actions($actions) 58 58 ); … … 68 68 return sprintf( 69 69 $item["banned"] == 1 ? esc_html__("Yes") : esc_html__("No") 70 ); 71 } 72 73 function column_first_name($item) { 74 return sprintf( 75 $item["first_name"] = stripcslashes($item["first_name"]) 76 ); 77 } 78 79 function column_response_text($item) { 80 return sprintf( 81 $item["response_text"] = stripcslashes($item["response_text"]) 70 82 ); 71 83 } … … 74 86 $columns = [ 75 87 "cb" => '<input type="checkbox" />', 76 "id" => esc_html__("Id", "sman"),77 88 "question_id" => esc_html__("Question Id", "sman"), 78 89 "first_name" => esc_html__("First Name", "sman"), … … 86 97 function get_sortable_columns() { 87 98 $sortable_columns = [ 88 "id" => ["id", true],89 99 "question_id" => ["question_id", true], 90 100 "user_id" => ["user_id", true], … … 135 145 function prepare_items() { 136 146 global $wpdb; 137 $table_name = $wpdb->prefix . "sman_responses";138 147 $per_page = 10; 139 148 $columns = $this->get_columns(); … … 142 151 $this->_column_headers = [$columns, $hidden, $sortable]; 143 152 $this->process_bulk_action(); 144 145 // Obtener el número total de items 146 $total_items = $wpdb->get_var("SELECT COUNT(id) FROM $table_name"); 147 148 // Obtener la página actual 149 $current_page = $this->get_pagenum(); 150 151 // Calcular el offset correctamente 152 $offset = ($current_page - 1) * $per_page; 153 154 // Preparar el orderby 155 $orderby = (isset($_REQUEST['orderby']) && array_key_exists($_REQUEST['orderby'], $this->get_sortable_columns())) 156 ? sanitize_key($_REQUEST['orderby']) 157 : 'id'; 158 159 // Preparar el order 160 $order = (isset($_REQUEST['order']) && in_array($_REQUEST['order'], ['asc', 'desc'])) 161 ? sanitize_sql_orderby($_REQUEST['order']) 162 : 'asc'; 163 164 // Obtener los items para la página actual 153 $total_items = intval($wpdb->get_var("SELECT COUNT(id) FROM {$wpdb->prefix}sman_responses")); 154 155 $paged = isset($_REQUEST["paged"]) ? max(0, intval($_REQUEST["paged"]) - 1) : 0; 156 $sortable_columns = $this->get_sortable_columns(); 157 $orderby = isset($_REQUEST["orderby"]) && array_key_exists(sanitize_key($_REQUEST["orderby"]), $sortable_columns) 158 ? sanitize_key($_REQUEST["orderby"]) 159 : "question_id"; 160 $order = isset($_REQUEST["order"]) && in_array(sanitize_sql_orderby($_REQUEST["order"]), ["asc", "desc"]) 161 ? sanitize_sql_orderby($_REQUEST["order"]) 162 : "asc"; 163 164 $per_page = intval($per_page); 165 $paged = intval($paged); 166 $per_page = min(max($per_page, 1), 100); 167 $offset = $paged * $per_page; 168 165 169 $this->items = $wpdb->get_results( 166 170 $wpdb->prepare( 167 "SELECT * FROM $table_name ORDER BY $orderby $order LIMIT %d OFFSET %d", 171 "SELECT * FROM {$wpdb->prefix}sman_responses ORDER BY %1s %1s LIMIT %d OFFSET %d", 172 $orderby, 173 $order, 168 174 $per_page, 169 175 $offset … … 172 178 ); 173 179 174 // Configurar la paginación175 180 $this->set_pagination_args([ 176 'total_items'=> $total_items,177 'per_page'=> $per_page,178 'total_pages' => ceil($total_items / $per_page)181 "total_items" => $total_items, 182 "per_page" => $per_page, 183 "total_pages" => ceil($total_items / $per_page), 179 184 ]); 180 185 } -
smart-answer/tags/1.6/includes/metabox-responses.php
r3261606 r3261669 251 251 <br> 252 252 <input id="first_name" name="first_name" type="text" 253 value="<?php echo esc_attr($item["first_name"] == "" ? sman_get_user_first_name($users[0]["ID"]) : $item["first_name"]); ?>" oninput="removeLeadingSpace(event)">253 value="<?php echo esc_attr($item["first_name"] == "" ? sman_get_user_first_name($users[0]["ID"]) : stripcslashes($item["first_name"]) ); ?>" oninput="removeLeadingSpace(event)"> 254 254 </p> 255 255 <p> … … 267 267 <br> 268 268 <textarea id="response_text" name="response_text" cols="100" rows="10" 269 oninput="removeLeadingSpace(event)"><?php echo esc_attr( $item["response_text"]); ?></textarea>269 oninput="removeLeadingSpace(event)"><?php echo esc_attr(stripcslashes($item["response_text"])); ?></textarea> 270 270 </p> 271 271 </div> -
smart-answer/trunk/includes/admin-responses.php
r3255532 r3261669 24 24 } 25 25 26 function column_ id($item) {26 function column_question_id($item) { 27 27 $actions = [ 28 28 "edit" => sprintf( … … 54 54 return sprintf( 55 55 "%s %s", 56 $item[" id"],56 $item["question_id"], 57 57 $this->row_actions($actions) 58 58 ); … … 68 68 return sprintf( 69 69 $item["banned"] == 1 ? esc_html__("Yes") : esc_html__("No") 70 ); 71 } 72 73 function column_first_name($item) { 74 return sprintf( 75 $item["first_name"] = stripcslashes($item["first_name"]) 76 ); 77 } 78 79 function column_response_text($item) { 80 return sprintf( 81 $item["response_text"] = stripcslashes($item["response_text"]) 70 82 ); 71 83 } … … 74 86 $columns = [ 75 87 "cb" => '<input type="checkbox" />', 76 "id" => esc_html__("Id", "sman"),77 88 "question_id" => esc_html__("Question Id", "sman"), 78 89 "first_name" => esc_html__("First Name", "sman"), … … 86 97 function get_sortable_columns() { 87 98 $sortable_columns = [ 88 "id" => ["id", true],89 99 "question_id" => ["question_id", true], 90 100 "user_id" => ["user_id", true], … … 135 145 function prepare_items() { 136 146 global $wpdb; 137 $table_name = $wpdb->prefix . "sman_responses";138 147 $per_page = 10; 139 148 $columns = $this->get_columns(); … … 142 151 $this->_column_headers = [$columns, $hidden, $sortable]; 143 152 $this->process_bulk_action(); 144 145 // Obtener el número total de items 146 $total_items = $wpdb->get_var("SELECT COUNT(id) FROM $table_name"); 147 148 // Obtener la página actual 149 $current_page = $this->get_pagenum(); 150 151 // Calcular el offset correctamente 152 $offset = ($current_page - 1) * $per_page; 153 154 // Preparar el orderby 155 $orderby = (isset($_REQUEST['orderby']) && array_key_exists($_REQUEST['orderby'], $this->get_sortable_columns())) 156 ? sanitize_key($_REQUEST['orderby']) 157 : 'id'; 158 159 // Preparar el order 160 $order = (isset($_REQUEST['order']) && in_array($_REQUEST['order'], ['asc', 'desc'])) 161 ? sanitize_sql_orderby($_REQUEST['order']) 162 : 'asc'; 163 164 // Obtener los items para la página actual 153 $total_items = intval($wpdb->get_var("SELECT COUNT(id) FROM {$wpdb->prefix}sman_responses")); 154 155 $paged = isset($_REQUEST["paged"]) ? max(0, intval($_REQUEST["paged"]) - 1) : 0; 156 $sortable_columns = $this->get_sortable_columns(); 157 $orderby = isset($_REQUEST["orderby"]) && array_key_exists(sanitize_key($_REQUEST["orderby"]), $sortable_columns) 158 ? sanitize_key($_REQUEST["orderby"]) 159 : "question_id"; 160 $order = isset($_REQUEST["order"]) && in_array(sanitize_sql_orderby($_REQUEST["order"]), ["asc", "desc"]) 161 ? sanitize_sql_orderby($_REQUEST["order"]) 162 : "asc"; 163 164 $per_page = intval($per_page); 165 $paged = intval($paged); 166 $per_page = min(max($per_page, 1), 100); 167 $offset = $paged * $per_page; 168 165 169 $this->items = $wpdb->get_results( 166 170 $wpdb->prepare( 167 "SELECT * FROM $table_name ORDER BY $orderby $order LIMIT %d OFFSET %d", 171 "SELECT * FROM {$wpdb->prefix}sman_responses ORDER BY %1s %1s LIMIT %d OFFSET %d", 172 $orderby, 173 $order, 168 174 $per_page, 169 175 $offset … … 172 178 ); 173 179 174 // Configurar la paginación175 180 $this->set_pagination_args([ 176 'total_items'=> $total_items,177 'per_page'=> $per_page,178 'total_pages' => ceil($total_items / $per_page)181 "total_items" => $total_items, 182 "per_page" => $per_page, 183 "total_pages" => ceil($total_items / $per_page), 179 184 ]); 180 185 } -
smart-answer/trunk/includes/metabox-responses.php
r3245842 r3261669 251 251 <br> 252 252 <input id="first_name" name="first_name" type="text" 253 value="<?php echo esc_attr($item["first_name"] == "" ? sman_get_user_first_name($users[0]["ID"]) : $item["first_name"]); ?>" oninput="removeLeadingSpace(event)">253 value="<?php echo esc_attr($item["first_name"] == "" ? sman_get_user_first_name($users[0]["ID"]) : stripcslashes($item["first_name"]) ); ?>" oninput="removeLeadingSpace(event)"> 254 254 </p> 255 255 <p> … … 267 267 <br> 268 268 <textarea id="response_text" name="response_text" cols="100" rows="10" 269 oninput="removeLeadingSpace(event)"><?php echo esc_attr( $item["response_text"]); ?></textarea>269 oninput="removeLeadingSpace(event)"><?php echo esc_attr(stripcslashes($item["response_text"])); ?></textarea> 270 270 </p> 271 271 </div>
Note: See TracChangeset
for help on using the changeset viewer.