| 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 |
if(isset($_POST['rvg_odb_number'])) |
| 21 |
{ if(!$_POST['rvg_odb_number']) $this->odb_rvg_options['nr_of_revisions'] = '0'; |
| 22 |
else $this->odb_rvg_options['nr_of_revisions'] = trim($_POST['rvg_odb_number']); |
| 23 |
} |
| 24 |
|
| 25 |
if(isset($_POST['rvg_clear_trash'])) $this->odb_rvg_options['clear_trash'] = $_POST['rvg_clear_trash']; |
| 26 |
else $this->odb_rvg_options['clear_trash'] = 'N'; |
| 27 |
|
| 28 |
if(isset($_POST['rvg_clear_spam'])) $this->odb_rvg_options['clear_spam'] = $_POST['rvg_clear_spam']; |
| 29 |
else $this->odb_rvg_options['clear_spam'] = 'N'; |
| 30 |
|
| 31 |
if(isset($_POST['rvg_clear_tags'])) $this->odb_rvg_options['clear_tags'] = $_POST['rvg_clear_tags']; |
| 32 |
else $this->odb_rvg_options['clear_tags'] = 'N'; |
| 33 |
|
| 34 |
if(isset($_POST['rvg_clear_transients'])) $this->odb_rvg_options['clear_transients'] = $_POST['rvg_clear_transients']; |
| 35 |
else $this->odb_rvg_options['clear_transients'] = 'N'; |
| 36 |
|
| 37 |
if(isset($_POST['rvg_clear_pingbacks'])) $this->odb_rvg_options['clear_pingbacks'] = $_POST['rvg_clear_pingbacks']; |
| 38 |
else $this->odb_rvg_options['clear_pingbacks'] = 'N'; |
| 39 |
|
| 40 |
if(isset($_POST['rvg_odb_logging_on'])) $this->odb_rvg_options['logging_on'] = $_POST['rvg_odb_logging_on']; |
| 41 |
else $this->odb_rvg_options['logging_on'] = 'N'; |
| 42 |
|
| 43 |
if(isset($_POST['rvg_odb_schedule'])) |
| 44 |
{ |
| 45 |
$type_old = $this->odb_rvg_options['schedule_type']; |
| 46 |
$hour_old = $this->odb_rvg_options['schedule_hour']; |
| 47 |
|
| 48 |
if($_POST['rvg_odb_schedule'] == '' || ($_POST['rvg_odb_schedule'] != 'daily' && $_POST['rvg_odb_schedule'] != 'weekly' )) |
| 49 |
$_POST['rvg_odb_schedulehour'] = ''; |
| 50 |
|
| 51 |
$hour = ''; |
| 52 |
if(isset($_POST['rvg_odb_schedulehour'])) $hour = $_POST['rvg_odb_schedulehour']; |
| 53 |
|
| 54 |
if($type_old != $_POST['rvg_odb_schedule'] || $hour_old != $hour) |
| 55 |
{ // SCHEDULE CHANGED |
| 56 |
$this->odb_rvg_options['schedule_type'] = $_POST['rvg_odb_schedule']; |
| 57 |
$this->odb_rvg_options['schedule_hour'] = $hour; |
| 58 |
if($this->odb_rvg_options['schedule_type'] == '') |
| 59 |
// UN-SCHEDULED |
| 60 |
wp_clear_scheduled_hook('odb_scheduler'); |
| 61 |
else |
| 62 |
// RE-SCHEDULE |
| 63 |
$this->odb_scheduler_obj->odb_reschedule(); |
| 64 |
} |
| 65 |
} // if(isset($_POST['rvg_odb_schedule'])) |
| 66 |
|
| 67 |
if(isset($_POST['rvg_odb_adminbar'])) $this->odb_rvg_options['adminbar'] = $_POST['rvg_odb_adminbar']; |
| 68 |
else $this->odb_rvg_options['adminbar'] = 'N'; |
| 69 |
|
| 70 |
if(isset($_POST['rvg_odb_adminmenu'])) $this->odb_rvg_options['adminmenu'] = $_POST['rvg_odb_adminmenu']; |
| 71 |
else $this->odb_rvg_options['adminmenu'] = 'N'; |
| 72 |
|
| 73 |
if(isset($_POST['rvg_odb_optimize_innodb'])) $this->odb_rvg_options['optimize_innodb'] = $_POST['rvg_odb_optimize_innodb']; |
| 74 |
else $this->odb_rvg_options['optimize_innodb'] = 'N'; |
| 75 |
|
| 76 |
$this->odb_multisite_obj->odb_ms_update_option('odb_rvg_options', $this->odb_rvg_options); |
| 77 |
|
| 78 |
// UPDATE EXCLUDED TABLES |
| 79 |
// EMPTY ARRAY |
| 80 |
$this->odb_rvg_excluded_tabs = array(); |
| 81 |
|
| 82 |
// ADD CHECKED TABLES |
| 83 |
foreach ($_POST as $key => $value) |
| 84 |
if(substr($key,0,3) == 'cb_') |
| 85 |
$this->odb_rvg_excluded_tabs[substr($key,3)] = 'Y'; |
| 86 |
// SAVE TO DB |
| 87 |
$this->odb_multisite_obj->odb_ms_update_option('odb_rvg_excluded_tabs', $this->odb_rvg_excluded_tabs); |
| 88 |
|
| 89 |
// UPDATED MESSAGE |
| 90 |
echo "<div class='updated odb-bold'><p>". |
| 91 |
__('Optimize Database after Deleting Revisions SETTINGS UPDATED',$this->odb_txt_domain). |
| 92 |
" - "; |
| 93 |
_e('Click <a href="tools.php?page=rvg-optimize-database" class="odb-bold">HERE</a> to run the optimization',$this->odb_txt_domain); |
| 94 |
echo "</p></div>"; |
| 95 |
} // if (isset($_POST['info_update'])) |
| 96 |
?> |
| 97 |
<script type="text/javascript"> |
| 98 |
function schedule_changed() |
| 99 |
{ if(jQuery("#rvg_odb_schedule").val() == "daily" || jQuery("#rvg_odb_schedule").val() == "weekly") |
| 100 |
jQuery("#schedulehour").show(); |
| 101 |
else |
| 102 |
jQuery("#schedulehour").hide(); |
| 103 |
} |
| 104 |
</script> |
| 105 |
<?php |
| 106 |
// CHECKBOXES |
| 107 |
$c = ' checked'; |
| 108 |
$cb_trash = ($this->odb_rvg_options['clear_trash'] == "Y") ? $c : ''; |
| 109 |
$cb_spam = ($this->odb_rvg_options['clear_spam'] == "Y") ? $c : ''; |
| 110 |
$cb_tags = ($this->odb_rvg_options['clear_tags'] == "Y") ? $c : ''; |
| 111 |
$cb_trans = ($this->odb_rvg_options['clear_transients'] == "Y") ? $c : ''; |
| 112 |
$cb_ping = ($this->odb_rvg_options['clear_pingbacks'] == "Y") ? $c : ''; |
| 113 |
$cb_logging = ($this->odb_rvg_options['logging_on'] == "Y") ? $c : ''; |
| 114 |
$cb_adminbar = ($this->odb_rvg_options['adminbar'] == "Y") ? $c : ''; |
| 115 |
$cb_adminmenu = ($this->odb_rvg_options['adminmenu'] == "Y") ? $c : ''; |
| 116 |
$cb_optimize_innodb = ($this->odb_rvg_options['optimize_innodb'] == "Y") ? $c : ''; |
| 117 |
|
| 118 |
// DISPLAY HEADER |
| 119 |
$this->odb_displayer_obj->display_header(); |
| 120 |
|
| 121 |
// DISPLAY FORM |
| 122 |
echo ' |
| 123 |
<div class="odb-padding-left"> |
| 124 |
<div id="odb-options-form"> |
| 125 |
<form name="options" method="post" action=""> |
| 126 |
'.wp_nonce_field('odb_action','odb_nonce').' |
| 127 |
<div id="odb-options-wrap"> |
| 128 |
<div id="odb-options-settings"> |
| 129 |
<div class="odb-title-bar"> |
| 130 |
<h2>'.__('Settings',$this->odb_txt_domain).'</h2> |
| 131 |
</div> |
| 132 |
<table border="0" cellspacing="2" cellpadding="5" class="editform" align="center"> |
| 133 |
<tr> |
| 134 |
<td width="50%" align="right" valign="top"><span class="odb-bold"> |
| 135 |
'.__('Maximum number of - most recent - revisions<br>to keep per post / page',$this->odb_txt_domain).' |
| 136 |
</span></td> |
| 137 |
<td width="50%" valign="top"><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"> |
| 138 |
|
| 139 |
'.__('(\'0\' means: delete <u>ALL</u> revisions)',$this->odb_txt_domain).' |
| 140 |
</tr> |
| 141 |
<tr> |
| 142 |
<td width="50%" align="right" valign="top"><span class="odb-bold"> |
| 143 |
'. __('Delete trashed items',$this->odb_txt_domain).' |
| 144 |
</span></td> |
| 145 |
<td width="50%" valign="top"><input name="rvg_clear_trash" type="checkbox" value="Y" '.$cb_trash.'></td> |
| 146 |
</tr> |
| 147 |
<tr> |
| 148 |
<td width="50%" align="right" valign="top"><span class="odb-bold"> |
| 149 |
'. __('Delete spammed items',$this->odb_txt_domain).' |
| 150 |
</span></td> |
| 151 |
<td width="50%" valign="top"><input name="rvg_clear_spam" type="checkbox" value="Y" '.$cb_spam.'></td> |
| 152 |
</tr> |
| 153 |
<tr> |
| 154 |
<td width="50%" align="right" valign="top"><span class="odb-bold"> |
| 155 |
'.__('Delete unused tags',$this->odb_txt_domain).' |
| 156 |
</span></td> |
| 157 |
<td width="50%" valign="top"><input name="rvg_clear_tags" type="checkbox" value="Y" '.$cb_tags.'></td> |
| 158 |
</tr> |
| 159 |
<tr> |
| 160 |
<td width="50%" align="right" valign="top"><span class="odb-bold"> |
| 161 |
'.__('Delete expired transients',$this->odb_txt_domain).' |
| 162 |
</span></td> |
| 163 |
<td width="50%" valign="top"><input name="rvg_clear_transients" type="checkbox" value="Y" '.$cb_trans.'></td> |
| 164 |
</tr> |
| 165 |
<tr> |
| 166 |
<td width="50%" align="right" valign="top"><span class="odb-bold"> |
| 167 |
'.__('Delete pingbacks and trackbacks',$this->odb_txt_domain).' |
| 168 |
</span></td> |
| 169 |
<td width="50%" valign="top"><input name="rvg_clear_pingbacks" type="checkbox" value="Y" '.$cb_ping.'></td> |
| 170 |
</tr> |
| 171 |
<tr> |
| 172 |
<td width="50%" align="right" valign="top"><span class="odb-bold"> |
| 173 |
'.__('Keep a log',$this->odb_txt_domain).' |
| 174 |
</span></td> |
| 175 |
<td width="50%" valign="top"><input name="rvg_odb_logging_on" type="checkbox" value="Y" '.$cb_logging.'></td> |
| 176 |
</tr> |
| 177 |
<tr> |
| 178 |
<td align="right" valign="top"><span class="odb-bold"> |
| 179 |
'. __('Optimize InnoDB tables too',$this->odb_txt_domain).' |
| 180 |
</span></td> |
| 181 |
<td valign="top"><input name="rvg_odb_optimize_innodb" type="checkbox" value="Y" '.$cb_optimize_innodb.'></td> |
| 182 |
</tr> |
| 183 |
<tr> |
| 184 |
<td width="50%" align="right"><span class="odb-bold"> |
| 185 |
'.__('Scheduler',$this->odb_txt_domain).' |
| 186 |
</span></td> |
| 187 |
<td width="50%"><select name="rvg_odb_schedule" id="rvg_odb_schedule" class="odb-schedule-select" onchange="schedule_changed();"> |
| 188 |
<option selected="selected" value=""> |
| 189 |
'.__('NOT SCHEDULED',$this->odb_txt_domain).' |
| 190 |
</option> |
| 191 |
<option value="hourly"> |
| 192 |
'.__('run optimization HOURLY',$this->odb_txt_domain).' |
| 193 |
</option> |
| 194 |
<option value="twicedaily"> |
| 195 |
'.__('run optimization TWICE A DAY',$this->odb_txt_domain).' |
| 196 |
</option> |
| 197 |
<option value="daily"> |
| 198 |
'.__('run optimization DAILY',$this->odb_txt_domain).' |
| 199 |
</option> |
| 200 |
<option value="weekly"> |
| 201 |
'.__('run optimization WEEKLY',$this->odb_txt_domain).' |
| 202 |
</option> |
| 203 |
</select> |
| 204 |
<script type="text/javascript"> |
| 205 |
jQuery("#rvg_odb_schedule").val("'.$this->odb_rvg_options['schedule_type'].'"); |
| 206 |
</script> |
| 207 |
</tr> |
| 208 |
<tr id="schedulehour"> |
| 209 |
<td width="50%" align="right"><span class="odb-bold"> |
| 210 |
'.__('Time',$this->odb_txt_domain).' |
| 211 |
</span></td> |
| 212 |
<td> |
| 213 |
<select name="rvg_odb_schedulehour" id="rvg_odb_schedulehour" class="odb-schedulehour-select"> |
| 214 |
'; |
| 215 |
|
| 216 |
for($i=0; $i<=23; $i++) |
| 217 |
{ if($i<10) $i = '0'.$i; |
| 218 |
?> |
| 219 |
<option value="<?php echo $i?>"><?php echo $i.':00 '.__('hrs',$this->odb_txt_domain)?></option> |
| 220 |
<?php |
| 221 |
} // for($i=0; $i<=23; $i++) |
| 222 |
|
| 223 |
echo ' |
| 224 |
</select> |
| 225 |
<script type="text/javascript"> |
| 226 |
jQuery("#rvg_odb_schedulehour").val("'.$this->odb_rvg_options['schedule_hour'].'"); |
| 227 |
</script> |
| 228 |
</span> |
| 229 |
</div> |
| 230 |
</td> |
| 231 |
</tr> |
| 232 |
<script type="text/javascript">schedule_changed();</script> |
| 233 |
<tr> |
| 234 |
<td align="right" valign="top"><span class="odb-bold"> |
| 235 |
'.__('Show \'1-click\' link in Admin Bar',$this->odb_txt_domain).'* |
| 236 |
</span></td> |
| 237 |
<td valign="top"><input name="rvg_odb_adminbar" type="checkbox" value="Y" '.$cb_adminbar.'></td> |
| 238 |
</tr> |
| 239 |
<tr> |
| 240 |
<td align="right" valign="top"><span class="odb-bold"> |
| 241 |
'. __('Show an icon in the Admin Menu',$this->odb_txt_domain).'* |
| 242 |
</span></td> |
| 243 |
<td valign="top"><input name="rvg_odb_adminmenu" type="checkbox" value="Y" '.$cb_adminmenu.'></td> |
| 244 |
</tr> |
| 245 |
</table> |
| 246 |
<div align="center"><em>* '.__('change will be visible after loading the next page', $this->odb_txt_domain).'</em></div> |
| 247 |
<br> |
| 248 |
<div align="center"> |
| 249 |
<span class="odb-bold"> |
| 250 |
'.__('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).' |
| 251 |
<br><br> |
| 252 |
'; |
| 253 |
?> |
| 254 |
|
| 255 |
<a href="javascript:;" onclick="jQuery('[id^=cb_]').attr('checked',true);"> |
| 256 |
<?php _e('check all tables', $this->odb_txt_domain);?> |
| 257 |
</a> | <a href="javascript:;" onclick="jQuery('[id^=cb_]').attr('checked',false);"> |
| 258 |
<?php _e('uncheck all tables', $this->odb_txt_domain);?> |
| 259 |
</a> | <a href="javascript:;" onclick="jQuery(':not([id^=cb_<?php echo $this->odb_ms_prefixes[0]; ?>])').filter('[id^=cb_]').attr('checked',true);"> |
| 260 |
<?php _e('check all NON-WordPress tables', $this->odb_txt_domain);?> |
| 261 |
</a> |
| 262 |
|
| 263 |
<?php |
| 264 |
echo ' |
| 265 |
</span> |
| 266 |
<div id="odb-options-tables-container"> |
| 267 |
<div id="odb-options-tables-wrapper"> |
| 268 |
'; |
| 269 |
|
| 270 |
for ($i=0; $i<count($this->odb_tables); $i++) |
| 271 |
{ $class = ''; |
| 272 |
for($j=0; $j<count($this->odb_ms_prefixes); $j++) |
| 273 |
if(substr($this->odb_tables[$i][0], 0, strlen($this->odb_ms_prefixes[$j])) == $this->odb_ms_prefixes[$j]) $class = ' odb-wp-table'; |
| 274 |
$cb_checked = ''; |
| 275 |
if(isset($this->odb_rvg_excluded_tabs[$this->odb_tables[$i][0]])) $cb_checked = ' checked'; |
| 276 |
?> |
| 277 |
<div class="odb-options-table<?php echo $class;?>" title="<?php echo $this->odb_tables[$i][0];?>"> |
| 278 |
<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; ?>> |
| 279 |
<?php echo $this->odb_tables[$i][0];?></div> |
| 280 |
<?php |
| 281 |
} |
| 282 |
|
| 283 |
echo ' |
| 284 |
</div><!-- /odb-options-tables-wrapper --> |
| 285 |
<div id="odb-options-buttons" align="center"> |
| 286 |
<p> |
| 287 |
<input class="button-primary button-large" type="submit" name="info_update" value="'.__('Save Settings',$this->odb_txt_domain).'" class="odb-bold"> |
| 288 |
|
| 289 |
<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\'"> |
| 290 |
</p> |
| 291 |
</div> |
| 292 |
<!-- odb-options-buttons --> |
| 293 |
</div><!-- /odb-options-tables-container --> |
| 294 |
</div><!-- /center --> |
| 295 |
</div><!-- /odb-options-settings --> |
| 296 |
</div><!-- /odb-options-wrap --> |
| 297 |
</form> |
| 298 |
</div><!-- /odb-options-form --> |
| 299 |
</div><!-- /odb-padding-left --> |
| 300 |
'; |
| 301 |
?> |