PluginProbe
Optimize Database after Deleting Revisions / 5.2
Optimize Database after Deleting Revisions v5.2
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 / classes / odb-displayer.php

odb-displayer.php in Optimize Database after Deleting Revisions 5.2, at classes/odb-displayer.php

248 lines 12.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /************************************************************************************************
3 *
4 * DISPLAYER CLASS: DISPLAY HEADERS, CURRENT SETTINGS, BUTTONS
5 *
6 ************************************************************************************************/
7 ?>
8 <?php
9 class ODB_Displayer {
10 /********************************************************************************************
11 * CONSTRUCTOR
12 ********************************************************************************************/
13 function __construct() {
14 } // __construct()
15
16
17 /********************************************************************************************
18 * DISPLAY THE PAGE HEADER
19 ********************************************************************************************/
20 function display_header() {
21 global $odb_class;
22
23 // V4.1.9: RUNNING INDICATOR ADDED
24 echo '
25 <div id="odb-running" style="display:none"></div>
26 <div id="odb-header" class="odb-padding-left">
27 <div id="odb-options-opening">
28 <div class="odb-title-bar">
29 <h2>'.__('Optimize Database after Deleting Revisions','rvg-optimize-database').'</h2>
30 </div>
31 <div class="odb-subheader-container">
32 <div class="odb-subheader-left">
33 <p class="odb-bold"> <em>'.__('One-click database optimization with precise revision cleanup and flexible scheduling.', 'rvg-optimize-database').'</em> </p>
34 <span>Now maintained and supported by <a href="https://www.nerdpress.net/?utm_source=odadr&utm_medium=plugin&utm_campaign=odadr-header">NerdPress</a>! <a href="https://www.nerdpress.net/announcing-optimize-database/?utm_source=odadr&utm_medium=plugin&utm_campaign=odadr-header">Read the announcement</a>.
35 </span>
36 </div>
37 <!--odb-subheader-left-->
38 <div class="odb-subheader-right"></div>
39 <!-- odb-subheader-right -->
40 </div>
41 <!--odb-subheader-container-->
42 </div>
43 <!-- odb-options-opening -->
44 </div>
45 <!-- /odb-header -->
46 ';
47 } // display_header
48
49
50 /********************************************************************************************
51 * DISPLAY THE CURRENT SETTINGS
52 ********************************************************************************************/
53 function display_current_settings() {
54 global $odb_class;
55
56 $y = __('YES', 'rvg-optimize-database');
57 $n = __('NO', 'rvg-optimize-database');
58
59 // CURRENT SETTINGS
60 $trash = ($odb_class->odb_rvg_options['clear_trash'] == 'Y') ? $y : $n;
61 $spam = ($odb_class->odb_rvg_options['clear_spam'] == 'Y') ? $y : $n;
62 $tag = ($odb_class->odb_rvg_options['clear_tags'] == 'Y') ? $y : $n;
63
64 if($odb_class->odb_rvg_options['clear_transients'] == 'Y') {
65 $trans = __('DELETE EXPIRED TRANSIENTS', 'rvg-optimize-database');
66 } else if ($odb_class->odb_rvg_options['clear_transients'] == 'A') {
67 $trans = __('DELETE ALL TRANSIENTS', 'rvg-optimize-database');
68 } else {
69 $trans = $n;
70 }
71
72 //$trans = ($odb_class->odb_rvg_options['clear_transients'] == 'Y') ? $y : $n;
73 $ping = ($odb_class->odb_rvg_options['clear_pingbacks'] == 'Y') ? $y : $n;
74 $oembed = ($odb_class->odb_rvg_options['clear_oembed'] == 'Y') ? $y : $n;
75 $log = ($odb_class->odb_rvg_options['logging_on'] == 'Y') ? $y : $n;
76 $innodb = ($odb_class->odb_rvg_options['optimize_innodb'] == 'Y') ? $y : $n;
77
78 if($odb_class->odb_rvg_options['schedule_type'] == 'fiveminutes')
79 $schedule = __('EVERY FIVE MINUTES','rvg-optimize-database');
80 else if($odb_class->odb_rvg_options['schedule_type'] == 'hourly')
81 $schedule = __('ONCE HOURLY','rvg-optimize-database');
82 else if($odb_class->odb_rvg_options['schedule_type'] == 'twicedaily')
83 $schedule = __('TWICE DAILY','rvg-optimize-database');
84 else if($odb_class->odb_rvg_options['schedule_type'] == 'daily')
85 $schedule = __('ONCE DAILY','rvg-optimize-database');
86 else if($odb_class->odb_rvg_options['schedule_type'] == 'weekly')
87 $schedule = __('ONCE WEEKLY','rvg-optimize-database');
88 else if($odb_class->odb_rvg_options['schedule_type'] == 'monthly')
89 $schedule = __('ONCE MONTHLY','rvg-optimize-database');
90 else $schedule = __('NOT SCHEDULED','rvg-optimize-database');
91
92 echo '
93 <div id="odb-current-settings" class="odb-padding-left">
94 <div class="odb-title-bar">
95 <h2>'.__('Current settings','rvg-optimize-database').'</h2>
96 </div>
97 <br><br>
98 ';
99
100 // CUSTOM POST TYPES (from v4.4)
101 $rel_posttypes = $odb_class->odb_rvg_options['post_types'];
102 $rpt = '';
103 foreach ($rel_posttypes as $posttype => $value) {
104 if ($value == 'Y') {
105 if ($rpt != '') $rpt .= ', ';
106 $rpt .= strtoupper($posttype);
107 } // if ($value == 'Y')
108 } // foreach($rel_posttypes as $posttypes)
109
110 if ($rpt == '') $rpt = '(' . __('NONE', 'rvg-optimize-database') . ')';
111
112 echo '<span class="odb-bold">'.__('Delete revisions of', 'rvg-optimize-database').':</span> <span class="odb-bold odb-blue">'.$rpt.'</span><br>';
113
114 if($odb_class->odb_rvg_options['delete_older'] == 'Y') {
115 echo '<span class="odb-bold">'.__('Delete revisions older than', 'rvg-optimize-database').':</span> <span class="odb-bold odb-blue">'.$odb_class->odb_rvg_options['older_than'].' '.__("days", 'rvg-optimize-database').'</span><br>';
116 }
117
118 if($odb_class->odb_rvg_options['rvg_revisions'] == 'Y') {
119 echo '<span class="odb-bold">'.__('Maximum number of - most recent - revisions to keep per post / page', 'rvg-optimize-database').':</span> <span class="odb-bold odb-blue">'.$odb_class->odb_rvg_options['nr_of_revisions'].'</span><br>';
120 }
121
122 // v4.8.6
123 $lastrun = '';
124 if ($odb_class->odb_rvg_options['last_run_seconds'] == '') {
125 $lastrun = '<span class="odb-bold">' . __('Last run', 'rvg-optimize-database') . ':</span> <span class="odb-bold odb-blue">' . $odb_class->odb_rvg_options['last_run'] . '</span><br>';
126 } else {
127 $lastrun = '<span class="odb-bold">' . __('Last run', 'rvg-optimize-database') . ':</span> <span class="odb-bold odb-blue">' . $odb_class->odb_rvg_options['last_run'] . ' ' . __('hrs', 'rvg-optimize-database') . ' (' . __('in', 'rvg-optimize-database') . ' ' .$odb_class->odb_rvg_options['last_run_seconds'] . ' ' . __('seconds', 'rvg-optimize-database') . ')</span><br>';
128 }
129
130 echo '
131 <span class="odb-bold">'.__('Delete trashed items', 'rvg-optimize-database').':</span> <span class="odb-bold odb-blue">'.$trash.'</span><br>
132 <span class="odb-bold">'.__('Delete spammed items', 'rvg-optimize-database').':</span> <span class="odb-bold odb-blue">'.$spam.'</span><br>
133 <span class="odb-bold">'.__('Delete unused tags', 'rvg-optimize-database').':</span> <span class="odb-bold odb-blue">'.$tag.'</span><br>
134 <span class="odb-bold">'.__('Delete transients', 'rvg-optimize-database').':</span> <span class="odb-bold odb-blue">'.$trans.'</span><br>
135 <span class="odb-bold">'.__('Delete pingbacks and trackbacks', 'rvg-optimize-database').':</span> <span class="odb-bold odb-blue">'.$ping.'</span><br>
136 <span class="odb-bold">'.__('Clear oEmbed cache', 'rvg-optimize-database').':</span> <span class="odb-bold odb-blue">'.$oembed.'</span><br>
137 <span class="odb-bold">'.__('Keep a log', 'rvg-optimize-database').':</span> <span class="odb-bold odb-blue">'.$log.'</span><br>
138 <span class="odb-bold">'.__('Optimize InnoDB tables', 'rvg-optimize-database').':</span> <span class="odb-bold odb-blue">'.$innodb.'</span><br>
139 <span class="odb-bold">'.__('Number of excluded tables', 'rvg-optimize-database').':</span> <span class="odb-bold odb-blue">'.count($odb_class->odb_rvg_excluded_tabs).'</span><br>
140 ' . $lastrun . '
141 <span class="odb-bold">' . __('Scheduler', 'rvg-optimize-database') . ':</span> <span class="odb-bold odb-blue">' . $schedule . '</span><br>
142 ';
143
144 if($odb_class->odb_rvg_options['schedule_type'] != '') {
145 // v4.5
146 $current_timestamp = current_time('timestamp', 1);
147 $cron_timestamp = wp_next_scheduled('odb_scheduler');
148 $diff_secs = $cron_timestamp - $current_timestamp;
149 $nextrun = $this->secondsToTime($diff_secs) . '<br>';
150 echo '
151 <span class="odb-bold">'.__('Next scheduled run','rvg-optimize-database').':</span> <span class="odb-bold odb-blue">'.$nextrun.'</span><br>
152 ';
153 } // if($odb_class->odb_rvg_options['schedule_type'] != '')
154
155 echo '
156 <span class="odb-bold">'.__('Total savings since the first run', 'rvg-optimize-database').':</span> <span class="odb-bold odb-blue">'.$odb_class->odb_utilities_obj->odb_format_size($odb_class->odb_rvg_options['total_savings']).'</span>
157 </div><!-- /odb-current-settings -->
158 ';
159 } // display_current_settings()
160
161
162 /********************************************************************************************
163 * CONVERT SECONDS TO DAYS, HOURS, MINUTES AND SECONDS
164 ********************************************************************************************/
165 private function secondsToTime($seconds) {
166 global $odb_class;
167
168 $dtF = new \DateTime('@0');
169 $dtT = new \DateTime("@$seconds");
170 // v4.5.2
171 $d = __('days', 'rvg-optimize-database');
172 $h = __('hours', 'rvg-optimize-database');
173 $i = __('minutes', 'rvg-optimize-database');
174 $a = __('and', 'rvg-optimize-database');
175 $s = __('seconds', 'rvg-optimize-database');
176 return $dtF->diff($dtT)->format('%a ' . $d . ', %h ' . $h . ', %i ' . $i . ' ' . $a . ' %s ' . $s);
177 } // secondsToTime()
178
179
180 /********************************************************************************************
181 * DISPLAY THE START BUTTONS
182 ********************************************************************************************/
183 function display_start_buttons($action) {
184 global $odb_class;
185
186 $nonce = wp_create_nonce( 'rvg-optimize-database' );
187
188 if(!defined('RUN_OPTIMIZE_DATABASE')) {
189 echo '
190 <div id="odb-start-buttons" class="odb-padding-left">
191 <br>
192 <p>
193 <input class="button odb-normal" type="button" name="change_options" value="'.__('Change Settings', 'rvg-optimize-database').'" onclick="self.location=\'options-general.php?page=odb_settings_page\'">
194 <br><br>
195 ';
196
197 // v4.6
198 if($odb_class->odb_logger_obj->odb_log_count() > 0) {
199 // THERE IS A LOG FILE
200 // v4.6.2
201 $msg = str_replace("'", "\'", __('Clear the log?', 'rvg-optimize-database'));
202
203 echo "
204 <script>
205 function odb_confirm_delete() {
206 if(confirm('" . $msg . "')) {
207 self.location = 'tools.php?page=rvg-optimize-database&action=clear_log&_wpnonce=<?php echo esc_js( $nonce ); ?>'
208 return;
209 }
210 } // odb_confirm_delete()
211 </script>
212 ";
213 } // if(file_exists($this->odb_plugin_path.'logs/rvg-optimize-db-log.html'))
214
215 if($action != 'run') {
216 // NOT RUNNING: SHOW LOG- AND START BUTTONS
217 if($odb_class->odb_logger_obj->odb_log_count() > 0) {
218 echo '
219 <input class="button odb-normal" type="button" name="view_log" value="'.__('View Log', 'rvg-optimize-database').'" onclick="self.location=\'tools.php?page=rvg-optimize-database&action=view_log&_wpnonce=' . $nonce . '\'">
220 &nbsp;
221 <input class="button odb-normal" type="button" name="clear_log" value="'.__('Clear Log', 'rvg-optimize-database').'" onclick="return odb_confirm_delete();">
222 <br><br>
223 ';
224 } // if($odb_class->odb_logger_obj->odb_log_count() > 0)
225
226 // v4.8.0
227 echo '
228 <input class="button-primary button-large" type="button" name="analyze_summary" value="'.__('Analyze (summary)', 'rvg-optimize-database').'" onclick="self.location=\'tools.php?page=rvg-optimize-database&action=analyze_summary&_wpnonce=' . $nonce . '\'" class="odb-bold">
229 &nbsp;
230 <input class="button-primary button-large" type="button" name="analyze_detail" value="'.__('Analyze (detail)', 'rvg-optimize-database').'" onclick="self.location=\'tools.php?page=rvg-optimize-database&action=analyze_detail&_wpnonce=' . $nonce . '\'" class="odb-bold">
231 <br><br>
232 <input class="button-primary button-large" type="button" name="run_summary" value="'.__('Optimize (summary)', 'rvg-optimize-database').'" onclick="self.location=\'tools.php?page=rvg-optimize-database&action=run_summary&_wpnonce=' . $nonce . '\'" class="odb-bold">
233 &nbsp;
234 <input class="button-primary button-large" type="button" name="run_detail" value="'.__('Optimize (detail)', 'rvg-optimize-database').'" onclick="self.location=\'tools.php?page=rvg-optimize-database&action=run_detail&_wpnonce=' . $nonce . '\'" class="odb-bold">
235 ';
236 } // if($odb_class->odb_logger_obj->odb_log_count() > 0)
237
238 echo '
239 </p>
240 </div><!-- /odb-start-buttons -->
241 ';
242 } else if (RUN_OPTIMIZE_DATABASE) {
243 echo 'Database optimized!';
244 } // if(!defined('RUN_OPTIMIZE_DATABASE'))
245 } // display_start_buttons()
246 } // ODB_Displayer
247 ?>
248