PluginProbe
果果推送 / trunk
果果推送 vtrunk
trunk 0.0.1 0.0.2 0.0.3 0.0.4 0.0.5 0.0.6 0.0.7
ggpush / includes / class-ggpush-record-table.php

class-ggpush-record-table.php in 果果推送 trunk, at includes/class-ggpush-record-table.php

201 lines 9.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 if (!class_exists('WP_List_Table')) {
4 require_once(ABSPATH . 'wp-admin/includes/class-wp-list-table.php');
5 }
6
7 /**
8 * 推送记录表类
9 */
10 class Ggpush_Record_Table extends WP_List_Table
11 {
12 public function __construct()
13 {
14 parent::__construct(array(
15 'singular' => 'ggpush_record',
16 'plural' => 'ggpush_records',
17 'ajax' => false
18 ));
19 }
20
21 public function get_columns()
22 {
23 return array(
24 'cb' => '<input type="checkbox" />',
25 'record_id' => 'Id',
26 'record_platform' => '推送平台',
27 'record_mode' => '推送方式',
28 'record_num' => '推送链接数量',
29 'record_result_status' => '推送状态',
30 'record_result_code' => '推送结果状态码',
31 'record_date' => '推送时间'
32 );
33 }
34
35 public function column_default($item, $column_name)
36 {
37 if (isset($item[$column_name])) {
38 return $item[$column_name];
39 }
40 return '';
41 }
42
43 public function column_record_platform($item)
44 {
45 $page = sanitize_title($_REQUEST['page']);
46 $actions = array(
47 'detail' => sprintf('<a href="?page=%s&action=%s&record_id=%d&_wpnonce=%s">详�
48 </a>', $page, 'detail', $item['record_id'], wp_create_nonce('bulk-ggpush_records')),
49 'delete' => sprintf('<a href="?page=%s&action=%s&record_id=%d&_wpnonce=%s">删除</a>', $page, 'delete', $item['record_id'], wp_create_nonce('bulk-ggpush_records')),
50 );
51
52 return sprintf('%1$s %2$s', Ggpush_Api::format_record_platform($item['record_platform']), $this->row_actions($actions));
53 }
54
55 public function column_record_mode($item)
56 {
57 return Ggpush_Api::format_record_mode($item['record_mode']);
58 }
59
60 public function column_record_result_status($item)
61 {
62 return Ggpush_Api::format_result_status($item['record_result_status']);
63 }
64
65 function column_cb($item)
66 {
67 return sprintf(
68 '<input type="checkbox" name="ids[]" value="%d" />', $item['record_id']
69 );
70 }
71
72 public function get_bulk_actions()
73 {
74 return array(
75 'delete' => '删除勾选的数据',
76 'delete_1' => '删除1天之前的数据',
77 'delete_3' => '删除3天之前的数据',
78 'delete_30' => '删除30天之前的数据',
79 'delete_all' => '删除所有的数据'
80 );
81 }
82
83 public function prepare_items()
84 {
85 global $wpdb;
86 $table_name = $wpdb->prefix . $this->_args['plural'];
87 $columns = $this->get_columns();
88 $hidden = array();
89 $sortable = array();
90 $this->_column_headers = array($columns, $hidden, $sortable);
91 $per_page = 10;
92 $current_page = $this->get_pagenum();
93 if (1 < $current_page) {
94 $offset = $per_page * ($current_page - 1);
95 } else {
96 $offset = 0;
97 }
98 $map = array();
99 if (!empty($_GET['record_platform'])) {
100 $map[] = '`record_platform` = ' . intval($_GET['record_platform']);
101 }
102 if (!empty($_GET['record_mode'])) {
103 $map[] = '`record_mode` = ' . intval($_GET['record_mode']);
104 }
105 if (!empty($_GET['record_status'])) {
106 $map[] = '`record_result_status` = ' . intval($_GET['record_status']);
107 }
108 if (isset($_GET['record_code']) && is_numeric($_GET['record_code'])) {
109 $map[] = '`record_result_code` = ' . intval($_GET['record_code']);
110 }
111 $where = '';
112 if (!empty($map)) {
113 $where = 'WHERE ' . implode(' AND ', $map);
114 }
115 $sql = 'SELECT * FROM `' . $table_name . '` ' . $where . ' ORDER BY `record_id` DESC LIMIT %d, %d';
116 $items = $wpdb->get_results($wpdb->prepare($sql, $offset, $per_page), ARRAY_A);
117 $count = $wpdb->get_var('SELECT COUNT(`record_id`) FROM `' . $table_name . '` ' . $where);
118 $this->items = $items;
119 $this->set_pagination_args(array(
120 'total_items' => $count,
121 'per_page' => $per_page,
122 'total_pages' => ceil($count / $per_page)
123 ));
124 }
125
126 /**
127 * 没有数据
128 * @return void
129 */
130 public function no_items()
131 {
132 ?>
133 暂无推送记录
134 <?php
135 }
136
137 public function extra_tablenav($which)
138 {
139 if ('top' === $which) {
140 $record_platform = Ggpush_Plugin::get('record_platform', 0);
141 $record_mode = Ggpush_Plugin::get('record_mode', 0);
142 $record_status = Ggpush_Plugin::get('record_status', 0);
143 $record_code = Ggpush_Plugin::get('record_code', '');
144 ?>
145 <div class="alignleft actions">
146 <label for="filter-by-platform" class="screen-reader-text">按推送平台筛选</label>
147 <select name="record_platform" id="filter-by-platform">
148 <option value="0" <?php selected($record_platform,0);?>>推送平台</option>
149 <option value="1" <?php selected($record_platform,1);?>>百度</option>
150 <option value="2" <?php selected($record_platform,2);?>>360</option>
151 <option value="3" <?php selected($record_platform,3);?>>搜狗</option>
152 <option value="4" <?php selected($record_platform,4);?>>头条</option>
153 <option value="5" <?php selected($record_platform,5);?>>神马</option>
154 <option value="6" <?php selected($record_platform,6);?>>�
155 应</option>
156 <option value="7" <?php selected($record_platform,7);?>>谷歌</option>
157 <option value="8" <?php selected($record_platform,8);?>>IndexNow</option>
158 <option value="9" <?php selected($record_platform,9);?>>Yandex</option>
159 <option value="10" <?php selected($record_platform,10);?>>Seznam.cz</option>
160 </select>
161 <label for="filter-by-mode" class="screen-reader-text">按推送方式筛选</label>
162 <select name="record_mode" id="filter-by-mode">
163 <option value="0" <?php selected($record_mode,0);?>>推送方式</option>
164 <option value="1" <?php selected($record_mode,1);?>>普通收录</option>
165 <option value="2" <?php selected($record_mode,2);?>>快速抓取</option>
166 <option value="3" <?php selected($record_mode,3);?>>Js提交</option>
167 <option value="4" <?php selected($record_mode,4);?>>Api提交</option>
168 <option value="5" <?php selected($record_mode,5);?>>IndexNow</option>
169 </select>
170 <label for="filter-by-status" class="screen-reader-text">按推送状态筛选</label>
171 <select name="record_status" id="filter-by-status">
172 <option value="0" <?php selected($record_status,0);?>>推送状态</option>
173 <option value="1" <?php selected($record_status,1);?>>成功</option>
174 <option value="2" <?php selected($record_status,2);?>>失败</option>
175 <option value="3" <?php selected($record_status,3);?>>未知</option>
176 </select>
177 <label for="filter-by-code" class="screen-reader-text">按推送结果状态码筛选</label>
178 <select name="record_code" id="filter-by-code">
179 <option value="" <?php selected($record_code,'');?>>推送结果状态码</option>
180 <option value="0" <?php selected($record_code,0);?>>0</option>
181 <option value="200" <?php selected($record_code,200);?>>200</option>
182 <option value="202" <?php selected($record_code,202);?>>202</option>
183 <option value="301" <?php selected($record_code,301);?>>301</option>
184 <option value="302" <?php selected($record_code,302);?>>302</option>
185 <option value="400" <?php selected($record_code,400);?>>400</option>
186 <option value="401" <?php selected($record_code,401);?>>401</option>
187 <option value="403" <?php selected($record_code,403);?>>403</option>
188 <option value="404" <?php selected($record_code,404);?>>404</option>
189 <option value="405" <?php selected($record_code,405);?>>405</option>
190 <option value="413" <?php selected($record_code,413);?>>413</option>
191 <option value="422" <?php selected($record_code,422);?>>422</option>
192 <option value="500" <?php selected($record_code,500);?>>500</option>
193 <option value="502" <?php selected($record_code,502);?>>502</option>
194 <option value="503" <?php selected($record_code,503);?>>503</option>
195 </select>
196 <input type="submit" name="filter_action" id="post-query-submit" class="button" value="筛选">
197 </div>
198 <?php
199 }
200 }
201 }