PluginProbe
Optimize Database after Deleting Revisions / 4.1
Optimize Database after Deleting Revisions v4.1
3.4.7 3.4.8 3.4.9 3.5 3.5.1 4.0 4.0.1 4.0.2 4.0.3 4.1 4.1.1 4.1.10 4.1.2 4.1.3 4.1.4 4.1.5 4.1.6 4.1.7 4.1.8 4.1.9 4.2.0 4.2.1 4.2.2 4.2.3 4.3 All 144 releases
rvg-optimize-database / includes / settings-page.php

settings-page.php in Optimize Database after Deleting Revisions 4.1, at includes/settings-page.php

400 lines 18.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /********************************************************************************************
3 *
4 * SETTINGS ('OPTIONS') PAGE
5 *
6 ********************************************************************************************/
7 ?>
8 <?php
9 if(isset($_REQUEST['delete_log']))
10 if($_REQUEST['delete_log'] == "Y") @unlink(dirname(__FILE__).'/rvg-optimize-db-log.html');
11
12 if (isset($_POST['info_update']))
13 { // SAVE SETTINGS
14 check_admin_referer('odb_action', 'odb_nonce');
15
16 $current_datetime = Date('YmdHis');
17 $current_date = substr($current_datetime, 0, 8);
18 $current_hour = substr($current_datetime, 8, 2);
19
20 // var_dump($_POST);
21
22 $this->odb_rvg_options['revision_mode'] = sanitize_text_field($_POST['rvg_odb_revision_mode']);
23
24 if($this->odb_rvg_options['revision_mode'] == 1)
25 { // NUMBER OF POSTS TO KEEP
26 $this->odb_rvg_options['nr_of_revisions'] = sanitize_text_field($_POST['rvg_odb_number']);
27 $this->odb_rvg_options['older_than'] = '';
28 }
29 else
30 { // OLDER THAN x DAYS
31 $this->odb_rvg_options['nr_of_revisions'] = '';
32 $this->odb_rvg_options['older_than'] = sanitize_text_field($_POST['rvg_odb_older_than']);
33 }
34
35 if(isset($_POST['rvg_clear_trash'])) $this->odb_rvg_options['clear_trash'] = sanitize_text_field($_POST['rvg_clear_trash']);
36 else $this->odb_rvg_options['clear_trash'] = 'N';
37
38 if(isset($_POST['rvg_clear_spam'])) $this->odb_rvg_options['clear_spam'] = sanitize_text_field($_POST['rvg_clear_spam']);
39 else $this->odb_rvg_options['clear_spam'] = 'N';
40
41 if(isset($_POST['rvg_clear_tags'])) $this->odb_rvg_options['clear_tags'] = sanitize_text_field($_POST['rvg_clear_tags']);
42 else $this->odb_rvg_options['clear_tags'] = 'N';
43
44 if(isset($_POST['rvg_clear_transients'])) $this->odb_rvg_options['clear_transients'] = sanitize_text_field($_POST['rvg_clear_transients']);
45 else $this->odb_rvg_options['clear_transients'] = 'N';
46
47 if(isset($_POST['rvg_clear_pingbacks'])) $this->odb_rvg_options['clear_pingbacks'] = sanitize_text_field($_POST['rvg_clear_pingbacks']);
48 else $this->odb_rvg_options['clear_pingbacks'] = 'N';
49
50 if(isset($_POST['rvg_odb_logging_on'])) $this->odb_rvg_options['logging_on'] = sanitize_text_field($_POST['rvg_odb_logging_on']);
51 else $this->odb_rvg_options['logging_on'] = 'N';
52
53 if(isset($_POST['rvg_odb_schedule']))
54 {
55 $type_old = $this->odb_rvg_options['schedule_type'];
56 $hour_old = $this->odb_rvg_options['schedule_hour'];
57
58 if(sanitize_text_field($_POST['rvg_odb_schedule'] == '')
59 || (sanitize_text_field($_POST['rvg_odb_schedule']) != 'daily'
60 && sanitize_text_field($_POST['rvg_odb_schedule']) != 'weekly' ))
61 $_POST['rvg_odb_schedulehour'] = '';
62
63 $hour = '';
64 if(isset($_POST['rvg_odb_schedulehour'])) $hour = sanitize_text_field($_POST['rvg_odb_schedulehour']);
65
66 if($type_old != sanitize_text_field($_POST['rvg_odb_schedule']) || $hour_old != $hour)
67 { // SCHEDULE CHANGED
68 $this->odb_rvg_options['schedule_type'] = sanitize_text_field($_POST['rvg_odb_schedule']);
69 $this->odb_rvg_options['schedule_hour'] = $hour;
70 if($this->odb_rvg_options['schedule_type'] == '')
71 // UN-SCHEDULED
72 wp_clear_scheduled_hook('odb_scheduler');
73 else
74 // RE-SCHEDULE
75 $this->odb_scheduler_obj->odb_reschedule();
76 }
77 } // if(isset($_POST['rvg_odb_schedule']))
78
79 if(isset($_POST['rvg_odb_adminbar'])) $this->odb_rvg_options['adminbar'] = sanitize_text_field($_POST['rvg_odb_adminbar']);
80 else $this->odb_rvg_options['adminbar'] = 'N';
81
82 if(isset($_POST['rvg_odb_adminmenu'])) $this->odb_rvg_options['adminmenu'] = sanitize_text_field($_POST['rvg_odb_adminmenu']);
83 else $this->odb_rvg_options['adminmenu'] = 'N';
84
85 if(isset($_POST['rvg_odb_optimize_innodb'])) $this->odb_rvg_options['optimize_innodb'] = sanitize_text_field($_POST['rvg_odb_optimize_innodb']);
86 else $this->odb_rvg_options['optimize_innodb'] = 'N';
87
88 $this->odb_multisite_obj->odb_ms_update_option('odb_rvg_options', $this->odb_rvg_options);
89
90 // var_dump($this->odb_rvg_options);
91
92 // UPDATE EXCLUDED TABLES
93 // EMPTY ARRAY
94 $this->odb_rvg_excluded_tabs = array();
95
96 // ADD CHECKED TABLES
97 foreach ($_POST as $key => $value)
98 if(substr($key,0,3) == 'cb_')
99 $this->odb_rvg_excluded_tabs[substr($key,3)] = 'Y';
100 // SAVE TO DB
101 $this->odb_multisite_obj->odb_ms_update_option('odb_rvg_excluded_tabs', $this->odb_rvg_excluded_tabs);
102
103 // UPDATED MESSAGE
104 echo "<div class='updated odb-bold'><p>".
105 __('Optimize Database after Deleting Revisions SETTINGS UPDATED',$this->odb_txt_domain).
106 " - ";
107 _e('Click <a href="tools.php?page=rvg-optimize-database" class="odb-bold">HERE</a> to run the optimization',$this->odb_txt_domain);
108 echo "</p></div>";
109 } // if (isset($_POST['info_update']))
110 ?>
111 <script type="text/javascript">
112 function rvg_odb_revision_mode_changed()
113 { var mode = jQuery('input[name=rvg_odb_revision_mode]:checked').val();
114 if(mode == 1)
115 { // NUMBER OF REVISIONS SELECTED
116 jQuery("#rvg_odb_older_than").val("");
117 jQuery("#rvg_odb_older_than").prop('disabled', true);
118 jQuery("#rvg_odb_number").prop('disabled', false);
119 }
120 else
121 { // NUMBER OF DAYS SELECTED
122 jQuery("#rvg_odb_number").val("");
123 jQuery("#rvg_odb_number").prop('disabled', true);
124 jQuery("#rvg_odb_older_than").prop('disabled', false);
125 }
126 }
127 function schedule_changed()
128 { if(jQuery("#rvg_odb_schedule").val() == "daily" || jQuery("#rvg_odb_schedule").val() == "weekly")
129 jQuery("#schedulehour").show();
130 else
131 jQuery("#schedulehour").hide();
132 }
133 function rvg_odb_check_form()
134 {
135 var mode = jQuery('input[name=rvg_odb_revision_mode]:checked').val();
136 if(mode == 1)
137 { // NUMBER OF REVISIONS SELECTED
138 if(jQuery("#rvg_odb_number").val() == '')
139 { jQuery("#rvg_odb_number").focus();
140 alert('<?php _e("You have to enter the maximum number of revisions", $this->odb_txt_domain)?>');
141 return false;
142 }
143 if(!jQuery.isNumeric(jQuery("#rvg_odb_number").val()))
144 { jQuery("#rvg_odb_number").focus();
145 alert('<?php _e("Maximum number of revisions should be a number", $this->odb_txt_domain)?>');
146 return false;
147 }
148 }
149 else
150 { // NUMBER OF DAYS SELECTED
151 if(jQuery("#rvg_odb_older_than").val() == '')
152 { jQuery("#rvg_odb_older_than").focus();
153 alert('<?php _e("You have to enter: ",$this->odb_txt_domain)?> <'+'<?php _e("Delete revisions older than",$this->odb_txt_domain)?>'+'>');
154 return false;
155 }
156 if(!jQuery.isNumeric(jQuery("#rvg_odb_older_than").val()))
157 { jQuery("#rvg_odb_older_than").focus();
158 alert('<?php _e("<Delete revisions older than> should be a number", $this->odb_txt_domain)?>');
159 return false;
160 }
161 }
162
163 return true;
164 }
165 </script>
166 <?php
167 if(!isset($this->odb_rvg_options['revision_mode'])) $this->odb_rvg_options['revision_mode'] = "1";
168 // CHECKBOXES
169 $c = ' checked';
170 $d = ' disabled';
171 $cb_disabled1 = ($this->odb_rvg_options['revision_mode'] == "2") ? $d : '';
172 $cb_disabled2 = ($this->odb_rvg_options['revision_mode'] == "1") ? $d : '';
173 $cb_trash = ($this->odb_rvg_options['clear_trash'] == "Y") ? $c : '';
174 $cb_spam = ($this->odb_rvg_options['clear_spam'] == "Y") ? $c : '';
175 $cb_tags = ($this->odb_rvg_options['clear_tags'] == "Y") ? $c : '';
176 $cb_trans = ($this->odb_rvg_options['clear_transients'] == "Y") ? $c : '';
177 $cb_ping = ($this->odb_rvg_options['clear_pingbacks'] == "Y") ? $c : '';
178 $cb_logging = ($this->odb_rvg_options['logging_on'] == "Y") ? $c : '';
179 $cb_adminbar = ($this->odb_rvg_options['adminbar'] == "Y") ? $c : '';
180 $cb_adminmenu = ($this->odb_rvg_options['adminmenu'] == "Y") ? $c : '';
181 $cb_optimize_innodb = ($this->odb_rvg_options['optimize_innodb'] == "Y") ? $c : '';
182
183 // DISPLAY HEADER
184 $this->odb_displayer_obj->display_header();
185
186 // DISPLAY FORM
187 echo '
188 <div class="odb-padding-left">
189 <div id="odb-options-form">
190 <form name="options" method="post" action="" onsubmit="return rvg_odb_check_form();">
191 '.wp_nonce_field('odb_action','odb_nonce').'
192 <div id="odb-options-wrap">
193 <div id="odb-options-settings">
194 <div class="odb-title-bar">
195 <h2>'.__('Settings',$this->odb_txt_domain).'</h2>
196 </div>
197 <table border="0" cellspacing="2" cellpadding="5" class="editform" align="center">
198 <tr>
199 <td width="50%" align="right" valign="top"><span class="odb-bold">'.__('Maximum number of - most recent - revisions<br>to keep per post / page',$this->odb_txt_domain).'</span></td>
200 <td width="50%" valign="top"><table border="0" cellspacing="0" cellpadding="3">
201 <tr>
202 <td><span class="odb-bold">
203 <input name="rvg_odb_revision_mode" type="radio" id="rvg_odb_revision_mode1" value="1" onchange="rvg_odb_revision_mode_changed();">
204 </span></td>
205 <td><input type="text" size="2" name="rvg_odb_number" id="rvg_odb_number" value="'.$this->odb_rvg_options['nr_of_revisions'].'" class="odb-bold odb-blue"'.$cb_disabled1.'>
206 &nbsp; <em>'.__('(\'0\' means: delete <u>ALL</u> revisions)',$this->odb_txt_domain).'</em></td>
207 </tr>
208 </table></td>
209 </tr>
210 ';
211 if($this->odb_rvg_options['revision_mode'] == 1) echo '<script type="text/javascript">jQuery("#rvg_odb_revision_mode1").prop("checked", true)</script>';
212 echo '
213 <tr>
214 <td width="50%" align="right" valign="top"><span class="odb-bold">
215 --- '. __('OR',$this->odb_txt_domain).' ---
216 </span></td>
217 <td width="50%" valign="top">&nbsp;</td>
218 </tr>
219 <tr>
220 <td width="50%" align="right"><span class="odb-bold">'. __('Delete revisions older than',$this->odb_txt_domain).'</span></td>
221 <td width="50%" valign="top"><table border="0" cellspacing="0" cellpadding="3">
222 <tr>
223 <td><span class="odb-bold">
224 <input type="radio" name="rvg_odb_revision_mode" id="rvg_odb_revision_mode2" value="2" onchange="rvg_odb_revision_mode_changed();"></span></td>
225 <td><input type="text" size="2" name="rvg_odb_older_than" id="rvg_odb_older_than" value="'.$this->odb_rvg_options['older_than'].'" class="odb-bold odb-blue"'.$cb_disabled2.'>&nbsp;&nbsp;'.__("days", $this->odb_txt_domain).'
226 <script type="text/javascript">
227 ';
228 if($this->odb_rvg_options['revision_mode'] == 2) echo 'jQuery("#rvg_odb_revision_mode2").prop("checked", true)';
229 echo '
230 jQuery("#rvg_odb_older_than").val("'.$this->odb_rvg_options['older_than'].'");
231 </script>
232 </td>
233 </tr>
234 </table></td>
235 </tr>
236 <tr>
237 <td width="50%" align="right" valign="top" class="odb-bold">&nbsp;</td>
238 <td width="50%" valign="top">&nbsp;</td>
239 </tr>
240 <tr>
241 <td width="50%" align="right" valign="top"><span class="odb-bold">
242 '. __('Delete trashed items',$this->odb_txt_domain).'
243 </span></td>
244 <td width="50%" valign="top"><input name="rvg_clear_trash" type="checkbox" value="Y" '.$cb_trash.'></td>
245 </tr>
246 <tr>
247 <td width="50%" align="right" valign="top"><span class="odb-bold">
248 '. __('Delete spammed items',$this->odb_txt_domain).'
249 </span></td>
250 <td width="50%" valign="top"><input name="rvg_clear_spam" type="checkbox" value="Y" '.$cb_spam.'></td>
251 </tr>
252 <tr>
253 <td width="50%" align="right" valign="top"><span class="odb-bold">
254 '.__('Delete unused tags',$this->odb_txt_domain).'
255 </span></td>
256 <td width="50%" valign="top"><input name="rvg_clear_tags" type="checkbox" value="Y" '.$cb_tags.'></td>
257 </tr>
258 <tr>
259 <td width="50%" align="right" valign="top"><span class="odb-bold">
260 '.__('Delete expired transients',$this->odb_txt_domain).'
261 </span></td>
262 <td width="50%" valign="top"><input name="rvg_clear_transients" type="checkbox" value="Y" '.$cb_trans.'></td>
263 </tr>
264 <tr>
265 <td width="50%" align="right" valign="top"><span class="odb-bold">
266 '.__('Delete pingbacks and trackbacks',$this->odb_txt_domain).'
267 </span></td>
268 <td width="50%" valign="top"><input name="rvg_clear_pingbacks" type="checkbox" value="Y" '.$cb_ping.'></td>
269 </tr>
270 <tr>
271 <td align="right" valign="top"><span class="odb-bold">
272 '. __('Optimize InnoDB tables too',$this->odb_txt_domain).'
273 </span></td>
274 <td valign="top"><input name="rvg_odb_optimize_innodb" type="checkbox" value="Y" '.$cb_optimize_innodb.'></td>
275 </tr>
276 <tr>
277 <td width="50%" align="right" valign="top"><span class="odb-bold">
278 '.__('Keep a log',$this->odb_txt_domain).'
279 </span></td>
280 <td width="50%" valign="top"><input name="rvg_odb_logging_on" type="checkbox" value="Y" '.$cb_logging.'></td>
281 </tr>
282 <tr>
283 <td width="50%" align="right"><span class="odb-bold">
284 '.__('Scheduler',$this->odb_txt_domain).'
285 </span></td>
286 <td width="50%"><select name="rvg_odb_schedule" id="rvg_odb_schedule" class="odb-schedule-select" onchange="schedule_changed();">
287 <option selected="selected" value="">
288 '.__('NOT SCHEDULED',$this->odb_txt_domain).'
289 </option>
290 <option value="hourly">
291 '.__('run optimization HOURLY',$this->odb_txt_domain).'
292 </option>
293 <option value="twicedaily">
294 '.__('run optimization TWICE A DAY',$this->odb_txt_domain).'
295 </option>
296 <option value="daily">
297 '.__('run optimization DAILY',$this->odb_txt_domain).'
298 </option>
299 <option value="weekly">
300 '.__('run optimization WEEKLY',$this->odb_txt_domain).'
301 </option>
302 </select>
303 <script type="text/javascript">
304 jQuery("#rvg_odb_schedule").val("'.$this->odb_rvg_options['schedule_type'].'");
305 </script>
306 </td>
307 </tr>
308 <tr id="schedulehour">
309 <td width="50%" align="right"><span class="odb-bold">
310 '.__('Time',$this->odb_txt_domain).'
311 </span></td>
312 <td>
313 <select name="rvg_odb_schedulehour" id="rvg_odb_schedulehour" class="odb-schedulehour-select">
314 ';
315
316 for($i=0; $i<=23; $i++)
317 { if($i<10) $i = '0'.$i;
318 ?>
319 <option value="<?php echo $i?>"><?php echo $i.':00 '.__('hrs',$this->odb_txt_domain)?></option>
320 <?php
321 } // for($i=0; $i<=23; $i++)
322
323 echo '
324 </select>
325 <script type="text/javascript">
326 jQuery("#rvg_odb_schedulehour").val("'.$this->odb_rvg_options['schedule_hour'].'");
327 </script>
328 </span>
329 </td>
330 </tr>
331 <script type="text/javascript">schedule_changed();</script>
332 <tr>
333 <td align="right" valign="top"><span class="odb-bold">
334 '.__('Show \'1-click\' link in Admin Bar',$this->odb_txt_domain).'*
335 </span></td>
336 <td valign="top"><input name="rvg_odb_adminbar" type="checkbox" value="Y" '.$cb_adminbar.'></td>
337 </tr>
338 <tr>
339 <td align="right" valign="top"><span class="odb-bold">
340 '. __('Show an icon in the Admin Menu',$this->odb_txt_domain).'*
341 </span></td>
342 <td valign="top"><input name="rvg_odb_adminmenu" type="checkbox" value="Y" '.$cb_adminmenu.'></td>
343 </tr>
344 </table>
345 <div align="center"><em>* '.__('change will be visible after loading the next page', $this->odb_txt_domain).'</em></div>
346 <br>
347 <div align="center">
348 <span class="odb-bold">
349 '.__('EXCLUDE DATABASE TABLES FROM OPTIMIZATION:<br><span class="odb-underline-red">CHECKED</span> TABLES <span class="odb-underline-red">WON\'T</span> BE OPTIMIZED!</span>',$this->odb_txt_domain).'
350 <br><br>
351 ';
352 ?>
353
354 <a href="javascript:;" onclick="jQuery('[id^=cb_]').attr('checked',true);">
355 <?php _e('check all tables', $this->odb_txt_domain);?>
356 </a> | <a href="javascript:;" onclick="jQuery('[id^=cb_]').attr('checked',false);">
357 <?php _e('uncheck all tables', $this->odb_txt_domain);?>
358 </a> | <a href="javascript:;" onclick="jQuery(':not([id^=cb_<?php echo $this->odb_ms_prefixes[0]; ?>])').filter('[id^=cb_]').attr('checked',true);">
359 <?php _e('check all NON-WordPress tables', $this->odb_txt_domain);?>
360 </a>
361
362 <?php
363 echo '
364 </span>
365 <div id="odb-options-tables-container">
366 <div id="odb-options-tables-wrapper">
367 ';
368
369 for ($i=0; $i<count($this->odb_tables); $i++)
370 { $class = '';
371 for($j=0; $j<count($this->odb_ms_prefixes); $j++)
372 if(substr($this->odb_tables[$i][0], 0, strlen($this->odb_ms_prefixes[$j])) == $this->odb_ms_prefixes[$j]) $class = ' odb-wp-table';
373 $cb_checked = '';
374 if(isset($this->odb_rvg_excluded_tabs[$this->odb_tables[$i][0]])) $cb_checked = ' checked';
375 ?>
376 <div class="odb-options-table<?php echo $class;?>" title="<?php echo $this->odb_tables[$i][0];?>">
377 <input id="cb_<?php echo $this->odb_tables[$i][0];?>" name="cb_<?php echo $this->odb_tables[$i][0];?>" type="checkbox" value="1"<?php echo $cb_checked; ?>>
378 <?php echo $this->odb_tables[$i][0];?></div>
379 <?php
380 }
381
382 echo '
383 </div><!-- /odb-options-tables-wrapper -->
384 <div id="odb-options-buttons" align="center">
385 <p>
386 <input class="button-primary button-large odb-bold" type="submit" name="info_update" value="'.__('Save Settings',$this->odb_txt_domain).'">
387 &nbsp;
388 <input class="button odb-normal" type="button" name="optimizer" value="'.__('Go To Optimizer',$this->odb_txt_domain).'" onclick="self.location=\'tools.php?page=rvg-optimize-database\'">
389 </p>
390 </div>
391 <!-- odb-options-buttons -->
392 </div><!-- /odb-options-tables-container -->
393 </div><!-- /center -->
394 </div><!-- /odb-options-settings -->
395 </div><!-- /odb-options-wrap -->
396 </form>
397 </div><!-- /odb-options-form -->
398 </div><!-- /odb-padding-left -->
399 ';
400 ?>