Version Description
= After an upgrade from version 2 =
Please check all settings after the update:
- Dropbox authentication must be done again
- SugarSync authentication must be done again
- S3 Settings
- Google Storage is now in S3
- Check all your passwords
Download this release
Release Info
Developer | danielhuesken |
Plugin | BackWPup – WordPress Backup Plugin |
Version | 3.2.3 |
Comparing to | |
See all releases |
Code changes from version 3.2.2 to 3.2.3
- assets/css/lower_wp38.css +0 -60
- assets/css/lower_wp38.min.css +0 -1
- backwpup.php +534 -532
- inc/class-admin.php +18 -55
- inc/class-destination-s3-v1.php +3 -0
- inc/class-destination-s3.php +3 -0
- inc/class-file.php +3 -1
- inc/class-job.php +2439 -2439
- inc/class-option.php +76 -70
- inc/class-page-jobs.php +4 -1
- languages/backwpup.pot +5583 -5576
- readme.txt +13 -3
assets/css/lower_wp38.css
DELETED
@@ -1,60 +0,0 @@
|
|
1 |
-
#adminmenu #toplevel_page_backwpup div.wp-menu-image:before {
|
2 |
-
speak: none;
|
3 |
-
font-size: 16px !important;
|
4 |
-
color: #999;
|
5 |
-
padding-top: 6px;
|
6 |
-
padding-left: 7px;
|
7 |
-
height: 20px;
|
8 |
-
width: 20px;
|
9 |
-
display: inline-block;
|
10 |
-
-webkit-font-smoothing: antialiased;
|
11 |
-
-moz-osx-font-smoothing: grayscale;
|
12 |
-
-moz-transition: all .1s ease-in-out;
|
13 |
-
-webkit-transition: all .1s ease-in-out;
|
14 |
-
transition: all .1s ease-in-out;
|
15 |
-
}
|
16 |
-
|
17 |
-
|
18 |
-
#adminmenu #toplevel_page_backwpup.wp-has-current-submenu div.wp-menu-image:before {
|
19 |
-
color: #ffffff;
|
20 |
-
}
|
21 |
-
|
22 |
-
#wp-admin-bar-backwpup .ab-icon {
|
23 |
-
margin-top: 3px;
|
24 |
-
}
|
25 |
-
|
26 |
-
#wp-admin-bar-backwpup .ab-icon:before {
|
27 |
-
top: 0;
|
28 |
-
font-size: 16px !important;
|
29 |
-
speak: none;
|
30 |
-
display: inline-block;
|
31 |
-
-webkit-font-smoothing: antialiased;
|
32 |
-
-moz-osx-font-smoothing: grayscale;
|
33 |
-
-moz-transition: all .1s ease-in-out;
|
34 |
-
-webkit-transition: all .1s ease-in-out;
|
35 |
-
transition: all .1s ease-in-out;
|
36 |
-
}
|
37 |
-
|
38 |
-
@media screen and (max-width: 782px) {
|
39 |
-
#wp-admin-bar-backwpup .ab-icon {
|
40 |
-
position: relative;
|
41 |
-
float: left;
|
42 |
-
width: 16px;
|
43 |
-
height: 16px;
|
44 |
-
font-size: 16px !important;
|
45 |
-
top: 4px;
|
46 |
-
}
|
47 |
-
}
|
48 |
-
|
49 |
-
#backwpup-page-icon:before {
|
50 |
-
font-family: 'backwpup' !important;
|
51 |
-
content: "\e600";
|
52 |
-
}
|
53 |
-
|
54 |
-
#backwpup-page .backwpup-floated-postbox {
|
55 |
-
padding: 0;
|
56 |
-
}
|
57 |
-
#backwpup-page .backwpup-floated-postbox > .inside,
|
58 |
-
#backwpup-page .wizardbox > form {
|
59 |
-
margin: 15px;
|
60 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/css/lower_wp38.min.css
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
#adminmenu #toplevel_page_backwpup div.wp-menu-image:before,#wp-admin-bar-backwpup .ab-icon:before{font-size:16px!important;speak:none;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#adminmenu #toplevel_page_backwpup div.wp-menu-image:before{color:#999;padding-top:6px;padding-left:7px;height:20px;width:20px;-moz-transition:all .1s ease-in-out;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}#adminmenu #toplevel_page_backwpup.wp-has-current-submenu div.wp-menu-image:before{color:#fff}#wp-admin-bar-backwpup .ab-icon{margin-top:3px}#wp-admin-bar-backwpup .ab-icon:before{top:0;-moz-transition:all .1s ease-in-out;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}@media screen and (max-width:782px){#wp-admin-bar-backwpup .ab-icon{position:relative;float:left;width:16px;height:16px;font-size:16px!important;top:4px}}#backwpup-page-icon:before{font-family:backwpup!important;content:"\e600"}#backwpup-page .backwpup-floated-postbox{padding:0}#backwpup-page .backwpup-floated-postbox>.inside,#backwpup-page .wizardbox>form{margin:15px}
|
|
backwpup.php
CHANGED
@@ -1,532 +1,534 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Plugin Name: BackWPup
|
4 |
-
* Plugin URI: https://marketpress.com/product/backwpup-pro/
|
5 |
-
* Description: WordPress Backup Plugin
|
6 |
-
* Author: Inpsyde GmbH
|
7 |
-
* Author URI: http://inpsyde.com
|
8 |
-
* Version: 3.2.
|
9 |
-
* Text Domain: backwpup
|
10 |
-
* Domain Path: /languages/
|
11 |
-
* Network: true
|
12 |
-
* License: GPLv3
|
13 |
-
* License URI: http://www.gnu.org/licenses/gpl-3.0
|
14 |
-
*/
|
15 |
-
|
16 |
-
/**
|
17 |
-
* Copyright (C) 2012-
|
18 |
-
*
|
19 |
-
* This program is free software; you can redistribute it and/or
|
20 |
-
* modify it under the terms of the GNU General Public License
|
21 |
-
* as published by the Free Software Foundation; either version 2
|
22 |
-
* of the License, or (at your option) any later version.
|
23 |
-
*
|
24 |
-
* This program is distributed in the hope that it will be useful,
|
25 |
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
26 |
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
27 |
-
* GNU General Public License for more details.
|
28 |
-
*
|
29 |
-
* You should have received a copy of the GNU General Public License
|
30 |
-
* along with this program; if not, write to the Free Software
|
31 |
-
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
32 |
-
*/
|
33 |
-
|
34 |
-
if ( ! class_exists( 'BackWPup' ) ) {
|
35 |
-
|
36 |
-
// Don't activate on anything less than PHP 5.2.7 or WordPress 3.1
|
37 |
-
if ( version_compare( PHP_VERSION, '5.2.7', '<' ) || version_compare( get_bloginfo( 'version' ), '3.
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
private static $
|
54 |
-
private static $
|
55 |
-
private static $
|
56 |
-
private static $
|
57 |
-
private static $
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
//
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
//
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
//
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
* @
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
*
|
129 |
-
*
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
'
|
141 |
-
'
|
142 |
-
'
|
143 |
-
'
|
144 |
-
'
|
145 |
-
'
|
146 |
-
'
|
147 |
-
'
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
self::$plugin_data[ '
|
153 |
-
self::$plugin_data[ '
|
154 |
-
self::$plugin_data[ '
|
155 |
-
|
156 |
-
self::$plugin_data[ '
|
157 |
-
|
158 |
-
self::$plugin_data[ '
|
159 |
-
self::$plugin_data[ '
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
self::$plugin_data[ '
|
173 |
-
|
174 |
-
|
175 |
-
self::$plugin_data[ '
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
self::$plugin_data[ '
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
return self::$plugin_data;
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
*
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
*
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
*
|
259 |
-
*
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
}
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
*
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
'
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
'
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
'
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
'
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
'
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
'
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
'
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
'
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
'
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
'
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
'
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
'
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
'
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
'
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
'
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
'
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
'
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
'
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
'
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
*
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
self::$job_types[ '
|
493 |
-
self::$job_types[ '
|
494 |
-
self::$job_types[ '
|
495 |
-
|
496 |
-
self::$job_types
|
497 |
-
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
*
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
-
|
517 |
-
|
518 |
-
|
519 |
-
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
-
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
}
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Plugin Name: BackWPup
|
4 |
+
* Plugin URI: https://marketpress.com/product/backwpup-pro/
|
5 |
+
* Description: WordPress Backup Plugin
|
6 |
+
* Author: Inpsyde GmbH
|
7 |
+
* Author URI: http://inpsyde.com
|
8 |
+
* Version: 3.2.3
|
9 |
+
* Text Domain: backwpup
|
10 |
+
* Domain Path: /languages/
|
11 |
+
* Network: true
|
12 |
+
* License: GPLv3
|
13 |
+
* License URI: http://www.gnu.org/licenses/gpl-3.0
|
14 |
+
*/
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Copyright (C) 2012-2016 Inpsyde GmbH (email: info@inpsyde.com)
|
18 |
+
*
|
19 |
+
* This program is free software; you can redistribute it and/or
|
20 |
+
* modify it under the terms of the GNU General Public License
|
21 |
+
* as published by the Free Software Foundation; either version 2
|
22 |
+
* of the License, or (at your option) any later version.
|
23 |
+
*
|
24 |
+
* This program is distributed in the hope that it will be useful,
|
25 |
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
26 |
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
27 |
+
* GNU General Public License for more details.
|
28 |
+
*
|
29 |
+
* You should have received a copy of the GNU General Public License
|
30 |
+
* along with this program; if not, write to the Free Software
|
31 |
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
32 |
+
*/
|
33 |
+
|
34 |
+
if ( ! class_exists( 'BackWPup' ) ) {
|
35 |
+
|
36 |
+
// Don't activate on anything less than PHP 5.2.7 or WordPress 3.1
|
37 |
+
if ( version_compare( PHP_VERSION, '5.2.7', '<' ) || version_compare( get_bloginfo( 'version' ), '3.8', '<' ) || ! function_exists( 'spl_autoload_register' ) ) {
|
38 |
+
require_once ABSPATH . 'wp-admin/includes/plugin.php';
|
39 |
+
deactivate_plugins( __FILE__ );
|
40 |
+
die( 'BackWPup requires PHP version 5.2.7 with spl extension or greater and WordPress 3.8 or greater.' );
|
41 |
+
}
|
42 |
+
|
43 |
+
//Start Plugin
|
44 |
+
if ( function_exists( 'add_filter' ) ) {
|
45 |
+
add_action( 'plugins_loaded', array( 'BackWPup', 'get_instance' ), 11 );
|
46 |
+
}
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Main BackWPup Plugin Class
|
50 |
+
*/
|
51 |
+
final class BackWPup {
|
52 |
+
|
53 |
+
private static $instance = NULL;
|
54 |
+
private static $plugin_data = array();
|
55 |
+
private static $autoload = array();
|
56 |
+
private static $destinations = array();
|
57 |
+
private static $registered_destinations = array();
|
58 |
+
private static $job_types = array();
|
59 |
+
private static $wizards = array();
|
60 |
+
|
61 |
+
/**
|
62 |
+
* Set needed filters and actions and load
|
63 |
+
*/
|
64 |
+
private function __construct() {
|
65 |
+
|
66 |
+
// Nothing else matters if we're not on the main site
|
67 |
+
if ( ! is_main_site() ) {
|
68 |
+
return;
|
69 |
+
}
|
70 |
+
//auto loader
|
71 |
+
spl_autoload_register( array( $this, 'autoloader' ) );
|
72 |
+
//start upgrade if needed
|
73 |
+
if ( get_site_option( 'backwpup_version' ) != self::get_plugin_data( 'Version' ) ) {
|
74 |
+
BackWPup_Install::activate();
|
75 |
+
}
|
76 |
+
//load pro features
|
77 |
+
if ( class_exists( 'BackWPup_Pro' ) ) {
|
78 |
+
BackWPup_Pro::get_instance();
|
79 |
+
}
|
80 |
+
//WP-Cron
|
81 |
+
if ( defined( 'DOING_CRON' ) && DOING_CRON ) {
|
82 |
+
if ( ! empty( $_GET[ 'backwpup_run' ] ) && class_exists( 'BackWPup_Job' ) ) {
|
83 |
+
//early disable caches
|
84 |
+
BackWPup_Job::disable_caches();
|
85 |
+
//add action for running jobs in wp-cron.php
|
86 |
+
add_action( 'init', array( 'BackWPup_Cron', 'cron_active' ), PHP_INT_MAX );
|
87 |
+
} else {
|
88 |
+
//add cron actions
|
89 |
+
add_action( 'backwpup_cron', array( 'BackWPup_Cron', 'run' ) );
|
90 |
+
add_action( 'backwpup_check_cleanup', array( 'BackWPup_Cron', 'check_cleanup' ) );
|
91 |
+
}
|
92 |
+
//if in cron the rest is not needed
|
93 |
+
return;
|
94 |
+
}
|
95 |
+
//deactivation hook
|
96 |
+
register_deactivation_hook( __FILE__, array( 'BackWPup_Install', 'deactivate' ) );
|
97 |
+
//Admin bar
|
98 |
+
if ( get_site_option( 'backwpup_cfg_showadminbar', FALSE ) ) {
|
99 |
+
add_action( 'init', array( 'BackWPup_Adminbar', 'get_instance' ) );
|
100 |
+
}
|
101 |
+
//only in backend
|
102 |
+
if ( is_admin() && class_exists( 'BackWPup_Admin' ) ) {
|
103 |
+
BackWPup_Admin::get_instance();
|
104 |
+
}
|
105 |
+
//work with wp-cli
|
106 |
+
if ( defined( 'WP_CLI' ) && WP_CLI && method_exists( 'WP_CLI', 'add_command' ) ) {
|
107 |
+
WP_CLI::add_command( 'backwpup', 'BackWPup_WP_CLI' );
|
108 |
+
}
|
109 |
+
}
|
110 |
+
|
111 |
+
/**
|
112 |
+
* @static
|
113 |
+
*
|
114 |
+
* @return self
|
115 |
+
*/
|
116 |
+
public static function get_instance() {
|
117 |
+
|
118 |
+
if (NULL === self::$instance) {
|
119 |
+
self::$instance = new self;
|
120 |
+
}
|
121 |
+
return self::$instance;
|
122 |
+
}
|
123 |
+
|
124 |
+
|
125 |
+
private function __clone() {}
|
126 |
+
|
127 |
+
/**
|
128 |
+
* get information about the Plugin
|
129 |
+
*
|
130 |
+
* @param string $name Name of info to get or NULL to get all
|
131 |
+
* @return string|array
|
132 |
+
*/
|
133 |
+
public static function get_plugin_data( $name = NULL ) {
|
134 |
+
|
135 |
+
if ( $name )
|
136 |
+
$name = strtolower( trim( $name ) );
|
137 |
+
|
138 |
+
if ( empty( self::$plugin_data ) ) {
|
139 |
+
self::$plugin_data = get_file_data( __FILE__, array(
|
140 |
+
'name' => 'Plugin Name',
|
141 |
+
'pluginuri' => 'Plugin URI',
|
142 |
+
'version' => 'Version',
|
143 |
+
'description' => 'Description',
|
144 |
+
'author' => 'Author',
|
145 |
+
'authoruri' => 'Author URI',
|
146 |
+
'textdomain' => 'Text Domain',
|
147 |
+
'domainpath' => 'Domain Path',
|
148 |
+
'license' => 'License',
|
149 |
+
'licenseuri' => 'License URI'
|
150 |
+
), 'plugin' );
|
151 |
+
//Translate some vars
|
152 |
+
self::$plugin_data[ 'name' ] = trim( self::$plugin_data[ 'name' ] );
|
153 |
+
self::$plugin_data[ 'pluginuri' ] = trim( self::$plugin_data[ 'pluginuri' ] );
|
154 |
+
self::$plugin_data[ 'description' ] = trim( self::$plugin_data[ 'description' ] );
|
155 |
+
self::$plugin_data[ 'author' ] = trim( self::$plugin_data[ 'author' ] );
|
156 |
+
self::$plugin_data[ 'authoruri' ] = trim( self::$plugin_data[ 'authoruri' ] );
|
157 |
+
//set some extra vars
|
158 |
+
self::$plugin_data[ 'basename' ] = plugin_basename( dirname( __FILE__ ) );
|
159 |
+
self::$plugin_data[ 'mainfile' ] = __FILE__ ;
|
160 |
+
self::$plugin_data[ 'plugindir' ] = untrailingslashit( dirname( __FILE__ ) ) ;
|
161 |
+
self::$plugin_data[ 'hash' ] = get_site_option( 'backwpup_cfg_hash' );
|
162 |
+
if ( empty( self::$plugin_data[ 'hash' ] ) || strlen( self::$plugin_data[ 'hash' ] ) < 6 || strlen( self::$plugin_data[ 'hash' ] ) > 12 ) {
|
163 |
+
update_site_option( 'backwpup_cfg_hash', substr( md5( md5( BackWPup::get_plugin_data( "mainfile" ) ) ), 14, 6 ) );
|
164 |
+
self::$plugin_data[ 'hash' ] = get_site_option( 'backwpup_cfg_hash' );
|
165 |
+
}
|
166 |
+
if ( defined( 'WP_TEMP_DIR' ) && is_dir( WP_TEMP_DIR ) ) {
|
167 |
+
self::$plugin_data[ 'temp' ] = trailingslashit( untrailingslashit( str_replace( '\\', '/', WP_TEMP_DIR ) ) . '/backwpup-' . self::$plugin_data[ 'hash' ] );
|
168 |
+
} else {
|
169 |
+
$upload_dir = wp_upload_dir();
|
170 |
+
self::$plugin_data[ 'temp' ] = trailingslashit( untrailingslashit( str_replace( '\\', '/', $upload_dir[ 'basedir' ] ) ) . '/backwpup-' . self::$plugin_data[ 'hash' ] . '-temp' );
|
171 |
+
}
|
172 |
+
self::$plugin_data[ 'running_file' ] = self::$plugin_data[ 'temp' ] . 'backwpup-working.php';
|
173 |
+
self::$plugin_data[ 'url' ] = plugins_url( '', __FILE__ );
|
174 |
+
self::$plugin_data[ 'cacert' ] = FALSE;
|
175 |
+
if ( file_exists( self::$plugin_data[ 'plugindir' ] . '/vendor/Guzzle/Http/Resources/cacert.pem' ) )
|
176 |
+
self::$plugin_data[ 'cacert' ] = self::$plugin_data[ 'plugindir' ] . '/vendor/Guzzle/Http/Resources/cacert.pem';
|
177 |
+
self::$plugin_data[ 'cacert' ] = apply_filters( 'backwpup_cacert_bundle', self::$plugin_data[ 'cacert' ] );
|
178 |
+
//get unmodified WP Versions
|
179 |
+
include ABSPATH . WPINC . '/version.php';
|
180 |
+
/** @var $wp_version string */
|
181 |
+
self::$plugin_data[ 'wp_version' ] = $wp_version;
|
182 |
+
//Build User Agent
|
183 |
+
self::$plugin_data[ 'user-agent' ] = self::$plugin_data[ 'name' ].'/' . self::$plugin_data[ 'version' ] . '; WordPress/' . self::$plugin_data[ 'wp_version' ] . '; ' . home_url();
|
184 |
+
}
|
185 |
+
|
186 |
+
if ( ! empty( $name ) )
|
187 |
+
return self::$plugin_data[ $name ];
|
188 |
+
else
|
189 |
+
return self::$plugin_data;
|
190 |
+
}
|
191 |
+
|
192 |
+
|
193 |
+
/**
|
194 |
+
* include not existing classes automatically
|
195 |
+
*
|
196 |
+
* @param string $class Class to load from file
|
197 |
+
*/
|
198 |
+
private function autoloader( $class ) {
|
199 |
+
|
200 |
+
//BackWPup classes auto load
|
201 |
+
if ( strstr( strtolower( $class ), 'backwpup_' ) ) {
|
202 |
+
$dir = dirname( __FILE__ ) . DIRECTORY_SEPARATOR . 'inc' . DIRECTORY_SEPARATOR;
|
203 |
+
$class_file_name = 'class-' . str_replace( array( 'backwpup_', '_' ), array( '', '-' ), strtolower( $class ) ) . '.php';
|
204 |
+
if ( strstr( strtolower( $class ), 'backwpup_pro' ) ) {
|
205 |
+
$dir .= 'pro' . DIRECTORY_SEPARATOR;
|
206 |
+
$class_file_name = str_replace( 'pro-','', $class_file_name );
|
207 |
+
}
|
208 |
+
if ( file_exists( $dir . $class_file_name ) )
|
209 |
+
require $dir . $class_file_name;
|
210 |
+
}
|
211 |
+
|
212 |
+
// namespaced PSR-0
|
213 |
+
if ( ! empty( self::$autoload ) ) {
|
214 |
+
$pos = strrpos( $class, '\\' );
|
215 |
+
if ( $pos !== FALSE ) {
|
216 |
+
$class_path = str_replace( '\\', DIRECTORY_SEPARATOR, substr( $class, 0, $pos ) ) . DIRECTORY_SEPARATOR . str_replace( '_', DIRECTORY_SEPARATOR, substr( $class, $pos + 1 ) ) . '.php';
|
217 |
+
foreach ( self::$autoload as $prefix => $dir ) {
|
218 |
+
if ( $class === strstr( $class, $prefix ) ) {
|
219 |
+
if ( file_exists( $dir . DIRECTORY_SEPARATOR . $class_path ) )
|
220 |
+
require $dir . DIRECTORY_SEPARATOR . $class_path;
|
221 |
+
}
|
222 |
+
}
|
223 |
+
} // Single class file
|
224 |
+
elseif ( ! empty( self::$autoload[ $class ] ) && is_file( self::$autoload[ $class ] ) ) {
|
225 |
+
require self::$autoload[ $class ];
|
226 |
+
}
|
227 |
+
}
|
228 |
+
|
229 |
+
//Google SDK Auto loading
|
230 |
+
$classPath = explode( '_', $class );
|
231 |
+
if ( $classPath[0] == 'Google' ) {
|
232 |
+
if ( count( $classPath ) > 3 ) {
|
233 |
+
$classPath = array_slice( $classPath, 0, 3 );
|
234 |
+
}
|
235 |
+
$filePath = self::get_plugin_data( 'plugindir' ) . '/vendor/' . implode( '/', $classPath ) . '.php';
|
236 |
+
if ( file_exists( $filePath ) ) {
|
237 |
+
require $filePath;
|
238 |
+
}
|
239 |
+
}
|
240 |
+
|
241 |
+
}
|
242 |
+
|
243 |
+
/**
|
244 |
+
* Load Plugin Translation
|
245 |
+
*
|
246 |
+
* @return bool Text domain loaded
|
247 |
+
*/
|
248 |
+
public static function load_text_domain() {
|
249 |
+
|
250 |
+
if ( is_textdomain_loaded( 'backwpup' ) ) {
|
251 |
+
return TRUE;
|
252 |
+
}
|
253 |
+
|
254 |
+
return load_plugin_textdomain( 'backwpup', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' );
|
255 |
+
}
|
256 |
+
|
257 |
+
/**
|
258 |
+
* Get a array of instances for Backup Destination's
|
259 |
+
*
|
260 |
+
* @param $key string Key of Destination where get class instance from
|
261 |
+
* @return array BackWPup_Destinations
|
262 |
+
*/
|
263 |
+
public static function get_destination( $key ) {
|
264 |
+
|
265 |
+
$key = strtoupper( $key );
|
266 |
+
|
267 |
+
if ( isset( self::$destinations[ $key ] ) && is_object( self::$destinations[ $key ] ) )
|
268 |
+
return self::$destinations[ $key ];
|
269 |
+
|
270 |
+
$reg_dests = self::get_registered_destinations();
|
271 |
+
if ( ! empty( $reg_dests[ $key ][ 'class' ] ) ) {
|
272 |
+
self::$destinations[ $key ] = new $reg_dests[ $key ][ 'class' ];
|
273 |
+
} else {
|
274 |
+
return NULL;
|
275 |
+
}
|
276 |
+
|
277 |
+
return self::$destinations[ $key ];
|
278 |
+
}
|
279 |
+
|
280 |
+
/**
|
281 |
+
* Get a array of registered Destination's for Backups
|
282 |
+
*
|
283 |
+
* @return array BackWPup_Destinations
|
284 |
+
*/
|
285 |
+
public static function get_registered_destinations() {
|
286 |
+
|
287 |
+
//only run it one time
|
288 |
+
if ( ! empty( self::$registered_destinations ) )
|
289 |
+
return self::$registered_destinations;
|
290 |
+
|
291 |
+
//add BackWPup Destinations
|
292 |
+
// to folder
|
293 |
+
self::$registered_destinations[ 'FOLDER' ] = array(
|
294 |
+
'class' => 'BackWPup_Destination_Folder',
|
295 |
+
'info' => array(
|
296 |
+
'ID' => 'FOLDER',
|
297 |
+
'name' => __( 'Folder', 'backwpup' ),
|
298 |
+
'description' => __( 'Backup to Folder', 'backwpup' ),
|
299 |
+
),
|
300 |
+
'can_sync' => FALSE,
|
301 |
+
'needed' => array(
|
302 |
+
'php_version' => '',
|
303 |
+
'functions' => array(),
|
304 |
+
'classes' => array()
|
305 |
+
),
|
306 |
+
'autoload' => array()
|
307 |
+
);
|
308 |
+
// backup with mail
|
309 |
+
self::$registered_destinations[ 'EMAIL' ] = array(
|
310 |
+
'class' => 'BackWPup_Destination_Email',
|
311 |
+
'info' => array(
|
312 |
+
'ID' => 'EMAIL',
|
313 |
+
'name' => __( 'Email', 'backwpup' ),
|
314 |
+
'description' => __( 'Backup sent via email', 'backwpup' ),
|
315 |
+
),
|
316 |
+
'can_sync' => FALSE,
|
317 |
+
'needed' => array(
|
318 |
+
'php_version' => '5.2.4',
|
319 |
+
'functions' => array(),
|
320 |
+
'classes' => array()
|
321 |
+
),
|
322 |
+
'autoload' => array()
|
323 |
+
);
|
324 |
+
// backup to ftp
|
325 |
+
self::$registered_destinations[ 'FTP' ] = array(
|
326 |
+
'class' => 'BackWPup_Destination_Ftp',
|
327 |
+
'info' => array(
|
328 |
+
'ID' => 'FTP',
|
329 |
+
'name' => __( 'FTP', 'backwpup' ),
|
330 |
+
'description' => __( 'Backup to FTP', 'backwpup' ),
|
331 |
+
),
|
332 |
+
'can_sync' => FALSE,
|
333 |
+
'needed' => array(
|
334 |
+
'mphp_version' => '',
|
335 |
+
'functions' => array( 'ftp_nb_fput' ),
|
336 |
+
'classes' => array()
|
337 |
+
),
|
338 |
+
'autoload' => array()
|
339 |
+
);
|
340 |
+
// backup to dropbox
|
341 |
+
self::$registered_destinations[ 'DROPBOX' ] = array(
|
342 |
+
'class' => 'BackWPup_Destination_Dropbox',
|
343 |
+
'info' => array(
|
344 |
+
'ID' => 'DROPBOX',
|
345 |
+
'name' => __( 'Dropbox', 'backwpup' ),
|
346 |
+
'description' => __( 'Backup to Dropbox', 'backwpup' ),
|
347 |
+
),
|
348 |
+
'can_sync' => FALSE,
|
349 |
+
'needed' => array(
|
350 |
+
'php_version' => '',
|
351 |
+
'functions' => array( 'curl_exec' ),
|
352 |
+
'classes' => array()
|
353 |
+
),
|
354 |
+
'autoload' => array()
|
355 |
+
);
|
356 |
+
// Backup to S3
|
357 |
+
if ( version_compare( PHP_VERSION, '5.3.3', '>=' ) ) {
|
358 |
+
self::$registered_destinations[ 'S3' ] = array(
|
359 |
+
'class' => 'BackWPup_Destination_S3',
|
360 |
+
'info' => array(
|
361 |
+
'ID' => 'S3',
|
362 |
+
'name' => __( 'S3 Service', 'backwpup' ),
|
363 |
+
'description' => __( 'Backup to an S3 Service', 'backwpup' ),
|
364 |
+
),
|
365 |
+
'can_sync' => FALSE,
|
366 |
+
'needed' => array(
|
367 |
+
'php_version' => '5.3.3',
|
368 |
+
'functions' => array( 'curl_exec' ),
|
369 |
+
'classes' => array( 'XMLWriter' )
|
370 |
+
),
|
371 |
+
'autoload' => array( 'Aws\\Common' => dirname( __FILE__ ) .'/vendor',
|
372 |
+
'Aws\\S3' => dirname( __FILE__ ) .'/vendor',
|
373 |
+
'Symfony\\Component\\EventDispatcher' => dirname( __FILE__ ) . '/vendor',
|
374 |
+
'Guzzle' => dirname( __FILE__ ) . '/vendor' )
|
375 |
+
);
|
376 |
+
} else {
|
377 |
+
self::$registered_destinations[ 'S3' ] = array(
|
378 |
+
'class' => 'BackWPup_Destination_S3_V1',
|
379 |
+
'info' => array(
|
380 |
+
'ID' => 'S3',
|
381 |
+
'name' => __( 'S3 Service', 'backwpup' ),
|
382 |
+
'description' => __( 'Backup to an S3 Service v1', 'backwpup' ),
|
383 |
+
),
|
384 |
+
'can_sync' => FALSE,
|
385 |
+
'needed' => array(
|
386 |
+
'php_version' => '',
|
387 |
+
'functions' => array( 'curl_exec' ),
|
388 |
+
'classes' => array()
|
389 |
+
),
|
390 |
+
'autoload' => array( 'AmazonS3' => dirname( __FILE__ ) . '/vendor/Aws_v1/sdk.class.php' )
|
391 |
+
);
|
392 |
+
}
|
393 |
+
// backup to MS Azure
|
394 |
+
self::$registered_destinations[ 'MSAZURE' ] = array(
|
395 |
+
'class' => 'BackWPup_Destination_MSAzure',
|
396 |
+
'info' => array(
|
397 |
+
'ID' => 'MSAZURE',
|
398 |
+
'name' => __( 'MS Azure', 'backwpup' ),
|
399 |
+
'description' => __( 'Backup to Microsoft Azure (Blob)', 'backwpup' ),
|
400 |
+
),
|
401 |
+
'can_sync' => FALSE,
|
402 |
+
'needed' => array(
|
403 |
+
'php_version' => '5.3.2',
|
404 |
+
'functions' => array(),
|
405 |
+
'classes' => array()
|
406 |
+
),
|
407 |
+
'autoload' => array( 'WindowsAzure' => dirname( __FILE__ ) . '/vendor' )
|
408 |
+
);
|
409 |
+
// backup to Rackspace Cloud
|
410 |
+
self::$registered_destinations[ 'RSC' ] = array(
|
411 |
+
'class' => 'BackWPup_Destination_RSC',
|
412 |
+
'info' => array(
|
413 |
+
'ID' => 'RSC',
|
414 |
+
'name' => __( 'RSC', 'backwpup' ),
|
415 |
+
'description' => __( 'Backup to Rackspace Cloud Files', 'backwpup' ),
|
416 |
+
),
|
417 |
+
'can_sync' => FALSE,
|
418 |
+
'needed' => array(
|
419 |
+
'php_version' => '5.3.3',
|
420 |
+
'functions' => array( 'curl_exec' ),
|
421 |
+
'classes' => array()
|
422 |
+
),
|
423 |
+
'autoload' => array( 'OpenCloud' => dirname( __FILE__ ) . '/vendor',
|
424 |
+
'Guzzle' => dirname( __FILE__ ) . '/vendor' )
|
425 |
+
);
|
426 |
+
// backup to Sugarsync
|
427 |
+
self::$registered_destinations[ 'SUGARSYNC' ] = array(
|
428 |
+
'class' => 'BackWPup_Destination_SugarSync',
|
429 |
+
'info' => array(
|
430 |
+
'ID' => 'SUGARSYNC',
|
431 |
+
'name' => __( 'SugarSync', 'backwpup' ),
|
432 |
+
'description' => __( 'Backup to SugarSync', 'backwpup' ),
|
433 |
+
),
|
434 |
+
'can_sync' => FALSE,
|
435 |
+
'needed' => array(
|
436 |
+
'php_version' => '',
|
437 |
+
'functions' => array( 'curl_exec' ),
|
438 |
+
'classes' => array()
|
439 |
+
),
|
440 |
+
'autoload' => array()
|
441 |
+
);
|
442 |
+
|
443 |
+
//Hook for adding Destinations like above
|
444 |
+
self::$registered_destinations = apply_filters( 'backwpup_register_destination', self::$registered_destinations );
|
445 |
+
|
446 |
+
//check BackWPup Destinations
|
447 |
+
foreach ( self::$registered_destinations as $dest_key => $dest ) {
|
448 |
+
self::$registered_destinations[ $dest_key ][ 'error'] = '';
|
449 |
+
// check PHP Version
|
450 |
+
if ( ! empty( $dest[ 'needed' ][ 'php_version' ] ) && version_compare( PHP_VERSION, $dest[ 'needed' ][ 'php_version' ], '<' ) ) {
|
451 |
+
self::$registered_destinations[ $dest_key ][ 'error' ] .= sprintf( __( 'PHP Version %1$s is to low, you need Version %2$s or above.', 'backwpup' ), PHP_VERSION, $dest[ 'needed' ][ 'php_version' ] ) . ' ';
|
452 |
+
self::$registered_destinations[ $dest_key ][ 'class' ] = NULL;
|
453 |
+
}
|
454 |
+
//check functions exists
|
455 |
+
if ( ! empty( $dest[ 'needed' ][ 'functions' ] ) ) {
|
456 |
+
foreach ( $dest[ 'needed' ][ 'functions' ] as $function_need ) {
|
457 |
+
if ( ! function_exists( $function_need ) ) {
|
458 |
+
self::$registered_destinations[ $dest_key ][ 'error' ] .= sprintf( __( 'Missing function "%s".', 'backwpup' ), $function_need ) . ' ';
|
459 |
+
self::$registered_destinations[ $dest_key ][ 'class' ] = NULL;
|
460 |
+
}
|
461 |
+
}
|
462 |
+
}
|
463 |
+
//check classes exists
|
464 |
+
if ( ! empty( $dest[ 'needed' ][ 'classes' ] ) ) {
|
465 |
+
foreach ( $dest[ 'needed' ][ 'classes' ] as $class_need ) {
|
466 |
+
if ( ! class_exists( $class_need ) ) {
|
467 |
+
self::$registered_destinations[ $dest_key ][ 'error' ] .= sprintf( __( 'Missing class "%s".', 'backwpup' ), $class_need ) . ' ';
|
468 |
+
self::$registered_destinations[ $dest_key ][ 'class' ] = NULL;
|
469 |
+
}
|
470 |
+
}
|
471 |
+
}
|
472 |
+
//add class/namespace to auto load
|
473 |
+
if ( ! empty( self::$registered_destinations[ $dest_key ][ 'class' ] ) && ! empty( self::$registered_destinations[ $dest_key ][ 'autoload' ] ) )
|
474 |
+
self::$autoload = array_merge( self::$autoload, self::$registered_destinations[ $dest_key ][ 'autoload' ] );
|
475 |
+
|
476 |
+
}
|
477 |
+
|
478 |
+
return self::$registered_destinations;
|
479 |
+
}
|
480 |
+
|
481 |
+
|
482 |
+
/**
|
483 |
+
* Gets a array of instances from Job types
|
484 |
+
*
|
485 |
+
* @return array BackWPup_JobTypes
|
486 |
+
*/
|
487 |
+
public static function get_job_types() {
|
488 |
+
|
489 |
+
if ( !empty( self::$job_types ) )
|
490 |
+
return self::$job_types;
|
491 |
+
|
492 |
+
self::$job_types[ 'DBDUMP' ] = new BackWPup_JobType_DBDump;
|
493 |
+
self::$job_types[ 'FILE' ] = new BackWPup_JobType_File;
|
494 |
+
self::$job_types[ 'WPEXP' ] = new BackWPup_JobType_WPEXP;
|
495 |
+
self::$job_types[ 'WPPLUGIN' ] = new BackWPup_JobType_WPPlugin;
|
496 |
+
self::$job_types[ 'DBCHECK' ] = new BackWPup_JobType_DBCheck;
|
497 |
+
|
498 |
+
self::$job_types = apply_filters( 'backwpup_job_types', self::$job_types );
|
499 |
+
|
500 |
+
//remove types can't load
|
501 |
+
foreach ( self::$job_types as $key => $job_type ) {
|
502 |
+
if ( empty( $job_type ) || ! is_object( $job_type ) )
|
503 |
+
unset( self::$job_types[ $key ] );
|
504 |
+
}
|
505 |
+
|
506 |
+
return self::$job_types;
|
507 |
+
}
|
508 |
+
|
509 |
+
|
510 |
+
/**
|
511 |
+
* Gets a array of instances from Wizards
|
512 |
+
*
|
513 |
+
* @return array BackWPup_Pro_Wizards
|
514 |
+
*/
|
515 |
+
public static function get_wizards() {
|
516 |
+
|
517 |
+
if ( !empty( self::$wizards ) )
|
518 |
+
return self::$wizards;
|
519 |
+
|
520 |
+
self::$wizards = apply_filters( 'backwpup_pro_wizards', self::$wizards );
|
521 |
+
|
522 |
+
//remove wizards can't load
|
523 |
+
foreach ( self::$wizards as $key => $wizard ) {
|
524 |
+
if ( empty( $wizard ) || ! is_object( $wizard ) )
|
525 |
+
unset( self::$wizards[ $key ] );
|
526 |
+
}
|
527 |
+
|
528 |
+
return self::$wizards;
|
529 |
+
|
530 |
+
}
|
531 |
+
|
532 |
+
}
|
533 |
+
|
534 |
+
}
|
inc/class-admin.php
CHANGED
@@ -47,8 +47,7 @@ final class BackWPup_Admin {
|
|
47 |
add_action( 'show_user_profile', array( $this, 'user_profile_fields' ) );
|
48 |
add_action( 'edit_user_profile', array( $this, 'user_profile_fields' ) );
|
49 |
add_action( 'profile_update', array( $this, 'save_profile_update' ) );
|
50 |
-
|
51 |
-
add_filter( 'manage_users_custom_column', array( $this, 'manage_users_custom_column' ), 10, 3 );
|
52 |
//Change Backup message on core updates
|
53 |
add_filter( 'gettext', array( $this, 'gettext' ), 10, 3 );
|
54 |
|
@@ -112,14 +111,8 @@ final class BackWPup_Admin {
|
|
112 |
//register js and css for BackWPup
|
113 |
if ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) {
|
114 |
wp_enqueue_style( 'backwpup', BackWPup::get_plugin_data( 'URL' ) . '/assets/css/backwpup.css', array(), time(), 'screen' );
|
115 |
-
if ( version_compare( BackWPup::get_plugin_data( 'wp_version' ), '3.8-beta-1', '<' ) ) {
|
116 |
-
wp_enqueue_style( 'backwpup-wplt38', BackWPup::get_plugin_data( 'URL' ) . '/assets/css/lower_wp38.css', array( 'backwpup' ), time(), 'screen' );
|
117 |
-
}
|
118 |
} else {
|
119 |
wp_enqueue_style( 'backwpup', BackWPup::get_plugin_data( 'URL' ) . '/assets/css/backwpup.min.css', array(), BackWPup::get_plugin_data( 'Version' ), 'screen' );
|
120 |
-
if ( version_compare( BackWPup::get_plugin_data( 'wp_version' ), '3.8-beta-1', '<' ) ) {
|
121 |
-
wp_enqueue_style( 'backwpup-wplt38', BackWPup::get_plugin_data( 'URL' ) . '/assets/css/lower_wp38.min.css', array( 'backwpup' ), BackWPup::get_plugin_data( 'Version' ), 'screen' );
|
122 |
-
}
|
123 |
}
|
124 |
}
|
125 |
|
@@ -498,10 +491,12 @@ final class BackWPup_Admin {
|
|
498 |
return;
|
499 |
}
|
500 |
|
501 |
-
if (
|
502 |
return;
|
503 |
}
|
504 |
|
|
|
|
|
505 |
//get BackWPup roles
|
506 |
$backwpup_roles = array();
|
507 |
foreach ( array_keys( $wp_roles->roles ) as $role ) {
|
@@ -513,17 +508,26 @@ final class BackWPup_Admin {
|
|
513 |
|
514 |
//get user for adding/removing role
|
515 |
$user = new WP_User( $user_id );
|
516 |
-
//
|
|
|
|
|
|
|
|
|
|
|
517 |
foreach ( $user->roles as $role ) {
|
518 |
if ( ! strstr( $role, 'backwpup_' ) ) {
|
519 |
continue;
|
520 |
}
|
521 |
-
|
|
|
|
|
|
|
|
|
522 |
}
|
523 |
|
524 |
-
//add new role to user
|
525 |
-
if (
|
526 |
-
$user->add_role( $
|
527 |
}
|
528 |
|
529 |
return;
|
@@ -555,46 +559,5 @@ final class BackWPup_Admin {
|
|
555 |
return $translations;
|
556 |
}
|
557 |
|
558 |
-
/**
|
559 |
-
* Add column for displaying BackWPup user role
|
560 |
-
*
|
561 |
-
* @param $columns
|
562 |
-
* @return mixed
|
563 |
-
*/
|
564 |
-
public function manage_users_columns( $columns ) {
|
565 |
-
|
566 |
-
$columns[ 'backwpup_role' ] = __( 'BackWPup Role', 'backwpup' );
|
567 |
-
|
568 |
-
return $columns;
|
569 |
-
}
|
570 |
-
|
571 |
-
/**
|
572 |
-
* Display BackWPup user role in column
|
573 |
-
*
|
574 |
-
* @param $value
|
575 |
-
* @param $column_name
|
576 |
-
* @param $user_id
|
577 |
-
* @return string
|
578 |
-
*/
|
579 |
-
public function manage_users_custom_column( $value, $column_name, $user_id ) {
|
580 |
-
global $wp_roles;
|
581 |
-
|
582 |
-
if ( 'backwpup_role' != $column_name ) {
|
583 |
-
return $value;
|
584 |
-
}
|
585 |
-
|
586 |
-
$user = get_userdata( $user_id );
|
587 |
-
|
588 |
-
foreach ( $user->roles as $role ) {
|
589 |
-
if ( substr( $role, 0, 8 ) === 'backwpup' ) {
|
590 |
-
$value .= $wp_roles->roles[ $role ][ 'name' ]. '<br />';
|
591 |
-
}
|
592 |
-
if ( $role === 'administrator' ) {
|
593 |
-
$value .= __( 'Administrator', 'backwpup' );
|
594 |
-
}
|
595 |
-
}
|
596 |
-
|
597 |
-
return $value;
|
598 |
-
}
|
599 |
|
600 |
}
|
47 |
add_action( 'show_user_profile', array( $this, 'user_profile_fields' ) );
|
48 |
add_action( 'edit_user_profile', array( $this, 'user_profile_fields' ) );
|
49 |
add_action( 'profile_update', array( $this, 'save_profile_update' ) );
|
50 |
+
|
|
|
51 |
//Change Backup message on core updates
|
52 |
add_filter( 'gettext', array( $this, 'gettext' ), 10, 3 );
|
53 |
|
111 |
//register js and css for BackWPup
|
112 |
if ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) {
|
113 |
wp_enqueue_style( 'backwpup', BackWPup::get_plugin_data( 'URL' ) . '/assets/css/backwpup.css', array(), time(), 'screen' );
|
|
|
|
|
|
|
114 |
} else {
|
115 |
wp_enqueue_style( 'backwpup', BackWPup::get_plugin_data( 'URL' ) . '/assets/css/backwpup.min.css', array(), BackWPup::get_plugin_data( 'Version' ), 'screen' );
|
|
|
|
|
|
|
116 |
}
|
117 |
}
|
118 |
|
491 |
return;
|
492 |
}
|
493 |
|
494 |
+
if ( ! isset( $_POST[ 'backwpup_role' ] ) ) {
|
495 |
return;
|
496 |
}
|
497 |
|
498 |
+
$backwpup_role = esc_attr( $_POST[ 'backwpup_role' ] );
|
499 |
+
|
500 |
//get BackWPup roles
|
501 |
$backwpup_roles = array();
|
502 |
foreach ( array_keys( $wp_roles->roles ) as $role ) {
|
508 |
|
509 |
//get user for adding/removing role
|
510 |
$user = new WP_User( $user_id );
|
511 |
+
//a admin needs no extra role
|
512 |
+
if ( $user->has_cap( 'administrator' ) && $user->has_cap( 'backwpup_settings' ) ) {
|
513 |
+
$backwpup_role = '';
|
514 |
+
}
|
515 |
+
|
516 |
+
//remove BackWPup role from user if it not the actual
|
517 |
foreach ( $user->roles as $role ) {
|
518 |
if ( ! strstr( $role, 'backwpup_' ) ) {
|
519 |
continue;
|
520 |
}
|
521 |
+
if ( $role !== $backwpup_role ) {
|
522 |
+
$user->remove_role( $role );
|
523 |
+
} else {
|
524 |
+
$backwpup_role = '';
|
525 |
+
}
|
526 |
}
|
527 |
|
528 |
+
//add new role to user if it not the actual
|
529 |
+
if ( $backwpup_role && in_array( $backwpup_role, $backwpup_roles ) ) {
|
530 |
+
$user->add_role( $backwpup_role );
|
531 |
}
|
532 |
|
533 |
return;
|
559 |
return $translations;
|
560 |
}
|
561 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
562 |
|
563 |
}
|
inc/class-destination-s3-v1.php
CHANGED
@@ -33,6 +33,8 @@ class BackWPup_Destination_S3_V1 extends BackWPup_Destinations {
|
|
33 |
return 'https://s3-eu-central-1.amazonaws.com';
|
34 |
case 'ap-northeast-1':
|
35 |
return 'https://s3-ap-northeast-1.amazonaws.com';
|
|
|
|
|
36 |
case 'ap-southeast-1':
|
37 |
return 'https://s3-ap-southeast-1.amazonaws.com';
|
38 |
case 'ap-southeast-2':
|
@@ -81,6 +83,7 @@ class BackWPup_Destination_S3_V1 extends BackWPup_Destinations {
|
|
81 |
<option value="eu-west-1" <?php selected( 'eu-west-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: EU (Ireland)', 'backwpup' ); ?></option>
|
82 |
<option value="eu-central-1" <?php selected( 'eu-central-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: EU (Germany)', 'backwpup' ); ?></option>
|
83 |
<option value="ap-northeast-1" <?php selected( 'ap-northeast-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: Asia Pacific (Tokyo)', 'backwpup' ); ?></option>
|
|
|
84 |
<option value="ap-southeast-1" <?php selected( 'ap-southeast-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: Asia Pacific (Singapore)', 'backwpup' ); ?></option>
|
85 |
<option value="ap-southeast-2" <?php selected( 'ap-southeast-2', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: Asia Pacific (Sydney)', 'backwpup' ); ?></option>
|
86 |
<option value="sa-east-1" <?php selected( 'sa-east-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: South America (Sao Paulo)', 'backwpup' ); ?></option>
|
33 |
return 'https://s3-eu-central-1.amazonaws.com';
|
34 |
case 'ap-northeast-1':
|
35 |
return 'https://s3-ap-northeast-1.amazonaws.com';
|
36 |
+
case 'ap-northeast-2':
|
37 |
+
return 'https://s3-ap-northeast-2.amazonaws.com';
|
38 |
case 'ap-southeast-1':
|
39 |
return 'https://s3-ap-southeast-1.amazonaws.com';
|
40 |
case 'ap-southeast-2':
|
83 |
<option value="eu-west-1" <?php selected( 'eu-west-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: EU (Ireland)', 'backwpup' ); ?></option>
|
84 |
<option value="eu-central-1" <?php selected( 'eu-central-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: EU (Germany)', 'backwpup' ); ?></option>
|
85 |
<option value="ap-northeast-1" <?php selected( 'ap-northeast-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: Asia Pacific (Tokyo)', 'backwpup' ); ?></option>
|
86 |
+
<option value="ap-northeast-2" <?php selected( 'ap-northeast-2', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: Asia Pacific (Seoul)', 'backwpup' ); ?></option>
|
87 |
<option value="ap-southeast-1" <?php selected( 'ap-southeast-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: Asia Pacific (Singapore)', 'backwpup' ); ?></option>
|
88 |
<option value="ap-southeast-2" <?php selected( 'ap-southeast-2', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: Asia Pacific (Sydney)', 'backwpup' ); ?></option>
|
89 |
<option value="sa-east-1" <?php selected( 'sa-east-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: South America (Sao Paulo)', 'backwpup' ); ?></option>
|
inc/class-destination-s3.php
CHANGED
@@ -32,6 +32,8 @@ class BackWPup_Destination_S3 extends BackWPup_Destinations {
|
|
32 |
return 'https://s3-eu-central-1.amazonaws.com';
|
33 |
case 'ap-northeast-1':
|
34 |
return 'https://s3-ap-northeast-1.amazonaws.com';
|
|
|
|
|
35 |
case 'ap-southeast-1':
|
36 |
return 'https://s3-ap-southeast-1.amazonaws.com';
|
37 |
case 'ap-southeast-2':
|
@@ -84,6 +86,7 @@ class BackWPup_Destination_S3 extends BackWPup_Destinations {
|
|
84 |
<option value="eu-west-1" <?php selected( 'eu-west-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: EU (Ireland)', 'backwpup' ); ?></option>
|
85 |
<option value="eu-central-1" <?php selected( 'eu-central-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: EU (Germany)', 'backwpup' ); ?></option>
|
86 |
<option value="ap-northeast-1" <?php selected( 'ap-northeast-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: Asia Pacific (Tokyo)', 'backwpup' ); ?></option>
|
|
|
87 |
<option value="ap-southeast-1" <?php selected( 'ap-southeast-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: Asia Pacific (Singapore)', 'backwpup' ); ?></option>
|
88 |
<option value="ap-southeast-2" <?php selected( 'ap-southeast-2', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: Asia Pacific (Sydney)', 'backwpup' ); ?></option>
|
89 |
<option value="sa-east-1" <?php selected( 'sa-east-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: South America (Sao Paulo)', 'backwpup' ); ?></option>
|
32 |
return 'https://s3-eu-central-1.amazonaws.com';
|
33 |
case 'ap-northeast-1':
|
34 |
return 'https://s3-ap-northeast-1.amazonaws.com';
|
35 |
+
case 'ap-northeast-2':
|
36 |
+
return 'https://s3-ap-northeast-2.amazonaws.com';
|
37 |
case 'ap-southeast-1':
|
38 |
return 'https://s3-ap-southeast-1.amazonaws.com';
|
39 |
case 'ap-southeast-2':
|
86 |
<option value="eu-west-1" <?php selected( 'eu-west-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: EU (Ireland)', 'backwpup' ); ?></option>
|
87 |
<option value="eu-central-1" <?php selected( 'eu-central-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: EU (Germany)', 'backwpup' ); ?></option>
|
88 |
<option value="ap-northeast-1" <?php selected( 'ap-northeast-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: Asia Pacific (Tokyo)', 'backwpup' ); ?></option>
|
89 |
+
<option value="ap-northeast-2" <?php selected( 'ap-northeast-2', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: Asia Pacific (Seoul)', 'backwpup' ); ?></option>
|
90 |
<option value="ap-southeast-1" <?php selected( 'ap-southeast-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: Asia Pacific (Singapore)', 'backwpup' ); ?></option>
|
91 |
<option value="ap-southeast-2" <?php selected( 'ap-southeast-2', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: Asia Pacific (Sydney)', 'backwpup' ); ?></option>
|
92 |
<option value="sa-east-1" <?php selected( 'sa-east-1', BackWPup_Option::get( $jobid, 's3region' ), TRUE ) ?>><?php _e( 'Amazon S3: South America (Sao Paulo)', 'backwpup' ); ?></option>
|
inc/class-file.php
CHANGED
@@ -38,7 +38,7 @@ class BackWPup_File {
|
|
38 |
*/
|
39 |
public static function is_in_open_basedir( $file ) {
|
40 |
|
41 |
-
$ini_open_basedir =
|
42 |
|
43 |
if ( empty( $ini_open_basedir ) ) {
|
44 |
return TRUE;
|
@@ -51,6 +51,8 @@ class BackWPup_File {
|
|
51 |
if ( empty( $open_base_dir ) ) {
|
52 |
continue;
|
53 |
}
|
|
|
|
|
54 |
$part = substr( $file, 0, strlen( $open_base_dir ) );
|
55 |
if ( $part === $open_base_dir ) {
|
56 |
return TRUE;
|
38 |
*/
|
39 |
public static function is_in_open_basedir( $file ) {
|
40 |
|
41 |
+
$ini_open_basedir = ini_get( 'open_basedir' );
|
42 |
|
43 |
if ( empty( $ini_open_basedir ) ) {
|
44 |
return TRUE;
|
51 |
if ( empty( $open_base_dir ) ) {
|
52 |
continue;
|
53 |
}
|
54 |
+
$open_base_dir = realpath( $open_base_dir );
|
55 |
+
$open_base_dir = strtolower( str_replace( '\\', '/', $open_base_dir ) );
|
56 |
$part = substr( $file, 0, strlen( $open_base_dir ) );
|
57 |
if ( $part === $open_base_dir ) {
|
58 |
return TRUE;
|
inc/class-job.php
CHANGED
@@ -1,2439 +1,2439 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Class in that the BackWPup job runs
|
4 |
-
*/
|
5 |
-
final class BackWPup_Job {
|
6 |
-
|
7 |
-
/**
|
8 |
-
* @var array of the job settings
|
9 |
-
*/
|
10 |
-
public $job = array();
|
11 |
-
|
12 |
-
/**
|
13 |
-
* @var int The timestamp when the job starts
|
14 |
-
*/
|
15 |
-
public $start_time = 0;
|
16 |
-
|
17 |
-
/**
|
18 |
-
* @var string the logfile
|
19 |
-
*/
|
20 |
-
public $logfile = '';
|
21 |
-
/**
|
22 |
-
* @var array for temp values
|
23 |
-
*/
|
24 |
-
public $temp = array();
|
25 |
-
/**
|
26 |
-
* @var string Folder where is Backup files in
|
27 |
-
*/
|
28 |
-
public $backup_folder = '';
|
29 |
-
/**
|
30 |
-
* @var string the name of the Backup archive file
|
31 |
-
*/
|
32 |
-
public $backup_file = '';
|
33 |
-
/**
|
34 |
-
* @var int The size of the Backup archive file
|
35 |
-
*/
|
36 |
-
public $backup_filesize = 0;
|
37 |
-
/**
|
38 |
-
* @var int PID of script
|
39 |
-
*/
|
40 |
-
public $pid = 0;
|
41 |
-
/**
|
42 |
-
* @var float Timestamp of last update off .running file
|
43 |
-
*/
|
44 |
-
public $timestamp_last_update = 0;
|
45 |
-
/**
|
46 |
-
* @var float Timestamp of script start
|
47 |
-
*/
|
48 |
-
private $timestamp_script_start = 0;
|
49 |
-
/**
|
50 |
-
* @var int Number of warnings
|
51 |
-
*/
|
52 |
-
public $warnings = 0;
|
53 |
-
/**
|
54 |
-
* @var int Number of errors
|
55 |
-
*/
|
56 |
-
public $errors = 0;
|
57 |
-
/**
|
58 |
-
* @var string the last log notice message
|
59 |
-
*/
|
60 |
-
public $lastmsg = '';
|
61 |
-
/**
|
62 |
-
* @var string the last log error/waring message
|
63 |
-
*/
|
64 |
-
public $lasterrormsg = '';
|
65 |
-
/**
|
66 |
-
* @var array of steps to do
|
67 |
-
*/
|
68 |
-
public $steps_todo = array( 'CREATE' );
|
69 |
-
/**
|
70 |
-
* @var array of done steps
|
71 |
-
*/
|
72 |
-
public $steps_done = array();
|
73 |
-
/**
|
74 |
-
* @var array of steps data
|
75 |
-
*/
|
76 |
-
public $steps_data = array();
|
77 |
-
/**
|
78 |
-
* @var string working on step
|
79 |
-
*/
|
80 |
-
public $step_working = 'CREATE';
|
81 |
-
/**
|
82 |
-
* @var int Number of sub steps must do in step
|
83 |
-
*/
|
84 |
-
public $substeps_todo = 0;
|
85 |
-
/**
|
86 |
-
* @var int Number of sub steps done in step
|
87 |
-
*/
|
88 |
-
public $substeps_done = 0;
|
89 |
-
/**
|
90 |
-
* @var int Percent of steps done
|
91 |
-
*/
|
92 |
-
public $step_percent = 1;
|
93 |
-
/**
|
94 |
-
* @var int Percent of sub steps done
|
95 |
-
*/
|
96 |
-
public $substep_percent = 1;
|
97 |
-
/**
|
98 |
-
* @var array of files to additional to backup
|
99 |
-
*/
|
100 |
-
public $additional_files_to_backup = array();
|
101 |
-
/**
|
102 |
-
* @var array of files/folder to exclude from backup
|
103 |
-
*/
|
104 |
-
public $exclude_from_backup = array();
|
105 |
-
/**
|
106 |
-
* @var int count of affected files
|
107 |
-
*/
|
108 |
-
public $count_files = 0;
|
109 |
-
/**
|
110 |
-
* @var int count of affected file sizes
|
111 |
-
*/
|
112 |
-
public $count_files_size = 0;
|
113 |
-
/**
|
114 |
-
* @var int count of affected folders
|
115 |
-
*/
|
116 |
-
public $count_folder = 0;
|
117 |
-
|
118 |
-
/**
|
119 |
-
* If job aborted from user
|
120 |
-
* @var bool
|
121 |
-
*/
|
122 |
-
public $user_abort = FALSE;
|
123 |
-
|
124 |
-
/**
|
125 |
-
* Stores data that will only used in a single run
|
126 |
-
* @var array
|
127 |
-
*/
|
128 |
-
private $run = array();
|
129 |
-
|
130 |
-
/**
|
131 |
-
* A uniqid ID uniqid('', true); to identify process
|
132 |
-
* @var string
|
133 |
-
*/
|
134 |
-
public $uniqid = '';
|
135 |
-
|
136 |
-
/**
|
137 |
-
* @var string logging level (normal|normal_untranslated|debug|debug_untranslated)
|
138 |
-
*/
|
139 |
-
private $log_level = 'normal';
|
140 |
-
|
141 |
-
|
142 |
-
/**
|
143 |
-
* Delete some data on cloned objects
|
144 |
-
*/
|
145 |
-
public function __clone( ) {
|
146 |
-
|
147 |
-
$this->temp = array();
|
148 |
-
$this->run = array();
|
149 |
-
}
|
150 |
-
|
151 |
-
/**
|
152 |
-
*
|
153 |
-
* This starts or restarts the job working
|
154 |
-
*
|
155 |
-
* @param string $start_type Start types are 'runnow', 'runnowalt', 'cronrun', 'runext', 'runcli'
|
156 |
-
* @param array|int $job_settings The id of job or the settings of a job to start
|
157 |
-
*/
|
158 |
-
private function create( $start_type, $job_settings = 0 ) {
|
159 |
-
global $wpdb;
|
160 |
-
/* @var wpdb $wpdb */
|
161 |
-
|
162 |
-
//check startype
|
163 |
-
if ( ! in_array( $start_type, array( 'runnow', 'runnowalt', 'cronrun', 'runext', 'runcli' ) ) ) {
|
164 |
-
return;
|
165 |
-
}
|
166 |
-
|
167 |
-
if ( is_int( $job_settings ) ) {
|
168 |
-
$this->job = BackWPup_Option::get_job( $job_settings );
|
169 |
-
} elseif( is_array( $job_settings ) ) {
|
170 |
-
$this->job = $job_settings;
|
171 |
-
} else {
|
172 |
-
return;
|
173 |
-
}
|
174 |
-
|
175 |
-
$this->start_time = current_time( 'timestamp' );
|
176 |
-
$this->lastmsg = __( 'Starting job', 'backwpup' );
|
177 |
-
//set Logfile
|
178 |
-
$log_folder = get_site_option( 'backwpup_cfg_logfolder' );
|
179 |
-
$log_folder = BackWPup_File::get_absolute_path( $log_folder );
|
180 |
-
$this->logfile = $log_folder . 'backwpup_log_' . BackWPup::get_plugin_data( 'hash' ) . '_' . date( 'Y-m-d_H-i-s', current_time( 'timestamp' ) ) . '.html';
|
181 |
-
//write settings to job
|
182 |
-
if ( ! empty( $this->job[ 'jobid' ] ) ) {
|
183 |
-
BackWPup_Option::update( $this->job[ 'jobid' ], 'lastrun', $this->start_time );
|
184 |
-
BackWPup_Option::update( $this->job[ 'jobid' ], 'logfile', $this->logfile ); //Set current logfile
|
185 |
-
BackWPup_Option::update( $this->job[ 'jobid' ], 'lastbackupdownloadurl', '' );
|
186 |
-
}
|
187 |
-
//Set needed job values
|
188 |
-
$this->timestamp_last_update = microtime( TRUE );
|
189 |
-
$this->exclude_from_backup = explode( ',', trim( $this->job[ 'fileexclude' ] ) );
|
190 |
-
$this->exclude_from_backup = array_unique( $this->exclude_from_backup );
|
191 |
-
//setup job steps
|
192 |
-
$this->steps_data[ 'CREATE' ][ 'CALLBACK' ] = '';
|
193 |
-
$this->steps_data[ 'CREATE' ][ 'NAME' ] = __( 'Job Start', 'backwpup' );
|
194 |
-
$this->steps_data[ 'CREATE' ][ 'STEP_TRY' ] = 0;
|
195 |
-
//ADD Job types file
|
196 |
-
/* @var $job_type_class BackWPup_JobTypes */
|
197 |
-
$job_need_dest = FALSE;
|
198 |
-
if ( $job_types = BackWPup::get_job_types() ) {
|
199 |
-
foreach ( $job_types as $id => $job_type_class ) {
|
200 |
-
if ( in_array( $id, $this->job[ 'type' ] ) && $job_type_class->creates_file( ) ) {
|
201 |
-
$this->steps_todo[ ] = 'JOB_' . $id;
|
202 |
-
$this->steps_data[ 'JOB_' . $id ][ 'NAME' ] = $job_type_class->info[ 'description' ];
|
203 |
-
$this->steps_data[ 'JOB_' . $id ][ 'STEP_TRY' ] = 0;
|
204 |
-
$this->steps_data[ 'JOB_' . $id ][ 'SAVE_STEP_TRY' ] = 0;
|
205 |
-
$job_need_dest = TRUE;
|
206 |
-
}
|
207 |
-
}
|
208 |
-
}
|
209 |
-
//add destinations and create archive if a job where files to backup
|
210 |
-
if ( $job_need_dest ) {
|
211 |
-
//Create manifest file
|
212 |
-
$this->steps_todo[ ] = 'CREATE_MANIFEST';
|
213 |
-
$this->steps_data[ 'CREATE_MANIFEST' ][ 'NAME' ] = __( 'Creates manifest file', 'backwpup' );
|
214 |
-
$this->steps_data[ 'CREATE_MANIFEST' ][ 'STEP_TRY' ] = 0;
|
215 |
-
$this->steps_data[ 'CREATE_MANIFEST' ][ 'SAVE_STEP_TRY' ] = 0;
|
216 |
-
//Add archive creation and backup filename on backup type archive
|
217 |
-
if ( $this->job[ 'backuptype' ] == 'archive' ) {
|
218 |
-
//get Backup folder if destination folder set
|
219 |
-
if ( in_array( 'FOLDER', $this->job[ 'destinations' ] ) ) {
|
220 |
-
$this->backup_folder = $this->job[ 'backupdir' ];
|
221 |
-
//check backup folder
|
222 |
-
if ( ! empty( $this->backup_folder ) ) {
|
223 |
-
$this->backup_folder = BackWPup_File::get_absolute_path( $this->backup_folder );
|
224 |
-
$this->job[ 'backupdir' ] = $this->backup_folder;
|
225 |
-
}
|
226 |
-
}
|
227 |
-
//set temp folder to backup folder if not set because we need one
|
228 |
-
if ( ! $this->backup_folder || $this->backup_folder == '/' ) {
|
229 |
-
$this->backup_folder = BackWPup::get_plugin_data( 'TEMP' );
|
230 |
-
}
|
231 |
-
//Create backup archive full file name
|
232 |
-
$this->backup_file = $this->generate_filename( $this->job[ 'archivename' ], $this->job[ 'archiveformat' ] );
|
233 |
-
//add archive create
|
234 |
-
$this->steps_todo[ ] = 'CREATE_ARCHIVE';
|
235 |
-
$this->steps_data[ 'CREATE_ARCHIVE' ][ 'NAME' ] = __( 'Creates archive', 'backwpup' );
|
236 |
-
$this->steps_data[ 'CREATE_ARCHIVE' ][ 'STEP_TRY' ] = 0;
|
237 |
-
$this->steps_data[ 'CREATE_ARCHIVE' ][ 'SAVE_STEP_TRY' ] = 0;
|
238 |
-
}
|
239 |
-
//ADD Destinations
|
240 |
-
/* @var BackWPup_Destinations $dest_class */
|
241 |
-
foreach ( BackWPup::get_registered_destinations() as $id => $dest ) {
|
242 |
-
if ( ! in_array( $id, $this->job[ 'destinations' ] ) || empty( $dest[ 'class' ] ) )
|
243 |
-
continue;
|
244 |
-
$dest_class = BackWPup::get_destination( $id );
|
245 |
-
if ( $dest_class->can_run( $this->job ) ) {
|
246 |
-
if ( $this->job[ 'backuptype' ] == 'sync' ) {
|
247 |
-
if ( $dest[ 'can_sync' ] ) {
|
248 |
-
$this->steps_todo[] = 'DEST_SYNC_' . $id;
|
249 |
-
$this->steps_data[ 'DEST_SYNC_' . $id ][ 'NAME' ] = $dest[ 'info' ][ 'description' ];
|
250 |
-
$this->steps_data[ 'DEST_SYNC_' . $id ][ 'STEP_TRY' ] = 0;
|
251 |
-
$this->steps_data[ 'DEST_SYNC_' . $id ][ 'SAVE_STEP_TRY' ] = 0;
|
252 |
-
}
|
253 |
-
} else {
|
254 |
-
$this->steps_todo[] = 'DEST_' . $id;
|
255 |
-
$this->steps_data[ 'DEST_' . $id ][ 'NAME' ] = $dest[ 'info' ][ 'description' ];
|
256 |
-
$this->steps_data[ 'DEST_' . $id ][ 'STEP_TRY' ] = 0;
|
257 |
-
$this->steps_data[ 'DEST_' . $id ][ 'SAVE_STEP_TRY' ] = 0;
|
258 |
-
}
|
259 |
-
}
|
260 |
-
}
|
261 |
-
}
|
262 |
-
//ADD Job type no file
|
263 |
-
if ( $job_types = BackWPup::get_job_types() ) {
|
264 |
-
foreach ( $job_types as $id => $job_type_class ) {
|
265 |
-
if ( in_array( $id, $this->job[ 'type' ] ) && ! $job_type_class->creates_file() ) {
|
266 |
-
$this->steps_todo[ ] = 'JOB_' . $id;
|
267 |
-
$this->steps_data[ 'JOB_' . $id ][ 'NAME' ] = $job_type_class->info[ 'description' ];
|
268 |
-
$this->steps_data[ 'JOB_' . $id ][ 'STEP_TRY' ] = 0;
|
269 |
-
$this->steps_data[ 'JOB_' . $id ][ 'SAVE_STEP_TRY' ] = 0;
|
270 |
-
}
|
271 |
-
}
|
272 |
-
}
|
273 |
-
$this->steps_todo[] = 'END';
|
274 |
-
$this->steps_data[ 'END' ][ 'NAME' ] = __( 'End of Job', 'backwpup' );
|
275 |
-
$this->steps_data[ 'END' ][ 'STEP_TRY' ] = 1;
|
276 |
-
//must write working data
|
277 |
-
$this->write_running_file();
|
278 |
-
|
279 |
-
//load text domain if needed
|
280 |
-
$this->log_level = get_site_option( 'backwpup_cfg_loglevel' );
|
281 |
-
if ( ! in_array( $this->log_level, array( 'normal_translated', 'normal', 'debug_translated', 'debug' ) ) ) {
|
282 |
-
$this->log_level = 'normal_translated';
|
283 |
-
}
|
284 |
-
//create log file
|
285 |
-
$head = '';
|
286 |
-
$info = '';
|
287 |
-
$head .= "<!DOCTYPE html>" . PHP_EOL;
|
288 |
-
$head .= "<html lang=\"" . str_replace( '_', '-', get_locale() ) . "\">" . PHP_EOL;
|
289 |
-
$head .= "<head>" . PHP_EOL;
|
290 |
-
$head .= "<meta charset=\"" . get_bloginfo( 'charset' ) . "\" />" . PHP_EOL;
|
291 |
-
$head .= "<title>" . sprintf( __( 'BackWPup log for %1$s from %2$s at %3$s', 'backwpup' ), $this->job[ 'name' ], date_i18n( get_option( 'date_format' ) ), date_i18n( get_option( 'time_format' ) ) ) . "</title>" . PHP_EOL;
|
292 |
-
$head .= "<meta name=\"robots\" content=\"noindex, nofollow\" />" . PHP_EOL;
|
293 |
-
$head .= "<meta name=\"copyright\" content=\"Copyright © 2012 - " . date( 'Y' ) . " Inpsyde GmbH\" />" . PHP_EOL;
|
294 |
-
$head .= "<meta name=\"author\" content=\"Inpsyde GmbH\" />" . PHP_EOL;
|
295 |
-
$head .= "<meta name=\"generator\" content=\"BackWPup " . BackWPup::get_plugin_data( 'Version' ) . "\" />" . PHP_EOL;
|
296 |
-
$head .= "<meta http-equiv=\"cache-control\" content=\"no-cache\" />" . PHP_EOL;
|
297 |
-
$head .= "<meta http-equiv=\"pragma\" content=\"no-cache\" />" . PHP_EOL;
|
298 |
-
$head .= "<meta name=\"date\" content=\"" . date( 'c' ) . "\" />" . PHP_EOL;
|
299 |
-
$head .= str_pad( '<meta name="backwpup_errors" content="0" />', 100 ) . PHP_EOL;
|
300 |
-
$head .= str_pad( '<meta name="backwpup_warnings" content="0" />', 100 ) . PHP_EOL;
|
301 |
-
if ( ! empty( $this->job[ 'jobid' ] ) ) {
|
302 |
-
$head .= "<meta name=\"backwpup_jobid\" content=\"" . $this->job[ 'jobid' ] . "\" />" . PHP_EOL;
|
303 |
-
}
|
304 |
-
$head .= "<meta name=\"backwpup_jobname\" content=\"" . esc_attr( $this->job[ 'name' ] ) . "\" />" . PHP_EOL;
|
305 |
-
$head .= "<meta name=\"backwpup_jobtype\" content=\"" . implode( '+', $this->job[ 'type' ] ) . "\" />" . PHP_EOL;
|
306 |
-
$head .= str_pad( '<meta name="backwpup_backupfilesize" content="0" />', 100 ) . PHP_EOL;
|
307 |
-
$head .= str_pad( '<meta name="backwpup_jobruntime" content="0" />', 100 ) . PHP_EOL;
|
308 |
-
$head .= "</head>" . PHP_EOL;
|
309 |
-
$head .= "<body style=\"margin:0;padding:3px;font-family:monospace;font-size:12px;line-height:15px;background-color:#000;color:#fff;white-space:nowrap;\">" . PHP_EOL;
|
310 |
-
$info .= sprintf( _x( '[INFO] %1$s %2$s; A project of Inpsyde GmbH', 'Plugin name; Plugin Version; plugin url','backwpup' ), BackWPup::get_plugin_data( 'name' ), BackWPup::get_plugin_data( 'Version' ), BackWPup::get_plugin_data( 'pluginuri' ) ) . '<br />' . PHP_EOL;
|
311 |
-
if ( $this->is_debug() ) {
|
312 |
-
$info .= sprintf( _x( '[INFO] WordPress %1$s on %2$s', 'WordPress Version; Blog url', 'backwpup' ), BackWPup::get_plugin_data( 'wp_version' ), esc_attr( site_url( '/' ) ) ). '<br />' . PHP_EOL;
|
313 |
-
}
|
314 |
-
$job_name = esc_attr( $this->job[ 'name' ] );
|
315 |
-
if ( $this->is_debug() ) {
|
316 |
-
$job_name .= '; ' . implode( '+', $this->job[ 'type' ] );
|
317 |
-
}
|
318 |
-
$info .= sprintf( __( '[INFO] BackWPup job: %1$s', 'backwpup' ), $job_name ) . '<br />' . PHP_EOL;
|
319 |
-
if ( $this->is_debug() ) {
|
320 |
-
$current_user = wp_get_current_user();
|
321 |
-
$info .= sprintf( __( '[INFO] Runs with user: %1$s (%2$d) ', 'backwpup' ), $current_user->user_login, $current_user->ID ) . '<br />' . PHP_EOL;
|
322 |
-
}
|
323 |
-
if ( $this->job[ 'activetype' ] == 'wpcron' ) {
|
324 |
-
//check next run
|
325 |
-
$cron_next = wp_next_scheduled( 'backwpup_cron', array( 'id' => $this->job[ 'jobid' ] ) );
|
326 |
-
if ( ! $cron_next || $cron_next < time() ) {
|
327 |
-
wp_unschedule_event( $cron_next, 'backwpup_cron', array( 'id' => $this->job[ 'jobid' ] ) );
|
328 |
-
$cron_next = BackWPup_Cron::cron_next( $this->job[ 'cron' ] );
|
329 |
-
wp_schedule_single_event( $cron_next, 'backwpup_cron', array( 'id' => $this->job[ 'jobid' ] ) );
|
330 |
-
$cron_next = wp_next_scheduled( 'backwpup_cron', array( 'id' => $this->job[ 'jobid' ] ) );
|
331 |
-
}
|
332 |
-
//output scheduling
|
333 |
-
if ( $this->is_debug() ) {
|
334 |
-
if ( ! $cron_next ) {
|
335 |
-
$cron_next = __( 'Not scheduled!', 'backwpup' );
|
336 |
-
} else {
|
337 |
-
$cron_next = date_i18n( 'D, j M Y @ H:i', $cron_next + ( get_option( 'gmt_offset' ) * 3600 ), TRUE );
|
338 |
-
}
|
339 |
-
$info .= sprintf( __( '[INFO] Cron: %s; Next: %s ', 'backwpup' ), $this->job[ 'cron' ] , $cron_next ) . '<br />' . PHP_EOL;
|
340 |
-
}
|
341 |
-
}
|
342 |
-
elseif( $this->job[ 'activetype' ] == 'link' && $this->is_debug() ) {
|
343 |
-
$info .= __( '[INFO] BackWPup job start with link is active', 'backwpup' ) . '<br />' . PHP_EOL;
|
344 |
-
}
|
345 |
-
elseif( $this->job[ 'activetype' ] == 'easycron' && $this->is_debug() ) {
|
346 |
-
$info .= __( '[INFO] BackWPup job start with EasyCron.com', 'backwpup' ) . '<br />' . PHP_EOL;
|
347 |
-
//output scheduling
|
348 |
-
if ( $this->is_debug() ) {
|
349 |
-
$cron_next = BackWPup_Cron::cron_next( $this->job[ 'cron' ] );
|
350 |
-
$cron_next = date_i18n( 'D, j M Y @ H:i', $cron_next + ( get_option( 'gmt_offset' ) * 3600 ), TRUE );
|
351 |
-
$info .= sprintf( __( '[INFO] Cron: %s; Next: %s ', 'backwpup' ), $this->job[ 'cron' ] , $cron_next ) . '<br />' . PHP_EOL;
|
352 |
-
}
|
353 |
-
}
|
354 |
-
elseif( $this->is_debug() ) {
|
355 |
-
$info .= __( '[INFO] BackWPup no automatic job start configured', 'backwpup' ) . '<br />' . PHP_EOL;
|
356 |
-
}
|
357 |
-
if ( $this->is_debug() ) {
|
358 |
-
if ( $start_type == 'cronrun' ) {
|
359 |
-
$info .= __( '[INFO] BackWPup job started from wp-cron', 'backwpup' ) . '<br />' . PHP_EOL;
|
360 |
-
} elseif ( $start_type == 'runnow' || $start_type == 'runnowalt' ) {
|
361 |
-
$info .= __( '[INFO] BackWPup job started manually', 'backwpup' ) . '<br />' . PHP_EOL;
|
362 |
-
} elseif ( $start_type == 'runext' ) {
|
363 |
-
$info .= __( '[INFO] BackWPup job started from external url', 'backwpup' ) . '<br />' . PHP_EOL;
|
364 |
-
} elseif ( $start_type == 'runcli' ) {
|
365 |
-
$info .= __( '[INFO] BackWPup job started form commandline interface', 'backwpup' ) . '<br />' . PHP_EOL;
|
366 |
-
}
|
367 |
-
$bit = '';
|
368 |
-
if ( PHP_INT_SIZE === 4 ) {
|
369 |
-
$bit = ' (32bit)';
|
370 |
-
}
|
371 |
-
if ( PHP_INT_SIZE === 8 ) {
|
372 |
-
$bit = ' (64bit)';
|
373 |
-
}
|
374 |
-
$info .= __( '[INFO] PHP ver.:', 'backwpup' ) . ' ' . PHP_VERSION . $bit .'; ' . PHP_SAPI . '; ' . PHP_OS . '<br />' . PHP_EOL;
|
375 |
-
$info .= sprintf( __( '[INFO] Maximum PHP script execution time is %1$d seconds', 'backwpup' ), ini_get( 'max_execution_time' ) ) . '<br />' . PHP_EOL;
|
376 |
-
if ( php_sapi_name() != 'cli' ) {
|
377 |
-
$job_max_execution_time = get_site_option( 'backwpup_cfg_jobmaxexecutiontime' );
|
378 |
-
if ( ! empty( $job_max_execution_time ) ) {
|
379 |
-
$info .= sprintf( __( '[INFO] Script restart time is configured to %1$d seconds', 'backwpup' ), $job_max_execution_time ) . '<br />' . PHP_EOL;
|
380 |
-
}
|
381 |
-
}
|
382 |
-
$info .= sprintf( __( '[INFO] MySQL ver.: %s', 'backwpup' ), $wpdb->get_var( "SELECT VERSION() AS version" ) ) . '<br />' . PHP_EOL;
|
383 |
-
if ( isset( $_SERVER[ 'SERVER_SOFTWARE' ] ) )
|
384 |
-
$info .= sprintf( __( '[INFO] Web Server: %s', 'backwpup' ), $_SERVER[ 'SERVER_SOFTWARE' ] ) . '<br />' . PHP_EOL;
|
385 |
-
if ( function_exists( 'curl_init' ) ) {
|
386 |
-
$curlversion = curl_version();
|
387 |
-
$info .= sprintf( __( '[INFO] curl ver.: %1$s; %2$s', 'backwpup' ), $curlversion[ 'version' ], $curlversion[ 'ssl_version' ] ) . '<br />' . PHP_EOL;
|
388 |
-
}
|
389 |
-
$info .= sprintf( __( '[INFO] Temp folder is: %s', 'backwpup' ), BackWPup::get_plugin_data( 'TEMP' ) ) . '<br />' . PHP_EOL;
|
390 |
-
}
|
391 |
-
if ( $this->is_debug() ) {
|
392 |
-
$logfile = $this->logfile;
|
393 |
-
} else {
|
394 |
-
$logfile = basename( $this->logfile );
|
395 |
-
}
|
396 |
-
$info .= sprintf( __( '[INFO] Logfile is: %s', 'backwpup' ), $logfile ) . '<br />' . PHP_EOL;
|
397 |
-
if ( ! empty( $this->backup_file ) && $this->job[ 'backuptype' ] == 'archive' ) {
|
398 |
-
if ( $this->is_debug() ) {
|
399 |
-
$backupfile = $this->backup_folder . $this->backup_file;
|
400 |
-
} else {
|
401 |
-
$backupfile = $this->backup_file;
|
402 |
-
}
|
403 |
-
$info .= sprintf( __( '[INFO] Backup file is: %s', 'backwpup' ), $backupfile ) . '<br />' . PHP_EOL;
|
404 |
-
} else {
|
405 |
-
$info .= sprintf( __( '[INFO] Backup type is: %s', 'backwpup' ), $this->job[ 'backuptype' ] ) . '<br />' . PHP_EOL;
|
406 |
-
}
|
407 |
-
//output info on cli
|
408 |
-
if ( php_sapi_name() == 'cli' && defined( 'STDOUT' ) ) {
|
409 |
-
fwrite( STDOUT, strip_tags( $info ) ) ;
|
410 |
-
}
|
411 |
-
if ( ! file_put_contents( $this->logfile, $head . $info, FILE_APPEND ) ) {
|
412 |
-
$this->logfile = '';
|
413 |
-
$this->log( __( 'Could not write log file', 'backwpup' ), E_USER_ERROR );
|
414 |
-
}
|
415 |
-
//test for destinations
|
416 |
-
if ( $job_need_dest ) {
|
417 |
-
$desttest = FALSE;
|
418 |
-
foreach ( $this->steps_todo as $deststeptest ) {
|
419 |
-
if ( substr( $deststeptest, 0, 5 ) == 'DEST_' ) {
|
420 |
-
$desttest = TRUE;
|
421 |
-
break;
|
422 |
-
}
|
423 |
-
}
|
424 |
-
if ( ! $desttest ) {
|
425 |
-
$this->log( __( 'No destination correctly defined for backup! Please correct job settings.', 'backwpup' ), E_USER_ERROR );
|
426 |
-
$this->steps_todo = array( 'END' );
|
427 |
-
}
|
428 |
-
}
|
429 |
-
//test backup folder
|
430 |
-
if ( ! empty( $this->backup_folder ) ) {
|
431 |
-
$folder_message = BackWPup_File::check_folder( $this->backup_folder, TRUE );
|
432 |
-
if ( ! empty( $folder_message ) ) {
|
433 |
-
$this->log( $folder_message, E_USER_ERROR );
|
434 |
-
$this->steps_todo = array( 'END' );
|
435 |
-
}
|
436 |
-
}
|
437 |
-
|
438 |
-
//Set start as done
|
439 |
-
$this->steps_done[] = 'CREATE';
|
440 |
-
}
|
441 |
-
|
442 |
-
|
443 |
-
/**
|
444 |
-
*
|
445 |
-
* Get a url to run a job of BackWPup
|
446 |
-
*
|
447 |
-
* @param string $starttype Start types are 'runnow', 'runnowlink', 'cronrun', 'runext', 'restart', 'restartalt', 'test'
|
448 |
-
* @param int $jobid The id of job to start else 0
|
449 |
-
* @return array|object [url] is the job url [header] for auth header or object form wp_remote_get()
|
450 |
-
*/
|
451 |
-
public static function get_jobrun_url( $starttype, $jobid = 0 ) {
|
452 |
-
|
453 |
-
$authentication = get_site_option( 'backwpup_cfg_authentication', array( 'method' => '', 'basic_user' => '', 'basic_password' => '', 'user_id' => 0, 'query_arg' => '' ) );
|
454 |
-
$url = site_url( 'wp-cron.php' );
|
455 |
-
$header = array();
|
456 |
-
$authurl = '';
|
457 |
-
$query_args = array( '_nonce' => substr( wp_hash( wp_nonce_tick() . 'backwpup_job_run-' . $starttype, 'nonce' ), - 12, 10 ), 'doing_wp_cron' => sprintf( '%.22F', microtime( true ) ) );
|
458 |
-
|
459 |
-
if ( in_array( $starttype, array( 'restart', 'runnow', 'cronrun', 'runext', 'test' ) ) ) {
|
460 |
-
$query_args[ 'backwpup_run' ] = $starttype;
|
461 |
-
}
|
462 |
-
|
463 |
-
if ( in_array( $starttype, array( 'runnowlink', 'runnow', 'cronrun', 'runext' ) ) && ! empty( $jobid ) ) {
|
464 |
-
$query_args[ 'jobid' ] = $jobid;
|
465 |
-
}
|
466 |
-
|
467 |
-
if ( ! empty( $authentication[ 'basic_user' ] ) && ! empty( $authentication[ 'basic_password' ] ) && $authentication[ 'method' ] == 'basic' ) {
|
468 |
-
$header[ 'Authorization' ] = 'Basic ' . base64_encode( $authentication[ 'basic_user' ] . ':' . BackWPup_Encryption::decrypt( $authentication[ 'basic_password' ] ) );
|
469 |
-
$authurl = urlencode( $authentication[ 'basic_user' ] ) . ':' . urlencode( BackWPup_Encryption::decrypt( $authentication[ 'basic_password' ] ) ) . '@';
|
470 |
-
}
|
471 |
-
|
472 |
-
if ( ! empty( $authentication[ 'query_arg' ] ) && $authentication[ 'method' ] == 'query_arg' ) {
|
473 |
-
$url .= '?' . $authentication[ 'query_arg' ];
|
474 |
-
}
|
475 |
-
|
476 |
-
if ( $starttype == 'runext' ) {
|
477 |
-
$query_args[ '_nonce' ] = get_site_option( 'backwpup_cfg_jobrunauthkey' );
|
478 |
-
$query_args[ 'doing_wp_cron' ] = NULL;
|
479 |
-
if ( ! empty( $authurl ) ) {
|
480 |
-
$url = str_replace( 'https://', 'https://' . $authurl, $url );
|
481 |
-
$url = str_replace( 'http://', 'http://' . $authurl, $url );
|
482 |
-
}
|
483 |
-
}
|
484 |
-
|
485 |
-
if ( $starttype == 'runnowlink' && ( ! defined( 'ALTERNATE_WP_CRON' ) || ! ALTERNATE_WP_CRON ) ) {
|
486 |
-
$url = wp_nonce_url( network_admin_url( 'admin.php' ), 'backwpup_job_run-' . $starttype );
|
487 |
-
$query_args[ 'page' ] = 'backwpupjobs';
|
488 |
-
$query_args[ 'action' ] = 'runnow';
|
489 |
-
$query_args[ 'doing_wp_cron' ] = NULL;
|
490 |
-
unset( $query_args[ '_nonce' ] );
|
491 |
-
}
|
492 |
-
|
493 |
-
if ( $starttype == 'runnowlink' && defined( 'ALTERNATE_WP_CRON' ) && ALTERNATE_WP_CRON ) {
|
494 |
-
$query_args[ 'backwpup_run' ] = 'runnowalt';
|
495 |
-
$query_args[ '_nonce' ] = substr( wp_hash( wp_nonce_tick() . 'backwpup_job_run-runnowalt', 'nonce' ), - 12, 10 );
|
496 |
-
$query_args[ 'doing_wp_cron' ] = NULL;
|
497 |
-
}
|
498 |
-
|
499 |
-
if ( $starttype == 'restartalt' && defined( 'ALTERNATE_WP_CRON' ) && ALTERNATE_WP_CRON ) {
|
500 |
-
$query_args[ 'backwpup_run' ] = 'restart';
|
501 |
-
$query_args[ '_nonce' ] = substr( wp_hash( wp_nonce_tick() . 'backwpup_job_run-restart', 'nonce' ), - 12, 10 );
|
502 |
-
}
|
503 |
-
|
504 |
-
if ( ! empty( $authentication[ 'user_id' ] ) && $authentication[ 'method' ] == 'user' ) {
|
505 |
-
//cache cookies for auth some
|
506 |
-
$cookies = get_site_transient( 'backwpup_cookies' );
|
507 |
-
if ( empty( $cookies ) ) {
|
508 |
-
$wp_admin_user = get_users( array( 'role' => 'administrator', 'number' => 1 ) );
|
509 |
-
if ( empty( $wp_admin_user ) ) {
|
510 |
-
$wp_admin_user = get_users( array( 'role' => 'backwpup_admin', 'number' => 1 ) );
|
511 |
-
}
|
512 |
-
if ( ! empty( $wp_admin_user[ 0 ]->ID ) ) {
|
513 |
-
$expiration = time() + ( 356 * DAY_IN_SECONDS );
|
514 |
-
$manager = WP_Session_Tokens::get_instance( $wp_admin_user[ 0 ]->ID );
|
515 |
-
$token = $manager->create( $expiration );
|
516 |
-
$cookies[ LOGGED_IN_COOKIE ] = wp_generate_auth_cookie( $wp_admin_user[ 0 ]->ID, $expiration, 'logged_in', $token );
|
517 |
-
}
|
518 |
-
set_site_transient( 'backwpup_cookies', $cookies, 3600 - 30 );
|
519 |
-
}
|
520 |
-
} else {
|
521 |
-
$cookies = '';
|
522 |
-
}
|
523 |
-
|
524 |
-
$cron_request = array(
|
525 |
-
'url' => add_query_arg( $query_args, $url ),
|
526 |
-
'key' => $query_args[ 'doing_wp_cron' ],
|
527 |
-
'args' => array(
|
528 |
-
'blocking' => FALSE,
|
529 |
-
'sslverify' => apply_filters( 'https_local_ssl_verify', true ),
|
530 |
-
'timeout' => 0.01,
|
531 |
-
'headers' => $header,
|
532 |
-
'user-agent' => BackWpup::get_plugin_data( 'User-Agent' )
|
533 |
-
)
|
534 |
-
);
|
535 |
-
|
536 |
-
if ( ! empty( $cookies ) ) {
|
537 |
-
foreach ( $cookies as $name => $value ) {
|
538 |
-
$cron_request[ 'args' ][ 'cookies' ][] = new WP_Http_Cookie( array( 'name' => $name, 'value' => $value ) );
|
539 |
-
}
|
540 |
-
}
|
541 |
-
|
542 |
-
$cron_request = apply_filters( 'cron_request', $cron_request );
|
543 |
-
|
544 |
-
if ( $starttype == 'test' ) {
|
545 |
-
$cron_request[ 'args' ][ 'timeout' ] = 15;
|
546 |
-
$cron_request[ 'args' ][ 'blocking' ] = TRUE;
|
547 |
-
}
|
548 |
-
|
549 |
-
if ( ! in_array( $starttype, array( 'runnowlink', 'runext', 'restartalt' ) ) ) {
|
550 |
-
delete_transient( 'doing_cron' );
|
551 |
-
return wp_remote_post( $cron_request[ 'url' ], $cron_request[ 'args' ] );
|
552 |
-
}
|
553 |
-
|
554 |
-
return $cron_request;
|
555 |
-
}
|
556 |
-
|
557 |
-
|
558 |
-
/**
|
559 |
-
*
|
560 |
-
*/
|
561 |
-
public static function start_http( $starttype ) {
|
562 |
-
|
563 |
-
//load text domain
|
564 |
-
$log_level = get_site_option( 'backwpup_cfg_loglevel' );
|
565 |
-
if ( strstr( $log_level, 'translated' ) ) {
|
566 |
-
BackWPup::load_text_domain();
|
567 |
-
}
|
568 |
-
|
569 |
-
if ( $starttype != 'restart' ) {
|
570 |
-
|
571 |
-
//check get vars
|
572 |
-
if ( isset( $_GET[ 'jobid' ] ) )
|
573 |
-
$jobid = (int)$_GET[ 'jobid' ];
|
574 |
-
else
|
575 |
-
$jobid = 0;
|
576 |
-
|
577 |
-
//check job id exists
|
578 |
-
if ( $jobid != BackWPup_Option::get( $jobid, 'jobid' ) ) {
|
579 |
-
die( '-1' );
|
580 |
-
}
|
581 |
-
|
582 |
-
//check folders
|
583 |
-
$log_folder = get_site_option( 'backwpup_cfg_logfolder' );
|
584 |
-
$folder_message_log = BackWPup_File::check_folder( BackWPup_File::get_absolute_path( $log_folder ) );
|
585 |
-
$folder_message_temp = BackWPup_File::check_folder( BackWPup::get_plugin_data( 'TEMP' ), TRUE );
|
586 |
-
if ( ! empty( $folder_message_log ) || ! empty( $folder_message_temp ) ) {
|
587 |
-
BackWPup_Admin::message( $folder_message_log, TRUE );
|
588 |
-
BackWPup_Admin::message( $folder_message_temp, TRUE );
|
589 |
-
die( '-2' );
|
590 |
-
}
|
591 |
-
}
|
592 |
-
|
593 |
-
// redirect
|
594 |
-
if ( $starttype == 'runnowalt' ) {
|
595 |
-
ob_start();
|
596 |
-
wp_redirect( add_query_arg( array( 'page' => 'backwpupjobs' ), network_admin_url( 'admin.php' ) ) );
|
597 |
-
echo ' ';
|
598 |
-
while ( @ob_end_flush() );
|
599 |
-
flush();
|
600 |
-
}
|
601 |
-
|
602 |
-
// Should be preventing doubled running job's on http requests
|
603 |
-
$random = rand( 1, 9 ) * 100000;
|
604 |
-
usleep( $random );
|
605 |
-
|
606 |
-
//check running job
|
607 |
-
$backwpup_job_object = self::get_working_data();
|
608 |
-
//start class
|
609 |
-
if ( ! $backwpup_job_object && in_array( $starttype, array( 'runnow', 'runnowalt', 'runext' ) ) && ! empty( $jobid ) ) {
|
610 |
-
//schedule restart event
|
611 |
-
wp_schedule_single_event( time() + 60, 'backwpup_cron', array( 'id' => 'restart' ) );
|
612 |
-
//start job
|
613 |
-
$backwpup_job_object = new self();
|
614 |
-
$backwpup_job_object->create( $starttype, (int)$jobid );
|
615 |
-
}
|
616 |
-
if( is_object( $backwpup_job_object ) && $backwpup_job_object instanceof BackWPup_Job )
|
617 |
-
$backwpup_job_object->run();
|
618 |
-
}
|
619 |
-
|
620 |
-
/**
|
621 |
-
* @param $jobid
|
622 |
-
*/
|
623 |
-
public static function start_cli( $jobid ) {
|
624 |
-
|
625 |
-
if ( php_sapi_name() != 'cli' ) {
|
626 |
-
return;
|
627 |
-
}
|
628 |
-
|
629 |
-
//define DOING_CRON to prevent caching
|
630 |
-
if( ! defined( 'DOING_CRON' ) ) {
|
631 |
-
define( 'DOING_CRON', TRUE );
|
632 |
-
}
|
633 |
-
|
634 |
-
//load text domain
|
635 |
-
$log_level = get_site_option( 'backwpup_cfg_loglevel' );
|
636 |
-
if ( strstr( $log_level, 'translated' ) ) {
|
637 |
-
BackWPup::load_text_domain();
|
638 |
-
}
|
639 |
-
|
640 |
-
//Logs Folder
|
641 |
-
$log_folder = get_site_option( 'backwpup_cfg_logfolder' );
|
642 |
-
$log_folder = BackWPup_File::get_absolute_path( $log_folder );
|
643 |
-
|
644 |
-
//check job id exists
|
645 |
-
$jobids = BackWPup_Option::get_job_ids();
|
646 |
-
if ( ! in_array( $jobid, $jobids ) ) {
|
647 |
-
die( __( 'Wrong BackWPup JobID', 'backwpup' ) );
|
648 |
-
}
|
649 |
-
//check folders
|
650 |
-
$log_folder_message = BackWPup_File::check_folder( $log_folder );
|
651 |
-
if ( ! empty( $log_folder_message ) ) {
|
652 |
-
die( $log_folder_message );
|
653 |
-
}
|
654 |
-
$log_folder_message = BackWPup_File::check_folder( BackWPup::get_plugin_data( 'TEMP' ), TRUE );
|
655 |
-
if ( ! empty( $log_folder_message ) ) {
|
656 |
-
die( $log_folder_message );
|
657 |
-
}
|
658 |
-
//check running job
|
659 |
-
if ( file_exists( BackWPup::get_plugin_data( 'running_file' ) ) ) {
|
660 |
-
die( __( 'A BackWPup job is already running', 'backwpup' ) );
|
661 |
-
}
|
662 |
-
|
663 |
-
//start class
|
664 |
-
$backwpup_job_object = new self();
|
665 |
-
$backwpup_job_object->create( 'runcli', (int)$jobid );
|
666 |
-
$backwpup_job_object->run();
|
667 |
-
}
|
668 |
-
|
669 |
-
/**
|
670 |
-
* @param int $jobid
|
671 |
-
*/
|
672 |
-
public static function start_wp_cron( $jobid = 0 ) {
|
673 |
-
|
674 |
-
if ( ! defined( 'DOING_CRON' ) || ! DOING_CRON ) {
|
675 |
-
return;
|
676 |
-
}
|
677 |
-
|
678 |
-
//load text domain
|
679 |
-
$log_level = get_site_option( 'backwpup_cfg_loglevel' );
|
680 |
-
if ( strstr( $log_level, 'translated' ) ) {
|
681 |
-
BackWPup::load_text_domain();
|
682 |
-
}
|
683 |
-
|
684 |
-
if ( ! empty( $jobid ) ) {
|
685 |
-
//check folders
|
686 |
-
$log_folder = get_site_option( 'backwpup_cfg_logfolder' );
|
687 |
-
$folder_message_log = BackWPup_File::check_folder( BackWPup_File::get_absolute_path( $log_folder ) );
|
688 |
-
$folder_message_temp = BackWPup_File::check_folder( BackWPup::get_plugin_data( 'TEMP' ), TRUE );
|
689 |
-
if ( ! empty( $folder_message_log ) || ! empty( $folder_message_temp ) ) {
|
690 |
-
BackWPup_Admin::message( $folder_message_log, TRUE );
|
691 |
-
BackWPup_Admin::message( $folder_message_temp, TRUE );
|
692 |
-
return;
|
693 |
-
}
|
694 |
-
}
|
695 |
-
|
696 |
-
// Should be preventing doubled running job's on http requests
|
697 |
-
$random = rand( 1, 9 ) * 100000;
|
698 |
-
usleep( $random );
|
699 |
-
|
700 |
-
//get running job
|
701 |
-
$backwpup_job_object = self::get_working_data();
|
702 |
-
//start/restart class
|
703 |
-
if ( empty( $backwpup_job_object ) && ! empty( $jobid ) ) {
|
704 |
-
//schedule restart event
|
705 |
-
wp_schedule_single_event( time() + 60, 'backwpup_cron', array( 'id' => 'restart' ) );
|
706 |
-
//start job
|
707 |
-
$backwpup_job_object = new self();
|
708 |
-
$backwpup_job_object->create( 'cronrun', (int)$jobid );
|
709 |
-
}
|
710 |
-
if( is_object( $backwpup_job_object ) && $backwpup_job_object instanceof BackWPup_Job )
|
711 |
-
$backwpup_job_object->run();
|
712 |
-
}
|
713 |
-
|
714 |
-
/**
|
715 |
-
* disable caches
|
716 |
-
*/
|
717 |
-
public static function disable_caches() {
|
718 |
-
|
719 |
-
//Special settings
|
720 |
-
@putenv( 'nokeepalive=1' );
|
721 |
-
@ini_set( 'zlib.output_compression', 'Off' );
|
722 |
-
|
723 |
-
// deactivate caches
|
724 |
-
if ( ! defined( 'DONOTCACHEDB' ) ) {
|
725 |
-
define( 'DONOTCACHEDB', TRUE );
|
726 |
-
}
|
727 |
-
if ( ! defined( 'DONOTCACHEPAGE' ) ) {
|
728 |
-
define( 'DONOTCACHEPAGE', TRUE );
|
729 |
-
}
|
730 |
-
}
|
731 |
-
|
732 |
-
|
733 |
-
/**
|
734 |
-
* Run baby run
|
735 |
-
*/
|
736 |
-
public function run() {
|
737 |
-
global $wpdb;
|
738 |
-
/* @var wpdb $wpdb */
|
739 |
-
|
740 |
-
// Job can't run it is not created
|
741 |
-
if ( empty( $this->steps_todo ) || empty( $this->logfile ) ) {
|
742 |
-
$running_file = BackWPup::get_plugin_data( 'running_file' );
|
743 |
-
if ( file_exists( $running_file ) ) {
|
744 |
-
unlink( $running_file );
|
745 |
-
}
|
746 |
-
return;
|
747 |
-
}
|
748 |
-
|
749 |
-
//Check double running and inactivity
|
750 |
-
$last_update = microtime( TRUE ) - $this->timestamp_last_update;
|
751 |
-
if ( ! empty( $this->pid ) && $last_update > 300 ) {
|
752 |
-
$this->log( __( 'Job restarts due to inactivity for more than 5 minutes.', 'backwpup' ), E_USER_WARNING );
|
753 |
-
}
|
754 |
-
elseif ( ! empty( $this->pid ) ) {
|
755 |
-
return;
|
756 |
-
}
|
757 |
-
// set timestamp of script start
|
758 |
-
$this->timestamp_script_start = microtime( TRUE );
|
759 |
-
//set Pid
|
760 |
-
$this->pid = self::get_pid();
|
761 |
-
$this->uniqid = uniqid( '', TRUE );
|
762 |
-
//Early write new working file
|
763 |
-
$this->write_running_file();
|
764 |
-
//set function for PHP user defined error handling
|
765 |
-
$this->run[ 'PHP' ][ 'INI' ][ 'ERROR_LOG' ] = ini_get( 'error_log' );
|
766 |
-
$this->run[ 'PHP' ][ 'INI' ][ 'ERROR_REPORTING' ]= ini_get( 'error_reporting' );
|
767 |
-
$this->run[ 'PHP' ][ 'INI' ][ 'LOG_ERRORS' ] = ini_get( 'log_errors' );
|
768 |
-
$this->run[ 'PHP' ][ 'INI' ][ 'DISPLAY_ERRORS' ] = ini_get( 'display_errors' );
|
769 |
-
$this->run[ 'PHP' ][ 'INI' ][ 'HTML_ERRORS' ] = ini_get( 'html_errors' );
|
770 |
-
$this->run[ 'PHP' ][ 'INI' ][ 'REPORT_MEMLEAKS' ]= ini_get( 'report_memleaks' );
|
771 |
-
$this->run[ 'PHP' ][ 'INI' ][ 'ZLIB_OUTPUT_COMPRESSION' ] = ini_get( 'zlib.output_compression' );
|
772 |
-
$this->run[ 'PHP' ][ 'INI' ][ 'IMPLICIT_FLUSH' ] = ini_get( 'implicit_flush' );
|
773 |
-
if ( $this->is_debug() ) {
|
774 |
-
@ini_set( 'error_log', $this->logfile );
|
775 |
-
error_reporting( -1 );
|
776 |
-
}
|
777 |
-
@ini_set( 'display_errors', '0' );
|
778 |
-
@ini_set( 'log_errors', '1' );
|
779 |
-
@ini_set( 'html_errors', '0' );
|
780 |
-
@ini_set( 'report_memleaks', '1' );
|
781 |
-
@ini_set( 'zlib.output_compression', '0' );
|
782 |
-
@ini_set( 'implicit_flush', '0' );
|
783 |
-
//increase MySQL timeout
|
784 |
-
@ini_set( 'mysql.connect_timeout', '360' );
|
785 |
-
//set temp folder
|
786 |
-
$can_set_temp_env = TRUE;
|
787 |
-
$protected_env_vars = explode( ',', ini_get( 'safe_mode_protected_env_vars' ) ); //removed in php 5.4.0
|
788 |
-
foreach( $protected_env_vars as $protected_env ) {
|
789 |
-
if ( strtoupper( trim( $protected_env ) ) == 'TMPDIR' ) {
|
790 |
-
$can_set_temp_env = FALSE;
|
791 |
-
}
|
792 |
-
}
|
793 |
-
if ( $can_set_temp_env ) {
|
794 |
-
$this->run[ 'PHP' ][ 'ENV' ][ 'TEMPDIR' ] = getenv( 'TMPDIR' );
|
795 |
-
@putenv( 'TMPDIR='.BackWPup::get_plugin_data( 'TEMP') );
|
796 |
-
}
|
797 |
-
//Write Wordpress DB errors to log
|
798 |
-
$wpdb->suppress_errors( FALSE );
|
799 |
-
$wpdb->hide_errors();
|
800 |
-
//set wp max memory limit
|
801 |
-
@ini_set( 'memory_limit', apply_filters( 'admin_memory_limit', WP_MAX_MEMORY_LIMIT ) );
|
802 |
-
//set error handler
|
803 |
-
if ( ! empty( $this->logfile ) ) {
|
804 |
-
if ( $this->is_debug() ) {
|
805 |
-
set_error_handler( array( $this, 'log' ) );
|
806 |
-
} else {
|
807 |
-
set_error_handler( array( $this, 'log' ), E_ALL ^ E_NOTICE );
|
808 |
-
}
|
809 |
-
}
|
810 |
-
set_exception_handler( array( $this, 'exception_handler' ) );
|
811 |
-
//not loading Textdomains and unload loaded
|
812 |
-
if ( ! strstr( $this->log_level, 'translated' ) ) {
|
813 |
-
add_filter( 'override_load_textdomain', create_function( '','return TRUE;' ) );
|
814 |
-
$GLOBALS[ 'l10n' ] = array();
|
815 |
-
}
|
816 |
-
// execute function on job shutdown register_shutdown_function( array( $this, 'shutdown' ) );
|
817 |
-
add_action( 'shutdown', array( $this, 'shutdown' ) );
|
818 |
-
//remove_action('shutdown', array( $this, 'shutdown' ));
|
819 |
-
if ( function_exists( 'pcntl_signal' ) ) {
|
820 |
-
$signals = array(
|
821 |
-
'SIGHUP',
|
822 |
-
'SIGINT',
|
823 |
-
'SIGQUIT',
|
824 |
-
'SIGILL',
|
825 |
-
'SIGTRAP',
|
826 |
-
'SIGABRT',
|
827 |
-
'SIGBUS',
|
828 |
-
'SIGFPE',
|
829 |
-
//'SIGKILL',
|
830 |
-
'SIGSEGV',
|
831 |
-
//'SIGPIPE',
|
832 |
-
//'SIGALRM',
|
833 |
-
'SIGTERM',
|
834 |
-
'SIGSTKFLT',
|
835 |
-
'SIGUSR1',
|
836 |
-
'SIGUSR2',
|
837 |
-
//'SIGCHLD',
|
838 |
-
//'SIGCONT',
|
839 |
-
//'SIGSTOP',
|
840 |
-
'SIGTSTP',
|
841 |
-
'SIGTTIN',
|
842 |
-
'SIGTTOU',
|
843 |
-
'SIGURG',
|
844 |
-
'SIGXCPU',
|
845 |
-
'SIGXFSZ',
|
846 |
-
//'SIGVTALRM',
|
847 |
-
'SIGPROF',
|
848 |
-
'SIGWINCH',
|
849 |
-
//'SIGIO',
|
850 |
-
'SIGPWR',
|
851 |
-
'SIGSYS',
|
852 |
-
);
|
853 |
-
$signals = apply_filters( 'backwpup_job_signals_to_handel', $signals );
|
854 |
-
declare( ticks = 1 ) ;
|
855 |
-
foreach( $signals as $signal ) {
|
856 |
-
if ( defined( $signal ) ) {
|
857 |
-
pcntl_signal( constant( $signal ), array( $this, 'shutdown' ), FALSE );
|
858 |
-
}
|
859 |
-
}
|
860 |
-
}
|
861 |
-
//clear output buffer
|
862 |
-
ob_start();
|
863 |
-
while( @ob_end_clean() );
|
864 |
-
@flush();
|
865 |
-
$job_types = BackWPup::get_job_types();
|
866 |
-
//go step by step
|
867 |
-
foreach ( $this->steps_todo as $this->step_working ) {
|
868 |
-
//Check if step already done
|
869 |
-
if ( in_array( $this->step_working, $this->steps_done ) )
|
870 |
-
continue;
|
871 |
-
//calc step percent
|
872 |
-
if ( count( $this->steps_done ) > 0 )
|
873 |
-
$this->step_percent = round( count( $this->steps_done ) / count( $this->steps_todo ) * 100 );
|
874 |
-
else
|
875 |
-
$this->step_percent = 1;
|
876 |
-
// do step tries
|
877 |
-
while ( TRUE ) {
|
878 |
-
if ( $this->steps_data[ $this->step_working ][ 'STEP_TRY' ] >= get_site_option( 'backwpup_cfg_jobstepretry' ) ) {
|
879 |
-
$this->log( __( 'Step aborted: too many attempts!', 'backwpup' ), E_USER_ERROR );
|
880 |
-
$this->temp = array();
|
881 |
-
$this->steps_done[ ] = $this->step_working;
|
882 |
-
$this->substeps_done = 0;
|
883 |
-
$this->substeps_todo = 0;
|
884 |
-
$this->do_restart();
|
885 |
-
break;
|
886 |
-
}
|
887 |
-
|
888 |
-
$this->steps_data[ $this->step_working ][ 'STEP_TRY' ] ++;
|
889 |
-
$done = FALSE;
|
890 |
-
|
891 |
-
//executes the methods of job process
|
892 |
-
if ( $this->step_working == 'CREATE_ARCHIVE' ) {
|
893 |
-
$done = $this->create_archive();
|
894 |
-
}
|
895 |
-
elseif ( $this->step_working == 'CREATE_MANIFEST' ) {
|
896 |
-
$done = $this->create_manifest();
|
897 |
-
}
|
898 |
-
elseif ( $this->step_working == 'END' ) {
|
899 |
-
$this->end();
|
900 |
-
break 2;
|
901 |
-
}
|
902 |
-
elseif ( strstr( $this->step_working, 'JOB_' ) ) {
|
903 |
-
$done = $job_types[ str_replace( 'JOB_', '', $this->step_working ) ]->job_run( $this );
|
904 |
-
}
|
905 |
-
elseif ( strstr( $this->step_working, 'DEST_SYNC_' ) ) {
|
906 |
-
$done = BackWPup::get_destination( str_replace( 'DEST_SYNC_', '', $this->step_working ) )->job_run_sync( $this );
|
907 |
-
}
|
908 |
-
elseif ( strstr( $this->step_working, 'DEST_' ) ) {
|
909 |
-
$done = BackWPup::get_destination( str_replace( 'DEST_', '', $this->step_working ) )->job_run_archive( $this );
|
910 |
-
}
|
911 |
-
elseif ( ! empty( $this->steps_data[ $this->step_working ][ 'CALLBACK' ] ) ) {
|
912 |
-
$done = $this->steps_data[ $this->step_working ][ 'CALLBACK' ]( $this );
|
913 |
-
}
|
914 |
-
|
915 |
-
// set step as done
|
916 |
-
if ( $done === TRUE ) {
|
917 |
-
$this->temp = array();
|
918 |
-
$this->steps_done[] = $this->step_working;
|
919 |
-
$this->substeps_done = 0;
|
920 |
-
$this->substeps_todo = 0;
|
921 |
-
$this->write_running_file();
|
922 |
-
}
|
923 |
-
if ( count( $this->steps_done ) < count( $this->steps_todo ) -1 ) {
|
924 |
-
$this->do_restart();
|
925 |
-
}
|
926 |
-
if ( $done === TRUE ) {
|
927 |
-
break;
|
928 |
-
}
|
929 |
-
}
|
930 |
-
}
|
931 |
-
}
|
932 |
-
|
933 |
-
/**
|
934 |
-
* Do a job restart
|
935 |
-
*
|
936 |
-
* @param bool $must Restart must done
|
937 |
-
* @param bool $msg Log restart message
|
938 |
-
*/
|
939 |
-
public function do_restart( $must = FALSE ) {
|
940 |
-
|
941 |
-
//no restart if in end step
|
942 |
-
if ( $this->step_working == 'END' || ( count( $this->steps_done ) + 1 ) >= count( $this->steps_todo ) ) {
|
943 |
-
return;
|
944 |
-
}
|
945 |
-
|
946 |
-
//no restart on cli usage
|
947 |
-
if ( php_sapi_name() == 'cli' ) {
|
948 |
-
return;
|
949 |
-
}
|
950 |
-
|
951 |
-
//no restart if no restart time configured
|
952 |
-
$job_max_execution_time = get_site_option( 'backwpup_cfg_jobmaxexecutiontime' );
|
953 |
-
if ( ! $must && empty( $job_max_execution_time ) ) {
|
954 |
-
return;
|
955 |
-
}
|
956 |
-
|
957 |
-
//no restart when restart was 3 Seconds before
|
958 |
-
$execution_time = microtime( TRUE ) - $this->timestamp_script_start;
|
959 |
-
if ( ! $must && $execution_time < 3 ) {
|
960 |
-
return;
|
961 |
-
}
|
962 |
-
|
963 |
-
//no restart if no working job
|
964 |
-
if ( ! file_exists( BackWPup::get_plugin_data( 'running_file' ) ) ) {
|
965 |
-
return;
|
966 |
-
}
|
967 |
-
|
968 |
-
//print message
|
969 |
-
if ( $this->is_debug() ) {
|
970 |
-
$this->log( sprintf( __( 'Restart after %1$d seconds.', 'backwpup' ), ceil( $execution_time ) ) );
|
971 |
-
}
|
972 |
-
|
973 |
-
//do things for a clean restart
|
974 |
-
$this->pid = 0;
|
975 |
-
$this->uniqid = '';
|
976 |
-
$this->write_running_file();
|
977 |
-
remove_action( 'shutdown', array( $this, 'shutdown' ) );
|
978 |
-
//do restart
|
979 |
-
wp_clear_scheduled_hook( 'backwpup_cron', array( 'id' => 'restart' ) );
|
980 |
-
wp_schedule_single_event( time() + 5, 'backwpup_cron', array( 'id' => 'restart' ) );
|
981 |
-
self::get_jobrun_url( 'restart' );
|
982 |
-
|
983 |
-
exit();
|
984 |
-
}
|
985 |
-
|
986 |
-
/**
|
987 |
-
* Do a job restart
|
988 |
-
*
|
989 |
-
* @param bool $do_restart_now should time restart now be done
|
990 |
-
* @return int remaining time
|
991 |
-
*/
|
992 |
-
public function do_restart_time( $do_restart_now = FALSE ) {
|
993 |
-
|
994 |
-
$job_max_execution_time = get_site_option( 'backwpup_cfg_jobmaxexecutiontime' );
|
995 |
-
|
996 |
-
if ( empty( $job_max_execution_time ) ) {
|
997 |
-
return 300;
|
998 |
-
}
|
999 |
-
|
1000 |
-
$execution_time = microtime( TRUE ) - $this->timestamp_script_start;
|
1001 |
-
|
1002 |
-
// do restart 3 sec. before max. execution time
|
1003 |
-
if ( $do_restart_now || $execution_time >= ( $job_max_execution_time - 3 ) ) {
|
1004 |
-
$this->steps_data[ $this->step_working ][ 'SAVE_STEP_TRY' ] = $this->steps_data[ $this->step_working ][ 'STEP_TRY' ];
|
1005 |
-
$this->steps_data[ $this->step_working ][ 'STEP_TRY' ] -= 1;
|
1006 |
-
$this->do_restart( TRUE );
|
1007 |
-
}
|
1008 |
-
|
1009 |
-
return $job_max_execution_time - $execution_time;
|
1010 |
-
|
1011 |
-
}
|
1012 |
-
|
1013 |
-
/**
|
1014 |
-
* Get job restart time
|
1015 |
-
*
|
1016 |
-
* @return int remaining time
|
1017 |
-
*/
|
1018 |
-
public function get_restart_time() {
|
1019 |
-
|
1020 |
-
$job_max_execution_time = get_site_option( 'backwpup_cfg_jobmaxexecutiontime' );
|
1021 |
-
|
1022 |
-
if ( empty( $job_max_execution_time ) ) {
|
1023 |
-
return 300;
|
1024 |
-
}
|
1025 |
-
|
1026 |
-
$execution_time = microtime( TRUE ) - $this->timestamp_script_start;
|
1027 |
-
return $job_max_execution_time - $execution_time - 3;
|
1028 |
-
}
|
1029 |
-
|
1030 |
-
/**
|
1031 |
-
*
|
1032 |
-
* Get data off a working job
|
1033 |
-
*
|
1034 |
-
* @return bool|object BackWPup_Job Object or Bool if file not exits
|
1035 |
-
*/
|
1036 |
-
public static function get_working_data() {
|
1037 |
-
|
1038 |
-
if ( version_compare( PHP_VERSION, '5.3', '>=' ) ) {
|
1039 |
-
clearstatcache( TRUE, BackWPup::get_plugin_data( 'running_file' ) );
|
1040 |
-
} else {
|
1041 |
-
clearstatcache();
|
1042 |
-
}
|
1043 |
-
|
1044 |
-
if ( ! file_exists( BackWPup::get_plugin_data( 'running_file' ) ) ) {
|
1045 |
-
return FALSE;
|
1046 |
-
}
|
1047 |
-
|
1048 |
-
$file_data = file_get_contents( BackWPup::get_plugin_data( 'running_file' ), FALSE, NULL, 8 );
|
1049 |
-
if ( empty( $file_data ) ) {
|
1050 |
-
return FALSE;
|
1051 |
-
}
|
1052 |
-
|
1053 |
-
if ( $job_object = unserialize( $file_data ) ) {
|
1054 |
-
if ( $job_object instanceof BackWPup_Job )
|
1055 |
-
return $job_object;
|
1056 |
-
}
|
1057 |
-
|
1058 |
-
return FALSE;
|
1059 |
-
|
1060 |
-
}
|
1061 |
-
|
1062 |
-
/**
|
1063 |
-
*
|
1064 |
-
* Reads a BackWPup logfile header and gives back a array of information
|
1065 |
-
*
|
1066 |
-
* @param string $logfile full logfile path
|
1067 |
-
*
|
1068 |
-
* @return array|bool
|
1069 |
-
*/
|
1070 |
-
public static function read_logheader( $logfile ) {
|
1071 |
-
|
1072 |
-
$usedmetas = array(
|
1073 |
-
"date" => "logtime",
|
1074 |
-
"backwpup_logtime" => "logtime", //old value of date
|
1075 |
-
"backwpup_errors" => "errors",
|
1076 |
-
"backwpup_warnings" => "warnings",
|
1077 |
-
"backwpup_jobid" => "jobid",
|
1078 |
-
"backwpup_jobname" => "name",
|
1079 |
-
"backwpup_jobtype" => "type",
|
1080 |
-
"backwpup_jobruntime" => "runtime",
|
1081 |
-
"backwpup_backupfilesize" => "backupfilesize"
|
1082 |
-
);
|
1083 |
-
|
1084 |
-
//get metadata of logfile
|
1085 |
-
$metas = array();
|
1086 |
-
if ( is_readable( $logfile ) ) {
|
1087 |
-
if ( '.gz' == substr( $logfile, -3 ) )
|
1088 |
-
$metas = (array)get_meta_tags( 'compress.zlib://' . $logfile );
|
1089 |
-
else
|
1090 |
-
$metas = (array)get_meta_tags( $logfile );
|
1091 |
-
}
|
1092 |
-
|
1093 |
-
//only output needed data
|
1094 |
-
foreach ( $usedmetas as $keyword => $field ) {
|
1095 |
-
if ( isset( $metas[ $keyword ] ) ) {
|
1096 |
-
$joddata[ $field ] = $metas[ $keyword ];
|
1097 |
-
} else {
|
1098 |
-
$joddata[ $field ] = '';
|
1099 |
-
}
|
1100 |
-
}
|
1101 |
-
|
1102 |
-
//convert date
|
1103 |
-
if ( isset( $metas[ 'date' ] ) )
|
1104 |
-
$joddata[ 'logtime' ] = strtotime( $metas[ 'date' ] ) + ( get_option( 'gmt_offset' ) * 3600 );
|
1105 |
-
|
1106 |
-
//use file create date if none
|
1107 |
-
if ( empty( $joddata[ 'logtime' ] ) )
|
1108 |
-
$joddata[ 'logtime' ] = filectime( $logfile );
|
1109 |
-
|
1110 |
-
return $joddata;
|
1111 |
-
}
|
1112 |
-
|
1113 |
-
|
1114 |
-
/**
|
1115 |
-
*
|
1116 |
-
* Shutdown function is call if script terminates try to make a restart if needed
|
1117 |
-
*
|
1118 |
-
* Prepare the job for start
|
1119 |
-
*
|
1120 |
-
* @internal param int the signal that terminates the job
|
1121 |
-
*/
|
1122 |
-
public function shutdown() {
|
1123 |
-
|
1124 |
-
$args = func_get_args();
|
1125 |
-
|
1126 |
-
//Put last error to log if one
|
1127 |
-
$lasterror = error_get_last();
|
1128 |
-
if ( $lasterror[ 'type' ] == E_ERROR or $lasterror[ 'type' ] == E_PARSE or $lasterror[ 'type' ] == E_CORE_ERROR or $lasterror[ 'type' ] == E_CORE_WARNING or $lasterror[ 'type' ] == E_COMPILE_ERROR or $lasterror[ 'type' ] == E_COMPILE_WARNING ) {
|
1129 |
-
$this->log( $lasterror[ 'type' ], $lasterror[ 'message' ], $lasterror[ 'file' ], $lasterror[ 'line' ] );
|
1130 |
-
}
|
1131 |
-
|
1132 |
-
//Put signals to log
|
1133 |
-
if ( ! empty( $args[ 0 ] ) ) {
|
1134 |
-
$signals = array(
|
1135 |
-
'SIGHUP',
|
1136 |
-
'SIGINT',
|
1137 |
-
'SIGQUIT',
|
1138 |
-
'SIGILL',
|
1139 |
-
'SIGTRAP',
|
1140 |
-
'SIGABRT',
|
1141 |
-
'SIGBUS',
|
1142 |
-
'SIGFPE',
|
1143 |
-
'SIGKILL',
|
1144 |
-
'SIGSEGV',
|
1145 |
-
'SIGPIPE',
|
1146 |
-
'SIGALRM',
|
1147 |
-
'SIGTERM',
|
1148 |
-
'SIGSTKFLT',
|
1149 |
-
'SIGUSR1',
|
1150 |
-
'SIGUSR2',
|
1151 |
-
'SIGCHLD',
|
1152 |
-
'SIGCONT',
|
1153 |
-
'SIGSTOP',
|
1154 |
-
'SIGTSTP',
|
1155 |
-
'SIGTTIN',
|
1156 |
-
'SIGTTOU',
|
1157 |
-
'SIGURG',
|
1158 |
-
'SIGXCPU',
|
1159 |
-
'SIGXFSZ',
|
1160 |
-
'SIGVTALRM',
|
1161 |
-
'SIGPROF',
|
1162 |
-
'SIGWINCH',
|
1163 |
-
'SIGIO',
|
1164 |
-
'SIGPWR',
|
1165 |
-
'SIGSYS'
|
1166 |
-
);
|
1167 |
-
foreach ( $signals as $signal ) {
|
1168 |
-
if ( defined( $signal ) && $args[ 0 ] === constant( $signal ) ) {
|
1169 |
-
$this->log( sprintf( __( 'Signal "%s" is sent to script!', 'backwpup' ), $signal ), E_USER_ERROR );
|
1170 |
-
break;
|
1171 |
-
}
|
1172 |
-
}
|
1173 |
-
}
|
1174 |
-
|
1175 |
-
if ( function_exists( 'pcntl_get_last_error' ) ) {
|
1176 |
-
$error = pcntl_get_last_error();
|
1177 |
-
if ( ! empty( $error ) ) {
|
1178 |
-
$error_msg = pcntl_strerror( $error );
|
1179 |
-
if ( ! empty( $error_msg ) ) {
|
1180 |
-
$error = '(' . $error . ') ' . $error_msg;
|
1181 |
-
}
|
1182 |
-
}
|
1183 |
-
if ( ! empty( $error ) ) {
|
1184 |
-
$this->log( sprintf( __( 'System: %s', 'backwpup' ), $error ), E_USER_ERROR );
|
1185 |
-
}
|
1186 |
-
}
|
1187 |
-
|
1188 |
-
if ( function_exists( 'posix_get_last_error' ) && empty( $error ) ) {
|
1189 |
-
$error = posix_get_last_error();
|
1190 |
-
if ( ! empty( $error ) ) {
|
1191 |
-
$error_msg = posix_strerror( $error );
|
1192 |
-
if ( ! empty( $error_msg ) ) {
|
1193 |
-
$error = '(' . $error . ') ' . $error_msg;
|
1194 |
-
}
|
1195 |
-
}
|
1196 |
-
if ( ! empty( $error ) ) {
|
1197 |
-
$this->log( sprintf( __( 'System: %s', 'backwpup' ), $error ), E_USER_ERROR );
|
1198 |
-
}
|
1199 |
-
}
|
1200 |
-
|
1201 |
-
$this->do_restart( TRUE );
|
1202 |
-
}
|
1203 |
-
|
1204 |
-
/**
|
1205 |
-
*
|
1206 |
-
* The uncouth exception handler
|
1207 |
-
*
|
1208 |
-
* @param object $exception
|
1209 |
-
*/
|
1210 |
-
public function exception_handler( $exception ) {
|
1211 |
-
|
1212 |
-
$this->log( sprintf( __( 'Exception caught in %1$s: %2$s', 'backwpup' ), get_class( $exception ), $exception->getMessage() ), E_USER_ERROR, $exception->getFile(), $exception->getLine() );
|
1213 |
-
}
|
1214 |
-
|
1215 |
-
/**
|
1216 |
-
* Write messages to log file
|
1217 |
-
*
|
1218 |
-
* @param string $message the error message
|
1219 |
-
* @param int $type the error number (E_USER_ERROR,E_USER_WARNING,E_USER_NOTICE, ...)
|
1220 |
-
* @param string $file the full path of file with error (__FILE__)
|
1221 |
-
* @param int $line the line in that is the error (__LINE__)
|
1222 |
-
*
|
1223 |
-
* @return bool true
|
1224 |
-
*/
|
1225 |
-
public function log( $message, $type = E_USER_NOTICE, $file = '', $line = 0 ) {
|
1226 |
-
|
1227 |
-
// if error has been suppressed with an @
|
1228 |
-
if ( error_reporting() == 0 ) {
|
1229 |
-
return TRUE;
|
1230 |
-
}
|
1231 |
-
|
1232 |
-
//if first the type an second the message switch it on user errors
|
1233 |
-
if ( ! is_int( $type ) && is_int( $message ) && in_array( $message, array( 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384 ) ) ) {
|
1234 |
-
$temp = $message;
|
1235 |
-
$message = $type;
|
1236 |
-
$type = $temp;
|
1237 |
-
}
|
1238 |
-
|
1239 |
-
//json message if array or object
|
1240 |
-
if ( is_array( $message ) || is_object( $message ) ) {
|
1241 |
-
$message = json_encode( $message );
|
1242 |
-
}
|
1243 |
-
|
1244 |
-
//if not set line and file get it
|
1245 |
-
if ( $this->is_debug() ) {
|
1246 |
-
if ( empty( $file ) || empty( $line ) ) {
|
1247 |
-
$debug_info = debug_backtrace();
|
1248 |
-
$file = $debug_info[ 0 ][ 'file' ];
|
1249 |
-
$line = $debug_info[ 0 ][ 'line' ];
|
1250 |
-
}
|
1251 |
-
}
|
1252 |
-
|
1253 |
-
$error_or_warning = FALSE;
|
1254 |
-
|
1255 |
-
switch ( $type ) {
|
1256 |
-
case E_NOTICE:
|
1257 |
-
case E_USER_NOTICE:
|
1258 |
-
break;
|
1259 |
-
case E_WARNING:
|
1260 |
-
case E_CORE_WARNING:
|
1261 |
-
case E_COMPILE_WARNING:
|
1262 |
-
case E_USER_WARNING:
|
1263 |
-
$this->warnings ++;
|
1264 |
-
$error_or_warning = TRUE;
|
1265 |
-
$message = '%y' . __( 'WARNING:', 'backwpup' ) . ' ' . $message . '%n';
|
1266 |
-
break;
|
1267 |
-
case E_ERROR:
|
1268 |
-
case E_PARSE:
|
1269 |
-
case E_CORE_ERROR:
|
1270 |
-
case E_COMPILE_ERROR:
|
1271 |
-
case E_USER_ERROR:
|
1272 |
-
$this->errors ++;
|
1273 |
-
$error_or_warning = TRUE;
|
1274 |
-
$message = '%r' . __( 'ERROR:', 'backwpup' ) . ' ' . $message . '%n';
|
1275 |
-
break;
|
1276 |
-
case 8192: //E_DEPRECATED comes with php 5.3
|
1277 |
-
case 16384: //E_USER_DEPRECATED comes with php 5.3
|
1278 |
-
$message = __( 'DEPRECATED:', 'backwpup' ) . ' ' . $message;
|
1279 |
-
break;
|
1280 |
-
case E_STRICT:
|
1281 |
-
$message = __( 'STRICT NOTICE:', 'backwpup' ) . ' ' . $message;
|
1282 |
-
break;
|
1283 |
-
case E_RECOVERABLE_ERROR:
|
1284 |
-
$this->errors ++;
|
1285 |
-
$error_or_warning = TRUE;
|
1286 |
-
$message = '%r' . __( 'RECOVERABLE ERROR:', 'backwpup' ) . ' ' . $message . '%n';
|
1287 |
-
break;
|
1288 |
-
default:
|
1289 |
-
$message = $type . ': ' . $message;
|
1290 |
-
break;
|
1291 |
-
}
|
1292 |
-
|
1293 |
-
$in_file = $this->get_destination_path_replacement( $file );
|
1294 |
-
|
1295 |
-
//print message to cli
|
1296 |
-
if ( defined( 'WP_CLI' ) && WP_CLI ) {
|
1297 |
-
$output_message = str_replace( array( '…', ' ' ), array( '...', ' ' ), strip_tags( $message ) );
|
1298 |
-
if ( !call_user_func( array( '\cli\Shell', 'isPiped' ) ) ) {
|
1299 |
-
$output_message = call_user_func( array( '\cli\Colors', 'colorize' ), $output_message, true );
|
1300 |
-
} else {
|
1301 |
-
$output_message = str_replace( array( '%y', '%r', '%n' ), '', $output_message );
|
1302 |
-
}
|
1303 |
-
WP_CLI::line( $output_message );
|
1304 |
-
} elseif ( php_sapi_name() == 'cli' && defined( 'STDOUT' ) ) {
|
1305 |
-
$output_message = str_replace( array( '…', ' ' ), array( '...', ' ' ), strip_tags( $message ) ) . PHP_EOL;
|
1306 |
-
$output_message = str_replace( array( '%y', '%r', '%n' ), '', $output_message );
|
1307 |
-
fwrite( STDOUT, $output_message ) ;
|
1308 |
-
}
|
1309 |
-
|
1310 |
-
//timestamp for log file
|
1311 |
-
$debug_info = '';
|
1312 |
-
if ( $this->is_debug() ) {
|
1313 |
-
$debug_info = ' title="[Type: ' . $type . '|Line: ' . $line . '|File: ' . $in_file . '|Mem: ' . size_format( @memory_get_usage( TRUE ), 2 ) . '|Mem Max: ' . size_format( @memory_get_peak_usage( TRUE ), 2 ) . '|Mem Limit: ' . ini_get( 'memory_limit' ) . '|PID: ' . self::get_pid() . ' | UniqID: ' . $this->uniqid . '|Query\'s: ' . get_num_queries() . ']"';
|
1314 |
-
}
|
1315 |
-
$timestamp = '<span datetime="' . date( 'c' ) . '" ' . $debug_info . '>[' . date( 'd-M-Y H:i:s', current_time( 'timestamp' ) ) . ']</span> ';
|
1316 |
-
|
1317 |
-
//set last Message
|
1318 |
-
$output_message = esc_attr( $message );
|
1319 |
-
$output_message = str_replace( array( '%y', '%r', '%n' ), array( '<span style="background-color:#ffc000;color:#fff">', '<span style="background-color:red;color:#fff">', '</span>' ), $output_message );
|
1320 |
-
if ( $error_or_warning ) {
|
1321 |
-
$this->lasterrormsg = $output_message;
|
1322 |
-
} else {
|
1323 |
-
$this->lastmsg = $output_message;
|
1324 |
-
}
|
1325 |
-
//write log file
|
1326 |
-
if ( ! empty( $this->logfile ) ) {
|
1327 |
-
if ( ! file_put_contents( $this->logfile, $timestamp . $output_message . '<br />' . PHP_EOL, FILE_APPEND ) ) {
|
1328 |
-
$this->logfile = '';
|
1329 |
-
restore_error_handler();
|
1330 |
-
trigger_error( str_replace( array( '%y', '%r', '%n' ), '', $message ), $type );
|
1331 |
-
}
|
1332 |
-
|
1333 |
-
//write new log header
|
1334 |
-
if ( $error_or_warning && ! empty( $this->logfile ) ) {
|
1335 |
-
if ( $fd = fopen( $this->logfile, 'r+' ) ) {
|
1336 |
-
$found = 0;
|
1337 |
-
$file_pos = ftell( $fd );
|
1338 |
-
while ( ! feof( $fd ) ) {
|
1339 |
-
$line = fgets( $fd );
|
1340 |
-
if ( stripos( $line, '<meta name="backwpup_errors" content="' ) !== FALSE ) {
|
1341 |
-
fseek( $fd, $file_pos );
|
1342 |
-
fwrite( $fd, str_pad( '<meta name="backwpup_errors" content="' . $this->errors . '" />', 100 ) . PHP_EOL );
|
1343 |
-
$found ++;
|
1344 |
-
}
|
1345 |
-
if ( stripos( $line, '<meta name="backwpup_warnings" content="' ) !== FALSE ) {
|
1346 |
-
fseek( $fd, $file_pos );
|
1347 |
-
fwrite( $fd, str_pad( '<meta name="backwpup_warnings" content="' . $this->warnings . '" />', 100 ) . PHP_EOL );
|
1348 |
-
$found ++;
|
1349 |
-
}
|
1350 |
-
if ( $found >= 2 ) {
|
1351 |
-
break;
|
1352 |
-
}
|
1353 |
-
$file_pos = ftell( $fd );
|
1354 |
-
}
|
1355 |
-
fclose( $fd );
|
1356 |
-
}
|
1357 |
-
}
|
1358 |
-
|
1359 |
-
} else {
|
1360 |
-
trigger_error( str_replace( array( '%y', '%r', '%n' ), '', $message ), $type );
|
1361 |
-
}
|
1362 |
-
|
1363 |
-
//write working data
|
1364 |
-
$this->update_working_data( $error_or_warning );
|
1365 |
-
|
1366 |
-
//true for no more php error handling.
|
1367 |
-
return TRUE;
|
1368 |
-
}
|
1369 |
-
|
1370 |
-
/**
|
1371 |
-
*
|
1372 |
-
* Write the Working data to display the process or that i can executes again
|
1373 |
-
* The write will only done every second
|
1374 |
-
*
|
1375 |
-
* @global wpdb $wpdb
|
1376 |
-
*/
|
1377 |
-
public function update_working_data() {
|
1378 |
-
global $wpdb;
|
1379 |
-
/* @var wpdb $wpdb */
|
1380 |
-
|
1381 |
-
//to reduce server load
|
1382 |
-
if ( get_site_option( 'backwpup_cfg_jobwaittimems' ) > 0 && get_site_option( 'backwpup_cfg_jobwaittimems') <= 500000 ) {
|
1383 |
-
usleep( get_site_option( 'backwpup_cfg_jobwaittimems' ) );
|
1384 |
-
}
|
1385 |
-
|
1386 |
-
//check free memory
|
1387 |
-
$this->need_free_memory( '10M' );
|
1388 |
-
|
1389 |
-
//only run every 1 sec.
|
1390 |
-
$time_to_update = microtime( TRUE ) - $this->timestamp_last_update;
|
1391 |
-
if ( $time_to_update < 1 ) {
|
1392 |
-
return;
|
1393 |
-
}
|
1394 |
-
|
1395 |
-
//FCGI must have a permanent output so that it not broke
|
1396 |
-
if ( get_site_option( 'backwpup_cfg_jobdooutput' ) && ! defined( 'STDOUT' ) ) {
|
1397 |
-
echo str_repeat( ' ', 12 );
|
1398 |
-
flush();
|
1399 |
-
}
|
1400 |
-
|
1401 |
-
//set execution time again for 5 min
|
1402 |
-
@set_time_limit( 300 );
|
1403 |
-
|
1404 |
-
//check MySQL connection to WordPress Database and reconnect if needed
|
1405 |
-
$res = $wpdb->query( 'SELECT ' . time() );
|
1406 |
-
if ( $res === FALSE ) {
|
1407 |
-
$wpdb->db_connect();
|
1408 |
-
}
|
1409 |
-
|
1410 |
-
//calc sub step percent
|
1411 |
-
if ( $this->substeps_todo > 0 && $this->substeps_done > 0 ) {
|
1412 |
-
$this->substep_percent = round( $this->substeps_done / $this->substeps_todo * 100 );
|
1413 |
-
} else {
|
1414 |
-
$this->substep_percent = 1;
|
1415 |
-
}
|
1416 |
-
|
1417 |
-
//check if job aborted
|
1418 |
-
if ( ! file_exists( BackWPup::get_plugin_data( 'running_file' ) ) ) {
|
1419 |
-
if ( $this->step_working != 'END' ) {
|
1420 |
-
$this->end();
|
1421 |
-
}
|
1422 |
-
} else {
|
1423 |
-
$this->timestamp_last_update = microtime( TRUE ); //last update of working file
|
1424 |
-
$this->write_running_file();
|
1425 |
-
}
|
1426 |
-
}
|
1427 |
-
|
1428 |
-
public function write_running_file() {
|
1429 |
-
|
1430 |
-
$clone = clone $this;
|
1431 |
-
$data = '<?php //' . serialize( $clone );
|
1432 |
-
|
1433 |
-
$write = file_put_contents( BackWPup::get_plugin_data( 'running_file' ), $data );
|
1434 |
-
if ( !$write || $write < strlen( $data ) ) {
|
1435 |
-
unlink( BackWPup::get_plugin_data( 'running_file' ) );
|
1436 |
-
$this->log( __( 'Cannot write progress to working file. Job will be aborted.', 'backwpup' ), E_USER_ERROR );
|
1437 |
-
}
|
1438 |
-
}
|
1439 |
-
|
1440 |
-
/**
|
1441 |
-
*
|
1442 |
-
* Called on job stop makes cleanup and terminates the script
|
1443 |
-
*
|
1444 |
-
*/
|
1445 |
-
private function end() {
|
1446 |
-
|
1447 |
-
$this->step_working = 'END';
|
1448 |
-
$this->substeps_todo = 1;
|
1449 |
-
$abort = FALSE;
|
1450 |
-
|
1451 |
-
if ( ! file_exists( BackWPup::get_plugin_data( 'running_file' ) ) ) {
|
1452 |
-
if ( ! $this->user_abort )
|
1453 |
-
$abort = TRUE;
|
1454 |
-
$this->log( __( 'Aborted by user!', 'backwpup' ), E_USER_ERROR );
|
1455 |
-
}
|
1456 |
-
|
1457 |
-
//delete old logs
|
1458 |
-
if ( get_site_option( 'backwpup_cfg_maxlogs' ) ) {
|
1459 |
-
$log_file_list = array();
|
1460 |
-
$log_folder = trailingslashit( dirname( $this->logfile ) );
|
1461 |
-
if ( is_readable( $log_folder ) && $dir = opendir( $log_folder ) ) { //make file list
|
1462 |
-
while ( ( $file = readdir( $dir ) ) !== FALSE ) {
|
1463 |
-
if ( strpos( $file, 'backwpup_log_' ) == 0 && FALSE !== strpos( $file, '.html' ) )
|
1464 |
-
$log_file_list[ filemtime( $log_folder . $file ) ] = $file;
|
1465 |
-
}
|
1466 |
-
closedir( $dir );
|
1467 |
-
}
|
1468 |
-
if ( sizeof( $log_file_list ) > 0 ) {
|
1469 |
-
krsort( $log_file_list, SORT_NUMERIC );
|
1470 |
-
$num_delete_files = 0;
|
1471 |
-
$i = -1;
|
1472 |
-
foreach ( $log_file_list AS $log_file ) {
|
1473 |
-
$i ++;
|
1474 |
-
if ( $i < get_site_option( 'backwpup_cfg_maxlogs' ) ) {
|
1475 |
-
continue;
|
1476 |
-
}
|
1477 |
-
unlink( $log_folder . $log_file );
|
1478 |
-
$num_delete_files ++;
|
1479 |
-
}
|
1480 |
-
if ( $num_delete_files > 0 )
|
1481 |
-
$this->log( sprintf( _n( 'One old log deleted', '%d old logs deleted', $num_delete_files, 'backwpup' ), $num_delete_files ) );
|
1482 |
-
}
|
1483 |
-
}
|
1484 |
-
|
1485 |
-
//Display job working time
|
1486 |
-
if ( $this->errors > 0 )
|
1487 |
-
$this->log( sprintf( __( 'Job has ended with errors in %s seconds. You must resolve the errors for correct execution.', 'backwpup' ), current_time( 'timestamp' ) - $this->start_time ), E_USER_ERROR );
|
1488 |
-
elseif ( $this->warnings > 0 )
|
1489 |
-
$this->log( sprintf( __( 'Job finished with warnings in %s seconds. Please resolve them for correct execution.', 'backwpup' ), current_time( 'timestamp' ) - $this->start_time ), E_USER_WARNING );
|
1490 |
-
else
|
1491 |
-
$this->log( sprintf( __( 'Job done in %s seconds.', 'backwpup' ), current_time( 'timestamp' ) - $this->start_time, E_USER_NOTICE ) );
|
1492 |
-
|
1493 |
-
//Update job options
|
1494 |
-
if ( ! empty( $this->job[ 'jobid' ] ) ) {
|
1495 |
-
$this->job[ 'lastruntime' ] = current_time( 'timestamp' ) - $this->start_time;
|
1496 |
-
BackWPup_Option::update( $this->job[ 'jobid' ], 'lastruntime', $this->job[ 'lastruntime' ] );
|
1497 |
-
}
|
1498 |
-
|
1499 |
-
//write header info
|
1500 |
-
if ( ! empty( $this->logfile ) ) {
|
1501 |
-
|
1502 |
-
if ( $fd = fopen( $this->logfile, 'r+' ) ) {
|
1503 |
-
$filepos = ftell( $fd );
|
1504 |
-
$found = 0;
|
1505 |
-
while ( ! feof( $fd ) ) {
|
1506 |
-
$line = fgets( $fd );
|
1507 |
-
if ( stripos( $line, '<meta name="backwpup_jobruntime"' ) !== FALSE ) {
|
1508 |
-
fseek( $fd, $filepos );
|
1509 |
-
fwrite( $fd, str_pad( '<meta name="backwpup_jobruntime" content="' . $this->job[ 'lastruntime' ] . '" />', 100 ) . PHP_EOL );
|
1510 |
-
$found ++;
|
1511 |
-
}
|
1512 |
-
if ( stripos( $line, '<meta name="backwpup_backupfilesize"' ) !== FALSE ) {
|
1513 |
-
fseek( $fd, $filepos );
|
1514 |
-
fwrite( $fd, str_pad( '<meta name="backwpup_backupfilesize" content="' . $this->backup_filesize . '" />', 100 ) . PHP_EOL );
|
1515 |
-
$found ++;
|
1516 |
-
}
|
1517 |
-
if ( $found >= 2 ) {
|
1518 |
-
break;
|
1519 |
-
}
|
1520 |
-
$filepos = ftell( $fd );
|
1521 |
-
}
|
1522 |
-
fclose( $fd );
|
1523 |
-
}
|
1524 |
-
|
1525 |
-
//logfile end
|
1526 |
-
file_put_contents( $this->logfile, "</body>" . PHP_EOL . "</html>", FILE_APPEND );
|
1527 |
-
|
1528 |
-
//Send mail with log
|
1529 |
-
$sendmail = FALSE;
|
1530 |
-
if ( $this->errors > 0 && ! empty( $this->job[ 'mailerroronly' ] ) && ! empty( $this->job[ 'mailaddresslog' ] ) )
|
1531 |
-
$sendmail = TRUE;
|
1532 |
-
if ( empty( $this->job[ 'mailerroronly' ] ) && ! empty( $this->job[ 'mailaddresslog' ] ) )
|
1533 |
-
$sendmail = TRUE;
|
1534 |
-
if ( $sendmail ) {
|
1535 |
-
//special subject
|
1536 |
-
$status = __( 'SUCCESSFUL', 'backwpup' );
|
1537 |
-
$priority = 3; //Normal
|
1538 |
-
if ( $this->warnings > 0 ) {
|
1539 |
-
$status = __( 'WARNING', 'backwpup' );
|
1540 |
-
$priority = 2; //High
|
1541 |
-
}
|
1542 |
-
if ( $this->errors > 0 ) {
|
1543 |
-
$status = __( 'ERROR', 'backwpup' );
|
1544 |
-
$priority = 1; //Highest
|
1545 |
-
}
|
1546 |
-
|
1547 |
-
$subject = sprintf( __( '[%3$s] BackWPup log %1$s: %2$s', 'backwpup' ), date_i18n( 'd-M-Y H:i', $this->start_time, TRUE ), esc_attr( $this->job[ 'name' ] ), $status );
|
1548 |
-
$headers = array();
|
1549 |
-
$headers[] = 'Content-Type: text/html; charset='. get_bloginfo( 'charset' );
|
1550 |
-
/* $headers[] = 'X-Priority: ' . $priority; */ // Priority not working with header setting
|
1551 |
-
if ( ! empty( $this->job[ 'mailaddresssenderlog' ] ) ) {
|
1552 |
-
if ( FALSE === $start_mail = strpos( $this->job[ 'mailaddresssenderlog' ], '<' ) ) {
|
1553 |
-
if ( FALSE === strpos( $this->job[ 'mailaddresssenderlog' ], '@' ) ) {
|
1554 |
-
$this->job[ 'mailaddresssenderlog' ] = '"' . str_replace( array( '<','>','@' ), '', $this->job[ 'mailaddresssenderlog' ] ) . '" <' . get_bloginfo( 'admin_email' ). '>';
|
1555 |
-
}
|
1556 |
-
}
|
1557 |
-
elseif ( FALSE === strpos( $this->job[ 'mailaddresssenderlog' ], '>', $start_mail ) ) {
|
1558 |
-
$this->job[ 'mailaddresssenderlog' ] = '"' . str_replace( array( '<','>','@' ), '', substr( $this->job[ 'mailaddresssenderlog' ], 0, $start_mail ) ) . '" <' . get_bloginfo( 'admin_email' ). '>';
|
1559 |
-
}
|
1560 |
-
|
1561 |
-
$headers[] = 'From: ' . $this->job[ 'mailaddresssenderlog' ];
|
1562 |
-
}
|
1563 |
-
|
1564 |
-
wp_mail( $this->job[ 'mailaddresslog' ], $subject, file_get_contents( $this->logfile ), $headers );
|
1565 |
-
}
|
1566 |
-
}
|
1567 |
-
|
1568 |
-
//set done
|
1569 |
-
$this->substeps_done = 1;
|
1570 |
-
$this->steps_done[ ] = 'END';
|
1571 |
-
|
1572 |
-
//clean up temp
|
1573 |
-
self::clean_temp_folder();
|
1574 |
-
|
1575 |
-
//remove shutdown action
|
1576 |
-
remove_action( 'shutdown', array( $this, 'shutdown' ) );
|
1577 |
-
restore_exception_handler();
|
1578 |
-
restore_error_handler();
|
1579 |
-
if ( ! empty( $this->run[ 'PHP' ] ) ) {
|
1580 |
-
@ini_set( 'log_errors', $this->run[ 'PHP' ][ 'INI' ][ 'LOG_ERRORS' ] );
|
1581 |
-
@ini_set( 'error_log', $this->run[ 'PHP' ][ 'INI' ][ 'ERROR_LOG' ] );
|
1582 |
-
@ini_set( 'display_errors', $this->run[ 'PHP' ][ 'INI' ][ 'DISPLAY_ERRORS' ] );
|
1583 |
-
@ini_set( 'html_errors', $this->run[ 'PHP' ][ 'INI' ][ 'HTML_ERRORS' ] );
|
1584 |
-
@ini_set( 'zlib.output_compression', $this->run[ 'PHP' ][ 'INI' ][ 'ZLIB_OUTPUT_COMPRESSION' ] );
|
1585 |
-
@ini_set( 'implicit_flush', $this->run[ 'PHP' ][ 'INI' ][ 'IMPLICIT_FLUSH' ] );
|
1586 |
-
@ini_set( 'error_reporting', $this->run[ 'PHP' ][ 'INI' ][ 'ERROR_REPORTING' ] );
|
1587 |
-
@ini_set( 'report_memleaks', $this->run[ 'PHP' ][ 'INI' ][ 'REPORT_MEMLEAKS' ] );
|
1588 |
-
if ( !empty( $this->run[ 'PHP' ][ 'ENV' ][ 'TEMPDIR' ] ) ) {
|
1589 |
-
@putenv('TMPDIR=' . $this->run[ 'PHP' ][ 'ENV' ][ 'TEMPDIR' ] );
|
1590 |
-
}
|
1591 |
-
}
|
1592 |
-
|
1593 |
-
BackWPup_Cron::check_cleanup();
|
1594 |
-
|
1595 |
-
if ( $abort )
|
1596 |
-
exit();
|
1597 |
-
}
|
1598 |
-
|
1599 |
-
|
1600 |
-
public static function user_abort() {
|
1601 |
-
|
1602 |
-
/* @var $job_object BackWPup_Job */
|
1603 |
-
$job_object = BackWPup_Job::get_working_data();
|
1604 |
-
|
1605 |
-
unlink( BackWPup::get_plugin_data( 'running_file' ) );
|
1606 |
-
|
1607 |
-
//if job not working currently abort it this way for message
|
1608 |
-
$not_worked_time = microtime( TRUE ) - $job_object->timestamp_last_update;
|
1609 |
-
$restart_time = get_site_option( 'backwpup_cfg_jobmaxexecutiontime' );
|
1610 |
-
if ( empty( $restart_time ) )
|
1611 |
-
$restart_time = 60;
|
1612 |
-
if ( empty( $job_object->pid ) || $not_worked_time > $restart_time ) {
|
1613 |
-
$job_object->user_abort = TRUE;
|
1614 |
-
$job_object->update_working_data();
|
1615 |
-
}
|
1616 |
-
|
1617 |
-
}
|
1618 |
-
|
1619 |
-
/**
|
1620 |
-
*
|
1621 |
-
* Increase automatically the memory that is needed
|
1622 |
-
*
|
1623 |
-
* @param int|string $memneed of the needed memory
|
1624 |
-
*/
|
1625 |
-
public function need_free_memory( $memneed ) {
|
1626 |
-
|
1627 |
-
//need memory
|
1628 |
-
$needmemory = @memory_get_usage( TRUE ) + self::convert_hr_to_bytes( $memneed );
|
1629 |
-
// increase Memory
|
1630 |
-
if ( $needmemory > self::convert_hr_to_bytes( ini_get( 'memory_limit' ) ) ) {
|
1631 |
-
$newmemory = round( $needmemory / 1024 / 1024 ) + 1 . 'M';
|
1632 |
-
if ( $needmemory >= 1073741824 )
|
1633 |
-
$newmemory = round( $needmemory / 1024 / 1024 / 1024 ) . 'G';
|
1634 |
-
@ini_set( 'memory_limit', $newmemory );
|
1635 |
-
}
|
1636 |
-
}
|
1637 |
-
|
1638 |
-
|
1639 |
-
/**
|
1640 |
-
*
|
1641 |
-
* Converts hr to bytes
|
1642 |
-
*
|
1643 |
-
* @param $size
|
1644 |
-
* @return int
|
1645 |
-
*/
|
1646 |
-
public static function convert_hr_to_bytes( $size ) {
|
1647 |
-
$size = strtolower( $size );
|
1648 |
-
$bytes = (int) $size;
|
1649 |
-
if ( strpos( $size, 'k' ) !== FALSE )
|
1650 |
-
$bytes = intval( $size ) * 1024;
|
1651 |
-
elseif ( strpos( $size, 'm' ) !== FALSE )
|
1652 |
-
$bytes = intval($size) * 1024 * 1024;
|
1653 |
-
elseif ( strpos( $size, 'g' ) !== FALSE )
|
1654 |
-
$bytes = intval( $size ) * 1024 * 1024 * 1024;
|
1655 |
-
return $bytes;
|
1656 |
-
}
|
1657 |
-
|
1658 |
-
/**
|
1659 |
-
*
|
1660 |
-
* Callback for the CURLOPT_READFUNCTION that submit the transferred bytes
|
1661 |
-
* to build the process bar
|
1662 |
-
*
|
1663 |
-
* @param $curl_handle
|
1664 |
-
* @param $file_handle
|
1665 |
-
* @param $read_count
|
1666 |
-
* @return string
|
1667 |
-
* @internal param $out
|
1668 |
-
*/
|
1669 |
-
public function curl_read_callback( $curl_handle, $file_handle, $read_count ) {
|
1670 |
-
|
1671 |
-
$data = NULL;
|
1672 |
-
if ( ! empty( $file_handle ) && is_numeric( $read_count ) )
|
1673 |
-
$data = fread( $file_handle, $read_count );
|
1674 |
-
|
1675 |
-
if ( $this->job[ 'backuptype' ] == 'sync' )
|
1676 |
-
return $data;
|
1677 |
-
|
1678 |
-
$length = ( is_numeric( $read_count ) ) ? $read_count : strlen( $read_count );
|
1679 |
-
$this->substeps_done = $this->substeps_done + $length;
|
1680 |
-
$this->update_working_data();
|
1681 |
-
|
1682 |
-
return $data;
|
1683 |
-
}
|
1684 |
-
|
1685 |
-
|
1686 |
-
/**
|
1687 |
-
*
|
1688 |
-
* Get the mime type of a file
|
1689 |
-
*
|
1690 |
-
* @param string $file The full file name
|
1691 |
-
*
|
1692 |
-
* @return bool|string the mime type or false
|
1693 |
-
*/
|
1694 |
-
public static function get_mime_type( $file ) {
|
1695 |
-
|
1696 |
-
if ( is_dir( $file ) || is_link( $file ) ) {
|
1697 |
-
return 'application/octet-stream';
|
1698 |
-
}
|
1699 |
-
|
1700 |
-
$mime_types = array(
|
1701 |
-
'zip' => 'application/zip',
|
1702 |
-
'gz' => 'application/gzip',
|
1703 |
-
'bz2' => 'application/x-bzip',
|
1704 |
-
'tar' => 'application/x-tar',
|
1705 |
-
'3gp' => 'video/3gpp',
|
1706 |
-
'ai' => 'application/postscript',
|
1707 |
-
'aif' => 'audio/x-aiff',
|
1708 |
-
'aifc' => 'audio/x-aiff',
|
1709 |
-
'aiff' => 'audio/x-aiff',
|
1710 |
-
'asc' => 'text/plain',
|
1711 |
-
'atom' => 'application/atom+xml',
|
1712 |
-
'au' => 'audio/basic',
|
1713 |
-
'avi' => 'video/x-msvideo',
|
1714 |
-
'bcpio' => 'application/x-bcpio',
|
1715 |
-
'bin' => 'application/octet-stream',
|
1716 |
-
'bmp' => 'image/bmp',
|
1717 |
-
'cdf' => 'application/x-netcdf',
|
1718 |
-
'cgm' => 'image/cgm',
|
1719 |
-
'class' => 'application/octet-stream',
|
1720 |
-
'cpio' => 'application/x-cpio',
|
1721 |
-
'cpt' => 'application/mac-compactpro',
|
1722 |
-
'csh' => 'application/x-csh',
|
1723 |
-
'css' => 'text/css',
|
1724 |
-
'dcr' => 'application/x-director',
|
1725 |
-
'dif' => 'video/x-dv',
|
1726 |
-
'dir' => 'application/x-director',
|
1727 |
-
'djv' => 'image/vnd.djvu',
|
1728 |
-
'djvu' => 'image/vnd.djvu',
|
1729 |
-
'dll' => 'application/octet-stream',
|
1730 |
-
'dmg' => 'application/octet-stream',
|
1731 |
-
'dms' => 'application/octet-stream',
|
1732 |
-
'doc' => 'application/msword',
|
1733 |
-
'dtd' => 'application/xml-dtd',
|
1734 |
-
'dv' => 'video/x-dv',
|
1735 |
-
'dvi' => 'application/x-dvi',
|
1736 |
-
'dxr' => 'application/x-director',
|
1737 |
-
'eps' => 'application/postscript',
|
1738 |
-
'etx' => 'text/x-setext',
|
1739 |
-
'exe' => 'application/octet-stream',
|
1740 |
-
'ez' => 'application/andrew-inset',
|
1741 |
-
'flv' => 'video/x-flv',
|
1742 |
-
'gif' => 'image/gif',
|
1743 |
-
'gram' => 'application/srgs',
|
1744 |
-
'grxml' => 'application/srgs+xml',
|
1745 |
-
'gtar' => 'application/x-gtar',
|
1746 |
-
'hdf' => 'application/x-hdf',
|
1747 |
-
'hqx' => 'application/mac-binhex40',
|
1748 |
-
'htm' => 'text/html',
|
1749 |
-
'html' => 'text/html',
|
1750 |
-
'ice' => 'x-conference/x-cooltalk',
|
1751 |
-
'ico' => 'image/x-icon',
|
1752 |
-
'ics' => 'text/calendar',
|
1753 |
-
'ief' => 'image/ief',
|
1754 |
-
'ifb' => 'text/calendar',
|
1755 |
-
'iges' => 'model/iges',
|
1756 |
-
'igs' => 'model/iges',
|
1757 |
-
'jnlp' => 'application/x-java-jnlp-file',
|
1758 |
-
'jp2' => 'image/jp2',
|
1759 |
-
'jpe' => 'image/jpeg',
|
1760 |
-
'jpeg' => 'image/jpeg',
|
1761 |
-
'jpg' => 'image/jpeg',
|
1762 |
-
'js' => 'application/x-javascript',
|
1763 |
-
'kar' => 'audio/midi',
|
1764 |
-
'latex' => 'application/x-latex',
|
1765 |
-
'lha' => 'application/octet-stream',
|
1766 |
-
'lzh' => 'application/octet-stream',
|
1767 |
-
'm3u' => 'audio/x-mpegurl',
|
1768 |
-
'm4a' => 'audio/mp4a-latm',
|
1769 |
-
'm4p' => 'audio/mp4a-latm',
|
1770 |
-
'm4u' => 'video/vnd.mpegurl',
|
1771 |
-
'm4v' => 'video/x-m4v',
|
1772 |
-
'mac' => 'image/x-macpaint',
|
1773 |
-
'man' => 'application/x-troff-man',
|
1774 |
-
'mathml' => 'application/mathml+xml',
|
1775 |
-
'me' => 'application/x-troff-me',
|
1776 |
-
'mesh' => 'model/mesh',
|
1777 |
-
'mid' => 'audio/midi',
|
1778 |
-
'midi' => 'audio/midi',
|
1779 |
-
'mif' => 'application/vnd.mif',
|
1780 |
-
'mov' => 'video/quicktime',
|
1781 |
-
'movie' => 'video/x-sgi-movie',
|
1782 |
-
'mp2' => 'audio/mpeg',
|
1783 |
-
'mp3' => 'audio/mpeg',
|
1784 |
-
'mp4' => 'video/mp4',
|
1785 |
-
'mpe' => 'video/mpeg',
|
1786 |
-
'mpeg' => 'video/mpeg',
|
1787 |
-
'mpg' => 'video/mpeg',
|
1788 |
-
'mpga' => 'audio/mpeg',
|
1789 |
-
'ms' => 'application/x-troff-ms',
|
1790 |
-
'msh' => 'model/mesh',
|
1791 |
-
'mxu' => 'video/vnd.mpegurl',
|
1792 |
-
'nc' => 'application/x-netcdf',
|
1793 |
-
'oda' => 'application/oda',
|
1794 |
-
'ogg' => 'application/ogg',
|
1795 |
-
'ogv' => 'video/ogv',
|
1796 |
-
'pbm' => 'image/x-portable-bitmap',
|
1797 |
-
'pct' => 'image/pict',
|
1798 |
-
'pdb' => 'chemical/x-pdb',
|
1799 |
-
'pdf' => 'application/pdf',
|
1800 |
-
'pgm' => 'image/x-portable-graymap',
|
1801 |
-
'pgn' => 'application/x-chess-pgn',
|
1802 |
-
'pic' => 'image/pict',
|
1803 |
-
'pict' => 'image/pict',
|
1804 |
-
'png' => 'image/png',
|
1805 |
-
'pnm' => 'image/x-portable-anymap',
|
1806 |
-
'pnt' => 'image/x-macpaint',
|
1807 |
-
'pntg' => 'image/x-macpaint',
|
1808 |
-
'ppm' => 'image/x-portable-pixmap',
|
1809 |
-
'ppt' => 'application/vnd.ms-powerpoint',
|
1810 |
-
'ps' => 'application/postscript',
|
1811 |
-
'qt' => 'video/quicktime',
|
1812 |
-
'qti' => 'image/x-quicktime',
|
1813 |
-
'qtif' => 'image/x-quicktime',
|
1814 |
-
'ra' => 'audio/x-pn-realaudio',
|
1815 |
-
'ram' => 'audio/x-pn-realaudio',
|
1816 |
-
'ras' => 'image/x-cmu-raster',
|
1817 |
-
'rdf' => 'application/rdf+xml',
|
1818 |
-
'rgb' => 'image/x-rgb',
|
1819 |
-
'rm' => 'application/vnd.rn-realmedia',
|
1820 |
-
'roff' => 'application/x-troff',
|
1821 |
-
'rtf' => 'text/rtf',
|
1822 |
-
'rtx' => 'text/richtext',
|
1823 |
-
'sgm' => 'text/sgml',
|
1824 |
-
'sgml' => 'text/sgml',
|
1825 |
-
'sh' => 'application/x-sh',
|
1826 |
-
'shar' => 'application/x-shar',
|
1827 |
-
'silo' => 'model/mesh',
|
1828 |
-
'sit' => 'application/x-stuffit',
|
1829 |
-
'skd' => 'application/x-koan',
|
1830 |
-
'skm' => 'application/x-koan',
|
1831 |
-
'skp' => 'application/x-koan',
|
1832 |
-
'skt' => 'application/x-koan',
|
1833 |
-
'smi' => 'application/smil',
|
1834 |
-
'smil' => 'application/smil',
|
1835 |
-
'snd' => 'audio/basic',
|
1836 |
-
'so' => 'application/octet-stream',
|
1837 |
-
'spl' => 'application/x-futuresplash',
|
1838 |
-
'src' => 'application/x-wais-source',
|
1839 |
-
'sv4cpio' => 'application/x-sv4cpio',
|
1840 |
-
'sv4crc' => 'application/x-sv4crc',
|
1841 |
-
'svg' => 'image/svg+xml',
|
1842 |
-
'swf' => 'application/x-shockwave-flash',
|
1843 |
-
't' => 'application/x-troff',
|
1844 |
-
'tcl' => 'application/x-tcl',
|
1845 |
-
'tex' => 'application/x-tex',
|
1846 |
-
'texi' => 'application/x-texinfo',
|
1847 |
-
'texinfo' => 'application/x-texinfo',
|
1848 |
-
'tif' => 'image/tiff',
|
1849 |
-
'tiff' => 'image/tiff',
|
1850 |
-
'tr' => 'application/x-troff',
|
1851 |
-
'tsv' => 'text/tab-separated-values',
|
1852 |
-
'txt' => 'text/plain',
|
1853 |
-
'ustar' => 'application/x-ustar',
|
1854 |
-
'vcd' => 'application/x-cdlink',
|
1855 |
-
'vrml' => 'model/vrml',
|
1856 |
-
'vxml' => 'application/voicexml+xml',
|
1857 |
-
'wav' => 'audio/x-wav',
|
1858 |
-
'wbmp' => 'image/vnd.wap.wbmp',
|
1859 |
-
'wbxml' => 'application/vnd.wap.wbxml',
|
1860 |
-
'webm' => 'video/webm',
|
1861 |
-
'wml' => 'text/vnd.wap.wml',
|
1862 |
-
'wmlc' => 'application/vnd.wap.wmlc',
|
1863 |
-
'wmls' => 'text/vnd.wap.wmlscript',
|
1864 |
-
'wmlsc' => 'application/vnd.wap.wmlscriptc',
|
1865 |
-
'wmv' => 'video/x-ms-wmv',
|
1866 |
-
'wrl' => 'model/vrml',
|
1867 |
-
'xbm' => 'image/x-xbitmap',
|
1868 |
-
'xht' => 'application/xhtml+xml',
|
1869 |
-
'xhtml' => 'application/xhtml+xml',
|
1870 |
-
'xls' => 'application/vnd.ms-excel',
|
1871 |
-
'xml' => 'application/xml',
|
1872 |
-
'xpm' => 'image/x-xpixmap',
|
1873 |
-
'xsl' => 'application/xml',
|
1874 |
-
'xslt' => 'application/xslt+xml',
|
1875 |
-
'xul' => 'application/vnd.mozilla.xul+xml',
|
1876 |
-
'xwd' => 'image/x-xwindowdump',
|
1877 |
-
'xyz' => 'chemical/x-xyz',
|
1878 |
-
);
|
1879 |
-
|
1880 |
-
$filesuffix = pathinfo( $file, PATHINFO_EXTENSION );
|
1881 |
-
$suffix = strtolower( $filesuffix );
|
1882 |
-
if ( isset( $mime_types[ $suffix ] ) ) {
|
1883 |
-
return $mime_types[ $suffix ];
|
1884 |
-
}
|
1885 |
-
|
1886 |
-
if ( ! is_readable( $file ) ) {
|
1887 |
-
return 'application/octet-stream';
|
1888 |
-
}
|
1889 |
-
|
1890 |
-
if ( function_exists( 'fileinfo' ) ) {
|
1891 |
-
$finfo = finfo_open( FILEINFO_MIME_TYPE );
|
1892 |
-
$mime = finfo_file( $finfo, $file );
|
1893 |
-
}
|
1894 |
-
|
1895 |
-
if ( empty( $mime ) && function_exists( 'mime_content_type' ) ) {
|
1896 |
-
$mime = mime_content_type( $file );
|
1897 |
-
}
|
1898 |
-
|
1899 |
-
if ( ! empty( $mime ) ) {
|
1900 |
-
return $mime;
|
1901 |
-
}
|
1902 |
-
|
1903 |
-
return 'application/octet-stream';
|
1904 |
-
}
|
1905 |
-
|
1906 |
-
|
1907 |
-
/**
|
1908 |
-
*
|
1909 |
-
* Gifs back a array of files to backup in the selected folder
|
1910 |
-
*
|
1911 |
-
* @param string $folder the folder to get the files from
|
1912 |
-
*
|
1913 |
-
* @return array files to backup
|
1914 |
-
*/
|
1915 |
-
public function get_files_in_folder( $folder ) {
|
1916 |
-
|
1917 |
-
$files = array();
|
1918 |
-
$folder = trailingslashit( $folder );
|
1919 |
-
|
1920 |
-
if ( ! is_dir( $folder ) ) {
|
1921 |
-
$this->log( sprintf( _x( 'Folder %s not exists', 'Folder name', 'backwpup' ), $folder ), E_USER_WARNING );
|
1922 |
-
return $files;
|
1923 |
-
}
|
1924 |
-
|
1925 |
-
if ( ! is_readable( $folder ) ) {
|
1926 |
-
$this->log( sprintf( _x( 'Folder %s not readable', 'Folder name', 'backwpup' ), $folder ), E_USER_WARNING );
|
1927 |
-
return $files;
|
1928 |
-
}
|
1929 |
-
|
1930 |
-
if ( $dir = opendir( $folder ) ) {
|
1931 |
-
while ( FALSE !== ( $file = readdir( $dir ) ) ) {
|
1932 |
-
if ( in_array( $file, array( '.', '..' ) ) || is_dir( $folder . $file ) ) {
|
1933 |
-
continue;
|
1934 |
-
}
|
1935 |
-
foreach ( $this->exclude_from_backup as $exclusion ) { //exclude files
|
1936 |
-
$exclusion = trim( $exclusion );
|
1937 |
-
if ( FALSE !== stripos( $folder . $file, trim( $exclusion ) ) && ! empty( $exclusion ) ) {
|
1938 |
-
continue 2;
|
1939 |
-
}
|
1940 |
-
}
|
1941 |
-
if ( $this->job[ 'backupexcludethumbs' ] && strpos( $folder, BackWPup_File::get_upload_dir() ) !== FALSE && preg_match( "/\-[0-9]{1,4}x[0-9]{1,4}.+\.(jpg|png|gif)$/i", $file ) ) {
|
1942 |
-
continue;
|
1943 |
-
}
|
1944 |
-
if ( is_link( $folder . $file ) ) {
|
1945 |
-
$this->log( sprintf( __( 'Link "%s" not following.', 'backwpup' ), $folder . $file ), E_USER_WARNING );
|
1946 |
-
} elseif ( ! is_readable( $folder . $file ) ) {
|
1947 |
-
$this->log( sprintf( __( 'File "%s" is not readable!', 'backwpup' ), $folder . $file ), E_USER_WARNING );
|
1948 |
-
} else {
|
1949 |
-
$file_size = filesize( $folder . $file );
|
1950 |
-
if ( ! is_int( $file_size ) || $file_size < 0 || $file_size > 2147483647 ) {
|
1951 |
-
$this->log( sprintf( __( 'File size of “%s” cannot be retrieved. File might be too large and will not be added to queue.', 'backwpup' ), $folder . $file . ' ' . $file_size ), E_USER_WARNING );
|
1952 |
-
continue;
|
1953 |
-
}
|
1954 |
-
$files[] = $folder . $file;
|
1955 |
-
}
|
1956 |
-
}
|
1957 |
-
closedir( $dir );
|
1958 |
-
}
|
1959 |
-
|
1960 |
-
return $files;
|
1961 |
-
}
|
1962 |
-
|
1963 |
-
/**
|
1964 |
-
* create manifest file
|
1965 |
-
* @return bool
|
1966 |
-
*/
|
1967 |
-
public function create_manifest( ) {
|
1968 |
-
|
1969 |
-
$this->substeps_todo = 3;
|
1970 |
-
|
1971 |
-
$this->log( sprintf( __( '%d. Trying to generate a manifest file …', 'backwpup' ), $this->steps_data[ $this->step_working ][ 'STEP_TRY' ] ) );
|
1972 |
-
|
1973 |
-
//build manifest
|
1974 |
-
$manifest = array();
|
1975 |
-
// add blog information
|
1976 |
-
$manifest[ 'blog_info' ][ 'url' ] = home_url();
|
1977 |
-
$manifest[ 'blog_info' ][ 'wpurl' ] = site_url();
|
1978 |
-
$manifest[ 'blog_info' ][ 'prefix' ] = $GLOBALS[ 'wpdb' ]->prefix;
|
1979 |
-
$manifest[ 'blog_info' ][ 'description' ] = get_option('blogdescription');
|
1980 |
-
$manifest[ 'blog_info' ][ 'stylesheet_directory' ] = get_template_directory_uri();
|
1981 |
-
$manifest[ 'blog_info' ][ 'activate_plugins' ] = wp_get_active_and_valid_plugins();
|
1982 |
-
$manifest[ 'blog_info' ][ 'activate_theme' ] = wp_get_theme()->get('Name');
|
1983 |
-
$manifest[ 'blog_info' ][ 'admin_email' ] = get_option('admin_email');
|
1984 |
-
$manifest[ 'blog_info' ][ 'charset' ] = get_bloginfo( 'charset' );
|
1985 |
-
$manifest[ 'blog_info' ][ 'version' ] = BackWPup::get_plugin_data( 'wp_version' );
|
1986 |
-
$manifest[ 'blog_info' ][ 'backwpup_version' ] = BackWPup::get_plugin_data( 'version' );
|
1987 |
-
$manifest[ 'blog_info' ][ 'language' ] = get_bloginfo( 'language' );
|
1988 |
-
$manifest[ 'blog_info' ][ 'name' ] = get_bloginfo( 'name' );
|
1989 |
-
$manifest[ 'blog_info' ][ 'abspath' ] = ABSPATH;
|
1990 |
-
$manifest[ 'blog_info' ][ 'uploads' ] = wp_upload_dir();
|
1991 |
-
$manifest[ 'blog_info' ][ 'contents' ][ 'basedir' ] = WP_CONTENT_DIR;
|
1992 |
-
$manifest[ 'blog_info' ][ 'contents' ][ 'baseurl' ] = WP_CONTENT_URL;
|
1993 |
-
$manifest[ 'blog_info' ][ 'plugins' ][ 'basedir' ] = WP_PLUGIN_DIR;
|
1994 |
-
$manifest[ 'blog_info' ][ 'plugins' ][ 'baseurl' ] = WP_PLUGIN_URL;
|
1995 |
-
$manifest[ 'blog_info' ][ 'themes' ][ 'basedir' ] = get_theme_root();
|
1996 |
-
$manifest[ 'blog_info' ][ 'themes' ][ 'baseurl' ] = get_theme_root_uri();
|
1997 |
-
// add job settings
|
1998 |
-
$manifest[ 'job_settings' ] = $this->job;
|
1999 |
-
// add archive info
|
2000 |
-
foreach( $this->additional_files_to_backup as $file ) {
|
2001 |
-
$manifest[ 'archive' ][ 'extra_files' ][] = basename( $file );
|
2002 |
-
}
|
2003 |
-
if ( isset( $this->steps_data[ 'JOB_FILE' ] ) ) {
|
2004 |
-
if ( $this->job[ 'backuproot'] )
|
2005 |
-
$manifest[ 'archive' ][ 'abspath' ] = trailingslashit( $this->get_destination_path_replacement( ABSPATH ) );
|
2006 |
-
if ( $this->job[ 'backupuploads'] )
|
2007 |
-
$manifest[ 'archive' ][ 'uploads' ] = trailingslashit( $this->get_destination_path_replacement( BackWPup_File::get_upload_dir() ) );
|
2008 |
-
if ( $this->job[ 'backupcontent'] )
|
2009 |
-
$manifest[ 'archive' ][ 'contents' ] = trailingslashit( $this->get_destination_path_replacement( WP_CONTENT_DIR ) );
|
2010 |
-
if ( $this->job[ 'backupplugins'])
|
2011 |
-
$manifest[ 'archive' ][ 'plugins' ] = trailingslashit( $this->get_destination_path_replacement( WP_PLUGIN_DIR ) );
|
2012 |
-
if ( $this->job[ 'backupthemes'] )
|
2013 |
-
$manifest[ 'archive' ][ 'themes' ] = trailingslashit( $this->get_destination_path_replacement( get_theme_root() ) );
|
2014 |
-
}
|
2015 |
-
|
2016 |
-
if ( ! file_put_contents( BackWPup::get_plugin_data( 'TEMP' ) . 'manifest.json', json_encode( $manifest ) ) )
|
2017 |
-
return FALSE;
|
2018 |
-
$this->substeps_done = 1;
|
2019 |
-
|
2020 |
-
//Create backwpup_readme.txt
|
2021 |
-
$readme_text = __( 'You may have noticed the manifest.json file in this archive.', 'backwpup' ) . PHP_EOL;
|
2022 |
-
$readme_text .= __( 'manifest.json might be needed for later restoring a backup from this archive.', 'backwpup' ) . PHP_EOL;
|
2023 |
-
$readme_text .= __( 'Please leave manifest.json untouched and in place. Otherwise it is safe to be ignored.', 'backwpup' ) . PHP_EOL;
|
2024 |
-
if ( ! file_put_contents( BackWPup::get_plugin_data( 'TEMP' ) . 'backwpup_readme.txt', $readme_text ) ) {
|
2025 |
-
return FALSE;
|
2026 |
-
}
|
2027 |
-
$this->substeps_done = 2;
|
2028 |
-
|
2029 |
-
//add file to backup files
|
2030 |
-
if ( is_readable( BackWPup::get_plugin_data( 'TEMP' ) . 'manifest.json' ) ) {
|
2031 |
-
$this->additional_files_to_backup[ ] = BackWPup::get_plugin_data( 'TEMP' ) . 'manifest.json';
|
2032 |
-
$this->additional_files_to_backup[ ] = BackWPup::get_plugin_data( 'TEMP' ) . 'backwpup_readme.txt';
|
2033 |
-
$this->log( sprintf( __( 'Added manifest.json file with %1$s to backup file list.', 'backwpup' ), size_format( filesize( BackWPup::get_plugin_data( 'TEMP' ) . 'manifest.json' ), 2 ) ) );
|
2034 |
-
}
|
2035 |
-
$this->substeps_done = 3;
|
2036 |
-
|
2037 |
-
return TRUE;
|
2038 |
-
}
|
2039 |
-
|
2040 |
-
/**
|
2041 |
-
* Creates the backup archive
|
2042 |
-
*/
|
2043 |
-
private function create_archive() {
|
2044 |
-
|
2045 |
-
//load folders to backup
|
2046 |
-
$folders_to_backup = $this->get_folders_to_backup();
|
2047 |
-
|
2048 |
-
$this->substeps_todo = $this->count_folder + 1;
|
2049 |
-
|
2050 |
-
//initial settings for restarts in archiving
|
2051 |
-
if ( ! isset( $this->steps_data[ $this->step_working ]['on_file'] ) ) {
|
2052 |
-
$this->steps_data[ $this->step_working ]['on_file'] = '';
|
2053 |
-
}
|
2054 |
-
if ( ! isset( $this->steps_data[ $this->step_working ]['on_folder'] ) ) {
|
2055 |
-
$this->steps_data[ $this->step_working ]['on_folder'] = '';
|
2056 |
-
}
|
2057 |
-
|
2058 |
-
if ( $this->steps_data[ $this->step_working ][ 'on_folder' ] == '' && $this->steps_data[ $this->step_working ][ 'on_file' ] == '' && is_file( $this->backup_folder . $this->backup_file ) ) {
|
2059 |
-
unlink( $this->backup_folder . $this->backup_file );
|
2060 |
-
}
|
2061 |
-
|
2062 |
-
if ( $this->steps_data[ $this->step_working ]['SAVE_STEP_TRY'] != $this->steps_data[ $this->step_working ][ 'STEP_TRY' ] )
|
2063 |
-
$this->log( sprintf( __( '%d. Trying to create backup archive …', 'backwpup' ), $this->steps_data[ $this->step_working ][ 'STEP_TRY' ] ), E_USER_NOTICE );
|
2064 |
-
|
2065 |
-
try {
|
2066 |
-
$backup_archive = new BackWPup_Create_Archive( $this->backup_folder . $this->backup_file );
|
2067 |
-
|
2068 |
-
//show method for creation
|
2069 |
-
if ( $this->substeps_done == 0 ) {
|
2070 |
-
$this->log( sprintf( _x( 'Compressing files as %s. Please be patient, this may take a moment.', 'Archive compression method', 'backwpup'), $backup_archive->get_method() ) );
|
2071 |
-
}
|
2072 |
-
|
2073 |
-
//add extra files
|
2074 |
-
if ( $this->substeps_done == 0 ) {
|
2075 |
-
if ( ! empty( $this->additional_files_to_backup ) && $this->substeps_done == 0 ) {
|
2076 |
-
if ( $this->is_debug() ) {
|
2077 |
-
$this->log( __( 'Adding Extra files to Archive', 'backwpup' ) );
|
2078 |
-
}
|
2079 |
-
foreach ( $this->additional_files_to_backup as $file ) {
|
2080 |
-
if ( $backup_archive->add_file( $file, basename( $file ) ) ) {;
|
2081 |
-
$this->count_files ++;
|
2082 |
-
$this->count_files_size = $this->count_files_size + filesize( $file );
|
2083 |
-
$this->update_working_data();
|
2084 |
-
} else {
|
2085 |
-
$backup_archive->close();
|
2086 |
-
$this->steps_data[ $this->step_working ][ 'on_file' ] = '';
|
2087 |
-
$this->steps_data[ $this->step_working ][ 'on_folder' ] = '';
|
2088 |
-
$this->log( __( 'Cannot create backup archive correctly. Aborting creation.', 'backwpup' ), E_USER_ERROR );
|
2089 |
-
return FALSE;
|
2090 |
-
}
|
2091 |
-
}
|
2092 |
-
}
|
2093 |
-
$this->substeps_done ++;
|
2094 |
-
}
|
2095 |
-
|
2096 |
-
//add normal files
|
2097 |
-
while ( $folder = array_shift( $folders_to_backup ) ) {
|
2098 |
-
//jump over already done folders
|
2099 |
-
if ( in_array( $this->steps_data[ $this->step_working ]['on_folder'], $folders_to_backup ) ) {
|
2100 |
-
continue;
|
2101 |
-
}
|
2102 |
-
if ( $this->is_debug() ) {
|
2103 |
-
$this->log( sprintf( __( 'Archiving Folder: %s', 'backwpup' ), $folder ) );
|
2104 |
-
}
|
2105 |
-
$this->steps_data[ $this->step_working ]['on_folder'] = $folder;
|
2106 |
-
$files_in_folder = $this->get_files_in_folder( $folder );
|
2107 |
-
//add empty folders
|
2108 |
-
if ( empty( $files_in_folder ) ) {
|
2109 |
-
$folder_name_in_archive = trim( ltrim( $this->get_destination_path_replacement( $folder ), '/' ) );
|
2110 |
-
if ( ! empty ( $folder_name_in_archive ) ) {
|
2111 |
-
$backup_archive->add_empty_folder( $folder, $folder_name_in_archive );
|
2112 |
-
}
|
2113 |
-
continue;
|
2114 |
-
}
|
2115 |
-
//add files
|
2116 |
-
while ( $file = array_shift( $files_in_folder ) ) {
|
2117 |
-
//jump over already done files
|
2118 |
-
if ( in_array( $this->steps_data[ $this->step_working ]['on_file'], $files_in_folder ) ) {
|
2119 |
-
continue;
|
2120 |
-
}
|
2121 |
-
$this->steps_data[ $this->step_working ]['on_file'] = $file;
|
2122 |
-
//restart if needed
|
2123 |
-
$restart_time = $this->get_restart_time();
|
2124 |
-
if ( $restart_time <= 0 ) {
|
2125 |
-
unset( $backup_archive );
|
2126 |
-
$this->do_restart_time( TRUE );
|
2127 |
-
return FALSE;
|
2128 |
-
}
|
2129 |
-
//generate filename in archive
|
2130 |
-
$in_archive_filename = ltrim( $this->get_destination_path_replacement( $file ), '/' );
|
2131 |
-
//add file to archive
|
2132 |
-
if ( $backup_archive->add_file( $file, $in_archive_filename ) ) {
|
2133 |
-
$this->count_files ++;
|
2134 |
-
$this->count_files_size = $this->count_files_size + filesize( $file );
|
2135 |
-
$this->update_working_data();
|
2136 |
-
} else {
|
2137 |
-
$backup_archive->close();
|
2138 |
-
unset( $backup_archive );
|
2139 |
-
$this->steps_data[ $this->step_working ][ 'on_file' ] = '';
|
2140 |
-
$this->steps_data[ $this->step_working ][ 'on_folder' ] = '';
|
2141 |
-
$this->substeps_done = 0;
|
2142 |
-
$this->backup_filesize = filesize( $this->backup_folder . $this->backup_file );
|
2143 |
-
if ( $this->backup_filesize === FALSE ) {
|
2144 |
-
$this->backup_filesize = PHP_INT_MAX;
|
2145 |
-
}
|
2146 |
-
$this->log( __( 'Cannot create backup archive correctly. Aborting creation.', 'backwpup' ), E_USER_ERROR );
|
2147 |
-
return FALSE;
|
2148 |
-
}
|
2149 |
-
}
|
2150 |
-
$this->steps_data[ $this->step_working ]['on_file'] = '';
|
2151 |
-
$this->substeps_done ++;
|
2152 |
-
}
|
2153 |
-
$backup_archive->close();
|
2154 |
-
unset( $backup_archive );
|
2155 |
-
$this->log( __( 'Backup archive created.', 'backwpup' ), E_USER_NOTICE );
|
2156 |
-
} catch ( Exception $e ) {
|
2157 |
-
$this->log( $e->getMessage(), E_USER_ERROR, $e->getFile(), $e->getLine() );
|
2158 |
-
unset( $backup_archive );
|
2159 |
-
return FALSE;
|
2160 |
-
}
|
2161 |
-
|
2162 |
-
$this->backup_filesize = filesize( $this->backup_folder . $this->backup_file );
|
2163 |
-
if ( $this->backup_filesize === FALSE ) {
|
2164 |
-
$this->backup_filesize = PHP_INT_MAX;
|
2165 |
-
}
|
2166 |
-
|
2167 |
-
if ( $this->backup_filesize >= PHP_INT_MAX ) {
|
2168 |
-
$this->log( __( 'The Backup archive will be too large for file operations with this PHP Version. You might want to consider splitting the backup job in multiple jobs with less files each.', 'backwpup' ), E_USER_ERROR );
|
2169 |
-
$this->end();
|
2170 |
-
}
|
2171 |
-
else {
|
2172 |
-
$this->log( sprintf( __( 'Archive size is %s.', 'backwpup' ), size_format( $this->backup_filesize, 2 ) ), E_USER_NOTICE );
|
2173 |
-
}
|
2174 |
-
|
2175 |
-
$this->log( sprintf( __( '%1$d Files with %2$s in Archive.', 'backwpup' ), $this->count_files, size_format( $this->count_files_size, 2 ) ), E_USER_NOTICE );
|
2176 |
-
|
2177 |
-
return TRUE;
|
2178 |
-
}
|
2179 |
-
|
2180 |
-
/**
|
2181 |
-
* @param $name
|
2182 |
-
* @param string $suffix
|
2183 |
-
* @param bool $delete_temp_file
|
2184 |
-
* @return string
|
2185 |
-
*/
|
2186 |
-
public function generate_filename( $name, $suffix = '', $delete_temp_file = TRUE ) {
|
2187 |
-
|
2188 |
-
$local_time = current_time( 'timestamp' );
|
2189 |
-
|
2190 |
-
$datevars = array( '%d', '%j', '%m', '%n', '%Y', '%y', '%a', '%A', '%B', '%g', '%G', '%h', '%H', '%i', '%s' );
|
2191 |
-
$datevalues = array( date( 'd', $local_time ), date( 'j', $local_time ), date( 'm', $local_time ), date( 'n', $local_time ), date( 'Y', $local_time ), date( 'y', $local_time ), date( 'a', $local_time ), date( 'A', $local_time ), date( 'B', $local_time ), date( 'g', $local_time ), date( 'G', $local_time ), date( 'h', $local_time ), date( 'H', $local_time ), date( 'i', $local_time ), date( 's', $local_time ) );
|
2192 |
-
|
2193 |
-
if ( ! empty( $suffix ) && substr( $suffix, 0, 1 ) != '.' ) {
|
2194 |
-
$suffix = '.' . $suffix;
|
2195 |
-
}
|
2196 |
-
|
2197 |
-
$name = str_replace( $datevars, $datevalues, self::sanitize_file_name( $name ) );
|
2198 |
-
$name .= $suffix;
|
2199 |
-
if ( $delete_temp_file && is_writeable( BackWPup::get_plugin_data( 'TEMP' ) . $name ) && !is_dir( BackWPup::get_plugin_data( 'TEMP' ) . $name ) && !is_link( BackWPup::get_plugin_data( 'TEMP' ) . $name ) ) {
|
2200 |
-
unlink( BackWPup::get_plugin_data( 'TEMP' ) . $name );
|
2201 |
-
}
|
2202 |
-
|
2203 |
-
return $name;
|
2204 |
-
}
|
2205 |
-
|
2206 |
-
/**
|
2207 |
-
* @param $filename
|
2208 |
-
* @return bool
|
2209 |
-
*/
|
2210 |
-
public function is_backup_archive( $filename ) {
|
2211 |
-
|
2212 |
-
$filename = basename( $filename );
|
2213 |
-
|
2214 |
-
if ( ! substr( $filename, -3 ) == '.gz' || ! substr( $filename, -4 ) == '.bz2' || ! substr( $filename, -4 ) == '.tar' || ! substr( $filename, -4 ) == '.zip' )
|
2215 |
-
return FALSE;
|
2216 |
-
|
2217 |
-
$filename = str_replace( array( '.gz', '.bz2', '.tar', '.zip' ), '', $filename );
|
2218 |
-
|
2219 |
-
$datevars = array( '%d', '%j', '%m', '%n', '%Y', '%y', '%a', '%A', '%B', '%g', '%G', '%h', '%H', '%i', '%s' );
|
2220 |
-
$dateregex = array( '(0[1-9]|[12][0-9]|3[01])', '([1-9]|[12][0-9]|3[01])', '(0[1-9]|1[012])', '([1-9]|1[012])', '((19|20|21)[0-9]{2})', '([0-9]{2})', '(am|pm)', '(AM|PM)', '([0-9]{3})', '([1-9]|1[012])', '([0-9]|1[0-9]|2[0-3])', '(0[1-9]|1[012])', '(0[0-9]|1[0-9]|2[0-3])', '([0-5][0-9])', '([0-5][0-9])' );
|
2221 |
-
|
2222 |
-
$regex = "/^" . str_replace( $datevars, $dateregex, self::sanitize_file_name( $this->job[ 'archivename' ] ) ) . "$/";
|
2223 |
-
|
2224 |
-
preg_match( $regex, $filename, $matches );
|
2225 |
-
if ( ! empty( $matches[ 0 ] ) && $matches[ 0 ] == $filename )
|
2226 |
-
return TRUE;
|
2227 |
-
|
2228 |
-
return FALSE;
|
2229 |
-
}
|
2230 |
-
|
2231 |
-
/**
|
2232 |
-
* Sanitizes a filename, replacing whitespace with underscores.
|
2233 |
-
*
|
2234 |
-
* @param $filename
|
2235 |
-
*
|
2236 |
-
* @return mixed
|
2237 |
-
*/
|
2238 |
-
public static function sanitize_file_name( $filename ) {
|
2239 |
-
|
2240 |
-
$filename = trim( $filename );
|
2241 |
-
|
2242 |
-
$special_chars = array( "?", "[", "]", "/", "\\", "=", "<", ">", ":", ";", ",", "'", "\"", "&", "$", "#", "*", "(", ")", "|", "~", "`", "!", "{", "}", chr(0) );
|
2243 |
-
|
2244 |
-
$filename = str_replace( $special_chars, '', $filename );
|
2245 |
-
|
2246 |
-
$filename = str_replace( array( ' ', '%20', '+' ), '_', $filename );
|
2247 |
-
$filename = str_replace( array( "\n", "\t", "\r" ), '-', $filename );
|
2248 |
-
$filename = trim( $filename, '.-_' );
|
2249 |
-
|
2250 |
-
return $filename;
|
2251 |
-
}
|
2252 |
-
|
2253 |
-
/**
|
2254 |
-
* Get the Process id of working script
|
2255 |
-
*
|
2256 |
-
* @return int
|
2257 |
-
*/
|
2258 |
-
private static function get_pid( ) {
|
2259 |
-
|
2260 |
-
if ( function_exists( 'posix_getpid' ) ) {
|
2261 |
-
|
2262 |
-
return posix_getpid();
|
2263 |
-
} elseif ( function_exists( 'getmypid' ) ) {
|
2264 |
-
|
2265 |
-
return getmypid();
|
2266 |
-
}
|
2267 |
-
|
2268 |
-
return -1;
|
2269 |
-
}
|
2270 |
-
|
2271 |
-
/**
|
2272 |
-
* For storing and getting data in/from a extra temp file
|
2273 |
-
*
|
2274 |
-
* @param string $storage The name of the storage
|
2275 |
-
* @param array $data data to save in storage
|
2276 |
-
* @return array|mixed|null data from storage
|
2277 |
-
*/
|
2278 |
-
public function data_storage( $storage = NULL, $data = NULL ) {
|
2279 |
-
|
2280 |
-
if ( empty( $storage ) )
|
2281 |
-
return $data;
|
2282 |
-
|
2283 |
-
$storage = strtolower( $storage );
|
2284 |
-
|
2285 |
-
$file = BackWPup::get_plugin_data( 'temp' ) . 'backwpup-' . BackWPup::get_plugin_data( 'hash' ) . '-' . $storage . '.json';
|
2286 |
-
|
2287 |
-
if ( ! empty( $data ) ) {
|
2288 |
-
file_put_contents( $file, json_encode( $data ) );
|
2289 |
-
}
|
2290 |
-
elseif ( is_readable( $file ) ) {
|
2291 |
-
$json = file_get_contents( $file );
|
2292 |
-
$data = json_decode( $json, TRUE );
|
2293 |
-
}
|
2294 |
-
|
2295 |
-
return $data;
|
2296 |
-
}
|
2297 |
-
|
2298 |
-
/**
|
2299 |
-
* Get list of Folder for backup
|
2300 |
-
*
|
2301 |
-
* @return array folder list
|
2302 |
-
*/
|
2303 |
-
public function get_folders_to_backup( ) {
|
2304 |
-
|
2305 |
-
$file = BackWPup::get_plugin_data( 'temp' ) . 'backwpup-' . BackWPup::get_plugin_data( 'hash' ) . '-folder.php';
|
2306 |
-
|
2307 |
-
if ( ! file_exists( $file ) ) {
|
2308 |
-
return array();
|
2309 |
-
}
|
2310 |
-
|
2311 |
-
$folders = array();
|
2312 |
-
|
2313 |
-
$file_data = file( $file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES );
|
2314 |
-
|
2315 |
-
foreach( $file_data as $folder ) {
|
2316 |
-
$folder = trim( str_replace( array( '<?php', '//' ), '', $folder ) );
|
2317 |
-
if ( ! empty( $folder ) && is_dir( $folder ) ) {
|
2318 |
-
$folders[] = $folder;
|
2319 |
-
}
|
2320 |
-
}
|
2321 |
-
$folders = array_unique( $folders );
|
2322 |
-
sort( $folders );
|
2323 |
-
$this->count_folder = count( $folders );
|
2324 |
-
|
2325 |
-
return $folders;
|
2326 |
-
}
|
2327 |
-
|
2328 |
-
|
2329 |
-
/**
|
2330 |
-
* Add a Folders to Folder list that should be backup
|
2331 |
-
*
|
2332 |
-
* @param array $folders folder to add
|
2333 |
-
* @param bool $new overwrite existing file
|
2334 |
-
*/
|
2335 |
-
public function add_folders_to_backup( $folders = array(), $new = FALSE ) {
|
2336 |
-
|
2337 |
-
if ( ! is_array( $folders ) )
|
2338 |
-
$folders = (array) $folders;
|
2339 |
-
|
2340 |
-
$file = BackWPup::get_plugin_data( 'temp' ) . 'backwpup-' . BackWPup::get_plugin_data( 'hash' ) . '-folder.php';
|
2341 |
-
|
2342 |
-
if ( ! file_exists( $file ) || $new ) {
|
2343 |
-
file_put_contents( $file, '<?php' . PHP_EOL );
|
2344 |
-
}
|
2345 |
-
|
2346 |
-
$content = '';
|
2347 |
-
foreach ( $folders AS $folder ) {
|
2348 |
-
$content .= '//' . $folder . PHP_EOL;
|
2349 |
-
}
|
2350 |
-
|
2351 |
-
if ( ! empty( $content ) )
|
2352 |
-
file_put_contents( $file, $content, FILE_APPEND );
|
2353 |
-
}
|
2354 |
-
|
2355 |
-
/**
|
2356 |
-
* Check whether exec has been disabled.
|
2357 |
-
*
|
2358 |
-
* @access public
|
2359 |
-
* @static
|
2360 |
-
* @return bool
|
2361 |
-
*/
|
2362 |
-
public static function is_exec() {
|
2363 |
-
|
2364 |
-
// Is function avail
|
2365 |
-
if ( ! function_exists( 'exec' ) ) {
|
2366 |
-
return FALSE;
|
2367 |
-
}
|
2368 |
-
|
2369 |
-
// Is shell_exec disabled?
|
2370 |
-
if ( in_array( 'exec', array_map( 'trim', explode( ',', @ini_get( 'disable_functions' ) ) ) ) ) {
|
2371 |
-
return FALSE;
|
2372 |
-
}
|
2373 |
-
|
2374 |
-
// Can we issue a simple echo command?
|
2375 |
-
$output = exec( 'echo backwpupechotest' );
|
2376 |
-
if ( $output != 'backwpupechotest' ) {
|
2377 |
-
return FALSE;
|
2378 |
-
}
|
2379 |
-
|
2380 |
-
return TRUE;
|
2381 |
-
|
2382 |
-
}
|
2383 |
-
|
2384 |
-
/**
|
2385 |
-
* Cleanup Temp Folder
|
2386 |
-
*/
|
2387 |
-
public static function clean_temp_folder() {
|
2388 |
-
|
2389 |
-
$temp_dir = BackWPup::get_plugin_data( 'TEMP' );
|
2390 |
-
$do_not_delete_files = array( '.htaccess', 'index.php', '.', '..', '.donotbackup' );
|
2391 |
-
|
2392 |
-
if ( is_writable( $temp_dir ) && $dir = opendir( $temp_dir ) ) {
|
2393 |
-
while ( FALSE !== ( $file = readdir( $dir ) ) ) {
|
2394 |
-
if ( in_array( $file, $do_not_delete_files ) || is_dir( $temp_dir . $file ) || is_link( $temp_dir . $file ) ) {
|
2395 |
-
continue;
|
2396 |
-
}
|
2397 |
-
if ( is_writeable( $temp_dir . $file ) ) {
|
2398 |
-
unlink( $temp_dir . $file );
|
2399 |
-
}
|
2400 |
-
}
|
2401 |
-
closedir( $dir );
|
2402 |
-
}
|
2403 |
-
}
|
2404 |
-
|
2405 |
-
/**
|
2406 |
-
* Is debug log active
|
2407 |
-
*
|
2408 |
-
* @return bool
|
2409 |
-
*/
|
2410 |
-
public function is_debug() {
|
2411 |
-
|
2412 |
-
return strstr( $this->log_level, 'debug' ) ? TRUE : FALSE;
|
2413 |
-
}
|
2414 |
-
|
2415 |
-
/**
|
2416 |
-
* Change path of a given path
|
2417 |
-
* for better storing in archives or on sync destinations
|
2418 |
-
*
|
2419 |
-
* @param $path string path to change to wp default path
|
2420 |
-
*
|
2421 |
-
* @return string
|
2422 |
-
*/
|
2423 |
-
public function get_destination_path_replacement( $path ) {
|
2424 |
-
|
2425 |
-
$path = str_replace( '\\', '/', $path );
|
2426 |
-
|
2427 |
-
$abs_path = realpath( ABSPATH );
|
2428 |
-
if ( $this->job[ 'backupabsfolderup' ] ) {
|
2429 |
-
$abs_path = dirname( $abs_path );
|
2430 |
-
}
|
2431 |
-
|
2432 |
-
$abs_path = trailingslashit( str_replace( '\\', '/', $abs_path ) );
|
2433 |
-
|
2434 |
-
$path = str_replace( $abs_path, '/', $path );
|
2435 |
-
|
2436 |
-
return $path;
|
2437 |
-
}
|
2438 |
-
|
2439 |
-
}
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Class in that the BackWPup job runs
|
4 |
+
*/
|
5 |
+
final class BackWPup_Job {
|
6 |
+
|
7 |
+
/**
|
8 |
+
* @var array of the job settings
|
9 |
+
*/
|
10 |
+
public $job = array();
|
11 |
+
|
12 |
+
/**
|
13 |
+
* @var int The timestamp when the job starts
|
14 |
+
*/
|
15 |
+
public $start_time = 0;
|
16 |
+
|
17 |
+
/**
|
18 |
+
* @var string the logfile
|
19 |
+
*/
|
20 |
+
public $logfile = '';
|
21 |
+
/**
|
22 |
+
* @var array for temp values
|
23 |
+
*/
|
24 |
+
public $temp = array();
|
25 |
+
/**
|
26 |
+
* @var string Folder where is Backup files in
|
27 |
+
*/
|
28 |
+
public $backup_folder = '';
|
29 |
+
/**
|
30 |
+
* @var string the name of the Backup archive file
|
31 |
+
*/
|
32 |
+
public $backup_file = '';
|
33 |
+
/**
|
34 |
+
* @var int The size of the Backup archive file
|
35 |
+
*/
|
36 |
+
public $backup_filesize = 0;
|
37 |
+
/**
|
38 |
+
* @var int PID of script
|
39 |
+
*/
|
40 |
+
public $pid = 0;
|
41 |
+
/**
|
42 |
+
* @var float Timestamp of last update off .running file
|
43 |
+
*/
|
44 |
+
public $timestamp_last_update = 0;
|
45 |
+
/**
|
46 |
+
* @var float Timestamp of script start
|
47 |
+
*/
|
48 |
+
private $timestamp_script_start = 0;
|
49 |
+
/**
|
50 |
+
* @var int Number of warnings
|
51 |
+
*/
|
52 |
+
public $warnings = 0;
|
53 |
+
/**
|
54 |
+
* @var int Number of errors
|
55 |
+
*/
|
56 |
+
public $errors = 0;
|
57 |
+
/**
|
58 |
+
* @var string the last log notice message
|
59 |
+
*/
|
60 |
+
public $lastmsg = '';
|
61 |
+
/**
|
62 |
+
* @var string the last log error/waring message
|
63 |
+
*/
|
64 |
+
public $lasterrormsg = '';
|
65 |
+
/**
|
66 |
+
* @var array of steps to do
|
67 |
+
*/
|
68 |
+
public $steps_todo = array( 'CREATE' );
|
69 |
+
/**
|
70 |
+
* @var array of done steps
|
71 |
+
*/
|
72 |
+
public $steps_done = array();
|
73 |
+
/**
|
74 |
+
* @var array of steps data
|
75 |
+
*/
|
76 |
+
public $steps_data = array();
|
77 |
+
/**
|
78 |
+
* @var string working on step
|
79 |
+
*/
|
80 |
+
public $step_working = 'CREATE';
|
81 |
+
/**
|
82 |
+
* @var int Number of sub steps must do in step
|
83 |
+
*/
|
84 |
+
public $substeps_todo = 0;
|
85 |
+
/**
|
86 |
+
* @var int Number of sub steps done in step
|
87 |
+
*/
|
88 |
+
public $substeps_done = 0;
|
89 |
+
/**
|
90 |
+
* @var int Percent of steps done
|
91 |
+
*/
|
92 |
+
public $step_percent = 1;
|
93 |
+
/**
|
94 |
+
* @var int Percent of sub steps done
|
95 |
+
*/
|
96 |
+
public $substep_percent = 1;
|
97 |
+
/**
|
98 |
+
* @var array of files to additional to backup
|
99 |
+
*/
|
100 |
+
public $additional_files_to_backup = array();
|
101 |
+
/**
|
102 |
+
* @var array of files/folder to exclude from backup
|
103 |
+
*/
|
104 |
+
public $exclude_from_backup = array();
|
105 |
+
/**
|
106 |
+
* @var int count of affected files
|
107 |
+
*/
|
108 |
+
public $count_files = 0;
|
109 |
+
/**
|
110 |
+
* @var int count of affected file sizes
|
111 |
+
*/
|
112 |
+
public $count_files_size = 0;
|
113 |
+
/**
|
114 |
+
* @var int count of affected folders
|
115 |
+
*/
|
116 |
+
public $count_folder = 0;
|
117 |
+
|
118 |
+
/**
|
119 |
+
* If job aborted from user
|
120 |
+
* @var bool
|
121 |
+
*/
|
122 |
+
public $user_abort = FALSE;
|
123 |
+
|
124 |
+
/**
|
125 |
+
* Stores data that will only used in a single run
|
126 |
+
* @var array
|
127 |
+
*/
|
128 |
+
private $run = array();
|
129 |
+
|
130 |
+
/**
|
131 |
+
* A uniqid ID uniqid('', true); to identify process
|
132 |
+
* @var string
|
133 |
+
*/
|
134 |
+
public $uniqid = '';
|
135 |
+
|
136 |
+
/**
|
137 |
+
* @var string logging level (normal|normal_untranslated|debug|debug_untranslated)
|
138 |
+
*/
|
139 |
+
private $log_level = 'normal';
|
140 |
+
|
141 |
+
|
142 |
+
/**
|
143 |
+
* Delete some data on cloned objects
|
144 |
+
*/
|
145 |
+
public function __clone( ) {
|
146 |
+
|
147 |
+
$this->temp = array();
|
148 |
+
$this->run = array();
|
149 |
+
}
|
150 |
+
|
151 |
+
/**
|
152 |
+
*
|
153 |
+
* This starts or restarts the job working
|
154 |
+
*
|
155 |
+
* @param string $start_type Start types are 'runnow', 'runnowalt', 'cronrun', 'runext', 'runcli'
|
156 |
+
* @param array|int $job_settings The id of job or the settings of a job to start
|
157 |
+
*/
|
158 |
+
private function create( $start_type, $job_settings = 0 ) {
|
159 |
+
global $wpdb;
|
160 |
+
/* @var wpdb $wpdb */
|
161 |
+
|
162 |
+
//check startype
|
163 |
+
if ( ! in_array( $start_type, array( 'runnow', 'runnowalt', 'cronrun', 'runext', 'runcli' ) ) ) {
|
164 |
+
return;
|
165 |
+
}
|
166 |
+
|
167 |
+
if ( is_int( $job_settings ) ) {
|
168 |
+
$this->job = BackWPup_Option::get_job( $job_settings );
|
169 |
+
} elseif( is_array( $job_settings ) ) {
|
170 |
+
$this->job = $job_settings;
|
171 |
+
} else {
|
172 |
+
return;
|
173 |
+
}
|
174 |
+
|
175 |
+
$this->start_time = current_time( 'timestamp' );
|
176 |
+
$this->lastmsg = __( 'Starting job', 'backwpup' );
|
177 |
+
//set Logfile
|
178 |
+
$log_folder = get_site_option( 'backwpup_cfg_logfolder' );
|
179 |
+
$log_folder = BackWPup_File::get_absolute_path( $log_folder );
|
180 |
+
$this->logfile = $log_folder . 'backwpup_log_' . BackWPup::get_plugin_data( 'hash' ) . '_' . date( 'Y-m-d_H-i-s', current_time( 'timestamp' ) ) . '.html';
|
181 |
+
//write settings to job
|
182 |
+
if ( ! empty( $this->job[ 'jobid' ] ) ) {
|
183 |
+
BackWPup_Option::update( $this->job[ 'jobid' ], 'lastrun', $this->start_time );
|
184 |
+
BackWPup_Option::update( $this->job[ 'jobid' ], 'logfile', $this->logfile ); //Set current logfile
|
185 |
+
BackWPup_Option::update( $this->job[ 'jobid' ], 'lastbackupdownloadurl', '' );
|
186 |
+
}
|
187 |
+
//Set needed job values
|
188 |
+
$this->timestamp_last_update = microtime( TRUE );
|
189 |
+
$this->exclude_from_backup = explode( ',', trim( $this->job[ 'fileexclude' ] ) );
|
190 |
+
$this->exclude_from_backup = array_unique( $this->exclude_from_backup );
|
191 |
+
//setup job steps
|
192 |
+
$this->steps_data[ 'CREATE' ][ 'CALLBACK' ] = '';
|
193 |
+
$this->steps_data[ 'CREATE' ][ 'NAME' ] = __( 'Job Start', 'backwpup' );
|
194 |
+
$this->steps_data[ 'CREATE' ][ 'STEP_TRY' ] = 0;
|
195 |
+
//ADD Job types file
|
196 |
+
/* @var $job_type_class BackWPup_JobTypes */
|
197 |
+
$job_need_dest = FALSE;
|
198 |
+
if ( $job_types = BackWPup::get_job_types() ) {
|
199 |
+
foreach ( $job_types as $id => $job_type_class ) {
|
200 |
+
if ( in_array( $id, $this->job[ 'type' ] ) && $job_type_class->creates_file( ) ) {
|
201 |
+
$this->steps_todo[ ] = 'JOB_' . $id;
|
202 |
+
$this->steps_data[ 'JOB_' . $id ][ 'NAME' ] = $job_type_class->info[ 'description' ];
|
203 |
+
$this->steps_data[ 'JOB_' . $id ][ 'STEP_TRY' ] = 0;
|
204 |
+
$this->steps_data[ 'JOB_' . $id ][ 'SAVE_STEP_TRY' ] = 0;
|
205 |
+
$job_need_dest = TRUE;
|
206 |
+
}
|
207 |
+
}
|
208 |
+
}
|
209 |
+
//add destinations and create archive if a job where files to backup
|
210 |
+
if ( $job_need_dest ) {
|
211 |
+
//Create manifest file
|
212 |
+
$this->steps_todo[ ] = 'CREATE_MANIFEST';
|
213 |
+
$this->steps_data[ 'CREATE_MANIFEST' ][ 'NAME' ] = __( 'Creates manifest file', 'backwpup' );
|
214 |
+
$this->steps_data[ 'CREATE_MANIFEST' ][ 'STEP_TRY' ] = 0;
|
215 |
+
$this->steps_data[ 'CREATE_MANIFEST' ][ 'SAVE_STEP_TRY' ] = 0;
|
216 |
+
//Add archive creation and backup filename on backup type archive
|
217 |
+
if ( $this->job[ 'backuptype' ] == 'archive' ) {
|
218 |
+
//get Backup folder if destination folder set
|
219 |
+
if ( in_array( 'FOLDER', $this->job[ 'destinations' ] ) ) {
|
220 |
+
$this->backup_folder = $this->job[ 'backupdir' ];
|
221 |
+
//check backup folder
|
222 |
+
if ( ! empty( $this->backup_folder ) ) {
|
223 |
+
$this->backup_folder = BackWPup_File::get_absolute_path( $this->backup_folder );
|
224 |
+
$this->job[ 'backupdir' ] = $this->backup_folder;
|
225 |
+
}
|
226 |
+
}
|
227 |
+
//set temp folder to backup folder if not set because we need one
|
228 |
+
if ( ! $this->backup_folder || $this->backup_folder == '/' ) {
|
229 |
+
$this->backup_folder = BackWPup::get_plugin_data( 'TEMP' );
|
230 |
+
}
|
231 |
+
//Create backup archive full file name
|
232 |
+
$this->backup_file = $this->generate_filename( $this->job[ 'archivename' ], $this->job[ 'archiveformat' ] );
|
233 |
+
//add archive create
|
234 |
+
$this->steps_todo[ ] = 'CREATE_ARCHIVE';
|
235 |
+
$this->steps_data[ 'CREATE_ARCHIVE' ][ 'NAME' ] = __( 'Creates archive', 'backwpup' );
|
236 |
+
$this->steps_data[ 'CREATE_ARCHIVE' ][ 'STEP_TRY' ] = 0;
|
237 |
+
$this->steps_data[ 'CREATE_ARCHIVE' ][ 'SAVE_STEP_TRY' ] = 0;
|
238 |
+
}
|
239 |
+
//ADD Destinations
|
240 |
+
/* @var BackWPup_Destinations $dest_class */
|
241 |
+
foreach ( BackWPup::get_registered_destinations() as $id => $dest ) {
|
242 |
+
if ( ! in_array( $id, $this->job[ 'destinations' ] ) || empty( $dest[ 'class' ] ) )
|
243 |
+
continue;
|
244 |
+
$dest_class = BackWPup::get_destination( $id );
|
245 |
+
if ( $dest_class->can_run( $this->job ) ) {
|
246 |
+
if ( $this->job[ 'backuptype' ] == 'sync' ) {
|
247 |
+
if ( $dest[ 'can_sync' ] ) {
|
248 |
+
$this->steps_todo[] = 'DEST_SYNC_' . $id;
|
249 |
+
$this->steps_data[ 'DEST_SYNC_' . $id ][ 'NAME' ] = $dest[ 'info' ][ 'description' ];
|
250 |
+
$this->steps_data[ 'DEST_SYNC_' . $id ][ 'STEP_TRY' ] = 0;
|
251 |
+
$this->steps_data[ 'DEST_SYNC_' . $id ][ 'SAVE_STEP_TRY' ] = 0;
|
252 |
+
}
|
253 |
+
} else {
|
254 |
+
$this->steps_todo[] = 'DEST_' . $id;
|
255 |
+
$this->steps_data[ 'DEST_' . $id ][ 'NAME' ] = $dest[ 'info' ][ 'description' ];
|
256 |
+
$this->steps_data[ 'DEST_' . $id ][ 'STEP_TRY' ] = 0;
|
257 |
+
$this->steps_data[ 'DEST_' . $id ][ 'SAVE_STEP_TRY' ] = 0;
|
258 |
+
}
|
259 |
+
}
|
260 |
+
}
|
261 |
+
}
|
262 |
+
//ADD Job type no file
|
263 |
+
if ( $job_types = BackWPup::get_job_types() ) {
|
264 |
+
foreach ( $job_types as $id => $job_type_class ) {
|
265 |
+
if ( in_array( $id, $this->job[ 'type' ] ) && ! $job_type_class->creates_file() ) {
|
266 |
+
$this->steps_todo[ ] = 'JOB_' . $id;
|
267 |
+
$this->steps_data[ 'JOB_' . $id ][ 'NAME' ] = $job_type_class->info[ 'description' ];
|
268 |
+
$this->steps_data[ 'JOB_' . $id ][ 'STEP_TRY' ] = 0;
|
269 |
+
$this->steps_data[ 'JOB_' . $id ][ 'SAVE_STEP_TRY' ] = 0;
|
270 |
+
}
|
271 |
+
}
|
272 |
+
}
|
273 |
+
$this->steps_todo[] = 'END';
|
274 |
+
$this->steps_data[ 'END' ][ 'NAME' ] = __( 'End of Job', 'backwpup' );
|
275 |
+
$this->steps_data[ 'END' ][ 'STEP_TRY' ] = 1;
|
276 |
+
//must write working data
|
277 |
+
$this->write_running_file();
|
278 |
+
|
279 |
+
//load text domain if needed
|
280 |
+
$this->log_level = get_site_option( 'backwpup_cfg_loglevel' );
|
281 |
+
if ( ! in_array( $this->log_level, array( 'normal_translated', 'normal', 'debug_translated', 'debug' ) ) ) {
|
282 |
+
$this->log_level = 'normal_translated';
|
283 |
+
}
|
284 |
+
//create log file
|
285 |
+
$head = '';
|
286 |
+
$info = '';
|
287 |
+
$head .= "<!DOCTYPE html>" . PHP_EOL;
|
288 |
+
$head .= "<html lang=\"" . str_replace( '_', '-', get_locale() ) . "\">" . PHP_EOL;
|
289 |
+
$head .= "<head>" . PHP_EOL;
|
290 |
+
$head .= "<meta charset=\"" . get_bloginfo( 'charset' ) . "\" />" . PHP_EOL;
|
291 |
+
$head .= "<title>" . sprintf( __( 'BackWPup log for %1$s from %2$s at %3$s', 'backwpup' ), $this->job[ 'name' ], date_i18n( get_option( 'date_format' ) ), date_i18n( get_option( 'time_format' ) ) ) . "</title>" . PHP_EOL;
|
292 |
+
$head .= "<meta name=\"robots\" content=\"noindex, nofollow\" />" . PHP_EOL;
|
293 |
+
$head .= "<meta name=\"copyright\" content=\"Copyright © 2012 - " . date( 'Y' ) . " Inpsyde GmbH\" />" . PHP_EOL;
|
294 |
+
$head .= "<meta name=\"author\" content=\"Inpsyde GmbH\" />" . PHP_EOL;
|
295 |
+
$head .= "<meta name=\"generator\" content=\"BackWPup " . BackWPup::get_plugin_data( 'Version' ) . "\" />" . PHP_EOL;
|
296 |
+
$head .= "<meta http-equiv=\"cache-control\" content=\"no-cache\" />" . PHP_EOL;
|
297 |
+
$head .= "<meta http-equiv=\"pragma\" content=\"no-cache\" />" . PHP_EOL;
|
298 |
+
$head .= "<meta name=\"date\" content=\"" . date( 'c' ) . "\" />" . PHP_EOL;
|
299 |
+
$head .= str_pad( '<meta name="backwpup_errors" content="0" />', 100 ) . PHP_EOL;
|
300 |
+
$head .= str_pad( '<meta name="backwpup_warnings" content="0" />', 100 ) . PHP_EOL;
|
301 |
+
if ( ! empty( $this->job[ 'jobid' ] ) ) {
|
302 |
+
$head .= "<meta name=\"backwpup_jobid\" content=\"" . $this->job[ 'jobid' ] . "\" />" . PHP_EOL;
|
303 |
+
}
|
304 |
+
$head .= "<meta name=\"backwpup_jobname\" content=\"" . esc_attr( $this->job[ 'name' ] ) . "\" />" . PHP_EOL;
|
305 |
+
$head .= "<meta name=\"backwpup_jobtype\" content=\"" . implode( '+', $this->job[ 'type' ] ) . "\" />" . PHP_EOL;
|
306 |
+
$head .= str_pad( '<meta name="backwpup_backupfilesize" content="0" />', 100 ) . PHP_EOL;
|
307 |
+
$head .= str_pad( '<meta name="backwpup_jobruntime" content="0" />', 100 ) . PHP_EOL;
|
308 |
+
$head .= "</head>" . PHP_EOL;
|
309 |
+
$head .= "<body style=\"margin:0;padding:3px;font-family:monospace;font-size:12px;line-height:15px;background-color:#000;color:#fff;white-space:nowrap;\">" . PHP_EOL;
|
310 |
+
$info .= sprintf( _x( '[INFO] %1$s %2$s; A project of Inpsyde GmbH', 'Plugin name; Plugin Version; plugin url','backwpup' ), BackWPup::get_plugin_data( 'name' ), BackWPup::get_plugin_data( 'Version' ), BackWPup::get_plugin_data( 'pluginuri' ) ) . '<br />' . PHP_EOL;
|
311 |
+
if ( $this->is_debug() ) {
|
312 |
+
$info .= sprintf( _x( '[INFO] WordPress %1$s on %2$s', 'WordPress Version; Blog url', 'backwpup' ), BackWPup::get_plugin_data( 'wp_version' ), esc_attr( site_url( '/' ) ) ). '<br />' . PHP_EOL;
|
313 |
+
}
|
314 |
+
$job_name = esc_attr( $this->job[ 'name' ] );
|
315 |
+
if ( $this->is_debug() ) {
|
316 |
+
$job_name .= '; ' . implode( '+', $this->job[ 'type' ] );
|
317 |
+
}
|
318 |
+
$info .= sprintf( __( '[INFO] BackWPup job: %1$s', 'backwpup' ), $job_name ) . '<br />' . PHP_EOL;
|
319 |
+
if ( $this->is_debug() ) {
|
320 |
+
$current_user = wp_get_current_user();
|
321 |
+
$info .= sprintf( __( '[INFO] Runs with user: %1$s (%2$d) ', 'backwpup' ), $current_user->user_login, $current_user->ID ) . '<br />' . PHP_EOL;
|
322 |
+
}
|
323 |
+
if ( $this->job[ 'activetype' ] == 'wpcron' ) {
|
324 |
+
//check next run
|
325 |
+
$cron_next = wp_next_scheduled( 'backwpup_cron', array( 'id' => $this->job[ 'jobid' ] ) );
|
326 |
+
if ( ! $cron_next || $cron_next < time() ) {
|
327 |
+
wp_unschedule_event( $cron_next, 'backwpup_cron', array( 'id' => $this->job[ 'jobid' ] ) );
|
328 |
+
$cron_next = BackWPup_Cron::cron_next( $this->job[ 'cron' ] );
|
329 |
+
wp_schedule_single_event( $cron_next, 'backwpup_cron', array( 'id' => $this->job[ 'jobid' ] ) );
|
330 |
+
$cron_next = wp_next_scheduled( 'backwpup_cron', array( 'id' => $this->job[ 'jobid' ] ) );
|
331 |
+
}
|
332 |
+
//output scheduling
|
333 |
+
if ( $this->is_debug() ) {
|
334 |
+
if ( ! $cron_next ) {
|
335 |
+
$cron_next = __( 'Not scheduled!', 'backwpup' );
|
336 |
+
} else {
|
337 |
+
$cron_next = date_i18n( 'D, j M Y @ H:i', $cron_next + ( get_option( 'gmt_offset' ) * 3600 ), TRUE );
|
338 |
+
}
|
339 |
+
$info .= sprintf( __( '[INFO] Cron: %s; Next: %s ', 'backwpup' ), $this->job[ 'cron' ] , $cron_next ) . '<br />' . PHP_EOL;
|
340 |
+
}
|
341 |
+
}
|
342 |
+
elseif( $this->job[ 'activetype' ] == 'link' && $this->is_debug() ) {
|
343 |
+
$info .= __( '[INFO] BackWPup job start with link is active', 'backwpup' ) . '<br />' . PHP_EOL;
|
344 |
+
}
|
345 |
+
elseif( $this->job[ 'activetype' ] == 'easycron' && $this->is_debug() ) {
|
346 |
+
$info .= __( '[INFO] BackWPup job start with EasyCron.com', 'backwpup' ) . '<br />' . PHP_EOL;
|
347 |
+
//output scheduling
|
348 |
+
if ( $this->is_debug() ) {
|
349 |
+
$cron_next = BackWPup_Cron::cron_next( $this->job[ 'cron' ] );
|
350 |
+
$cron_next = date_i18n( 'D, j M Y @ H:i', $cron_next + ( get_option( 'gmt_offset' ) * 3600 ), TRUE );
|
351 |
+
$info .= sprintf( __( '[INFO] Cron: %s; Next: %s ', 'backwpup' ), $this->job[ 'cron' ] , $cron_next ) . '<br />' . PHP_EOL;
|
352 |
+
}
|
353 |
+
}
|
354 |
+
elseif( $this->is_debug() ) {
|
355 |
+
$info .= __( '[INFO] BackWPup no automatic job start configured', 'backwpup' ) . '<br />' . PHP_EOL;
|
356 |
+
}
|
357 |
+
if ( $this->is_debug() ) {
|
358 |
+
if ( $start_type == 'cronrun' ) {
|
359 |
+
$info .= __( '[INFO] BackWPup job started from wp-cron', 'backwpup' ) . '<br />' . PHP_EOL;
|
360 |
+
} elseif ( $start_type == 'runnow' || $start_type == 'runnowalt' ) {
|
361 |
+
$info .= __( '[INFO] BackWPup job started manually', 'backwpup' ) . '<br />' . PHP_EOL;
|
362 |
+
} elseif ( $start_type == 'runext' ) {
|
363 |
+
$info .= __( '[INFO] BackWPup job started from external url', 'backwpup' ) . '<br />' . PHP_EOL;
|
364 |
+
} elseif ( $start_type == 'runcli' ) {
|
365 |
+
$info .= __( '[INFO] BackWPup job started form commandline interface', 'backwpup' ) . '<br />' . PHP_EOL;
|
366 |
+
}
|
367 |
+
$bit = '';
|
368 |
+
if ( PHP_INT_SIZE === 4 ) {
|
369 |
+
$bit = ' (32bit)';
|
370 |
+
}
|
371 |
+
if ( PHP_INT_SIZE === 8 ) {
|
372 |
+
$bit = ' (64bit)';
|
373 |
+
}
|
374 |
+
$info .= __( '[INFO] PHP ver.:', 'backwpup' ) . ' ' . PHP_VERSION . $bit .'; ' . PHP_SAPI . '; ' . PHP_OS . '<br />' . PHP_EOL;
|
375 |
+
$info .= sprintf( __( '[INFO] Maximum PHP script execution time is %1$d seconds', 'backwpup' ), ini_get( 'max_execution_time' ) ) . '<br />' . PHP_EOL;
|
376 |
+
if ( php_sapi_name() != 'cli' ) {
|
377 |
+
$job_max_execution_time = get_site_option( 'backwpup_cfg_jobmaxexecutiontime' );
|
378 |
+
if ( ! empty( $job_max_execution_time ) ) {
|
379 |
+
$info .= sprintf( __( '[INFO] Script restart time is configured to %1$d seconds', 'backwpup' ), $job_max_execution_time ) . '<br />' . PHP_EOL;
|
380 |
+
}
|
381 |
+
}
|
382 |
+
$info .= sprintf( __( '[INFO] MySQL ver.: %s', 'backwpup' ), $wpdb->get_var( "SELECT VERSION() AS version" ) ) . '<br />' . PHP_EOL;
|
383 |
+
if ( isset( $_SERVER[ 'SERVER_SOFTWARE' ] ) )
|
384 |
+
$info .= sprintf( __( '[INFO] Web Server: %s', 'backwpup' ), $_SERVER[ 'SERVER_SOFTWARE' ] ) . '<br />' . PHP_EOL;
|
385 |
+
if ( function_exists( 'curl_init' ) ) {
|
386 |
+
$curlversion = curl_version();
|
387 |
+
$info .= sprintf( __( '[INFO] curl ver.: %1$s; %2$s', 'backwpup' ), $curlversion[ 'version' ], $curlversion[ 'ssl_version' ] ) . '<br />' . PHP_EOL;
|
388 |
+
}
|
389 |
+
$info .= sprintf( __( '[INFO] Temp folder is: %s', 'backwpup' ), BackWPup::get_plugin_data( 'TEMP' ) ) . '<br />' . PHP_EOL;
|
390 |
+
}
|
391 |
+
if ( $this->is_debug() ) {
|
392 |
+
$logfile = $this->logfile;
|
393 |
+
} else {
|
394 |
+
$logfile = basename( $this->logfile );
|
395 |
+
}
|
396 |
+
$info .= sprintf( __( '[INFO] Logfile is: %s', 'backwpup' ), $logfile ) . '<br />' . PHP_EOL;
|
397 |
+
if ( ! empty( $this->backup_file ) && $this->job[ 'backuptype' ] == 'archive' ) {
|
398 |
+
if ( $this->is_debug() ) {
|
399 |
+
$backupfile = $this->backup_folder . $this->backup_file;
|
400 |
+
} else {
|
401 |
+
$backupfile = $this->backup_file;
|
402 |
+
}
|
403 |
+
$info .= sprintf( __( '[INFO] Backup file is: %s', 'backwpup' ), $backupfile ) . '<br />' . PHP_EOL;
|
404 |
+
} else {
|
405 |
+
$info .= sprintf( __( '[INFO] Backup type is: %s', 'backwpup' ), $this->job[ 'backuptype' ] ) . '<br />' . PHP_EOL;
|
406 |
+
}
|
407 |
+
//output info on cli
|
408 |
+
if ( php_sapi_name() == 'cli' && defined( 'STDOUT' ) ) {
|
409 |
+
fwrite( STDOUT, strip_tags( $info ) ) ;
|
410 |
+
}
|
411 |
+
if ( ! file_put_contents( $this->logfile, $head . $info, FILE_APPEND ) ) {
|
412 |
+
$this->logfile = '';
|
413 |
+
$this->log( __( 'Could not write log file', 'backwpup' ), E_USER_ERROR );
|
414 |
+
}
|
415 |
+
//test for destinations
|
416 |
+
if ( $job_need_dest ) {
|
417 |
+
$desttest = FALSE;
|
418 |
+
foreach ( $this->steps_todo as $deststeptest ) {
|
419 |
+
if ( substr( $deststeptest, 0, 5 ) == 'DEST_' ) {
|
420 |
+
$desttest = TRUE;
|
421 |
+
break;
|
422 |
+
}
|
423 |
+
}
|
424 |
+
if ( ! $desttest ) {
|
425 |
+
$this->log( __( 'No destination correctly defined for backup! Please correct job settings.', 'backwpup' ), E_USER_ERROR );
|
426 |
+
$this->steps_todo = array( 'END' );
|
427 |
+
}
|
428 |
+
}
|
429 |
+
//test backup folder
|
430 |
+
if ( ! empty( $this->backup_folder ) ) {
|
431 |
+
$folder_message = BackWPup_File::check_folder( $this->backup_folder, TRUE );
|
432 |
+
if ( ! empty( $folder_message ) ) {
|
433 |
+
$this->log( $folder_message, E_USER_ERROR );
|
434 |
+
$this->steps_todo = array( 'END' );
|
435 |
+
}
|
436 |
+
}
|
437 |
+
|
438 |
+
//Set start as done
|
439 |
+
$this->steps_done[] = 'CREATE';
|
440 |
+
}
|
441 |
+
|
442 |
+
|
443 |
+
/**
|
444 |
+
*
|
445 |
+
* Get a url to run a job of BackWPup
|
446 |
+
*
|
447 |
+
* @param string $starttype Start types are 'runnow', 'runnowlink', 'cronrun', 'runext', 'restart', 'restartalt', 'test'
|
448 |
+
* @param int $jobid The id of job to start else 0
|
449 |
+
* @return array|object [url] is the job url [header] for auth header or object form wp_remote_get()
|
450 |
+
*/
|
451 |
+
public static function get_jobrun_url( $starttype, $jobid = 0 ) {
|
452 |
+
|
453 |
+
$authentication = get_site_option( 'backwpup_cfg_authentication', array( 'method' => '', 'basic_user' => '', 'basic_password' => '', 'user_id' => 0, 'query_arg' => '' ) );
|
454 |
+
$url = site_url( 'wp-cron.php' );
|
455 |
+
$header = array();
|
456 |
+
$authurl = '';
|
457 |
+
$query_args = array( '_nonce' => substr( wp_hash( wp_nonce_tick() . 'backwpup_job_run-' . $starttype, 'nonce' ), - 12, 10 ), 'doing_wp_cron' => sprintf( '%.22F', microtime( true ) ) );
|
458 |
+
|
459 |
+
if ( in_array( $starttype, array( 'restart', 'runnow', 'cronrun', 'runext', 'test' ) ) ) {
|
460 |
+
$query_args[ 'backwpup_run' ] = $starttype;
|
461 |
+
}
|
462 |
+
|
463 |
+
if ( in_array( $starttype, array( 'runnowlink', 'runnow', 'cronrun', 'runext' ) ) && ! empty( $jobid ) ) {
|
464 |
+
$query_args[ 'jobid' ] = $jobid;
|
465 |
+
}
|
466 |
+
|
467 |
+
if ( ! empty( $authentication[ 'basic_user' ] ) && ! empty( $authentication[ 'basic_password' ] ) && $authentication[ 'method' ] == 'basic' ) {
|
468 |
+
$header[ 'Authorization' ] = 'Basic ' . base64_encode( $authentication[ 'basic_user' ] . ':' . BackWPup_Encryption::decrypt( $authentication[ 'basic_password' ] ) );
|
469 |
+
$authurl = urlencode( $authentication[ 'basic_user' ] ) . ':' . urlencode( BackWPup_Encryption::decrypt( $authentication[ 'basic_password' ] ) ) . '@';
|
470 |
+
}
|
471 |
+
|
472 |
+
if ( ! empty( $authentication[ 'query_arg' ] ) && $authentication[ 'method' ] == 'query_arg' ) {
|
473 |
+
$url .= '?' . $authentication[ 'query_arg' ];
|
474 |
+
}
|
475 |
+
|
476 |
+
if ( $starttype == 'runext' ) {
|
477 |
+
$query_args[ '_nonce' ] = get_site_option( 'backwpup_cfg_jobrunauthkey' );
|
478 |
+
$query_args[ 'doing_wp_cron' ] = NULL;
|
479 |
+
if ( ! empty( $authurl ) ) {
|
480 |
+
$url = str_replace( 'https://', 'https://' . $authurl, $url );
|
481 |
+
$url = str_replace( 'http://', 'http://' . $authurl, $url );
|
482 |
+
}
|
483 |
+
}
|
484 |
+
|
485 |
+
if ( $starttype == 'runnowlink' && ( ! defined( 'ALTERNATE_WP_CRON' ) || ! ALTERNATE_WP_CRON ) ) {
|
486 |
+
$url = wp_nonce_url( network_admin_url( 'admin.php' ), 'backwpup_job_run-' . $starttype );
|
487 |
+
$query_args[ 'page' ] = 'backwpupjobs';
|
488 |
+
$query_args[ 'action' ] = 'runnow';
|
489 |
+
$query_args[ 'doing_wp_cron' ] = NULL;
|
490 |
+
unset( $query_args[ '_nonce' ] );
|
491 |
+
}
|
492 |
+
|
493 |
+
if ( $starttype == 'runnowlink' && defined( 'ALTERNATE_WP_CRON' ) && ALTERNATE_WP_CRON ) {
|
494 |
+
$query_args[ 'backwpup_run' ] = 'runnowalt';
|
495 |
+
$query_args[ '_nonce' ] = substr( wp_hash( wp_nonce_tick() . 'backwpup_job_run-runnowalt', 'nonce' ), - 12, 10 );
|
496 |
+
$query_args[ 'doing_wp_cron' ] = NULL;
|
497 |
+
}
|
498 |
+
|
499 |
+
if ( $starttype == 'restartalt' && defined( 'ALTERNATE_WP_CRON' ) && ALTERNATE_WP_CRON ) {
|
500 |
+
$query_args[ 'backwpup_run' ] = 'restart';
|
501 |
+
$query_args[ '_nonce' ] = substr( wp_hash( wp_nonce_tick() . 'backwpup_job_run-restart', 'nonce' ), - 12, 10 );
|
502 |
+
}
|
503 |
+
|
504 |
+
if ( ! empty( $authentication[ 'user_id' ] ) && $authentication[ 'method' ] == 'user' ) {
|
505 |
+
//cache cookies for auth some
|
506 |
+
$cookies = get_site_transient( 'backwpup_cookies' );
|
507 |
+
if ( empty( $cookies ) ) {
|
508 |
+
$wp_admin_user = get_users( array( 'role' => 'administrator', 'number' => 1 ) );
|
509 |
+
if ( empty( $wp_admin_user ) ) {
|
510 |
+
$wp_admin_user = get_users( array( 'role' => 'backwpup_admin', 'number' => 1 ) );
|
511 |
+
}
|
512 |
+
if ( ! empty( $wp_admin_user[ 0 ]->ID ) ) {
|
513 |
+
$expiration = time() + ( 356 * DAY_IN_SECONDS );
|
514 |
+
$manager = WP_Session_Tokens::get_instance( $wp_admin_user[ 0 ]->ID );
|
515 |
+
$token = $manager->create( $expiration );
|
516 |
+
$cookies[ LOGGED_IN_COOKIE ] = wp_generate_auth_cookie( $wp_admin_user[ 0 ]->ID, $expiration, 'logged_in', $token );
|
517 |
+
}
|
518 |
+
set_site_transient( 'backwpup_cookies', $cookies, 3600 - 30 );
|
519 |
+
}
|
520 |
+
} else {
|
521 |
+
$cookies = '';
|
522 |
+
}
|
523 |
+
|
524 |
+
$cron_request = array(
|
525 |
+
'url' => add_query_arg( $query_args, $url ),
|
526 |
+
'key' => $query_args[ 'doing_wp_cron' ],
|
527 |
+
'args' => array(
|
528 |
+
'blocking' => FALSE,
|
529 |
+
'sslverify' => apply_filters( 'https_local_ssl_verify', true ),
|
530 |
+
'timeout' => 0.01,
|
531 |
+
'headers' => $header,
|
532 |
+
'user-agent' => BackWpup::get_plugin_data( 'User-Agent' )
|
533 |
+
)
|
534 |
+
);
|
535 |
+
|
536 |
+
if ( ! empty( $cookies ) ) {
|
537 |
+
foreach ( $cookies as $name => $value ) {
|
538 |
+
$cron_request[ 'args' ][ 'cookies' ][] = new WP_Http_Cookie( array( 'name' => $name, 'value' => $value ) );
|
539 |
+
}
|
540 |
+
}
|
541 |
+
|
542 |
+
$cron_request = apply_filters( 'cron_request', $cron_request );
|
543 |
+
|
544 |
+
if ( $starttype == 'test' ) {
|
545 |
+
$cron_request[ 'args' ][ 'timeout' ] = 15;
|
546 |
+
$cron_request[ 'args' ][ 'blocking' ] = TRUE;
|
547 |
+
}
|
548 |
+
|
549 |
+
if ( ! in_array( $starttype, array( 'runnowlink', 'runext', 'restartalt' ) ) ) {
|
550 |
+
delete_transient( 'doing_cron' );
|
551 |
+
return wp_remote_post( $cron_request[ 'url' ], $cron_request[ 'args' ] );
|
552 |
+
}
|
553 |
+
|
554 |
+
return $cron_request;
|
555 |
+
}
|
556 |
+
|
557 |
+
|
558 |
+
/**
|
559 |
+
*
|
560 |
+
*/
|
561 |
+
public static function start_http( $starttype ) {
|
562 |
+
|
563 |
+
//load text domain
|
564 |
+
$log_level = get_site_option( 'backwpup_cfg_loglevel' );
|
565 |
+
if ( strstr( $log_level, 'translated' ) ) {
|
566 |
+
BackWPup::load_text_domain();
|
567 |
+
}
|
568 |
+
|
569 |
+
if ( $starttype != 'restart' ) {
|
570 |
+
|
571 |
+
//check get vars
|
572 |
+
if ( isset( $_GET[ 'jobid' ] ) )
|
573 |
+
$jobid = (int)$_GET[ 'jobid' ];
|
574 |
+
else
|
575 |
+
$jobid = 0;
|
576 |
+
|
577 |
+
//check job id exists
|
578 |
+
if ( $jobid != BackWPup_Option::get( $jobid, 'jobid' ) ) {
|
579 |
+
die( '-1' );
|
580 |
+
}
|
581 |
+
|
582 |
+
//check folders
|
583 |
+
$log_folder = get_site_option( 'backwpup_cfg_logfolder' );
|
584 |
+
$folder_message_log = BackWPup_File::check_folder( BackWPup_File::get_absolute_path( $log_folder ) );
|
585 |
+
$folder_message_temp = BackWPup_File::check_folder( BackWPup::get_plugin_data( 'TEMP' ), TRUE );
|
586 |
+
if ( ! empty( $folder_message_log ) || ! empty( $folder_message_temp ) ) {
|
587 |
+
BackWPup_Admin::message( $folder_message_log, TRUE );
|
588 |
+
BackWPup_Admin::message( $folder_message_temp, TRUE );
|
589 |
+
die( '-2' );
|
590 |
+
}
|
591 |
+
}
|
592 |
+
|
593 |
+
// redirect
|
594 |
+
if ( $starttype == 'runnowalt' ) {
|
595 |
+
ob_start();
|
596 |
+
wp_redirect( add_query_arg( array( 'page' => 'backwpupjobs' ), network_admin_url( 'admin.php' ) ) );
|
597 |
+
echo ' ';
|
598 |
+
while ( @ob_end_flush() );
|
599 |
+
flush();
|
600 |
+
}
|
601 |
+
|
602 |
+
// Should be preventing doubled running job's on http requests
|
603 |
+
$random = rand( 1, 9 ) * 100000;
|
604 |
+
usleep( $random );
|
605 |
+
|
606 |
+
//check running job
|
607 |
+
$backwpup_job_object = self::get_working_data();
|
608 |
+
//start class
|
609 |
+
if ( ! $backwpup_job_object && in_array( $starttype, array( 'runnow', 'runnowalt', 'runext' ) ) && ! empty( $jobid ) ) {
|
610 |
+
//schedule restart event
|
611 |
+
wp_schedule_single_event( time() + 60, 'backwpup_cron', array( 'id' => 'restart' ) );
|
612 |
+
//start job
|
613 |
+
$backwpup_job_object = new self();
|
614 |
+
$backwpup_job_object->create( $starttype, (int)$jobid );
|
615 |
+
}
|
616 |
+
if( is_object( $backwpup_job_object ) && $backwpup_job_object instanceof BackWPup_Job )
|
617 |
+
$backwpup_job_object->run();
|
618 |
+
}
|
619 |
+
|
620 |
+
/**
|
621 |
+
* @param $jobid
|
622 |
+
*/
|
623 |
+
public static function start_cli( $jobid ) {
|
624 |
+
|
625 |
+
if ( php_sapi_name() != 'cli' ) {
|
626 |
+
return;
|
627 |
+
}
|
628 |
+
|
629 |
+
//define DOING_CRON to prevent caching
|
630 |
+
if( ! defined( 'DOING_CRON' ) ) {
|
631 |
+
define( 'DOING_CRON', TRUE );
|
632 |
+
}
|
633 |
+
|
634 |
+
//load text domain
|
635 |
+
$log_level = get_site_option( 'backwpup_cfg_loglevel' );
|
636 |
+
if ( strstr( $log_level, 'translated' ) ) {
|
637 |
+
BackWPup::load_text_domain();
|
638 |
+
}
|
639 |
+
|
640 |
+
//Logs Folder
|
641 |
+
$log_folder = get_site_option( 'backwpup_cfg_logfolder' );
|
642 |
+
$log_folder = BackWPup_File::get_absolute_path( $log_folder );
|
643 |
+
|
644 |
+
//check job id exists
|
645 |
+
$jobids = BackWPup_Option::get_job_ids();
|
646 |
+
if ( ! in_array( $jobid, $jobids ) ) {
|
647 |
+
die( __( 'Wrong BackWPup JobID', 'backwpup' ) );
|
648 |
+
}
|
649 |
+
//check folders
|
650 |
+
$log_folder_message = BackWPup_File::check_folder( $log_folder );
|
651 |
+
if ( ! empty( $log_folder_message ) ) {
|
652 |
+
die( $log_folder_message );
|
653 |
+
}
|
654 |
+
$log_folder_message = BackWPup_File::check_folder( BackWPup::get_plugin_data( 'TEMP' ), TRUE );
|
655 |
+
if ( ! empty( $log_folder_message ) ) {
|
656 |
+
die( $log_folder_message );
|
657 |
+
}
|
658 |
+
//check running job
|
659 |
+
if ( file_exists( BackWPup::get_plugin_data( 'running_file' ) ) ) {
|
660 |
+
die( __( 'A BackWPup job is already running', 'backwpup' ) );
|
661 |
+
}
|
662 |
+
|
663 |
+
//start class
|
664 |
+
$backwpup_job_object = new self();
|
665 |
+
$backwpup_job_object->create( 'runcli', (int)$jobid );
|
666 |
+
$backwpup_job_object->run();
|
667 |
+
}
|
668 |
+
|
669 |
+
/**
|
670 |
+
* @param int $jobid
|
671 |
+
*/
|
672 |
+
public static function start_wp_cron( $jobid = 0 ) {
|
673 |
+
|
674 |
+
if ( ! defined( 'DOING_CRON' ) || ! DOING_CRON ) {
|
675 |
+
return;
|
676 |
+
}
|
677 |
+
|
678 |
+
//load text domain
|
679 |
+
$log_level = get_site_option( 'backwpup_cfg_loglevel' );
|
680 |
+
if ( strstr( $log_level, 'translated' ) ) {
|
681 |
+
BackWPup::load_text_domain();
|
682 |
+
}
|
683 |
+
|
684 |
+
if ( ! empty( $jobid ) ) {
|
685 |
+
//check folders
|
686 |
+
$log_folder = get_site_option( 'backwpup_cfg_logfolder' );
|
687 |
+
$folder_message_log = BackWPup_File::check_folder( BackWPup_File::get_absolute_path( $log_folder ) );
|
688 |
+
$folder_message_temp = BackWPup_File::check_folder( BackWPup::get_plugin_data( 'TEMP' ), TRUE );
|
689 |
+
if ( ! empty( $folder_message_log ) || ! empty( $folder_message_temp ) ) {
|
690 |
+
BackWPup_Admin::message( $folder_message_log, TRUE );
|
691 |
+
BackWPup_Admin::message( $folder_message_temp, TRUE );
|
692 |
+
return;
|
693 |
+
}
|
694 |
+
}
|
695 |
+
|
696 |
+
// Should be preventing doubled running job's on http requests
|
697 |
+
$random = rand( 1, 9 ) * 100000;
|
698 |
+
usleep( $random );
|
699 |
+
|
700 |
+
//get running job
|
701 |
+
$backwpup_job_object = self::get_working_data();
|
702 |
+
//start/restart class
|
703 |
+
if ( empty( $backwpup_job_object ) && ! empty( $jobid ) ) {
|
704 |
+
//schedule restart event
|
705 |
+
wp_schedule_single_event( time() + 60, 'backwpup_cron', array( 'id' => 'restart' ) );
|
706 |
+
//start job
|
707 |
+
$backwpup_job_object = new self();
|
708 |
+
$backwpup_job_object->create( 'cronrun', (int)$jobid );
|
709 |
+
}
|
710 |
+
if( is_object( $backwpup_job_object ) && $backwpup_job_object instanceof BackWPup_Job )
|
711 |
+
$backwpup_job_object->run();
|
712 |
+
}
|
713 |
+
|
714 |
+
/**
|
715 |
+
* disable caches
|
716 |
+
*/
|
717 |
+
public static function disable_caches() {
|
718 |
+
|
719 |
+
//Special settings
|
720 |
+
@putenv( 'nokeepalive=1' );
|
721 |
+
@ini_set( 'zlib.output_compression', 'Off' );
|
722 |
+
|
723 |
+
// deactivate caches
|
724 |
+
if ( ! defined( 'DONOTCACHEDB' ) ) {
|
725 |
+
define( 'DONOTCACHEDB', TRUE );
|
726 |
+
}
|
727 |
+
if ( ! defined( 'DONOTCACHEPAGE' ) ) {
|
728 |
+
define( 'DONOTCACHEPAGE', TRUE );
|
729 |
+
}
|
730 |
+
}
|
731 |
+
|
732 |
+
|
733 |
+
/**
|
734 |
+
* Run baby run
|
735 |
+
*/
|
736 |
+
public function run() {
|
737 |
+
global $wpdb;
|
738 |
+
/* @var wpdb $wpdb */
|
739 |
+
|
740 |
+
// Job can't run it is not created
|
741 |
+
if ( empty( $this->steps_todo ) || empty( $this->logfile ) ) {
|
742 |
+
$running_file = BackWPup::get_plugin_data( 'running_file' );
|
743 |
+
if ( file_exists( $running_file ) ) {
|
744 |
+
unlink( $running_file );
|
745 |
+
}
|
746 |
+
return;
|
747 |
+
}
|
748 |
+
|
749 |
+
//Check double running and inactivity
|
750 |
+
$last_update = microtime( TRUE ) - $this->timestamp_last_update;
|
751 |
+
if ( ! empty( $this->pid ) && $last_update > 300 ) {
|
752 |
+
$this->log( __( 'Job restarts due to inactivity for more than 5 minutes.', 'backwpup' ), E_USER_WARNING );
|
753 |
+
}
|
754 |
+
elseif ( ! empty( $this->pid ) ) {
|
755 |
+
return;
|
756 |
+
}
|
757 |
+
// set timestamp of script start
|
758 |
+
$this->timestamp_script_start = microtime( TRUE );
|
759 |
+
//set Pid
|
760 |
+
$this->pid = self::get_pid();
|
761 |
+
$this->uniqid = uniqid( '', TRUE );
|
762 |
+
//Early write new working file
|
763 |
+
$this->write_running_file();
|
764 |
+
//set function for PHP user defined error handling
|
765 |
+
$this->run[ 'PHP' ][ 'INI' ][ 'ERROR_LOG' ] = ini_get( 'error_log' );
|
766 |
+
$this->run[ 'PHP' ][ 'INI' ][ 'ERROR_REPORTING' ]= ini_get( 'error_reporting' );
|
767 |
+
$this->run[ 'PHP' ][ 'INI' ][ 'LOG_ERRORS' ] = ini_get( 'log_errors' );
|
768 |
+
$this->run[ 'PHP' ][ 'INI' ][ 'DISPLAY_ERRORS' ] = ini_get( 'display_errors' );
|
769 |
+
$this->run[ 'PHP' ][ 'INI' ][ 'HTML_ERRORS' ] = ini_get( 'html_errors' );
|
770 |
+
$this->run[ 'PHP' ][ 'INI' ][ 'REPORT_MEMLEAKS' ]= ini_get( 'report_memleaks' );
|
771 |
+
$this->run[ 'PHP' ][ 'INI' ][ 'ZLIB_OUTPUT_COMPRESSION' ] = ini_get( 'zlib.output_compression' );
|
772 |
+
$this->run[ 'PHP' ][ 'INI' ][ 'IMPLICIT_FLUSH' ] = ini_get( 'implicit_flush' );
|
773 |
+
if ( $this->is_debug() ) {
|
774 |
+
@ini_set( 'error_log', $this->logfile );
|
775 |
+
error_reporting( -1 );
|
776 |
+
}
|
777 |
+
@ini_set( 'display_errors', '0' );
|
778 |
+
@ini_set( 'log_errors', '1' );
|
779 |
+
@ini_set( 'html_errors', '0' );
|
780 |
+
@ini_set( 'report_memleaks', '1' );
|
781 |
+
@ini_set( 'zlib.output_compression', '0' );
|
782 |
+
@ini_set( 'implicit_flush', '0' );
|
783 |
+
//increase MySQL timeout
|
784 |
+
@ini_set( 'mysql.connect_timeout', '360' );
|
785 |
+
//set temp folder
|
786 |
+
$can_set_temp_env = TRUE;
|
787 |
+
$protected_env_vars = explode( ',', ini_get( 'safe_mode_protected_env_vars' ) ); //removed in php 5.4.0
|
788 |
+
foreach( $protected_env_vars as $protected_env ) {
|
789 |
+
if ( strtoupper( trim( $protected_env ) ) == 'TMPDIR' ) {
|
790 |
+
$can_set_temp_env = FALSE;
|
791 |
+
}
|
792 |
+
}
|
793 |
+
if ( $can_set_temp_env ) {
|
794 |
+
$this->run[ 'PHP' ][ 'ENV' ][ 'TEMPDIR' ] = getenv( 'TMPDIR' );
|
795 |
+
@putenv( 'TMPDIR='.BackWPup::get_plugin_data( 'TEMP') );
|
796 |
+
}
|
797 |
+
//Write Wordpress DB errors to log
|
798 |
+
$wpdb->suppress_errors( FALSE );
|
799 |
+
$wpdb->hide_errors();
|
800 |
+
//set wp max memory limit
|
801 |
+
@ini_set( 'memory_limit', apply_filters( 'admin_memory_limit', WP_MAX_MEMORY_LIMIT ) );
|
802 |
+
//set error handler
|
803 |
+
if ( ! empty( $this->logfile ) ) {
|
804 |
+
if ( $this->is_debug() ) {
|
805 |
+
set_error_handler( array( $this, 'log' ) );
|
806 |
+
} else {
|
807 |
+
set_error_handler( array( $this, 'log' ), E_ALL ^ E_NOTICE );
|
808 |
+
}
|
809 |
+
}
|
810 |
+
set_exception_handler( array( $this, 'exception_handler' ) );
|
811 |
+
//not loading Textdomains and unload loaded
|
812 |
+
if ( ! strstr( $this->log_level, 'translated' ) ) {
|
813 |
+
add_filter( 'override_load_textdomain', create_function( '','return TRUE;' ) );
|
814 |
+
$GLOBALS[ 'l10n' ] = array();
|
815 |
+
}
|
816 |
+
// execute function on job shutdown register_shutdown_function( array( $this, 'shutdown' ) );
|
817 |
+
add_action( 'shutdown', array( $this, 'shutdown' ) );
|
818 |
+
//remove_action('shutdown', array( $this, 'shutdown' ));
|
819 |
+
if ( function_exists( 'pcntl_signal' ) ) {
|
820 |
+
$signals = array(
|
821 |
+
'SIGHUP',
|
822 |
+
'SIGINT',
|
823 |
+
'SIGQUIT',
|
824 |
+
'SIGILL',
|
825 |
+
'SIGTRAP',
|
826 |
+
'SIGABRT',
|
827 |
+
'SIGBUS',
|
828 |
+
'SIGFPE',
|
829 |
+
//'SIGKILL',
|
830 |
+
'SIGSEGV',
|
831 |
+
//'SIGPIPE',
|
832 |
+
//'SIGALRM',
|
833 |
+
'SIGTERM',
|
834 |
+
'SIGSTKFLT',
|
835 |
+
'SIGUSR1',
|
836 |
+
'SIGUSR2',
|
837 |
+
//'SIGCHLD',
|
838 |
+
//'SIGCONT',
|
839 |
+
//'SIGSTOP',
|
840 |
+
'SIGTSTP',
|
841 |
+
'SIGTTIN',
|
842 |
+
'SIGTTOU',
|
843 |
+
'SIGURG',
|
844 |
+
'SIGXCPU',
|
845 |
+
'SIGXFSZ',
|
846 |
+
//'SIGVTALRM',
|
847 |
+
//'SIGPROF',
|
848 |
+
'SIGWINCH',
|
849 |
+
//'SIGIO',
|
850 |
+
'SIGPWR',
|
851 |
+
'SIGSYS',
|
852 |
+
);
|
853 |
+
$signals = apply_filters( 'backwpup_job_signals_to_handel', $signals );
|
854 |
+
declare( ticks = 1 ) ;
|
855 |
+
foreach( $signals as $signal ) {
|
856 |
+
if ( defined( $signal ) ) {
|
857 |
+
pcntl_signal( constant( $signal ), array( $this, 'shutdown' ), FALSE );
|
858 |
+
}
|
859 |
+
}
|
860 |
+
}
|
861 |
+
//clear output buffer
|
862 |
+
ob_start();
|
863 |
+
while( @ob_end_clean() );
|
864 |
+
@flush();
|
865 |
+
$job_types = BackWPup::get_job_types();
|
866 |
+
//go step by step
|
867 |
+
foreach ( $this->steps_todo as $this->step_working ) {
|
868 |
+
//Check if step already done
|
869 |
+
if ( in_array( $this->step_working, $this->steps_done ) )
|
870 |
+
continue;
|
871 |
+
//calc step percent
|
872 |
+
if ( count( $this->steps_done ) > 0 )
|
873 |
+
$this->step_percent = round( count( $this->steps_done ) / count( $this->steps_todo ) * 100 );
|
874 |
+
else
|
875 |
+
$this->step_percent = 1;
|
876 |
+
// do step tries
|
877 |
+
while ( TRUE ) {
|
878 |
+
if ( $this->steps_data[ $this->step_working ][ 'STEP_TRY' ] >= get_site_option( 'backwpup_cfg_jobstepretry' ) ) {
|
879 |
+
$this->log( __( 'Step aborted: too many attempts!', 'backwpup' ), E_USER_ERROR );
|
880 |
+
$this->temp = array();
|
881 |
+
$this->steps_done[ ] = $this->step_working;
|
882 |
+
$this->substeps_done = 0;
|
883 |
+
$this->substeps_todo = 0;
|
884 |
+
$this->do_restart();
|
885 |
+
break;
|
886 |
+
}
|
887 |
+
|
888 |
+
$this->steps_data[ $this->step_working ][ 'STEP_TRY' ] ++;
|
889 |
+
$done = FALSE;
|
890 |
+
|
891 |
+
//executes the methods of job process
|
892 |
+
if ( $this->step_working == 'CREATE_ARCHIVE' ) {
|
893 |
+
$done = $this->create_archive();
|
894 |
+
}
|
895 |
+
elseif ( $this->step_working == 'CREATE_MANIFEST' ) {
|
896 |
+
$done = $this->create_manifest();
|
897 |
+
}
|
898 |
+
elseif ( $this->step_working == 'END' ) {
|
899 |
+
$this->end();
|
900 |
+
break 2;
|
901 |
+
}
|
902 |
+
elseif ( strstr( $this->step_working, 'JOB_' ) ) {
|
903 |
+
$done = $job_types[ str_replace( 'JOB_', '', $this->step_working ) ]->job_run( $this );
|
904 |
+
}
|
905 |
+
elseif ( strstr( $this->step_working, 'DEST_SYNC_' ) ) {
|
906 |
+
$done = BackWPup::get_destination( str_replace( 'DEST_SYNC_', '', $this->step_working ) )->job_run_sync( $this );
|
907 |
+
}
|
908 |
+
elseif ( strstr( $this->step_working, 'DEST_' ) ) {
|
909 |
+
$done = BackWPup::get_destination( str_replace( 'DEST_', '', $this->step_working ) )->job_run_archive( $this );
|
910 |
+
}
|
911 |
+
elseif ( ! empty( $this->steps_data[ $this->step_working ][ 'CALLBACK' ] ) ) {
|
912 |
+
$done = $this->steps_data[ $this->step_working ][ 'CALLBACK' ]( $this );
|
913 |
+
}
|
914 |
+
|
915 |
+
// set step as done
|
916 |
+
if ( $done === TRUE ) {
|
917 |
+
$this->temp = array();
|
918 |
+
$this->steps_done[] = $this->step_working;
|
919 |
+
$this->substeps_done = 0;
|
920 |
+
$this->substeps_todo = 0;
|
921 |
+
$this->write_running_file();
|
922 |
+
}
|
923 |
+
if ( count( $this->steps_done ) < count( $this->steps_todo ) -1 ) {
|
924 |
+
$this->do_restart();
|
925 |
+
}
|
926 |
+
if ( $done === TRUE ) {
|
927 |
+
break;
|
928 |
+
}
|
929 |
+
}
|
930 |
+
}
|
931 |
+
}
|
932 |
+
|
933 |
+
/**
|
934 |
+
* Do a job restart
|
935 |
+
*
|
936 |
+
* @param bool $must Restart must done
|
937 |
+
* @param bool $msg Log restart message
|
938 |
+
*/
|
939 |
+
public function do_restart( $must = FALSE ) {
|
940 |
+
|
941 |
+
//no restart if in end step
|
942 |
+
if ( $this->step_working == 'END' || ( count( $this->steps_done ) + 1 ) >= count( $this->steps_todo ) ) {
|
943 |
+
return;
|
944 |
+
}
|
945 |
+
|
946 |
+
//no restart on cli usage
|
947 |
+
if ( php_sapi_name() == 'cli' ) {
|
948 |
+
return;
|
949 |
+
}
|
950 |
+
|
951 |
+
//no restart if no restart time configured
|
952 |
+
$job_max_execution_time = get_site_option( 'backwpup_cfg_jobmaxexecutiontime' );
|
953 |
+
if ( ! $must && empty( $job_max_execution_time ) ) {
|
954 |
+
return;
|
955 |
+
}
|
956 |
+
|
957 |
+
//no restart when restart was 3 Seconds before
|
958 |
+
$execution_time = microtime( TRUE ) - $this->timestamp_script_start;
|
959 |
+
if ( ! $must && $execution_time < 3 ) {
|
960 |
+
return;
|
961 |
+
}
|
962 |
+
|
963 |
+
//no restart if no working job
|
964 |
+
if ( ! file_exists( BackWPup::get_plugin_data( 'running_file' ) ) ) {
|
965 |
+
return;
|
966 |
+
}
|
967 |
+
|
968 |
+
//print message
|
969 |
+
if ( $this->is_debug() ) {
|
970 |
+
$this->log( sprintf( __( 'Restart after %1$d seconds.', 'backwpup' ), ceil( $execution_time ) ) );
|
971 |
+
}
|
972 |
+
|
973 |
+
//do things for a clean restart
|
974 |
+
$this->pid = 0;
|
975 |
+
$this->uniqid = '';
|
976 |
+
$this->write_running_file();
|
977 |
+
remove_action( 'shutdown', array( $this, 'shutdown' ) );
|
978 |
+
//do restart
|
979 |
+
wp_clear_scheduled_hook( 'backwpup_cron', array( 'id' => 'restart' ) );
|
980 |
+
wp_schedule_single_event( time() + 5, 'backwpup_cron', array( 'id' => 'restart' ) );
|
981 |
+
self::get_jobrun_url( 'restart' );
|
982 |
+
|
983 |
+
exit();
|
984 |
+
}
|
985 |
+
|
986 |
+
/**
|
987 |
+
* Do a job restart
|
988 |
+
*
|
989 |
+
* @param bool $do_restart_now should time restart now be done
|
990 |
+
* @return int remaining time
|
991 |
+
*/
|
992 |
+
public function do_restart_time( $do_restart_now = FALSE ) {
|
993 |
+
|
994 |
+
$job_max_execution_time = get_site_option( 'backwpup_cfg_jobmaxexecutiontime' );
|
995 |
+
|
996 |
+
if ( empty( $job_max_execution_time ) ) {
|
997 |
+
return 300;
|
998 |
+
}
|
999 |
+
|
1000 |
+
$execution_time = microtime( TRUE ) - $this->timestamp_script_start;
|
1001 |
+
|
1002 |
+
// do restart 3 sec. before max. execution time
|
1003 |
+
if ( $do_restart_now || $execution_time >= ( $job_max_execution_time - 3 ) ) {
|
1004 |
+
$this->steps_data[ $this->step_working ][ 'SAVE_STEP_TRY' ] = $this->steps_data[ $this->step_working ][ 'STEP_TRY' ];
|
1005 |
+
$this->steps_data[ $this->step_working ][ 'STEP_TRY' ] -= 1;
|
1006 |
+
$this->do_restart( TRUE );
|
1007 |
+
}
|
1008 |
+
|
1009 |
+
return $job_max_execution_time - $execution_time;
|
1010 |
+
|
1011 |
+
}
|
1012 |
+
|
1013 |
+
/**
|
1014 |
+
* Get job restart time
|
1015 |
+
*
|
1016 |
+
* @return int remaining time
|
1017 |
+
*/
|
1018 |
+
public function get_restart_time() {
|
1019 |
+
|
1020 |
+
$job_max_execution_time = get_site_option( 'backwpup_cfg_jobmaxexecutiontime' );
|
1021 |
+
|
1022 |
+
if ( empty( $job_max_execution_time ) ) {
|
1023 |
+
return 300;
|
1024 |
+
}
|
1025 |
+
|
1026 |
+
$execution_time = microtime( TRUE ) - $this->timestamp_script_start;
|
1027 |
+
return $job_max_execution_time - $execution_time - 3;
|
1028 |
+
}
|
1029 |
+
|
1030 |
+
/**
|
1031 |
+
*
|
1032 |
+
* Get data off a working job
|
1033 |
+
*
|
1034 |
+
* @return bool|object BackWPup_Job Object or Bool if file not exits
|
1035 |
+
*/
|
1036 |
+
public static function get_working_data() {
|
1037 |
+
|
1038 |
+
if ( version_compare( PHP_VERSION, '5.3', '>=' ) ) {
|
1039 |
+
clearstatcache( TRUE, BackWPup::get_plugin_data( 'running_file' ) );
|
1040 |
+
} else {
|
1041 |
+
clearstatcache();
|
1042 |
+
}
|
1043 |
+
|
1044 |
+
if ( ! file_exists( BackWPup::get_plugin_data( 'running_file' ) ) ) {
|
1045 |
+
return FALSE;
|
1046 |
+
}
|
1047 |
+
|
1048 |
+
$file_data = file_get_contents( BackWPup::get_plugin_data( 'running_file' ), FALSE, NULL, 8 );
|
1049 |
+
if ( empty( $file_data ) ) {
|
1050 |
+
return FALSE;
|
1051 |
+
}
|
1052 |
+
|
1053 |
+
if ( $job_object = unserialize( $file_data ) ) {
|
1054 |
+
if ( $job_object instanceof BackWPup_Job )
|
1055 |
+
return $job_object;
|
1056 |
+
}
|
1057 |
+
|
1058 |
+
return FALSE;
|
1059 |
+
|
1060 |
+
}
|
1061 |
+
|
1062 |
+
/**
|
1063 |
+
*
|
1064 |
+
* Reads a BackWPup logfile header and gives back a array of information
|
1065 |
+
*
|
1066 |
+
* @param string $logfile full logfile path
|
1067 |
+
*
|
1068 |
+
* @return array|bool
|
1069 |
+
*/
|
1070 |
+
public static function read_logheader( $logfile ) {
|
1071 |
+
|
1072 |
+
$usedmetas = array(
|
1073 |
+
"date" => "logtime",
|
1074 |
+
"backwpup_logtime" => "logtime", //old value of date
|
1075 |
+
"backwpup_errors" => "errors",
|
1076 |
+
"backwpup_warnings" => "warnings",
|
1077 |
+
"backwpup_jobid" => "jobid",
|
1078 |
+
"backwpup_jobname" => "name",
|
1079 |
+
"backwpup_jobtype" => "type",
|
1080 |
+
"backwpup_jobruntime" => "runtime",
|
1081 |
+
"backwpup_backupfilesize" => "backupfilesize"
|
1082 |
+
);
|
1083 |
+
|
1084 |
+
//get metadata of logfile
|
1085 |
+
$metas = array();
|
1086 |
+
if ( is_readable( $logfile ) ) {
|
1087 |
+
if ( '.gz' == substr( $logfile, -3 ) )
|
1088 |
+
$metas = (array)get_meta_tags( 'compress.zlib://' . $logfile );
|
1089 |
+
else
|
1090 |
+
$metas = (array)get_meta_tags( $logfile );
|
1091 |
+
}
|
1092 |
+
|
1093 |
+
//only output needed data
|
1094 |
+
foreach ( $usedmetas as $keyword => $field ) {
|
1095 |
+
if ( isset( $metas[ $keyword ] ) ) {
|
1096 |
+
$joddata[ $field ] = $metas[ $keyword ];
|
1097 |
+
} else {
|
1098 |
+
$joddata[ $field ] = '';
|
1099 |
+
}
|
1100 |
+
}
|
1101 |
+
|
1102 |
+
//convert date
|
1103 |
+
if ( isset( $metas[ 'date' ] ) )
|
1104 |
+
$joddata[ 'logtime' ] = strtotime( $metas[ 'date' ] ) + ( get_option( 'gmt_offset' ) * 3600 );
|
1105 |
+
|
1106 |
+
//use file create date if none
|
1107 |
+
if ( empty( $joddata[ 'logtime' ] ) )
|
1108 |
+
$joddata[ 'logtime' ] = filectime( $logfile );
|
1109 |
+
|
1110 |
+
return $joddata;
|
1111 |
+
}
|
1112 |
+
|
1113 |
+
|
1114 |
+
/**
|
1115 |
+
*
|
1116 |
+
* Shutdown function is call if script terminates try to make a restart if needed
|
1117 |
+
*
|
1118 |
+
* Prepare the job for start
|
1119 |
+
*
|
1120 |
+
* @internal param int the signal that terminates the job
|
1121 |
+
*/
|
1122 |
+
public function shutdown() {
|
1123 |
+
|
1124 |
+
$args = func_get_args();
|
1125 |
+
|
1126 |
+
//Put last error to log if one
|
1127 |
+
$lasterror = error_get_last();
|
1128 |
+
if ( $lasterror[ 'type' ] == E_ERROR or $lasterror[ 'type' ] == E_PARSE or $lasterror[ 'type' ] == E_CORE_ERROR or $lasterror[ 'type' ] == E_CORE_WARNING or $lasterror[ 'type' ] == E_COMPILE_ERROR or $lasterror[ 'type' ] == E_COMPILE_WARNING ) {
|
1129 |
+
$this->log( $lasterror[ 'type' ], $lasterror[ 'message' ], $lasterror[ 'file' ], $lasterror[ 'line' ] );
|
1130 |
+
}
|
1131 |
+
|
1132 |
+
//Put signals to log
|
1133 |
+
if ( ! empty( $args[ 0 ] ) ) {
|
1134 |
+
$signals = array(
|
1135 |
+
'SIGHUP',
|
1136 |
+
'SIGINT',
|
1137 |
+
'SIGQUIT',
|
1138 |
+
'SIGILL',
|
1139 |
+
'SIGTRAP',
|
1140 |
+
'SIGABRT',
|
1141 |
+
'SIGBUS',
|
1142 |
+
'SIGFPE',
|
1143 |
+
'SIGKILL',
|
1144 |
+
'SIGSEGV',
|
1145 |
+
'SIGPIPE',
|
1146 |
+
'SIGALRM',
|
1147 |
+
'SIGTERM',
|
1148 |
+
'SIGSTKFLT',
|
1149 |
+
'SIGUSR1',
|
1150 |
+
'SIGUSR2',
|
1151 |
+
'SIGCHLD',
|
1152 |
+
'SIGCONT',
|
1153 |
+
'SIGSTOP',
|
1154 |
+
'SIGTSTP',
|
1155 |
+
'SIGTTIN',
|
1156 |
+
'SIGTTOU',
|
1157 |
+
'SIGURG',
|
1158 |
+
'SIGXCPU',
|
1159 |
+
'SIGXFSZ',
|
1160 |
+
'SIGVTALRM',
|
1161 |
+
'SIGPROF',
|
1162 |
+
'SIGWINCH',
|
1163 |
+
'SIGIO',
|
1164 |
+
'SIGPWR',
|
1165 |
+
'SIGSYS'
|
1166 |
+
);
|
1167 |
+
foreach ( $signals as $signal ) {
|
1168 |
+
if ( defined( $signal ) && $args[ 0 ] === constant( $signal ) ) {
|
1169 |
+
$this->log( sprintf( __( 'Signal "%s" is sent to script!', 'backwpup' ), $signal ), E_USER_ERROR );
|
1170 |
+
break;
|
1171 |
+
}
|
1172 |
+
}
|
1173 |
+
}
|
1174 |
+
|
1175 |
+
if ( function_exists( 'pcntl_get_last_error' ) ) {
|
1176 |
+
$error = pcntl_get_last_error();
|
1177 |
+
if ( ! empty( $error ) ) {
|
1178 |
+
$error_msg = pcntl_strerror( $error );
|
1179 |
+
if ( ! empty( $error_msg ) ) {
|
1180 |
+
$error = '(' . $error . ') ' . $error_msg;
|
1181 |
+
}
|
1182 |
+
}
|
1183 |
+
if ( ! empty( $error ) ) {
|
1184 |
+
$this->log( sprintf( __( 'System: %s', 'backwpup' ), $error ), E_USER_ERROR );
|
1185 |
+
}
|
1186 |
+
}
|
1187 |
+
|
1188 |
+
if ( function_exists( 'posix_get_last_error' ) && empty( $error ) ) {
|
1189 |
+
$error = posix_get_last_error();
|
1190 |
+
if ( ! empty( $error ) ) {
|
1191 |
+
$error_msg = posix_strerror( $error );
|
1192 |
+
if ( ! empty( $error_msg ) ) {
|
1193 |
+
$error = '(' . $error . ') ' . $error_msg;
|
1194 |
+
}
|
1195 |
+
}
|
1196 |
+
if ( ! empty( $error ) ) {
|
1197 |
+
$this->log( sprintf( __( 'System: %s', 'backwpup' ), $error ), E_USER_ERROR );
|
1198 |
+
}
|
1199 |
+
}
|
1200 |
+
|
1201 |
+
$this->do_restart( TRUE );
|
1202 |
+
}
|
1203 |
+
|
1204 |
+
/**
|
1205 |
+
*
|
1206 |
+
* The uncouth exception handler
|
1207 |
+
*
|
1208 |
+
* @param object $exception
|
1209 |
+
*/
|
1210 |
+
public function exception_handler( $exception ) {
|
1211 |
+
|
1212 |
+
$this->log( sprintf( __( 'Exception caught in %1$s: %2$s', 'backwpup' ), get_class( $exception ), $exception->getMessage() ), E_USER_ERROR, $exception->getFile(), $exception->getLine() );
|
1213 |
+
}
|
1214 |
+
|
1215 |
+
/**
|
1216 |
+
* Write messages to log file
|
1217 |
+
*
|
1218 |
+
* @param string $message the error message
|
1219 |
+
* @param int $type the error number (E_USER_ERROR,E_USER_WARNING,E_USER_NOTICE, ...)
|
1220 |
+
* @param string $file the full path of file with error (__FILE__)
|
1221 |
+
* @param int $line the line in that is the error (__LINE__)
|
1222 |
+
*
|
1223 |
+
* @return bool true
|
1224 |
+
*/
|
1225 |
+
public function log( $message, $type = E_USER_NOTICE, $file = '', $line = 0 ) {
|
1226 |
+
|
1227 |
+
// if error has been suppressed with an @
|
1228 |
+
if ( error_reporting() == 0 ) {
|
1229 |
+
return TRUE;
|
1230 |
+
}
|
1231 |
+
|
1232 |
+
//if first the type an second the message switch it on user errors
|
1233 |
+
if ( ! is_int( $type ) && is_int( $message ) && in_array( $message, array( 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384 ) ) ) {
|
1234 |
+
$temp = $message;
|
1235 |
+
$message = $type;
|
1236 |
+
$type = $temp;
|
1237 |
+
}
|
1238 |
+
|
1239 |
+
//json message if array or object
|
1240 |
+
if ( is_array( $message ) || is_object( $message ) ) {
|
1241 |
+
$message = json_encode( $message );
|
1242 |
+
}
|
1243 |
+
|
1244 |
+
//if not set line and file get it
|
1245 |
+
if ( $this->is_debug() ) {
|
1246 |
+
if ( empty( $file ) || empty( $line ) ) {
|
1247 |
+
$debug_info = debug_backtrace();
|
1248 |
+
$file = $debug_info[ 0 ][ 'file' ];
|
1249 |
+
$line = $debug_info[ 0 ][ 'line' ];
|
1250 |
+
}
|
1251 |
+
}
|
1252 |
+
|
1253 |
+
$error_or_warning = FALSE;
|
1254 |
+
|
1255 |
+
switch ( $type ) {
|
1256 |
+
case E_NOTICE:
|
1257 |
+
case E_USER_NOTICE:
|
1258 |
+
break;
|
1259 |
+
case E_WARNING:
|
1260 |
+
case E_CORE_WARNING:
|
1261 |
+
case E_COMPILE_WARNING:
|
1262 |
+
case E_USER_WARNING:
|
1263 |
+
$this->warnings ++;
|
1264 |
+
$error_or_warning = TRUE;
|
1265 |
+
$message = '%y' . __( 'WARNING:', 'backwpup' ) . ' ' . $message . '%n';
|
1266 |
+
break;
|
1267 |
+
case E_ERROR:
|
1268 |
+
case E_PARSE:
|
1269 |
+
case E_CORE_ERROR:
|
1270 |
+
case E_COMPILE_ERROR:
|
1271 |
+
case E_USER_ERROR:
|
1272 |
+
$this->errors ++;
|
1273 |
+
$error_or_warning = TRUE;
|
1274 |
+
$message = '%r' . __( 'ERROR:', 'backwpup' ) . ' ' . $message . '%n';
|
1275 |
+
break;
|
1276 |
+
case 8192: //E_DEPRECATED comes with php 5.3
|
1277 |
+
case 16384: //E_USER_DEPRECATED comes with php 5.3
|
1278 |
+
$message = __( 'DEPRECATED:', 'backwpup' ) . ' ' . $message;
|
1279 |
+
break;
|
1280 |
+
case E_STRICT:
|
1281 |
+
$message = __( 'STRICT NOTICE:', 'backwpup' ) . ' ' . $message;
|
1282 |
+
break;
|
1283 |
+
case E_RECOVERABLE_ERROR:
|
1284 |
+
$this->errors ++;
|
1285 |
+
$error_or_warning = TRUE;
|
1286 |
+
$message = '%r' . __( 'RECOVERABLE ERROR:', 'backwpup' ) . ' ' . $message . '%n';
|
1287 |
+
break;
|
1288 |
+
default:
|
1289 |
+
$message = $type . ': ' . $message;
|
1290 |
+
break;
|
1291 |
+
}
|
1292 |
+
|
1293 |
+
$in_file = $this->get_destination_path_replacement( $file );
|
1294 |
+
|
1295 |
+
//print message to cli
|
1296 |
+
if ( defined( 'WP_CLI' ) && WP_CLI ) {
|
1297 |
+
$output_message = str_replace( array( '…', ' ' ), array( '...', ' ' ), strip_tags( $message ) );
|
1298 |
+
if ( !call_user_func( array( '\cli\Shell', 'isPiped' ) ) ) {
|
1299 |
+
$output_message = call_user_func( array( '\cli\Colors', 'colorize' ), $output_message, true );
|
1300 |
+
} else {
|
1301 |
+
$output_message = str_replace( array( '%y', '%r', '%n' ), '', $output_message );
|
1302 |
+
}
|
1303 |
+
WP_CLI::line( $output_message );
|
1304 |
+
} elseif ( php_sapi_name() == 'cli' && defined( 'STDOUT' ) ) {
|
1305 |
+
$output_message = str_replace( array( '…', ' ' ), array( '...', ' ' ), strip_tags( $message ) ) . PHP_EOL;
|
1306 |
+
$output_message = str_replace( array( '%y', '%r', '%n' ), '', $output_message );
|
1307 |
+
fwrite( STDOUT, $output_message ) ;
|
1308 |
+
}
|
1309 |
+
|
1310 |
+
//timestamp for log file
|
1311 |
+
$debug_info = '';
|
1312 |
+
if ( $this->is_debug() ) {
|
1313 |
+
$debug_info = ' title="[Type: ' . $type . '|Line: ' . $line . '|File: ' . $in_file . '|Mem: ' . size_format( @memory_get_usage( TRUE ), 2 ) . '|Mem Max: ' . size_format( @memory_get_peak_usage( TRUE ), 2 ) . '|Mem Limit: ' . ini_get( 'memory_limit' ) . '|PID: ' . self::get_pid() . ' | UniqID: ' . $this->uniqid . '|Query\'s: ' . get_num_queries() . ']"';
|
1314 |
+
}
|
1315 |
+
$timestamp = '<span datetime="' . date( 'c' ) . '" ' . $debug_info . '>[' . date( 'd-M-Y H:i:s', current_time( 'timestamp' ) ) . ']</span> ';
|
1316 |
+
|
1317 |
+
//set last Message
|
1318 |
+
$output_message = esc_attr( $message );
|
1319 |
+
$output_message = str_replace( array( '%y', '%r', '%n' ), array( '<span style="background-color:#ffc000;color:#fff">', '<span style="background-color:red;color:#fff">', '</span>' ), $output_message );
|
1320 |
+
if ( $error_or_warning ) {
|
1321 |
+
$this->lasterrormsg = $output_message;
|
1322 |
+
} else {
|
1323 |
+
$this->lastmsg = $output_message;
|
1324 |
+
}
|
1325 |
+
//write log file
|
1326 |
+
if ( ! empty( $this->logfile ) ) {
|
1327 |
+
if ( ! file_put_contents( $this->logfile, $timestamp . $output_message . '<br />' . PHP_EOL, FILE_APPEND ) ) {
|
1328 |
+
$this->logfile = '';
|
1329 |
+
restore_error_handler();
|
1330 |
+
trigger_error( str_replace( array( '%y', '%r', '%n' ), '', $message ), $type );
|
1331 |
+
}
|
1332 |
+
|
1333 |
+
//write new log header
|
1334 |
+
if ( $error_or_warning && ! empty( $this->logfile ) ) {
|
1335 |
+
if ( $fd = fopen( $this->logfile, 'r+' ) ) {
|
1336 |
+
$found = 0;
|
1337 |
+
$file_pos = ftell( $fd );
|
1338 |
+
while ( ! feof( $fd ) ) {
|
1339 |
+
$line = fgets( $fd );
|
1340 |
+
if ( stripos( $line, '<meta name="backwpup_errors" content="' ) !== FALSE ) {
|
1341 |
+
fseek( $fd, $file_pos );
|
1342 |
+
fwrite( $fd, str_pad( '<meta name="backwpup_errors" content="' . $this->errors . '" />', 100 ) . PHP_EOL );
|
1343 |
+
$found ++;
|
1344 |
+
}
|
1345 |
+
if ( stripos( $line, '<meta name="backwpup_warnings" content="' ) !== FALSE ) {
|
1346 |
+
fseek( $fd, $file_pos );
|
1347 |
+
fwrite( $fd, str_pad( '<meta name="backwpup_warnings" content="' . $this->warnings . '" />', 100 ) . PHP_EOL );
|
1348 |
+
$found ++;
|
1349 |
+
}
|
1350 |
+
if ( $found >= 2 ) {
|
1351 |
+
break;
|
1352 |
+
}
|
1353 |
+
$file_pos = ftell( $fd );
|
1354 |
+
}
|
1355 |
+
fclose( $fd );
|
1356 |
+
}
|
1357 |
+
}
|
1358 |
+
|
1359 |
+
} else {
|
1360 |
+
trigger_error( str_replace( array( '%y', '%r', '%n' ), '', $message ), $type );
|
1361 |
+
}
|
1362 |
+
|
1363 |
+
//write working data
|
1364 |
+
$this->update_working_data( $error_or_warning );
|
1365 |
+
|
1366 |
+
//true for no more php error handling.
|
1367 |
+
return TRUE;
|
1368 |
+
}
|
1369 |
+
|
1370 |
+
/**
|
1371 |
+
*
|
1372 |
+
* Write the Working data to display the process or that i can executes again
|
1373 |
+
* The write will only done every second
|
1374 |
+
*
|
1375 |
+
* @global wpdb $wpdb
|
1376 |
+
*/
|
1377 |
+
public function update_working_data() {
|
1378 |
+
global $wpdb;
|
1379 |
+
/* @var wpdb $wpdb */
|
1380 |
+
|
1381 |
+
//to reduce server load
|
1382 |
+
if ( get_site_option( 'backwpup_cfg_jobwaittimems' ) > 0 && get_site_option( 'backwpup_cfg_jobwaittimems') <= 500000 ) {
|
1383 |
+
usleep( get_site_option( 'backwpup_cfg_jobwaittimems' ) );
|
1384 |
+
}
|
1385 |
+
|
1386 |
+
//check free memory
|
1387 |
+
$this->need_free_memory( '10M' );
|
1388 |
+
|
1389 |
+
//only run every 1 sec.
|
1390 |
+
$time_to_update = microtime( TRUE ) - $this->timestamp_last_update;
|
1391 |
+
if ( $time_to_update < 1 ) {
|
1392 |
+
return;
|
1393 |
+
}
|
1394 |
+
|
1395 |
+
//FCGI must have a permanent output so that it not broke
|
1396 |
+
if ( get_site_option( 'backwpup_cfg_jobdooutput' ) && ! defined( 'STDOUT' ) ) {
|
1397 |
+
echo str_repeat( ' ', 12 );
|
1398 |
+
flush();
|
1399 |
+
}
|
1400 |
+
|
1401 |
+
//set execution time again for 5 min
|
1402 |
+
@set_time_limit( 300 );
|
1403 |
+
|
1404 |
+
//check MySQL connection to WordPress Database and reconnect if needed
|
1405 |
+
$res = $wpdb->query( 'SELECT ' . time() );
|
1406 |
+
if ( $res === FALSE ) {
|
1407 |
+
$wpdb->db_connect();
|
1408 |
+
}
|
1409 |
+
|
1410 |
+
//calc sub step percent
|
1411 |
+
if ( $this->substeps_todo > 0 && $this->substeps_done > 0 ) {
|
1412 |
+
$this->substep_percent = round( $this->substeps_done / $this->substeps_todo * 100 );
|
1413 |
+
} else {
|
1414 |
+
$this->substep_percent = 1;
|
1415 |
+
}
|
1416 |
+
|
1417 |
+
//check if job aborted
|
1418 |
+
if ( ! file_exists( BackWPup::get_plugin_data( 'running_file' ) ) ) {
|
1419 |
+
if ( $this->step_working != 'END' ) {
|
1420 |
+
$this->end();
|
1421 |
+
}
|
1422 |
+
} else {
|
1423 |
+
$this->timestamp_last_update = microtime( TRUE ); //last update of working file
|
1424 |
+
$this->write_running_file();
|
1425 |
+
}
|
1426 |
+
}
|
1427 |
+
|
1428 |
+
public function write_running_file() {
|
1429 |
+
|
1430 |
+
$clone = clone $this;
|
1431 |
+
$data = '<?php //' . serialize( $clone );
|
1432 |
+
|
1433 |
+
$write = file_put_contents( BackWPup::get_plugin_data( 'running_file' ), $data );
|
1434 |
+
if ( !$write || $write < strlen( $data ) ) {
|
1435 |
+
unlink( BackWPup::get_plugin_data( 'running_file' ) );
|
1436 |
+
$this->log( __( 'Cannot write progress to working file. Job will be aborted.', 'backwpup' ), E_USER_ERROR );
|
1437 |
+
}
|
1438 |
+
}
|
1439 |
+
|
1440 |
+
/**
|
1441 |
+
*
|
1442 |
+
* Called on job stop makes cleanup and terminates the script
|
1443 |
+
*
|
1444 |
+
*/
|
1445 |
+
private function end() {
|
1446 |
+
|
1447 |
+
$this->step_working = 'END';
|
1448 |
+
$this->substeps_todo = 1;
|
1449 |
+
$abort = FALSE;
|
1450 |
+
|
1451 |
+
if ( ! file_exists( BackWPup::get_plugin_data( 'running_file' ) ) ) {
|
1452 |
+
if ( ! $this->user_abort )
|
1453 |
+
$abort = TRUE;
|
1454 |
+
$this->log( __( 'Aborted by user!', 'backwpup' ), E_USER_ERROR );
|
1455 |
+
}
|
1456 |
+
|
1457 |
+
//delete old logs
|
1458 |
+
if ( get_site_option( 'backwpup_cfg_maxlogs' ) ) {
|
1459 |
+
$log_file_list = array();
|
1460 |
+
$log_folder = trailingslashit( dirname( $this->logfile ) );
|
1461 |
+
if ( is_readable( $log_folder ) && $dir = opendir( $log_folder ) ) { //make file list
|
1462 |
+
while ( ( $file = readdir( $dir ) ) !== FALSE ) {
|
1463 |
+
if ( strpos( $file, 'backwpup_log_' ) == 0 && FALSE !== strpos( $file, '.html' ) )
|
1464 |
+
$log_file_list[ filemtime( $log_folder . $file ) ] = $file;
|
1465 |
+
}
|
1466 |
+
closedir( $dir );
|
1467 |
+
}
|
1468 |
+
if ( sizeof( $log_file_list ) > 0 ) {
|
1469 |
+
krsort( $log_file_list, SORT_NUMERIC );
|
1470 |
+
$num_delete_files = 0;
|
1471 |
+
$i = -1;
|
1472 |
+
foreach ( $log_file_list AS $log_file ) {
|
1473 |
+
$i ++;
|
1474 |
+
if ( $i < get_site_option( 'backwpup_cfg_maxlogs' ) ) {
|
1475 |
+
continue;
|
1476 |
+
}
|
1477 |
+
unlink( $log_folder . $log_file );
|
1478 |
+
$num_delete_files ++;
|
1479 |
+
}
|
1480 |
+
if ( $num_delete_files > 0 )
|
1481 |
+
$this->log( sprintf( _n( 'One old log deleted', '%d old logs deleted', $num_delete_files, 'backwpup' ), $num_delete_files ) );
|
1482 |
+
}
|
1483 |
+
}
|
1484 |
+
|
1485 |
+
//Display job working time
|
1486 |
+
if ( $this->errors > 0 )
|
1487 |
+
$this->log( sprintf( __( 'Job has ended with errors in %s seconds. You must resolve the errors for correct execution.', 'backwpup' ), current_time( 'timestamp' ) - $this->start_time ), E_USER_ERROR );
|
1488 |
+
elseif ( $this->warnings > 0 )
|
1489 |
+
$this->log( sprintf( __( 'Job finished with warnings in %s seconds. Please resolve them for correct execution.', 'backwpup' ), current_time( 'timestamp' ) - $this->start_time ), E_USER_WARNING );
|
1490 |
+
else
|
1491 |
+
$this->log( sprintf( __( 'Job done in %s seconds.', 'backwpup' ), current_time( 'timestamp' ) - $this->start_time, E_USER_NOTICE ) );
|
1492 |
+
|
1493 |
+
//Update job options
|
1494 |
+
if ( ! empty( $this->job[ 'jobid' ] ) ) {
|
1495 |
+
$this->job[ 'lastruntime' ] = current_time( 'timestamp' ) - $this->start_time;
|
1496 |
+
BackWPup_Option::update( $this->job[ 'jobid' ], 'lastruntime', $this->job[ 'lastruntime' ] );
|
1497 |
+
}
|
1498 |
+
|
1499 |
+
//write header info
|
1500 |
+
if ( ! empty( $this->logfile ) ) {
|
1501 |
+
|
1502 |
+
if ( $fd = fopen( $this->logfile, 'r+' ) ) {
|
1503 |
+
$filepos = ftell( $fd );
|
1504 |
+
$found = 0;
|
1505 |
+
while ( ! feof( $fd ) ) {
|
1506 |
+
$line = fgets( $fd );
|
1507 |
+
if ( stripos( $line, '<meta name="backwpup_jobruntime"' ) !== FALSE ) {
|
1508 |
+
fseek( $fd, $filepos );
|
1509 |
+
fwrite( $fd, str_pad( '<meta name="backwpup_jobruntime" content="' . $this->job[ 'lastruntime' ] . '" />', 100 ) . PHP_EOL );
|
1510 |
+
$found ++;
|
1511 |
+
}
|
1512 |
+
if ( stripos( $line, '<meta name="backwpup_backupfilesize"' ) !== FALSE ) {
|
1513 |
+
fseek( $fd, $filepos );
|
1514 |
+
fwrite( $fd, str_pad( '<meta name="backwpup_backupfilesize" content="' . $this->backup_filesize . '" />', 100 ) . PHP_EOL );
|
1515 |
+
$found ++;
|
1516 |
+
}
|
1517 |
+
if ( $found >= 2 ) {
|
1518 |
+
break;
|
1519 |
+
}
|
1520 |
+
$filepos = ftell( $fd );
|
1521 |
+
}
|
1522 |
+
fclose( $fd );
|
1523 |
+
}
|
1524 |
+
|
1525 |
+
//logfile end
|
1526 |
+
file_put_contents( $this->logfile, "</body>" . PHP_EOL . "</html>", FILE_APPEND );
|
1527 |
+
|
1528 |
+
//Send mail with log
|
1529 |
+
$sendmail = FALSE;
|
1530 |
+
if ( $this->errors > 0 && ! empty( $this->job[ 'mailerroronly' ] ) && ! empty( $this->job[ 'mailaddresslog' ] ) )
|
1531 |
+
$sendmail = TRUE;
|
1532 |
+
if ( empty( $this->job[ 'mailerroronly' ] ) && ! empty( $this->job[ 'mailaddresslog' ] ) )
|
1533 |
+
$sendmail = TRUE;
|
1534 |
+
if ( $sendmail ) {
|
1535 |
+
//special subject
|
1536 |
+
$status = __( 'SUCCESSFUL', 'backwpup' );
|
1537 |
+
$priority = 3; //Normal
|
1538 |
+
if ( $this->warnings > 0 ) {
|
1539 |
+
$status = __( 'WARNING', 'backwpup' );
|
1540 |
+
$priority = 2; //High
|
1541 |
+
}
|
1542 |
+
if ( $this->errors > 0 ) {
|
1543 |
+
$status = __( 'ERROR', 'backwpup' );
|
1544 |
+
$priority = 1; //Highest
|
1545 |
+
}
|
1546 |
+
|
1547 |
+
$subject = sprintf( __( '[%3$s] BackWPup log %1$s: %2$s', 'backwpup' ), date_i18n( 'd-M-Y H:i', $this->start_time, TRUE ), esc_attr( $this->job[ 'name' ] ), $status );
|
1548 |
+
$headers = array();
|
1549 |
+
$headers[] = 'Content-Type: text/html; charset='. get_bloginfo( 'charset' );
|
1550 |
+
/* $headers[] = 'X-Priority: ' . $priority; */ // Priority not working with header setting
|
1551 |
+
if ( ! empty( $this->job[ 'mailaddresssenderlog' ] ) ) {
|
1552 |
+
if ( FALSE === $start_mail = strpos( $this->job[ 'mailaddresssenderlog' ], '<' ) ) {
|
1553 |
+
if ( FALSE === strpos( $this->job[ 'mailaddresssenderlog' ], '@' ) ) {
|
1554 |
+
$this->job[ 'mailaddresssenderlog' ] = '"' . str_replace( array( '<','>','@' ), '', $this->job[ 'mailaddresssenderlog' ] ) . '" <' . get_bloginfo( 'admin_email' ). '>';
|
1555 |
+
}
|
1556 |
+
}
|
1557 |
+
elseif ( FALSE === strpos( $this->job[ 'mailaddresssenderlog' ], '>', $start_mail ) ) {
|
1558 |
+
$this->job[ 'mailaddresssenderlog' ] = '"' . str_replace( array( '<','>','@' ), '', substr( $this->job[ 'mailaddresssenderlog' ], 0, $start_mail ) ) . '" <' . get_bloginfo( 'admin_email' ). '>';
|
1559 |
+
}
|
1560 |
+
|
1561 |
+
$headers[] = 'From: ' . $this->job[ 'mailaddresssenderlog' ];
|
1562 |
+
}
|
1563 |
+
|
1564 |
+
wp_mail( $this->job[ 'mailaddresslog' ], $subject, file_get_contents( $this->logfile ), $headers );
|
1565 |
+
}
|
1566 |
+
}
|
1567 |
+
|
1568 |
+
//set done
|
1569 |
+
$this->substeps_done = 1;
|
1570 |
+
$this->steps_done[ ] = 'END';
|
1571 |
+
|
1572 |
+
//clean up temp
|
1573 |
+
self::clean_temp_folder();
|
1574 |
+
|
1575 |
+
//remove shutdown action
|
1576 |
+
remove_action( 'shutdown', array( $this, 'shutdown' ) );
|
1577 |
+
restore_exception_handler();
|
1578 |
+
restore_error_handler();
|
1579 |
+
if ( ! empty( $this->run[ 'PHP' ] ) ) {
|
1580 |
+
@ini_set( 'log_errors', $this->run[ 'PHP' ][ 'INI' ][ 'LOG_ERRORS' ] );
|
1581 |
+
@ini_set( 'error_log', $this->run[ 'PHP' ][ 'INI' ][ 'ERROR_LOG' ] );
|
1582 |
+
@ini_set( 'display_errors', $this->run[ 'PHP' ][ 'INI' ][ 'DISPLAY_ERRORS' ] );
|
1583 |
+
@ini_set( 'html_errors', $this->run[ 'PHP' ][ 'INI' ][ 'HTML_ERRORS' ] );
|
1584 |
+
@ini_set( 'zlib.output_compression', $this->run[ 'PHP' ][ 'INI' ][ 'ZLIB_OUTPUT_COMPRESSION' ] );
|
1585 |
+
@ini_set( 'implicit_flush', $this->run[ 'PHP' ][ 'INI' ][ 'IMPLICIT_FLUSH' ] );
|
1586 |
+
@ini_set( 'error_reporting', $this->run[ 'PHP' ][ 'INI' ][ 'ERROR_REPORTING' ] );
|
1587 |
+
@ini_set( 'report_memleaks', $this->run[ 'PHP' ][ 'INI' ][ 'REPORT_MEMLEAKS' ] );
|
1588 |
+
if ( !empty( $this->run[ 'PHP' ][ 'ENV' ][ 'TEMPDIR' ] ) ) {
|
1589 |
+
@putenv('TMPDIR=' . $this->run[ 'PHP' ][ 'ENV' ][ 'TEMPDIR' ] );
|
1590 |
+
}
|
1591 |
+
}
|
1592 |
+
|
1593 |
+
BackWPup_Cron::check_cleanup();
|
1594 |
+
|
1595 |
+
if ( $abort )
|
1596 |
+
exit();
|
1597 |
+
}
|
1598 |
+
|
1599 |
+
|
1600 |
+
public static function user_abort() {
|
1601 |
+
|
1602 |
+
/* @var $job_object BackWPup_Job */
|
1603 |
+
$job_object = BackWPup_Job::get_working_data();
|
1604 |
+
|
1605 |
+
unlink( BackWPup::get_plugin_data( 'running_file' ) );
|
1606 |
+
|
1607 |
+
//if job not working currently abort it this way for message
|
1608 |
+
$not_worked_time = microtime( TRUE ) - $job_object->timestamp_last_update;
|
1609 |
+
$restart_time = get_site_option( 'backwpup_cfg_jobmaxexecutiontime' );
|
1610 |
+
if ( empty( $restart_time ) )
|
1611 |
+
$restart_time = 60;
|
1612 |
+
if ( empty( $job_object->pid ) || $not_worked_time > $restart_time ) {
|
1613 |
+
$job_object->user_abort = TRUE;
|
1614 |
+
$job_object->update_working_data();
|
1615 |
+
}
|
1616 |
+
|
1617 |
+
}
|
1618 |
+
|
1619 |
+
/**
|
1620 |
+
*
|
1621 |
+
* Increase automatically the memory that is needed
|
1622 |
+
*
|
1623 |
+
* @param int|string $memneed of the needed memory
|
1624 |
+
*/
|
1625 |
+
public function need_free_memory( $memneed ) {
|
1626 |
+
|
1627 |
+
//need memory
|
1628 |
+
$needmemory = @memory_get_usage( TRUE ) + self::convert_hr_to_bytes( $memneed );
|
1629 |
+
// increase Memory
|
1630 |
+
if ( $needmemory > self::convert_hr_to_bytes( ini_get( 'memory_limit' ) ) ) {
|
1631 |
+
$newmemory = round( $needmemory / 1024 / 1024 ) + 1 . 'M';
|
1632 |
+
if ( $needmemory >= 1073741824 )
|
1633 |
+
$newmemory = round( $needmemory / 1024 / 1024 / 1024 ) . 'G';
|
1634 |
+
@ini_set( 'memory_limit', $newmemory );
|
1635 |
+
}
|
1636 |
+
}
|
1637 |
+
|
1638 |
+
|
1639 |
+
/**
|
1640 |
+
*
|
1641 |
+
* Converts hr to bytes
|
1642 |
+
*
|
1643 |
+
* @param $size
|
1644 |
+
* @return int
|
1645 |
+
*/
|
1646 |
+
public static function convert_hr_to_bytes( $size ) {
|
1647 |
+
$size = strtolower( $size );
|
1648 |
+
$bytes = (int) $size;
|
1649 |
+
if ( strpos( $size, 'k' ) !== FALSE )
|
1650 |
+
$bytes = intval( $size ) * 1024;
|
1651 |
+
elseif ( strpos( $size, 'm' ) !== FALSE )
|
1652 |
+
$bytes = intval($size) * 1024 * 1024;
|
1653 |
+
elseif ( strpos( $size, 'g' ) !== FALSE )
|
1654 |
+
$bytes = intval( $size ) * 1024 * 1024 * 1024;
|
1655 |
+
return $bytes;
|
1656 |
+
}
|
1657 |
+
|
1658 |
+
/**
|
1659 |
+
*
|
1660 |
+
* Callback for the CURLOPT_READFUNCTION that submit the transferred bytes
|
1661 |
+
* to build the process bar
|
1662 |
+
*
|
1663 |
+
* @param $curl_handle
|
1664 |
+
* @param $file_handle
|
1665 |
+
* @param $read_count
|
1666 |
+
* @return string
|
1667 |
+
* @internal param $out
|
1668 |
+
*/
|
1669 |
+
public function curl_read_callback( $curl_handle, $file_handle, $read_count ) {
|
1670 |
+
|
1671 |
+
$data = NULL;
|
1672 |
+
if ( ! empty( $file_handle ) && is_numeric( $read_count ) )
|
1673 |
+
$data = fread( $file_handle, $read_count );
|
1674 |
+
|
1675 |
+
if ( $this->job[ 'backuptype' ] == 'sync' )
|
1676 |
+
return $data;
|
1677 |
+
|
1678 |
+
$length = ( is_numeric( $read_count ) ) ? $read_count : strlen( $read_count );
|
1679 |
+
$this->substeps_done = $this->substeps_done + $length;
|
1680 |
+
$this->update_working_data();
|
1681 |
+
|
1682 |
+
return $data;
|
1683 |
+
}
|
1684 |
+
|
1685 |
+
|
1686 |
+
/**
|
1687 |
+
*
|
1688 |
+
* Get the mime type of a file
|
1689 |
+
*
|
1690 |
+
* @param string $file The full file name
|
1691 |
+
*
|
1692 |
+
* @return bool|string the mime type or false
|
1693 |
+
*/
|
1694 |
+
public static function get_mime_type( $file ) {
|
1695 |
+
|
1696 |
+
if ( is_dir( $file ) || is_link( $file ) ) {
|
1697 |
+
return 'application/octet-stream';
|
1698 |
+
}
|
1699 |
+
|
1700 |
+
$mime_types = array(
|
1701 |
+
'zip' => 'application/zip',
|
1702 |
+
'gz' => 'application/gzip',
|
1703 |
+
'bz2' => 'application/x-bzip',
|
1704 |
+
'tar' => 'application/x-tar',
|
1705 |
+
'3gp' => 'video/3gpp',
|
1706 |
+
'ai' => 'application/postscript',
|
1707 |
+
'aif' => 'audio/x-aiff',
|
1708 |
+
'aifc' => 'audio/x-aiff',
|
1709 |
+
'aiff' => 'audio/x-aiff',
|
1710 |
+
'asc' => 'text/plain',
|
1711 |
+
'atom' => 'application/atom+xml',
|
1712 |
+
'au' => 'audio/basic',
|
1713 |
+
'avi' => 'video/x-msvideo',
|
1714 |
+
'bcpio' => 'application/x-bcpio',
|
1715 |
+
'bin' => 'application/octet-stream',
|
1716 |
+
'bmp' => 'image/bmp',
|
1717 |
+
'cdf' => 'application/x-netcdf',
|
1718 |
+
'cgm' => 'image/cgm',
|
1719 |
+
'class' => 'application/octet-stream',
|
1720 |
+
'cpio' => 'application/x-cpio',
|
1721 |
+
'cpt' => 'application/mac-compactpro',
|
1722 |
+
'csh' => 'application/x-csh',
|
1723 |
+
'css' => 'text/css',
|
1724 |
+
'dcr' => 'application/x-director',
|
1725 |
+
'dif' => 'video/x-dv',
|
1726 |
+
'dir' => 'application/x-director',
|
1727 |
+
'djv' => 'image/vnd.djvu',
|
1728 |
+
'djvu' => 'image/vnd.djvu',
|
1729 |
+
'dll' => 'application/octet-stream',
|
1730 |
+
'dmg' => 'application/octet-stream',
|
1731 |
+
'dms' => 'application/octet-stream',
|
1732 |
+
'doc' => 'application/msword',
|
1733 |
+
'dtd' => 'application/xml-dtd',
|
1734 |
+
'dv' => 'video/x-dv',
|
1735 |
+
'dvi' => 'application/x-dvi',
|
1736 |
+
'dxr' => 'application/x-director',
|
1737 |
+
'eps' => 'application/postscript',
|
1738 |
+
'etx' => 'text/x-setext',
|
1739 |
+
'exe' => 'application/octet-stream',
|
1740 |
+
'ez' => 'application/andrew-inset',
|
1741 |
+
'flv' => 'video/x-flv',
|
1742 |
+
'gif' => 'image/gif',
|
1743 |
+
'gram' => 'application/srgs',
|
1744 |
+
'grxml' => 'application/srgs+xml',
|
1745 |
+
'gtar' => 'application/x-gtar',
|
1746 |
+
'hdf' => 'application/x-hdf',
|
1747 |
+
'hqx' => 'application/mac-binhex40',
|
1748 |
+
'htm' => 'text/html',
|
1749 |
+
'html' => 'text/html',
|
1750 |
+
'ice' => 'x-conference/x-cooltalk',
|
1751 |
+
'ico' => 'image/x-icon',
|
1752 |
+
'ics' => 'text/calendar',
|
1753 |
+
'ief' => 'image/ief',
|
1754 |
+
'ifb' => 'text/calendar',
|
1755 |
+
'iges' => 'model/iges',
|
1756 |
+
'igs' => 'model/iges',
|
1757 |
+
'jnlp' => 'application/x-java-jnlp-file',
|
1758 |
+
'jp2' => 'image/jp2',
|
1759 |
+
'jpe' => 'image/jpeg',
|
1760 |
+
'jpeg' => 'image/jpeg',
|
1761 |
+
'jpg' => 'image/jpeg',
|
1762 |
+
'js' => 'application/x-javascript',
|
1763 |
+
'kar' => 'audio/midi',
|
1764 |
+
'latex' => 'application/x-latex',
|
1765 |
+
'lha' => 'application/octet-stream',
|
1766 |
+
'lzh' => 'application/octet-stream',
|
1767 |
+
'm3u' => 'audio/x-mpegurl',
|
1768 |
+
'm4a' => 'audio/mp4a-latm',
|
1769 |
+
'm4p' => 'audio/mp4a-latm',
|
1770 |
+
'm4u' => 'video/vnd.mpegurl',
|
1771 |
+
'm4v' => 'video/x-m4v',
|
1772 |
+
'mac' => 'image/x-macpaint',
|
1773 |
+
'man' => 'application/x-troff-man',
|
1774 |
+
'mathml' => 'application/mathml+xml',
|
1775 |
+
'me' => 'application/x-troff-me',
|
1776 |
+
'mesh' => 'model/mesh',
|
1777 |
+
'mid' => 'audio/midi',
|
1778 |
+
'midi' => 'audio/midi',
|
1779 |
+
'mif' => 'application/vnd.mif',
|
1780 |
+
'mov' => 'video/quicktime',
|
1781 |
+
'movie' => 'video/x-sgi-movie',
|
1782 |
+
'mp2' => 'audio/mpeg',
|
1783 |
+
'mp3' => 'audio/mpeg',
|
1784 |
+
'mp4' => 'video/mp4',
|
1785 |
+
'mpe' => 'video/mpeg',
|
1786 |
+
'mpeg' => 'video/mpeg',
|
1787 |
+
'mpg' => 'video/mpeg',
|
1788 |
+
'mpga' => 'audio/mpeg',
|
1789 |
+
'ms' => 'application/x-troff-ms',
|
1790 |
+
'msh' => 'model/mesh',
|
1791 |
+
'mxu' => 'video/vnd.mpegurl',
|
1792 |
+
'nc' => 'application/x-netcdf',
|
1793 |
+
'oda' => 'application/oda',
|
1794 |
+
'ogg' => 'application/ogg',
|
1795 |
+
'ogv' => 'video/ogv',
|
1796 |
+
'pbm' => 'image/x-portable-bitmap',
|
1797 |
+
'pct' => 'image/pict',
|
1798 |
+
'pdb' => 'chemical/x-pdb',
|
1799 |
+
'pdf' => 'application/pdf',
|
1800 |
+
'pgm' => 'image/x-portable-graymap',
|
1801 |
+
'pgn' => 'application/x-chess-pgn',
|
1802 |
+
'pic' => 'image/pict',
|
1803 |
+
'pict' => 'image/pict',
|
1804 |
+
'png' => 'image/png',
|
1805 |
+
'pnm' => 'image/x-portable-anymap',
|
1806 |
+
'pnt' => 'image/x-macpaint',
|
1807 |
+
'pntg' => 'image/x-macpaint',
|
1808 |
+
'ppm' => 'image/x-portable-pixmap',
|
1809 |
+
'ppt' => 'application/vnd.ms-powerpoint',
|
1810 |
+
'ps' => 'application/postscript',
|
1811 |
+
'qt' => 'video/quicktime',
|
1812 |
+
'qti' => 'image/x-quicktime',
|
1813 |
+
'qtif' => 'image/x-quicktime',
|
1814 |
+
'ra' => 'audio/x-pn-realaudio',
|
1815 |
+
'ram' => 'audio/x-pn-realaudio',
|
1816 |
+
'ras' => 'image/x-cmu-raster',
|
1817 |
+
'rdf' => 'application/rdf+xml',
|
1818 |
+
'rgb' => 'image/x-rgb',
|
1819 |
+
'rm' => 'application/vnd.rn-realmedia',
|
1820 |
+
'roff' => 'application/x-troff',
|
1821 |
+
'rtf' => 'text/rtf',
|
1822 |
+
'rtx' => 'text/richtext',
|
1823 |
+
'sgm' => 'text/sgml',
|
1824 |
+
'sgml' => 'text/sgml',
|
1825 |
+
'sh' => 'application/x-sh',
|
1826 |
+
'shar' => 'application/x-shar',
|
1827 |
+
'silo' => 'model/mesh',
|
1828 |
+
'sit' => 'application/x-stuffit',
|
1829 |
+
'skd' => 'application/x-koan',
|
1830 |
+
'skm' => 'application/x-koan',
|
1831 |
+
'skp' => 'application/x-koan',
|
1832 |
+
'skt' => 'application/x-koan',
|
1833 |
+
'smi' => 'application/smil',
|
1834 |
+
'smil' => 'application/smil',
|
1835 |
+
'snd' => 'audio/basic',
|
1836 |
+
'so' => 'application/octet-stream',
|
1837 |
+
'spl' => 'application/x-futuresplash',
|
1838 |
+
'src' => 'application/x-wais-source',
|
1839 |
+
'sv4cpio' => 'application/x-sv4cpio',
|
1840 |
+
'sv4crc' => 'application/x-sv4crc',
|
1841 |
+
'svg' => 'image/svg+xml',
|
1842 |
+
'swf' => 'application/x-shockwave-flash',
|
1843 |
+
't' => 'application/x-troff',
|
1844 |
+
'tcl' => 'application/x-tcl',
|
1845 |
+
'tex' => 'application/x-tex',
|
1846 |
+
'texi' => 'application/x-texinfo',
|
1847 |
+
'texinfo' => 'application/x-texinfo',
|
1848 |
+
'tif' => 'image/tiff',
|
1849 |
+
'tiff' => 'image/tiff',
|
1850 |
+
'tr' => 'application/x-troff',
|
1851 |
+
'tsv' => 'text/tab-separated-values',
|
1852 |
+
'txt' => 'text/plain',
|
1853 |
+
'ustar' => 'application/x-ustar',
|
1854 |
+
'vcd' => 'application/x-cdlink',
|
1855 |
+
'vrml' => 'model/vrml',
|
1856 |
+
'vxml' => 'application/voicexml+xml',
|
1857 |
+
'wav' => 'audio/x-wav',
|
1858 |
+
'wbmp' => 'image/vnd.wap.wbmp',
|
1859 |
+
'wbxml' => 'application/vnd.wap.wbxml',
|
1860 |
+
'webm' => 'video/webm',
|
1861 |
+
'wml' => 'text/vnd.wap.wml',
|
1862 |
+
'wmlc' => 'application/vnd.wap.wmlc',
|
1863 |
+
'wmls' => 'text/vnd.wap.wmlscript',
|
1864 |
+
'wmlsc' => 'application/vnd.wap.wmlscriptc',
|
1865 |
+
'wmv' => 'video/x-ms-wmv',
|
1866 |
+
'wrl' => 'model/vrml',
|
1867 |
+
'xbm' => 'image/x-xbitmap',
|
1868 |
+
'xht' => 'application/xhtml+xml',
|
1869 |
+
'xhtml' => 'application/xhtml+xml',
|
1870 |
+
'xls' => 'application/vnd.ms-excel',
|
1871 |
+
'xml' => 'application/xml',
|
1872 |
+
'xpm' => 'image/x-xpixmap',
|
1873 |
+
'xsl' => 'application/xml',
|
1874 |
+
'xslt' => 'application/xslt+xml',
|
1875 |
+
'xul' => 'application/vnd.mozilla.xul+xml',
|
1876 |
+
'xwd' => 'image/x-xwindowdump',
|
1877 |
+
'xyz' => 'chemical/x-xyz',
|
1878 |
+
);
|
1879 |
+
|
1880 |
+
$filesuffix = pathinfo( $file, PATHINFO_EXTENSION );
|
1881 |
+
$suffix = strtolower( $filesuffix );
|
1882 |
+
if ( isset( $mime_types[ $suffix ] ) ) {
|
1883 |
+
return $mime_types[ $suffix ];
|
1884 |
+
}
|
1885 |
+
|
1886 |
+
if ( ! is_readable( $file ) ) {
|
1887 |
+
return 'application/octet-stream';
|
1888 |
+
}
|
1889 |
+
|
1890 |
+
if ( function_exists( 'fileinfo' ) ) {
|
1891 |
+
$finfo = finfo_open( FILEINFO_MIME_TYPE );
|
1892 |
+
$mime = finfo_file( $finfo, $file );
|
1893 |
+
}
|
1894 |
+
|
1895 |
+
if ( empty( $mime ) && function_exists( 'mime_content_type' ) ) {
|
1896 |
+
$mime = mime_content_type( $file );
|
1897 |
+
}
|
1898 |
+
|
1899 |
+
if ( ! empty( $mime ) ) {
|
1900 |
+
return $mime;
|
1901 |
+
}
|
1902 |
+
|
1903 |
+
return 'application/octet-stream';
|
1904 |
+
}
|
1905 |
+
|
1906 |
+
|
1907 |
+
/**
|
1908 |
+
*
|
1909 |
+
* Gifs back a array of files to backup in the selected folder
|
1910 |
+
*
|
1911 |
+
* @param string $folder the folder to get the files from
|
1912 |
+
*
|
1913 |
+
* @return array files to backup
|
1914 |
+
*/
|
1915 |
+
public function get_files_in_folder( $folder ) {
|
1916 |
+
|
1917 |
+
$files = array();
|
1918 |
+
$folder = trailingslashit( $folder );
|
1919 |
+
|
1920 |
+
if ( ! is_dir( $folder ) ) {
|
1921 |
+
$this->log( sprintf( _x( 'Folder %s not exists', 'Folder name', 'backwpup' ), $folder ), E_USER_WARNING );
|
1922 |
+
return $files;
|
1923 |
+
}
|
1924 |
+
|
1925 |
+
if ( ! is_readable( $folder ) ) {
|
1926 |
+
$this->log( sprintf( _x( 'Folder %s not readable', 'Folder name', 'backwpup' ), $folder ), E_USER_WARNING );
|
1927 |
+
return $files;
|
1928 |
+
}
|
1929 |
+
|
1930 |
+
if ( $dir = opendir( $folder ) ) {
|
1931 |
+
while ( FALSE !== ( $file = readdir( $dir ) ) ) {
|
1932 |
+
if ( in_array( $file, array( '.', '..' ) ) || is_dir( $folder . $file ) ) {
|
1933 |
+
continue;
|
1934 |
+
}
|
1935 |
+
foreach ( $this->exclude_from_backup as $exclusion ) { //exclude files
|
1936 |
+
$exclusion = trim( $exclusion );
|
1937 |
+
if ( FALSE !== stripos( $folder . $file, trim( $exclusion ) ) && ! empty( $exclusion ) ) {
|
1938 |
+
continue 2;
|
1939 |
+
}
|
1940 |
+
}
|
1941 |
+
if ( $this->job[ 'backupexcludethumbs' ] && strpos( $folder, BackWPup_File::get_upload_dir() ) !== FALSE && preg_match( "/\-[0-9]{1,4}x[0-9]{1,4}.+\.(jpg|png|gif)$/i", $file ) ) {
|
1942 |
+
continue;
|
1943 |
+
}
|
1944 |
+
if ( is_link( $folder . $file ) ) {
|
1945 |
+
$this->log( sprintf( __( 'Link "%s" not following.', 'backwpup' ), $folder . $file ), E_USER_WARNING );
|
1946 |
+
} elseif ( ! is_readable( $folder . $file ) ) {
|
1947 |
+
$this->log( sprintf( __( 'File "%s" is not readable!', 'backwpup' ), $folder . $file ), E_USER_WARNING );
|
1948 |
+
} else {
|
1949 |
+
$file_size = filesize( $folder . $file );
|
1950 |
+
if ( ! is_int( $file_size ) || $file_size < 0 || $file_size > 2147483647 ) {
|
1951 |
+
$this->log( sprintf( __( 'File size of “%s” cannot be retrieved. File might be too large and will not be added to queue.', 'backwpup' ), $folder . $file . ' ' . $file_size ), E_USER_WARNING );
|
1952 |
+
continue;
|
1953 |
+
}
|
1954 |
+
$files[] = $folder . $file;
|
1955 |
+
}
|
1956 |
+
}
|
1957 |
+
closedir( $dir );
|
1958 |
+
}
|
1959 |
+
|
1960 |
+
return $files;
|
1961 |
+
}
|
1962 |
+
|
1963 |
+
/**
|
1964 |
+
* create manifest file
|
1965 |
+
* @return bool
|
1966 |
+
*/
|
1967 |
+
public function create_manifest( ) {
|
1968 |
+
|
1969 |
+
$this->substeps_todo = 3;
|
1970 |
+
|
1971 |
+
$this->log( sprintf( __( '%d. Trying to generate a manifest file …', 'backwpup' ), $this->steps_data[ $this->step_working ][ 'STEP_TRY' ] ) );
|
1972 |
+
|
1973 |
+
//build manifest
|
1974 |
+
$manifest = array();
|
1975 |
+
// add blog information
|
1976 |
+
$manifest[ 'blog_info' ][ 'url' ] = home_url();
|
1977 |
+
$manifest[ 'blog_info' ][ 'wpurl' ] = site_url();
|
1978 |
+
$manifest[ 'blog_info' ][ 'prefix' ] = $GLOBALS[ 'wpdb' ]->prefix;
|
1979 |
+
$manifest[ 'blog_info' ][ 'description' ] = get_option('blogdescription');
|
1980 |
+
$manifest[ 'blog_info' ][ 'stylesheet_directory' ] = get_template_directory_uri();
|
1981 |
+
$manifest[ 'blog_info' ][ 'activate_plugins' ] = wp_get_active_and_valid_plugins();
|
1982 |
+
$manifest[ 'blog_info' ][ 'activate_theme' ] = wp_get_theme()->get('Name');
|
1983 |
+
$manifest[ 'blog_info' ][ 'admin_email' ] = get_option('admin_email');
|
1984 |
+
$manifest[ 'blog_info' ][ 'charset' ] = get_bloginfo( 'charset' );
|
1985 |
+
$manifest[ 'blog_info' ][ 'version' ] = BackWPup::get_plugin_data( 'wp_version' );
|
1986 |
+
$manifest[ 'blog_info' ][ 'backwpup_version' ] = BackWPup::get_plugin_data( 'version' );
|
1987 |
+
$manifest[ 'blog_info' ][ 'language' ] = get_bloginfo( 'language' );
|
1988 |
+
$manifest[ 'blog_info' ][ 'name' ] = get_bloginfo( 'name' );
|
1989 |
+
$manifest[ 'blog_info' ][ 'abspath' ] = ABSPATH;
|
1990 |
+
$manifest[ 'blog_info' ][ 'uploads' ] = wp_upload_dir();
|
1991 |
+
$manifest[ 'blog_info' ][ 'contents' ][ 'basedir' ] = WP_CONTENT_DIR;
|
1992 |
+
$manifest[ 'blog_info' ][ 'contents' ][ 'baseurl' ] = WP_CONTENT_URL;
|
1993 |
+
$manifest[ 'blog_info' ][ 'plugins' ][ 'basedir' ] = WP_PLUGIN_DIR;
|
1994 |
+
$manifest[ 'blog_info' ][ 'plugins' ][ 'baseurl' ] = WP_PLUGIN_URL;
|
1995 |
+
$manifest[ 'blog_info' ][ 'themes' ][ 'basedir' ] = get_theme_root();
|
1996 |
+
$manifest[ 'blog_info' ][ 'themes' ][ 'baseurl' ] = get_theme_root_uri();
|
1997 |
+
// add job settings
|
1998 |
+
$manifest[ 'job_settings' ] = $this->job;
|
1999 |
+
// add archive info
|
2000 |
+
foreach( $this->additional_files_to_backup as $file ) {
|
2001 |
+
$manifest[ 'archive' ][ 'extra_files' ][] = basename( $file );
|
2002 |
+
}
|
2003 |
+
if ( isset( $this->steps_data[ 'JOB_FILE' ] ) ) {
|
2004 |
+
if ( $this->job[ 'backuproot'] )
|
2005 |
+
$manifest[ 'archive' ][ 'abspath' ] = trailingslashit( $this->get_destination_path_replacement( ABSPATH ) );
|
2006 |
+
if ( $this->job[ 'backupuploads'] )
|
2007 |
+
$manifest[ 'archive' ][ 'uploads' ] = trailingslashit( $this->get_destination_path_replacement( BackWPup_File::get_upload_dir() ) );
|
2008 |
+
if ( $this->job[ 'backupcontent'] )
|
2009 |
+
$manifest[ 'archive' ][ 'contents' ] = trailingslashit( $this->get_destination_path_replacement( WP_CONTENT_DIR ) );
|
2010 |
+
if ( $this->job[ 'backupplugins'])
|
2011 |
+
$manifest[ 'archive' ][ 'plugins' ] = trailingslashit( $this->get_destination_path_replacement( WP_PLUGIN_DIR ) );
|
2012 |
+
if ( $this->job[ 'backupthemes'] )
|
2013 |
+
$manifest[ 'archive' ][ 'themes' ] = trailingslashit( $this->get_destination_path_replacement( get_theme_root() ) );
|
2014 |
+
}
|
2015 |
+
|
2016 |
+
if ( ! file_put_contents( BackWPup::get_plugin_data( 'TEMP' ) . 'manifest.json', json_encode( $manifest ) ) )
|
2017 |
+
return FALSE;
|
2018 |
+
$this->substeps_done = 1;
|
2019 |
+
|
2020 |
+
//Create backwpup_readme.txt
|
2021 |
+
$readme_text = __( 'You may have noticed the manifest.json file in this archive.', 'backwpup' ) . PHP_EOL;
|
2022 |
+
$readme_text .= __( 'manifest.json might be needed for later restoring a backup from this archive.', 'backwpup' ) . PHP_EOL;
|
2023 |
+
$readme_text .= __( 'Please leave manifest.json untouched and in place. Otherwise it is safe to be ignored.', 'backwpup' ) . PHP_EOL;
|
2024 |
+
if ( ! file_put_contents( BackWPup::get_plugin_data( 'TEMP' ) . 'backwpup_readme.txt', $readme_text ) ) {
|
2025 |
+
return FALSE;
|
2026 |
+
}
|
2027 |
+
$this->substeps_done = 2;
|
2028 |
+
|
2029 |
+
//add file to backup files
|
2030 |
+
if ( is_readable( BackWPup::get_plugin_data( 'TEMP' ) . 'manifest.json' ) ) {
|
2031 |
+
$this->additional_files_to_backup[ ] = BackWPup::get_plugin_data( 'TEMP' ) . 'manifest.json';
|
2032 |
+
$this->additional_files_to_backup[ ] = BackWPup::get_plugin_data( 'TEMP' ) . 'backwpup_readme.txt';
|
2033 |
+
$this->log( sprintf( __( 'Added manifest.json file with %1$s to backup file list.', 'backwpup' ), size_format( filesize( BackWPup::get_plugin_data( 'TEMP' ) . 'manifest.json' ), 2 ) ) );
|
2034 |
+
}
|
2035 |
+
$this->substeps_done = 3;
|
2036 |
+
|
2037 |
+
return TRUE;
|
2038 |
+
}
|
2039 |
+
|
2040 |
+
/**
|
2041 |
+
* Creates the backup archive
|
2042 |
+
*/
|
2043 |
+
private function create_archive() {
|
2044 |
+
|
2045 |
+
//load folders to backup
|
2046 |
+
$folders_to_backup = $this->get_folders_to_backup();
|
2047 |
+
|
2048 |
+
$this->substeps_todo = $this->count_folder + 1;
|
2049 |
+
|
2050 |
+
//initial settings for restarts in archiving
|
2051 |
+
if ( ! isset( $this->steps_data[ $this->step_working ]['on_file'] ) ) {
|
2052 |
+
$this->steps_data[ $this->step_working ]['on_file'] = '';
|
2053 |
+
}
|
2054 |
+
if ( ! isset( $this->steps_data[ $this->step_working ]['on_folder'] ) ) {
|
2055 |
+
$this->steps_data[ $this->step_working ]['on_folder'] = '';
|
2056 |
+
}
|
2057 |
+
|
2058 |
+
if ( $this->steps_data[ $this->step_working ][ 'on_folder' ] == '' && $this->steps_data[ $this->step_working ][ 'on_file' ] == '' && is_file( $this->backup_folder . $this->backup_file ) ) {
|
2059 |
+
unlink( $this->backup_folder . $this->backup_file );
|
2060 |
+
}
|
2061 |
+
|
2062 |
+
if ( $this->steps_data[ $this->step_working ]['SAVE_STEP_TRY'] != $this->steps_data[ $this->step_working ][ 'STEP_TRY' ] )
|
2063 |
+
$this->log( sprintf( __( '%d. Trying to create backup archive …', 'backwpup' ), $this->steps_data[ $this->step_working ][ 'STEP_TRY' ] ), E_USER_NOTICE );
|
2064 |
+
|
2065 |
+
try {
|
2066 |
+
$backup_archive = new BackWPup_Create_Archive( $this->backup_folder . $this->backup_file );
|
2067 |
+
|
2068 |
+
//show method for creation
|
2069 |
+
if ( $this->substeps_done == 0 ) {
|
2070 |
+
$this->log( sprintf( _x( 'Compressing files as %s. Please be patient, this may take a moment.', 'Archive compression method', 'backwpup'), $backup_archive->get_method() ) );
|
2071 |
+
}
|
2072 |
+
|
2073 |
+
//add extra files
|
2074 |
+
if ( $this->substeps_done == 0 ) {
|
2075 |
+
if ( ! empty( $this->additional_files_to_backup ) && $this->substeps_done == 0 ) {
|
2076 |
+
if ( $this->is_debug() ) {
|
2077 |
+
$this->log( __( 'Adding Extra files to Archive', 'backwpup' ) );
|
2078 |
+
}
|
2079 |
+
foreach ( $this->additional_files_to_backup as $file ) {
|
2080 |
+
if ( $backup_archive->add_file( $file, basename( $file ) ) ) {;
|
2081 |
+
$this->count_files ++;
|
2082 |
+
$this->count_files_size = $this->count_files_size + filesize( $file );
|
2083 |
+
$this->update_working_data();
|
2084 |
+
} else {
|
2085 |
+
$backup_archive->close();
|
2086 |
+
$this->steps_data[ $this->step_working ][ 'on_file' ] = '';
|
2087 |
+
$this->steps_data[ $this->step_working ][ 'on_folder' ] = '';
|
2088 |
+
$this->log( __( 'Cannot create backup archive correctly. Aborting creation.', 'backwpup' ), E_USER_ERROR );
|
2089 |
+
return FALSE;
|
2090 |
+
}
|
2091 |
+
}
|
2092 |
+
}
|
2093 |
+
$this->substeps_done ++;
|
2094 |
+
}
|
2095 |
+
|
2096 |
+
//add normal files
|
2097 |
+
while ( $folder = array_shift( $folders_to_backup ) ) {
|
2098 |
+
//jump over already done folders
|
2099 |
+
if ( in_array( $this->steps_data[ $this->step_working ]['on_folder'], $folders_to_backup ) ) {
|
2100 |
+
continue;
|
2101 |
+
}
|
2102 |
+
if ( $this->is_debug() ) {
|
2103 |
+
$this->log( sprintf( __( 'Archiving Folder: %s', 'backwpup' ), $folder ) );
|
2104 |
+
}
|
2105 |
+
$this->steps_data[ $this->step_working ]['on_folder'] = $folder;
|
2106 |
+
$files_in_folder = $this->get_files_in_folder( $folder );
|
2107 |
+
//add empty folders
|
2108 |
+
if ( empty( $files_in_folder ) ) {
|
2109 |
+
$folder_name_in_archive = trim( ltrim( $this->get_destination_path_replacement( $folder ), '/' ) );
|
2110 |
+
if ( ! empty ( $folder_name_in_archive ) ) {
|
2111 |
+
$backup_archive->add_empty_folder( $folder, $folder_name_in_archive );
|
2112 |
+
}
|
2113 |
+
continue;
|
2114 |
+
}
|
2115 |
+
//add files
|
2116 |
+
while ( $file = array_shift( $files_in_folder ) ) {
|
2117 |
+
//jump over already done files
|
2118 |
+
if ( in_array( $this->steps_data[ $this->step_working ]['on_file'], $files_in_folder ) ) {
|
2119 |
+
continue;
|
2120 |
+
}
|
2121 |
+
$this->steps_data[ $this->step_working ]['on_file'] = $file;
|
2122 |
+
//restart if needed
|
2123 |
+
$restart_time = $this->get_restart_time();
|
2124 |
+
if ( $restart_time <= 0 ) {
|
2125 |
+
unset( $backup_archive );
|
2126 |
+
$this->do_restart_time( TRUE );
|
2127 |
+
return FALSE;
|
2128 |
+
}
|
2129 |
+
//generate filename in archive
|
2130 |
+
$in_archive_filename = ltrim( $this->get_destination_path_replacement( $file ), '/' );
|
2131 |
+
//add file to archive
|
2132 |
+
if ( $backup_archive->add_file( $file, $in_archive_filename ) ) {
|
2133 |
+
$this->count_files ++;
|
2134 |
+
$this->count_files_size = $this->count_files_size + filesize( $file );
|
2135 |
+
$this->update_working_data();
|
2136 |
+
} else {
|
2137 |
+
$backup_archive->close();
|
2138 |
+
unset( $backup_archive );
|
2139 |
+
$this->steps_data[ $this->step_working ][ 'on_file' ] = '';
|
2140 |
+
$this->steps_data[ $this->step_working ][ 'on_folder' ] = '';
|
2141 |
+
$this->substeps_done = 0;
|
2142 |
+
$this->backup_filesize = filesize( $this->backup_folder . $this->backup_file );
|
2143 |
+
if ( $this->backup_filesize === FALSE ) {
|
2144 |
+
$this->backup_filesize = PHP_INT_MAX;
|
2145 |
+
}
|
2146 |
+
$this->log( __( 'Cannot create backup archive correctly. Aborting creation.', 'backwpup' ), E_USER_ERROR );
|
2147 |
+
return FALSE;
|
2148 |
+
}
|
2149 |
+
}
|
2150 |
+
$this->steps_data[ $this->step_working ]['on_file'] = '';
|
2151 |
+
$this->substeps_done ++;
|
2152 |
+
}
|
2153 |
+
$backup_archive->close();
|
2154 |
+
unset( $backup_archive );
|
2155 |
+
$this->log( __( 'Backup archive created.', 'backwpup' ), E_USER_NOTICE );
|
2156 |
+
} catch ( Exception $e ) {
|
2157 |
+
$this->log( $e->getMessage(), E_USER_ERROR, $e->getFile(), $e->getLine() );
|
2158 |
+
unset( $backup_archive );
|
2159 |
+
return FALSE;
|
2160 |
+
}
|
2161 |
+
|
2162 |
+
$this->backup_filesize = filesize( $this->backup_folder . $this->backup_file );
|
2163 |
+
if ( $this->backup_filesize === FALSE ) {
|
2164 |
+
$this->backup_filesize = PHP_INT_MAX;
|
2165 |
+
}
|
2166 |
+
|
2167 |
+
if ( $this->backup_filesize >= PHP_INT_MAX ) {
|
2168 |
+
$this->log( __( 'The Backup archive will be too large for file operations with this PHP Version. You might want to consider splitting the backup job in multiple jobs with less files each.', 'backwpup' ), E_USER_ERROR );
|
2169 |
+
$this->end();
|
2170 |
+
}
|
2171 |
+
else {
|
2172 |
+
$this->log( sprintf( __( 'Archive size is %s.', 'backwpup' ), size_format( $this->backup_filesize, 2 ) ), E_USER_NOTICE );
|
2173 |
+
}
|
2174 |
+
|
2175 |
+
$this->log( sprintf( __( '%1$d Files with %2$s in Archive.', 'backwpup' ), $this->count_files, size_format( $this->count_files_size, 2 ) ), E_USER_NOTICE );
|
2176 |
+
|
2177 |
+
return TRUE;
|
2178 |
+
}
|
2179 |
+
|
2180 |
+
/**
|
2181 |
+
* @param $name
|
2182 |
+
* @param string $suffix
|
2183 |
+
* @param bool $delete_temp_file
|
2184 |
+
* @return string
|
2185 |
+
*/
|
2186 |
+
public function generate_filename( $name, $suffix = '', $delete_temp_file = TRUE ) {
|
2187 |
+
|
2188 |
+
$local_time = current_time( 'timestamp' );
|
2189 |
+
|
2190 |
+
$datevars = array( '%d', '%j', '%m', '%n', '%Y', '%y', '%a', '%A', '%B', '%g', '%G', '%h', '%H', '%i', '%s' );
|
2191 |
+
$datevalues = array( date( 'd', $local_time ), date( 'j', $local_time ), date( 'm', $local_time ), date( 'n', $local_time ), date( 'Y', $local_time ), date( 'y', $local_time ), date( 'a', $local_time ), date( 'A', $local_time ), date( 'B', $local_time ), date( 'g', $local_time ), date( 'G', $local_time ), date( 'h', $local_time ), date( 'H', $local_time ), date( 'i', $local_time ), date( 's', $local_time ) );
|
2192 |
+
|
2193 |
+
if ( ! empty( $suffix ) && substr( $suffix, 0, 1 ) != '.' ) {
|
2194 |
+
$suffix = '.' . $suffix;
|
2195 |
+
}
|
2196 |
+
|
2197 |
+
$name = str_replace( $datevars, $datevalues, self::sanitize_file_name( $name ) );
|
2198 |
+
$name .= $suffix;
|
2199 |
+
if ( $delete_temp_file && is_writeable( BackWPup::get_plugin_data( 'TEMP' ) . $name ) && !is_dir( BackWPup::get_plugin_data( 'TEMP' ) . $name ) && !is_link( BackWPup::get_plugin_data( 'TEMP' ) . $name ) ) {
|
2200 |
+
unlink( BackWPup::get_plugin_data( 'TEMP' ) . $name );
|
2201 |
+
}
|
2202 |
+
|
2203 |
+
return $name;
|
2204 |
+
}
|
2205 |
+
|
2206 |
+
/**
|
2207 |
+
* @param $filename
|
2208 |
+
* @return bool
|
2209 |
+
*/
|
2210 |
+
public function is_backup_archive( $filename ) {
|
2211 |
+
|
2212 |
+
$filename = basename( $filename );
|
2213 |
+
|
2214 |
+
if ( ! substr( $filename, -3 ) == '.gz' || ! substr( $filename, -4 ) == '.bz2' || ! substr( $filename, -4 ) == '.tar' || ! substr( $filename, -4 ) == '.zip' )
|
2215 |
+
return FALSE;
|
2216 |
+
|
2217 |
+
$filename = str_replace( array( '.gz', '.bz2', '.tar', '.zip' ), '', $filename );
|
2218 |
+
|
2219 |
+
$datevars = array( '%d', '%j', '%m', '%n', '%Y', '%y', '%a', '%A', '%B', '%g', '%G', '%h', '%H', '%i', '%s' );
|
2220 |
+
$dateregex = array( '(0[1-9]|[12][0-9]|3[01])', '([1-9]|[12][0-9]|3[01])', '(0[1-9]|1[012])', '([1-9]|1[012])', '((19|20|21)[0-9]{2})', '([0-9]{2})', '(am|pm)', '(AM|PM)', '([0-9]{3})', '([1-9]|1[012])', '([0-9]|1[0-9]|2[0-3])', '(0[1-9]|1[012])', '(0[0-9]|1[0-9]|2[0-3])', '([0-5][0-9])', '([0-5][0-9])' );
|
2221 |
+
|
2222 |
+
$regex = "/^" . str_replace( $datevars, $dateregex, self::sanitize_file_name( $this->job[ 'archivename' ] ) ) . "$/";
|
2223 |
+
|
2224 |
+
preg_match( $regex, $filename, $matches );
|
2225 |
+
if ( ! empty( $matches[ 0 ] ) && $matches[ 0 ] == $filename )
|
2226 |
+
return TRUE;
|
2227 |
+
|
2228 |
+
return FALSE;
|
2229 |
+
}
|
2230 |
+
|
2231 |
+
/**
|
2232 |
+
* Sanitizes a filename, replacing whitespace with underscores.
|
2233 |
+
*
|
2234 |
+
* @param $filename
|
2235 |
+
*
|
2236 |
+
* @return mixed
|
2237 |
+
*/
|
2238 |
+
public static function sanitize_file_name( $filename ) {
|
2239 |
+
|
2240 |
+
$filename = trim( $filename );
|
2241 |
+
|
2242 |
+
$special_chars = array( "?", "[", "]", "/", "\\", "=", "<", ">", ":", ";", ",", "'", "\"", "&", "$", "#", "*", "(", ")", "|", "~", "`", "!", "{", "}", chr(0) );
|
2243 |
+
|
2244 |
+
$filename = str_replace( $special_chars, '', $filename );
|
2245 |
+
|
2246 |
+
$filename = str_replace( array( ' ', '%20', '+' ), '_', $filename );
|
2247 |
+
$filename = str_replace( array( "\n", "\t", "\r" ), '-', $filename );
|
2248 |
+
$filename = trim( $filename, '.-_' );
|
2249 |
+
|
2250 |
+
return $filename;
|
2251 |
+
}
|
2252 |
+
|
2253 |
+
/**
|
2254 |
+
* Get the Process id of working script
|
2255 |
+
*
|
2256 |
+
* @return int
|
2257 |
+
*/
|
2258 |
+
private static function get_pid( ) {
|
2259 |
+
|
2260 |
+
if ( function_exists( 'posix_getpid' ) ) {
|
2261 |
+
|
2262 |
+
return posix_getpid();
|
2263 |
+
} elseif ( function_exists( 'getmypid' ) ) {
|
2264 |
+
|
2265 |
+
return getmypid();
|
2266 |
+
}
|
2267 |
+
|
2268 |
+
return -1;
|
2269 |
+
}
|
2270 |
+
|
2271 |
+
/**
|
2272 |
+
* For storing and getting data in/from a extra temp file
|
2273 |
+
*
|
2274 |
+
* @param string $storage The name of the storage
|
2275 |
+
* @param array $data data to save in storage
|
2276 |
+
* @return array|mixed|null data from storage
|
2277 |
+
*/
|
2278 |
+
public function data_storage( $storage = NULL, $data = NULL ) {
|
2279 |
+
|
2280 |
+
if ( empty( $storage ) )
|
2281 |
+
return $data;
|
2282 |
+
|
2283 |
+
$storage = strtolower( $storage );
|
2284 |
+
|
2285 |
+
$file = BackWPup::get_plugin_data( 'temp' ) . 'backwpup-' . BackWPup::get_plugin_data( 'hash' ) . '-' . $storage . '.json';
|
2286 |
+
|
2287 |
+
if ( ! empty( $data ) ) {
|
2288 |
+
file_put_contents( $file, json_encode( $data ) );
|
2289 |
+
}
|
2290 |
+
elseif ( is_readable( $file ) ) {
|
2291 |
+
$json = file_get_contents( $file );
|
2292 |
+
$data = json_decode( $json, TRUE );
|
2293 |
+
}
|
2294 |
+
|
2295 |
+
return $data;
|
2296 |
+
}
|
2297 |
+
|
2298 |
+
/**
|
2299 |
+
* Get list of Folder for backup
|
2300 |
+
*
|
2301 |
+
* @return array folder list
|
2302 |
+
*/
|
2303 |
+
public function get_folders_to_backup( ) {
|
2304 |
+
|
2305 |
+
$file = BackWPup::get_plugin_data( 'temp' ) . 'backwpup-' . BackWPup::get_plugin_data( 'hash' ) . '-folder.php';
|
2306 |
+
|
2307 |
+
if ( ! file_exists( $file ) ) {
|
2308 |
+
return array();
|
2309 |
+
}
|
2310 |
+
|
2311 |
+
$folders = array();
|
2312 |
+
|
2313 |
+
$file_data = file( $file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES );
|
2314 |
+
|
2315 |
+
foreach( $file_data as $folder ) {
|
2316 |
+
$folder = trim( str_replace( array( '<?php', '//' ), '', $folder ) );
|
2317 |
+
if ( ! empty( $folder ) && is_dir( $folder ) ) {
|
2318 |
+
$folders[] = $folder;
|
2319 |
+
}
|
2320 |
+
}
|
2321 |
+
$folders = array_unique( $folders );
|
2322 |
+
sort( $folders );
|
2323 |
+
$this->count_folder = count( $folders );
|
2324 |
+
|
2325 |
+
return $folders;
|
2326 |
+
}
|
2327 |
+
|
2328 |
+
|
2329 |
+
/**
|
2330 |
+
* Add a Folders to Folder list that should be backup
|
2331 |
+
*
|
2332 |
+
* @param array $folders folder to add
|
2333 |
+
* @param bool $new overwrite existing file
|
2334 |
+
*/
|
2335 |
+
public function add_folders_to_backup( $folders = array(), $new = FALSE ) {
|
2336 |
+
|
2337 |
+
if ( ! is_array( $folders ) )
|
2338 |
+
$folders = (array) $folders;
|
2339 |
+
|
2340 |
+
$file = BackWPup::get_plugin_data( 'temp' ) . 'backwpup-' . BackWPup::get_plugin_data( 'hash' ) . '-folder.php';
|
2341 |
+
|
2342 |
+
if ( ! file_exists( $file ) || $new ) {
|
2343 |
+
file_put_contents( $file, '<?php' . PHP_EOL );
|
2344 |
+
}
|
2345 |
+
|
2346 |
+
$content = '';
|
2347 |
+
foreach ( $folders AS $folder ) {
|
2348 |
+
$content .= '//' . $folder . PHP_EOL;
|
2349 |
+
}
|
2350 |
+
|
2351 |
+
if ( ! empty( $content ) )
|
2352 |
+
file_put_contents( $file, $content, FILE_APPEND );
|
2353 |
+
}
|
2354 |
+
|
2355 |
+
/**
|
2356 |
+
* Check whether exec has been disabled.
|
2357 |
+
*
|
2358 |
+
* @access public
|
2359 |
+
* @static
|
2360 |
+
* @return bool
|
2361 |
+
*/
|
2362 |
+
public static function is_exec() {
|
2363 |
+
|
2364 |
+
// Is function avail
|
2365 |
+
if ( ! function_exists( 'exec' ) ) {
|
2366 |
+
return FALSE;
|
2367 |
+
}
|
2368 |
+
|
2369 |
+
// Is shell_exec disabled?
|
2370 |
+
if ( in_array( 'exec', array_map( 'trim', explode( ',', @ini_get( 'disable_functions' ) ) ) ) ) {
|
2371 |
+
return FALSE;
|
2372 |
+
}
|
2373 |
+
|
2374 |
+
// Can we issue a simple echo command?
|
2375 |
+
$output = exec( 'echo backwpupechotest' );
|
2376 |
+
if ( $output != 'backwpupechotest' ) {
|
2377 |
+
return FALSE;
|
2378 |
+
}
|
2379 |
+
|
2380 |
+
return TRUE;
|
2381 |
+
|
2382 |
+
}
|
2383 |
+
|
2384 |
+
/**
|
2385 |
+
* Cleanup Temp Folder
|
2386 |
+
*/
|
2387 |
+
public static function clean_temp_folder() {
|
2388 |
+
|
2389 |
+
$temp_dir = BackWPup::get_plugin_data( 'TEMP' );
|
2390 |
+
$do_not_delete_files = array( '.htaccess', 'index.php', '.', '..', '.donotbackup' );
|
2391 |
+
|
2392 |
+
if ( is_writable( $temp_dir ) && $dir = opendir( $temp_dir ) ) {
|
2393 |
+
while ( FALSE !== ( $file = readdir( $dir ) ) ) {
|
2394 |
+
if ( in_array( $file, $do_not_delete_files ) || is_dir( $temp_dir . $file ) || is_link( $temp_dir . $file ) ) {
|
2395 |
+
continue;
|
2396 |
+
}
|
2397 |
+
if ( is_writeable( $temp_dir . $file ) ) {
|
2398 |
+
unlink( $temp_dir . $file );
|
2399 |
+
}
|
2400 |
+
}
|
2401 |
+
closedir( $dir );
|
2402 |
+
}
|
2403 |
+
}
|
2404 |
+
|
2405 |
+
/**
|
2406 |
+
* Is debug log active
|
2407 |
+
*
|
2408 |
+
* @return bool
|
2409 |
+
*/
|
2410 |
+
public function is_debug() {
|
2411 |
+
|
2412 |
+
return strstr( $this->log_level, 'debug' ) ? TRUE : FALSE;
|
2413 |
+
}
|
2414 |
+
|
2415 |
+
/**
|
2416 |
+
* Change path of a given path
|
2417 |
+
* for better storing in archives or on sync destinations
|
2418 |
+
*
|
2419 |
+
* @param $path string path to change to wp default path
|
2420 |
+
*
|
2421 |
+
* @return string
|
2422 |
+
*/
|
2423 |
+
public function get_destination_path_replacement( $path ) {
|
2424 |
+
|
2425 |
+
$path = str_replace( '\\', '/', $path );
|
2426 |
+
|
2427 |
+
$abs_path = realpath( ABSPATH );
|
2428 |
+
if ( $this->job[ 'backupabsfolderup' ] ) {
|
2429 |
+
$abs_path = dirname( $abs_path );
|
2430 |
+
}
|
2431 |
+
|
2432 |
+
$abs_path = trailingslashit( str_replace( '\\', '/', $abs_path ) );
|
2433 |
+
|
2434 |
+
$path = str_replace( $abs_path, '/', $path );
|
2435 |
+
|
2436 |
+
return $path;
|
2437 |
+
}
|
2438 |
+
|
2439 |
+
}
|
inc/class-option.php
CHANGED
@@ -1,4 +1,5 @@
|
|
1 |
<?php
|
|
|
2 |
/**
|
3 |
* Class for options
|
4 |
*/
|
@@ -25,7 +26,7 @@ final class BackWPup_Option {
|
|
25 |
$max_execution_time = (int) ini_get( 'max_execution_time' );
|
26 |
}
|
27 |
add_site_option( 'backwpup_cfg_jobmaxexecutiontime', $max_execution_time );
|
28 |
-
add_site_option( 'backwpup_cfg_jobziparchivemethod','' );
|
29 |
add_site_option( 'backwpup_cfg_jobstepretry', 3 );
|
30 |
add_site_option( 'backwpup_cfg_jobrunauthkey', substr( md5( BackWPup::get_plugin_data( 'hash' ) ), 11, 8 ) );
|
31 |
add_site_option( 'backwpup_cfg_loglevel', 'normal_translated' );
|
@@ -34,13 +35,13 @@ final class BackWPup_Option {
|
|
34 |
//Logs
|
35 |
add_site_option( 'backwpup_cfg_maxlogs', 30 );
|
36 |
add_site_option( 'backwpup_cfg_gzlogs', 0 );
|
37 |
-
$upload_dir
|
38 |
-
$logs_dir
|
39 |
$content_path = trailingslashit( str_replace( '\\', '/', WP_CONTENT_DIR ) );
|
40 |
-
$logs_dir
|
41 |
add_site_option( 'backwpup_cfg_logfolder', $logs_dir );
|
42 |
//Network Auth
|
43 |
-
add_site_option( 'backwpup_cfg_httpauthuser','' );
|
44 |
add_site_option( 'backwpup_cfg_httpauthpassword', '' );
|
45 |
|
46 |
}
|
@@ -51,28 +52,29 @@ final class BackWPup_Option {
|
|
51 |
* Load BackWPup Options
|
52 |
*
|
53 |
* @param bool $use_cache
|
|
|
54 |
* @return array of options
|
55 |
*/
|
56 |
-
private static function jobs_options( $use_cache =
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
}
|
74 |
|
75 |
-
return
|
76 |
}
|
77 |
|
78 |
/**
|
@@ -80,6 +82,7 @@ final class BackWPup_Option {
|
|
80 |
* Update BackWPup Options
|
81 |
*
|
82 |
* @param array $options The options array to save
|
|
|
83 |
* @return bool updated or not
|
84 |
*/
|
85 |
private static function update_jobs_options( $options ) {
|
@@ -92,7 +95,8 @@ final class BackWPup_Option {
|
|
92 |
*
|
93 |
* Get default option for BackWPup option
|
94 |
*
|
95 |
-
* @param string $key
|
|
|
96 |
* @internal param int $id The job id
|
97 |
*
|
98 |
* @return bool|mixed
|
@@ -102,25 +106,25 @@ final class BackWPup_Option {
|
|
102 |
$key = sanitize_key( trim( $key ) );
|
103 |
|
104 |
//set defaults
|
105 |
-
$default[
|
106 |
-
$default[
|
107 |
-
$default[
|
108 |
-
$default[
|
109 |
-
$default[
|
110 |
-
$default[
|
111 |
-
$default[
|
112 |
-
$default[
|
113 |
-
$default[
|
114 |
-
$default[
|
115 |
-
$default[
|
116 |
-
$default[
|
117 |
-
$default[
|
118 |
-
$default[
|
119 |
//defaults vor destinations
|
120 |
foreach ( BackWPup::get_registered_destinations() as $dest_key => $dest ) {
|
121 |
-
if ( ! empty( $dest[
|
122 |
$dest_object = BackWPup::get_destination( $dest_key );
|
123 |
-
$default
|
124 |
}
|
125 |
}
|
126 |
//defaults vor job types
|
@@ -136,7 +140,7 @@ final class BackWPup_Option {
|
|
136 |
if ( isset( $default[ $key ] ) ) {
|
137 |
return $default[ $key ];
|
138 |
} else {
|
139 |
-
return
|
140 |
}
|
141 |
}
|
142 |
|
@@ -144,9 +148,9 @@ final class BackWPup_Option {
|
|
144 |
*
|
145 |
* Update a BackWPup option
|
146 |
*
|
147 |
-
* @param int
|
148 |
-
* @param string
|
149 |
-
* @param mixed
|
150 |
*
|
151 |
* @return bool if option save or not
|
152 |
*/
|
@@ -156,12 +160,13 @@ final class BackWPup_Option {
|
|
156 |
$option = sanitize_key( trim( $option ) );
|
157 |
|
158 |
if ( empty( $jobid ) || empty( $option ) ) {
|
159 |
-
return
|
160 |
}
|
161 |
|
162 |
//Update option
|
163 |
-
$jobs_options
|
164 |
$jobs_options[ $jobid ][ $option ] = $value;
|
|
|
165 |
return self::update_jobs_options( $jobs_options );
|
166 |
}
|
167 |
|
@@ -170,19 +175,20 @@ final class BackWPup_Option {
|
|
170 |
*
|
171 |
* Get a BackWPup Option
|
172 |
*
|
173 |
-
* @param int
|
174 |
-
* @param string $option
|
175 |
-
* @param mixed
|
176 |
-
* @param bool
|
|
|
177 |
* @return bool|mixed false if nothing can get else the option value
|
178 |
*/
|
179 |
-
public static function get( $jobid, $option, $default =
|
180 |
|
181 |
$jobid = (int) $jobid;
|
182 |
$option = sanitize_key( trim( $option ) );
|
183 |
|
184 |
if ( empty( $jobid ) || empty( $option ) ) {
|
185 |
-
return
|
186 |
}
|
187 |
|
188 |
$jobs_options = self::jobs_options( $use_cache );
|
@@ -199,21 +205,21 @@ final class BackWPup_Option {
|
|
199 |
*
|
200 |
* BackWPup Job Options
|
201 |
*
|
202 |
-
* @param int
|
203 |
* @param bool $use_cache
|
204 |
*
|
205 |
* @return array of all job options
|
206 |
*/
|
207 |
-
public static function get_job( $id, $use_cache =
|
208 |
|
209 |
if ( ! is_numeric( $id ) ) {
|
210 |
-
return
|
211 |
}
|
212 |
|
213 |
-
$id
|
214 |
$jobs_options = self::jobs_options( $use_cache );
|
215 |
|
216 |
-
return wp_parse_args( $jobs_options[ $id ], self::defaults_job(
|
217 |
}
|
218 |
|
219 |
|
@@ -221,8 +227,8 @@ final class BackWPup_Option {
|
|
221 |
*
|
222 |
* Delete a BackWPup Option
|
223 |
*
|
224 |
-
* @param int
|
225 |
-
* @param string
|
226 |
*
|
227 |
* @return bool deleted or not
|
228 |
*/
|
@@ -232,11 +238,11 @@ final class BackWPup_Option {
|
|
232 |
$option = sanitize_key( trim( $option ) );
|
233 |
|
234 |
if ( empty( $jobid ) || empty( $option ) ) {
|
235 |
-
return
|
236 |
}
|
237 |
|
238 |
//delete option
|
239 |
-
$jobs_options = self::jobs_options(
|
240 |
unset( $jobs_options[ $jobid ][ $option ] );
|
241 |
|
242 |
return self::update_jobs_options( $jobs_options );
|
@@ -253,11 +259,11 @@ final class BackWPup_Option {
|
|
253 |
public static function delete_job( $id ) {
|
254 |
|
255 |
if ( ! is_numeric( $id ) ) {
|
256 |
-
return
|
257 |
}
|
258 |
|
259 |
-
$id
|
260 |
-
$jobs_options = self::jobs_options(
|
261 |
unset( $jobs_options[ $id ] );
|
262 |
|
263 |
return self::update_jobs_options( $jobs_options );
|
@@ -267,15 +273,15 @@ final class BackWPup_Option {
|
|
267 |
*
|
268 |
* get the id's of jobs
|
269 |
*
|
270 |
-
* @param string|null $key
|
271 |
-
* @param bool
|
272 |
*
|
273 |
* @return array job id's
|
274 |
*/
|
275 |
-
public static function get_job_ids( $key =
|
276 |
|
277 |
-
$key
|
278 |
-
$jobs_options = self::jobs_options(
|
279 |
|
280 |
if ( empty( $jobs_options ) ) {
|
281 |
return array();
|
@@ -290,7 +296,7 @@ final class BackWPup_Option {
|
|
290 |
$new_option_job_ids = array();
|
291 |
foreach ( $jobs_options as $id => $option ) {
|
292 |
if ( isset( $option[ $key ] ) && $value == $option[ $key ] ) {
|
293 |
-
$new_option_job_ids[
|
294 |
}
|
295 |
}
|
296 |
sort( $new_option_job_ids );
|
1 |
<?php
|
2 |
+
|
3 |
/**
|
4 |
* Class for options
|
5 |
*/
|
26 |
$max_execution_time = (int) ini_get( 'max_execution_time' );
|
27 |
}
|
28 |
add_site_option( 'backwpup_cfg_jobmaxexecutiontime', $max_execution_time );
|
29 |
+
add_site_option( 'backwpup_cfg_jobziparchivemethod', '' );
|
30 |
add_site_option( 'backwpup_cfg_jobstepretry', 3 );
|
31 |
add_site_option( 'backwpup_cfg_jobrunauthkey', substr( md5( BackWPup::get_plugin_data( 'hash' ) ), 11, 8 ) );
|
32 |
add_site_option( 'backwpup_cfg_loglevel', 'normal_translated' );
|
35 |
//Logs
|
36 |
add_site_option( 'backwpup_cfg_maxlogs', 30 );
|
37 |
add_site_option( 'backwpup_cfg_gzlogs', 0 );
|
38 |
+
$upload_dir = wp_upload_dir();
|
39 |
+
$logs_dir = trailingslashit( str_replace( '\\', '/', $upload_dir['basedir'] ) ) . 'backwpup-' . BackWPup::get_plugin_data( 'hash' ) . '-logs/';
|
40 |
$content_path = trailingslashit( str_replace( '\\', '/', WP_CONTENT_DIR ) );
|
41 |
+
$logs_dir = str_replace( $content_path, '', $logs_dir );
|
42 |
add_site_option( 'backwpup_cfg_logfolder', $logs_dir );
|
43 |
//Network Auth
|
44 |
+
add_site_option( 'backwpup_cfg_httpauthuser', '' );
|
45 |
add_site_option( 'backwpup_cfg_httpauthpassword', '' );
|
46 |
|
47 |
}
|
52 |
* Load BackWPup Options
|
53 |
*
|
54 |
* @param bool $use_cache
|
55 |
+
*
|
56 |
* @return array of options
|
57 |
*/
|
58 |
+
private static function jobs_options( $use_cache = true ) {
|
59 |
+
global $current_site;
|
60 |
+
|
61 |
+
//remove from cache
|
62 |
+
if ( ! $use_cache ) {
|
63 |
+
if ( is_multisite() ) {
|
64 |
+
$network_id = $current_site->id;
|
65 |
+
$cache_key = "$network_id:backwpup_jobs";
|
66 |
+
wp_cache_delete( $cache_key, 'site-options' );
|
67 |
+
} else {
|
68 |
+
wp_cache_delete( 'backwpup_jobs', 'options' );
|
69 |
+
$alloptions = wp_cache_get( 'alloptions', 'options' );
|
70 |
+
if ( isset( $alloptions['backwpup_jobs'] ) ) {
|
71 |
+
unset( $alloptions['backwpup_jobs'] );
|
72 |
+
wp_cache_set( 'alloptions', $alloptions, 'options' );
|
73 |
+
}
|
74 |
+
}
|
75 |
}
|
76 |
|
77 |
+
return get_site_option( 'backwpup_jobs', array() );
|
78 |
}
|
79 |
|
80 |
/**
|
82 |
* Update BackWPup Options
|
83 |
*
|
84 |
* @param array $options The options array to save
|
85 |
+
*
|
86 |
* @return bool updated or not
|
87 |
*/
|
88 |
private static function update_jobs_options( $options ) {
|
95 |
*
|
96 |
* Get default option for BackWPup option
|
97 |
*
|
98 |
+
* @param string $key Option key
|
99 |
+
*
|
100 |
* @internal param int $id The job id
|
101 |
*
|
102 |
* @return bool|mixed
|
106 |
$key = sanitize_key( trim( $key ) );
|
107 |
|
108 |
//set defaults
|
109 |
+
$default['type'] = array( 'DBDUMP', 'FILE', 'WPPLUGIN' );
|
110 |
+
$default['destinations'] = array();
|
111 |
+
$default['name'] = __( 'New Job', 'backwpup' );
|
112 |
+
$default['activetype'] = '';
|
113 |
+
$default['logfile'] = '';
|
114 |
+
$default['lastbackupdownloadurl'] = '';
|
115 |
+
$default['cronselect'] = 'basic';
|
116 |
+
$default['cron'] = '0 3 * * *';
|
117 |
+
$default['mailaddresslog'] = sanitize_email( get_bloginfo( 'admin_email' ) );
|
118 |
+
$default['mailaddresssenderlog'] = 'BackWPup ' . get_bloginfo( 'name' ) . ' <' . sanitize_email( get_bloginfo( 'admin_email' ) ) . '>';
|
119 |
+
$default['mailerroronly'] = true;
|
120 |
+
$default['backuptype'] = 'archive';
|
121 |
+
$default['archiveformat'] = '.tar.gz';
|
122 |
+
$default['archivename'] = 'backwpup_' . BackWPup::get_plugin_data( 'hash' ) . '_%Y-%m-%d_%H-%i-%s';
|
123 |
//defaults vor destinations
|
124 |
foreach ( BackWPup::get_registered_destinations() as $dest_key => $dest ) {
|
125 |
+
if ( ! empty( $dest['class'] ) ) {
|
126 |
$dest_object = BackWPup::get_destination( $dest_key );
|
127 |
+
$default = array_merge( $default, $dest_object->option_defaults() );
|
128 |
}
|
129 |
}
|
130 |
//defaults vor job types
|
140 |
if ( isset( $default[ $key ] ) ) {
|
141 |
return $default[ $key ];
|
142 |
} else {
|
143 |
+
return false;
|
144 |
}
|
145 |
}
|
146 |
|
148 |
*
|
149 |
* Update a BackWPup option
|
150 |
*
|
151 |
+
* @param int $jobid the job id
|
152 |
+
* @param string $option Option key
|
153 |
+
* @param mixed $value the value to store
|
154 |
*
|
155 |
* @return bool if option save or not
|
156 |
*/
|
160 |
$option = sanitize_key( trim( $option ) );
|
161 |
|
162 |
if ( empty( $jobid ) || empty( $option ) ) {
|
163 |
+
return false;
|
164 |
}
|
165 |
|
166 |
//Update option
|
167 |
+
$jobs_options = self::jobs_options( false );
|
168 |
$jobs_options[ $jobid ][ $option ] = $value;
|
169 |
+
|
170 |
return self::update_jobs_options( $jobs_options );
|
171 |
}
|
172 |
|
175 |
*
|
176 |
* Get a BackWPup Option
|
177 |
*
|
178 |
+
* @param int $jobid Option the job id
|
179 |
+
* @param string $option Option key
|
180 |
+
* @param mixed $default returned if no value, if null the the default BackWPup option will get
|
181 |
+
* @param bool $use_cache USe the cache
|
182 |
+
*
|
183 |
* @return bool|mixed false if nothing can get else the option value
|
184 |
*/
|
185 |
+
public static function get( $jobid, $option, $default = null, $use_cache = true ) {
|
186 |
|
187 |
$jobid = (int) $jobid;
|
188 |
$option = sanitize_key( trim( $option ) );
|
189 |
|
190 |
if ( empty( $jobid ) || empty( $option ) ) {
|
191 |
+
return false;
|
192 |
}
|
193 |
|
194 |
$jobs_options = self::jobs_options( $use_cache );
|
205 |
*
|
206 |
* BackWPup Job Options
|
207 |
*
|
208 |
+
* @param int $id The job id
|
209 |
* @param bool $use_cache
|
210 |
*
|
211 |
* @return array of all job options
|
212 |
*/
|
213 |
+
public static function get_job( $id, $use_cache = true ) {
|
214 |
|
215 |
if ( ! is_numeric( $id ) ) {
|
216 |
+
return false;
|
217 |
}
|
218 |
|
219 |
+
$id = intval( $id );
|
220 |
$jobs_options = self::jobs_options( $use_cache );
|
221 |
|
222 |
+
return wp_parse_args( $jobs_options[ $id ], self::defaults_job() );
|
223 |
}
|
224 |
|
225 |
|
227 |
*
|
228 |
* Delete a BackWPup Option
|
229 |
*
|
230 |
+
* @param int $jobid the job id
|
231 |
+
* @param string $option Option key
|
232 |
*
|
233 |
* @return bool deleted or not
|
234 |
*/
|
238 |
$option = sanitize_key( trim( $option ) );
|
239 |
|
240 |
if ( empty( $jobid ) || empty( $option ) ) {
|
241 |
+
return false;
|
242 |
}
|
243 |
|
244 |
//delete option
|
245 |
+
$jobs_options = self::jobs_options( false );
|
246 |
unset( $jobs_options[ $jobid ][ $option ] );
|
247 |
|
248 |
return self::update_jobs_options( $jobs_options );
|
259 |
public static function delete_job( $id ) {
|
260 |
|
261 |
if ( ! is_numeric( $id ) ) {
|
262 |
+
return false;
|
263 |
}
|
264 |
|
265 |
+
$id = intval( $id );
|
266 |
+
$jobs_options = self::jobs_options( false );
|
267 |
unset( $jobs_options[ $id ] );
|
268 |
|
269 |
return self::update_jobs_options( $jobs_options );
|
273 |
*
|
274 |
* get the id's of jobs
|
275 |
*
|
276 |
+
* @param string|null $key Option key or null for getting all id's
|
277 |
+
* @param bool $value Value that the option must have to get the id
|
278 |
*
|
279 |
* @return array job id's
|
280 |
*/
|
281 |
+
public static function get_job_ids( $key = null, $value = false ) {
|
282 |
|
283 |
+
$key = sanitize_key( trim( $key ) );
|
284 |
+
$jobs_options = self::jobs_options( false );
|
285 |
|
286 |
if ( empty( $jobs_options ) ) {
|
287 |
return array();
|
296 |
$new_option_job_ids = array();
|
297 |
foreach ( $jobs_options as $id => $option ) {
|
298 |
if ( isset( $option[ $key ] ) && $value == $option[ $key ] ) {
|
299 |
+
$new_option_job_ids[] = $id;
|
300 |
}
|
301 |
}
|
302 |
sort( $new_option_job_ids );
|
inc/class-page-jobs.php
CHANGED
@@ -282,7 +282,7 @@ class BackWPup_Page_Jobs extends WP_List_Table {
|
|
282 |
$r .= __( 'Not scheduled!', 'backwpup' ) . '<br />';
|
283 |
}
|
284 |
}
|
285 |
-
|
286 |
$easycron_status = BackWPup_EasyCron::status( $item );
|
287 |
if ( !empty( $easycron_status ) ) {
|
288 |
$nextrun = BackWPup_Cron::cron_next( $easycron_status[ 'cron_expression' ] ) + ( get_option( 'gmt_offset' ) * 3600 );
|
@@ -291,6 +291,9 @@ class BackWPup_Page_Jobs extends WP_List_Table {
|
|
291 |
$r .= __( 'Not scheduled!', 'backwpup' ) . '<br />';
|
292 |
}
|
293 |
}
|
|
|
|
|
|
|
294 |
else {
|
295 |
$r .= __( 'Inactive', 'backwpup' );
|
296 |
}
|
282 |
$r .= __( 'Not scheduled!', 'backwpup' ) . '<br />';
|
283 |
}
|
284 |
}
|
285 |
+
elseif ( BackWPup_Option::get( $item, 'activetype' ) == 'easycron' ) {
|
286 |
$easycron_status = BackWPup_EasyCron::status( $item );
|
287 |
if ( !empty( $easycron_status ) ) {
|
288 |
$nextrun = BackWPup_Cron::cron_next( $easycron_status[ 'cron_expression' ] ) + ( get_option( 'gmt_offset' ) * 3600 );
|
291 |
$r .= __( 'Not scheduled!', 'backwpup' ) . '<br />';
|
292 |
}
|
293 |
}
|
294 |
+
elseif ( BackWPup_Option::get( $item, 'activetype' ) == 'link' ) {
|
295 |
+
$r .= __( 'External link', 'backwpup' ) . '<br />';
|
296 |
+
}
|
297 |
else {
|
298 |
$r .= __( 'Inactive', 'backwpup' );
|
299 |
}
|
languages/backwpup.pot
CHANGED
@@ -1,5576 +1,5583 @@
|
|
1 |
-
# Loco Gettext template
|
2 |
-
#, fuzzy
|
3 |
-
msgid ""
|
4 |
-
msgstr ""
|
5 |
-
"Project-Id-Version: BackWPup Pro\n"
|
6 |
-
"Report-Msgid-Bugs-To: \n"
|
7 |
-
"POT-Creation-Date: Tue Aug 25 2015 08:53:55 GMT+0200 (Mitteleuropäische "
|
8 |
-
"Sommerzeit)\n"
|
9 |
-
"POT-Revision-Date:
|
10 |
-
"Zeit)\n"
|
11 |
-
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
12 |
-
"Last-Translator: \n"
|
13 |
-
"Language-Team: \n"
|
14 |
-
"Language: \n"
|
15 |
-
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION\n"
|
16 |
-
"MIME-Version: 1.0\n"
|
17 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
18 |
-
"Content-Transfer-Encoding: 8bit\n"
|
19 |
-
"X-Poedit-SourceCharset: UTF-8\n"
|
20 |
-
"X-Poedit-Basepath: .\n"
|
21 |
-
"X-Poedit-SearchPath-0: ..\n"
|
22 |
-
"X-Poedit-KeywordsList: _:1;gettext:1;dgettext:2;ngettext:1,2;dngettext:2,3;"
|
23 |
-
"__:1;_e:1;_c:1;_n:1,2;_n_noop:1,2;_nc:1,2;__ngettext:1,2;__ngettext_noop:1,2;"
|
24 |
-
"_x:1,2c;_ex:1,2c;_nx:1,2,4c;_nx_noop:1,2,3c;_n_js:1,2;_nx_js:1,2,3c;"
|
25 |
-
"esc_attr__:1;esc_html__:1;esc_attr_e:1;esc_html_e:1;esc_attr_x:1,2c;"
|
26 |
-
"esc_html_x:1,2c;comments_number_link:2,3;t:1;st:1;trans:1;transChoice:1,2\n"
|
27 |
-
"X-Generator: Loco - https://localise.biz/"
|
28 |
-
|
29 |
-
#. Name of the plugin
|
30 |
-
msgid "BackWPup Pro"
|
31 |
-
msgstr ""
|
32 |
-
|
33 |
-
#. URI of the plugin
|
34 |
-
msgid "https://marketpress.com/product/backwpup-pro"
|
35 |
-
msgstr ""
|
36 |
-
|
37 |
-
#. Description of the plugin
|
38 |
-
msgid "WordPress Backup Plugin"
|
39 |
-
msgstr ""
|
40 |
-
|
41 |
-
#. Author of the plugin
|
42 |
-
msgid "Inpsyde GmbH"
|
43 |
-
msgstr ""
|
44 |
-
|
45 |
-
#. Author URI of the plugin
|
46 |
-
msgid "http://inpsyde.com"
|
47 |
-
msgstr ""
|
48 |
-
|
49 |
-
#: ../backwpup.php:
|
50 |
-
msgid "Folder"
|
51 |
-
msgstr ""
|
52 |
-
|
53 |
-
#: ../backwpup.php:
|
54 |
-
msgid "Backup to Folder"
|
55 |
-
msgstr ""
|
56 |
-
|
57 |
-
#: ../backwpup.php:
|
58 |
-
msgid "Email"
|
59 |
-
msgstr ""
|
60 |
-
|
61 |
-
#: ../backwpup.php:
|
62 |
-
msgid "Backup sent via email"
|
63 |
-
msgstr ""
|
64 |
-
|
65 |
-
#: ../backwpup.php:
|
66 |
-
msgid "FTP"
|
67 |
-
msgstr ""
|
68 |
-
|
69 |
-
#: ../backwpup.php:
|
70 |
-
msgid "Backup to FTP"
|
71 |
-
msgstr ""
|
72 |
-
|
73 |
-
#: ../backwpup.php:
|
74 |
-
msgid "Dropbox"
|
75 |
-
msgstr ""
|
76 |
-
|
77 |
-
#: ../backwpup.php:
|
78 |
-
msgid "Backup to Dropbox"
|
79 |
-
msgstr ""
|
80 |
-
|
81 |
-
#: ../backwpup.php:
|
82 |
-
#: ./inc/class-destination-s3.php:
|
83 |
-
msgid "S3 Service"
|
84 |
-
msgstr ""
|
85 |
-
|
86 |
-
#: ../backwpup.php:
|
87 |
-
msgid "Backup to an S3 Service"
|
88 |
-
msgstr ""
|
89 |
-
|
90 |
-
#: ../backwpup.php:
|
91 |
-
msgid "Backup to an S3 Service v1"
|
92 |
-
msgstr ""
|
93 |
-
|
94 |
-
#: ../backwpup.php:
|
95 |
-
msgid "MS Azure"
|
96 |
-
msgstr ""
|
97 |
-
|
98 |
-
#: ../backwpup.php:
|
99 |
-
msgid "Backup to Microsoft Azure (Blob)"
|
100 |
-
msgstr ""
|
101 |
-
|
102 |
-
#: ../backwpup.php:
|
103 |
-
msgid "RSC"
|
104 |
-
msgstr ""
|
105 |
-
|
106 |
-
#: ../backwpup.php:
|
107 |
-
msgid "Backup to Rackspace Cloud Files"
|
108 |
-
msgstr ""
|
109 |
-
|
110 |
-
#: ../backwpup.php:
|
111 |
-
msgid "SugarSync"
|
112 |
-
msgstr ""
|
113 |
-
|
114 |
-
#: ../backwpup.php:
|
115 |
-
msgid "Backup to SugarSync"
|
116 |
-
msgstr ""
|
117 |
-
|
118 |
-
#: ../backwpup.php:
|
119 |
-
#, php-format
|
120 |
-
msgid "PHP Version %1$s is to low, you need Version %2$s or above."
|
121 |
-
msgstr ""
|
122 |
-
|
123 |
-
#: ../backwpup.php:
|
124 |
-
#, php-format
|
125 |
-
msgid "Missing function \"%s\"."
|
126 |
-
msgstr ""
|
127 |
-
|
128 |
-
#: ../backwpup.php:
|
129 |
-
#, php-format
|
130 |
-
msgid "Missing class \"%s\"."
|
131 |
-
msgstr ""
|
132 |
-
|
133 |
-
#: ../inc/class-page-logs.php:113
|
134 |
-
msgid "No Logs."
|
135 |
-
msgstr ""
|
136 |
-
|
137 |
-
#: ../inc/class-page-logs.php:125 ../inc/class-page-logs.php:204 ../inc/class-
|
138 |
-
#: page-jobs.php:113 ../inc/class-page-jobs.php:177 ../inc/class-page-backups.php:
|
139 |
-
#: 194 ../inc/class-page-backups.php:313
|
140 |
-
msgid "Delete"
|
141 |
-
msgstr ""
|
142 |
-
|
143 |
-
#: ../inc/class-page-logs.php:136 ../inc/class-page-backwpup.php:288 ../inc/class-
|
144 |
-
#: page-backwpup.php:353 ../inc/class-page-backups.php:267
|
145 |
-
msgid "Time"
|
146 |
-
msgstr ""
|
147 |
-
|
148 |
-
#: ../inc/class-page-logs.php:137 ../inc/class-page-backwpup.php:288 ../inc/class-
|
149 |
-
#: page-backwpup.php:354
|
150 |
-
msgid "Job"
|
151 |
-
msgstr ""
|
152 |
-
|
153 |
-
#: ../inc/class-page-logs.php:138
|
154 |
-
msgid "Status"
|
155 |
-
msgstr ""
|
156 |
-
|
157 |
-
#: ../inc/class-page-logs.php:139 ../inc/class-page-jobs.php:126 ../inc/class-
|
158 |
-
#: page-editjob.php:718 ../inc/pro/class-wizard-job.php:302
|
159 |
-
msgid "Type"
|
160 |
-
msgstr ""
|
161 |
-
|
162 |
-
#: ../inc/class-page-logs.php:140 ../inc/class-page-backups.php:270
|
163 |
-
msgid "Size"
|
164 |
-
msgstr ""
|
165 |
-
|
166 |
-
#: ../inc/class-page-logs.php:141
|
167 |
-
msgid "Runtime"
|
168 |
-
msgstr ""
|
169 |
-
|
170 |
-
#: ../inc/class-page-logs.php:164 ../inc/class-page-backwpup.php:317 ../inc/class-
|
171 |
-
#: page-backwpup.php:391 ../inc/class-page-jobs.php:
|
172 |
-
#: php:359
|
173 |
-
#, php-format
|
174 |
-
msgid "%1$s at %2$s"
|
175 |
-
msgstr ""
|
176 |
-
|
177 |
-
#: ../inc/class-page-logs.php:200 ../inc/class-page-jobs.php:172
|
178 |
-
#, php-format
|
179 |
-
msgid "Job ID: %d"
|
180 |
-
msgstr ""
|
181 |
-
|
182 |
-
#: ../inc/class-page-logs.php:202
|
183 |
-
msgid "View"
|
184 |
-
msgstr ""
|
185 |
-
|
186 |
-
#: ../inc/class-page-logs.php:206 ../inc/class-page-jobs.php:
|
187 |
-
#: page-backups.php:316
|
188 |
-
msgid "Download"
|
189 |
-
msgstr ""
|
190 |
-
|
191 |
-
#: ../inc/class-page-logs.php:222
|
192 |
-
#, php-format
|
193 |
-
msgid "1 ERROR"
|
194 |
-
msgid_plural "%d ERRORS"
|
195 |
-
msgstr[0] ""
|
196 |
-
msgstr[1] ""
|
197 |
-
|
198 |
-
#: ../inc/class-page-logs.php:224
|
199 |
-
#, php-format
|
200 |
-
msgid "1 WARNING"
|
201 |
-
msgid_plural "%d WARNINGS"
|
202 |
-
msgstr[0] ""
|
203 |
-
msgstr[1] ""
|
204 |
-
|
205 |
-
#: ../inc/class-page-logs.php:226
|
206 |
-
msgid "O.K."
|
207 |
-
msgstr ""
|
208 |
-
|
209 |
-
#: ../inc/class-page-logs.php:243
|
210 |
-
msgid "Log only"
|
211 |
-
msgstr ""
|
212 |
-
|
213 |
-
#: ../inc/class-page-logs.php:254 ../inc/class-destination-ftp.php:86 ..
|
214 |
-
#: /inc/class-page-settings.php:477
|
215 |
-
msgid "seconds"
|
216 |
-
msgstr ""
|
217 |
-
|
218 |
-
#: ../inc/class-page-logs.php:321 ../inc/class-admin.php:
|
219 |
-
#: php:
|
220 |
-
msgid "Logs"
|
221 |
-
msgstr ""
|
222 |
-
|
223 |
-
#: ../inc/class-page-logs.php:384
|
224 |
-
#, php-format
|
225 |
-
msgid "%s Logs"
|
226 |
-
msgstr ""
|
227 |
-
|
228 |
-
#: ../inc/class-page-logs.php:415
|
229 |
-
msgid "Logfile not found!"
|
230 |
-
msgstr ""
|
231 |
-
|
232 |
-
#: ../inc/class-destination-msazure.php:25
|
233 |
-
msgid "MS Azure access keys"
|
234 |
-
msgstr ""
|
235 |
-
|
236 |
-
#: ../inc/class-destination-msazure.php:29
|
237 |
-
msgid "Account name"
|
238 |
-
msgstr ""
|
239 |
-
|
240 |
-
#: ../inc/class-destination-msazure.php:36
|
241 |
-
msgid "Access key"
|
242 |
-
msgstr ""
|
243 |
-
|
244 |
-
#: ../inc/class-destination-msazure.php:44
|
245 |
-
msgid "Blob container"
|
246 |
-
msgstr ""
|
247 |
-
|
248 |
-
#: ../inc/class-destination-msazure.php:48 ../inc/class-destination-rsc.php:77
|
249 |
-
msgid "Container selection"
|
250 |
-
msgstr ""
|
251 |
-
|
252 |
-
#: ../inc/class-destination-msazure.php:59 ../inc/class-destination-rsc.php:89
|
253 |
-
msgid "Create a new container"
|
254 |
-
msgstr ""
|
255 |
-
|
256 |
-
#: ../inc/class-destination-msazure.php:66 ../inc/class-destination-sugarsync.php:
|
257 |
-
#: 86 ../inc/class-destination-folder.php:29 ../inc/class-destination-dropbox.php:
|
258 |
-
#: 91 ../inc/class-destination-ftp.php:52 ../inc/class-destination-rsc.php:96 ..
|
259 |
-
#: /inc/pro/class-destination-gdrive.php:61
|
260 |
-
msgid "Backup settings"
|
261 |
-
msgstr ""
|
262 |
-
|
263 |
-
#: ../inc/class-destination-msazure.php:70
|
264 |
-
msgid "Folder in container"
|
265 |
-
msgstr ""
|
266 |
-
|
267 |
-
#: ../inc/class-destination-msazure.php:76 ../inc/class-destination-s3-v1.php:
|
268 |
-
#: ../inc/class-destination-s3.php:
|
269 |
-
#: /inc/pro/class-destination-glacier.php:
|
270 |
-
msgid "File deletion"
|
271 |
-
msgstr ""
|
272 |
-
|
273 |
-
#: ../inc/class-destination-msazure.php:81 ../inc/class-destination-s3-v1.php:
|
274 |
-
#: ../inc/class-destination-sugarsync.php:101 ../inc/class-destination-folder.php:
|
275 |
-
#: 44 ../inc/class-destination-ftp.php:67 ../inc/class-destination-s3.php:
|
276 |
-
#: /inc/class-destination-rsc.php:111 ../inc/pro/class-destination-msazure.php:35
|
277 |
-
#: ../inc/pro/class-destination-s3-v1.php:
|
278 |
-
#: php:24 ../inc/pro/class-destination-dropbox.php:42 ../inc/pro/class-
|
279 |
-
#: destination-s3.php:
|
280 |
-
#: destination-gdrive.php:76 ../inc/pro/class-destination-gdrive.php:285 ..
|
281 |
-
#: /inc/pro/class-destination-glacier.php:
|
282 |
-
#: php:
|
283 |
-
msgid "Oldest files will be deleted first. 0 = no deletion"
|
284 |
-
msgstr ""
|
285 |
-
|
286 |
-
#: ../inc/class-destination-msazure.php:82 ../inc/class-destination-s3-v1.php:
|
287 |
-
#: ../inc/class-destination-sugarsync.php:102 ../inc/class-destination-folder.php:
|
288 |
-
#: 45 ../inc/class-destination-dropbox.php:108 ../inc/class-destination-s3.php:
|
289 |
-
#:
|
290 |
-
#: php:36 ../inc/pro/class-destination-s3-v1.php:
|
291 |
-
#: folder.php:25 ../inc/pro/class-destination-dropbox.php:43 ../inc/pro/class-
|
292 |
-
#: destination-s3.php:
|
293 |
-
#: destination-gdrive.php:77 ../inc/pro/class-destination-gdrive.php:286
|
294 |
-
msgid "Number of files to keep in folder."
|
295 |
-
msgstr ""
|
296 |
-
|
297 |
-
#: ../inc/class-destination-msazure.php:86 ../inc/class-destination-s3-v1.php:
|
298 |
-
#: ../inc/class-destination-sugarsync.php:106 ../inc/class-destination-folder.php:
|
299 |
-
#: 49 ../inc/class-destination-dropbox.php:112 ../inc/class-destination-ftp.php:
|
300 |
-
#: 72 ../inc/class-destination-s3.php:
|
301 |
-
#: /inc/pro/class-destination-msazure.php:41 ../inc/pro/class-destination-s3-v1.
|
302 |
-
#: php:
|
303 |
-
#: destination-folder.php:30 ../inc/pro/class-destination-dropbox.php:45 ..
|
304 |
-
#: /inc/pro/class-destination-ftp.php:46 ../inc/pro/class-destination-s3.php:
|
305 |
-
#: /inc/pro/class-destination-rsc.php:61 ../inc/pro/class-destination-gdrive.php:
|
306 |
-
#: 81 ../inc/pro/class-destination-gdrive.php:288
|
307 |
-
msgid "Do not delete files while syncing to destination!"
|
308 |
-
msgstr ""
|
309 |
-
|
310 |
-
#: ../inc/class-destination-msazure.php:124 ../inc/pro/class-destination-msazure.
|
311 |
-
#: php:81
|
312 |
-
#, php-format
|
313 |
-
msgid "MS Azure container \"%s\" created."
|
314 |
-
msgstr ""
|
315 |
-
|
316 |
-
#: ../inc/class-destination-msazure.php:127 ../inc/pro/class-destination-msazure.
|
317 |
-
#: php:84
|
318 |
-
#, php-format
|
319 |
-
msgid "MS Azure container create: %s"
|
320 |
-
msgstr ""
|
321 |
-
|
322 |
-
#: ../inc/class-destination-msazure.php:203
|
323 |
-
#, php-format
|
324 |
-
msgid "%d. Try sending backup to a Microsoft Azure (Blob) …"
|
325 |
-
msgstr ""
|
326 |
-
|
327 |
-
#: ../inc/class-destination-msazure.php:225 ../inc/pro/class-destination-msazure.
|
328 |
-
#: php:126
|
329 |
-
#, php-format
|
330 |
-
msgid "MS Azure container \"%s\" does not exist!"
|
331 |
-
msgstr ""
|
332 |
-
|
333 |
-
#: ../inc/class-destination-msazure.php:229 ../inc/pro/class-destination-msazure.
|
334 |
-
#: php:130
|
335 |
-
#, php-format
|
336 |
-
msgid "Connected to MS Azure container \"%s\"."
|
337 |
-
msgstr ""
|
338 |
-
|
339 |
-
#: ../inc/class-destination-msazure.php:232
|
340 |
-
msgid "Starting upload to MS Azure …"
|
341 |
-
msgstr ""
|
342 |
-
|
343 |
-
#: ../inc/class-destination-msazure.php:259 ../inc/class-destination-ftp.php:344 .
|
344 |
-
#: ./inc/class-destination-s3.php:
|
345 |
-
#: /inc/class-destination-rsc.php:282 ../inc/pro/class-destination-rsc.php:215 ..
|
346 |
-
#: /inc/pro/class-destination-rsc.php:248 ../inc/pro/class-destination-gdrive.php:
|
347 |
-
#: 602 ../inc/pro/class-destination-glacier.php:
|
348 |
-
msgid "Can not open source file for transfer."
|
349 |
-
msgstr ""
|
350 |
-
|
351 |
-
#: ../inc/class-destination-msazure.php:272 ../inc/class-destination-sugarsync.
|
352 |
-
#: php:257 ../inc/class-destination-dropbox.php:269 ../inc/pro/class-destination-
|
353 |
-
#: gdrive.php:611
|
354 |
-
#, php-format
|
355 |
-
msgid "Backup transferred to %s"
|
356 |
-
msgstr ""
|
357 |
-
|
358 |
-
#: ../inc/class-destination-msazure.php:277 ../inc/class-destination-msazure.php:
|
359 |
-
#: 333 ../inc/pro/class-destination-msazure.php:215
|
360 |
-
#, php-format
|
361 |
-
msgid "Microsoft Azure API: %s"
|
362 |
-
msgstr ""
|
363 |
-
|
364 |
-
#: ../inc/class-destination-msazure.php:326
|
365 |
-
#, php-format
|
366 |
-
msgid "One file deleted on Microsoft Azure container."
|
367 |
-
msgid_plural "%d files deleted on Microsoft Azure container."
|
368 |
-
msgstr[0] ""
|
369 |
-
msgstr[1] ""
|
370 |
-
|
371 |
-
#: ../inc/class-destination-msazure.php:419
|
372 |
-
msgid "Missing account name!"
|
373 |
-
msgstr ""
|
374 |
-
|
375 |
-
#: ../inc/class-destination-msazure.php:421 ../inc/class-destination-s3-v1.php:
|
376 |
-
#:
|
377 |
-
#: php:
|
378 |
-
msgid "Missing access key!"
|
379 |
-
msgstr ""
|
380 |
-
|
381 |
-
#: ../inc/class-destination-msazure.php:425
|
382 |
-
msgid "No container found!"
|
383 |
-
msgstr ""
|
384 |
-
|
385 |
-
#: ../inc/class-jobtype-dbdump.php:13
|
386 |
-
msgid "DB Backup"
|
387 |
-
msgstr ""
|
388 |
-
|
389 |
-
#: ../inc/class-jobtype-dbdump.php:14
|
390 |
-
msgid "Database backup"
|
391 |
-
msgstr ""
|
392 |
-
|
393 |
-
#: ../inc/class-jobtype-dbdump.php:15
|
394 |
-
msgid "Creates an .sql database backup file"
|
395 |
-
msgstr ""
|
396 |
-
|
397 |
-
#: ../inc/class-jobtype-dbdump.php:61 ../inc/pro/class-jobtype-dbdump.php:84 ..
|
398 |
-
#: /inc/pro/class-jobtype-dbdump.php:105
|
399 |
-
msgid "Settings for database backup"
|
400 |
-
msgstr ""
|
401 |
-
|
402 |
-
#: ../inc/class-jobtype-dbdump.php:65 ../inc/pro/class-jobtype-dbdump.php:151
|
403 |
-
msgid "Tables to backup"
|
404 |
-
msgstr ""
|
405 |
-
|
406 |
-
#: ../inc/class-jobtype-dbdump.php:67 ../inc/pro/class-jobtype-dbdump.php:153
|
407 |
-
msgid "all"
|
408 |
-
msgstr ""
|
409 |
-
|
410 |
-
#: ../inc/class-jobtype-dbdump.php:68 ../inc/class-jobtype-dbdump.php:103 ..
|
411 |
-
#: /inc/class-page-backwpup.php:334 ../inc/class-page-backwpup.php:399 ..
|
412 |
-
#: /inc/class-destination-email.php:114 ../inc/class-page-settings.php:345 ..
|
413 |
-
#: /inc/class-jobtype-wpexp.php:73 ../inc/class-jobtype-wpplugin.php:57 ..
|
414 |
-
#: /inc/pro/class-jobtype-dbdump.php:154 ../inc/pro/class-jobtype-dbdump.php:198
|
415 |
-
msgid "none"
|
416 |
-
msgstr ""
|
417 |
-
|
418 |
-
#: ../inc/class-jobtype-dbdump.php:91 ../inc/pro/class-jobtype-dbdump.php:186
|
419 |
-
msgid "Backup file name"
|
420 |
-
msgstr ""
|
421 |
-
|
422 |
-
#: ../inc/class-jobtype-dbdump.php:99 ../inc/pro/class-jobtype-dbdump.php:194
|
423 |
-
msgid "Backup file compression"
|
424 |
-
msgstr ""
|
425 |
-
|
426 |
-
#: ../inc/class-jobtype-dbdump.php:105 ../inc/class-jobtype-dbdump.php:107 ..
|
427 |
-
#: /inc/class-jobtype-wpexp.php:75 ../inc/class-jobtype-wpexp.php:77 ../inc/class-
|
428 |
-
#: jobtype-wpplugin.php:59 ../inc/class-jobtype-wpplugin.php:61 ../inc/pro/class-
|
429 |
-
#: jobtype-dbdump.php:200 ../inc/pro/class-jobtype-dbdump.php:202
|
430 |
-
msgid "GZip"
|
431 |
-
msgstr ""
|
432 |
-
|
433 |
-
#: ../inc/class-jobtype-dbdump.php:155 ../inc/pro/class-jobtype-dbdump.php:456
|
434 |
-
#, php-format
|
435 |
-
msgid "%d. Try to backup database …"
|
436 |
-
msgstr ""
|
437 |
-
|
438 |
-
#: ../inc/class-jobtype-dbdump.php:169 ../inc/pro/class-jobtype-dbdump.php:476
|
439 |
-
#, php-format
|
440 |
-
msgid "Connected to database %1$s on %2$s"
|
441 |
-
msgstr ""
|
442 |
-
|
443 |
-
#: ../inc/class-jobtype-dbdump.php:183 ../inc/pro/class-jobtype-dbdump.php:490
|
444 |
-
msgid "No tables to backup."
|
445 |
-
msgstr ""
|
446 |
-
|
447 |
-
#: ../inc/class-jobtype-dbdump.php:206 ../inc/pro/class-jobtype-dbdump.php:516
|
448 |
-
#, php-format
|
449 |
-
msgid "Backup database table \"%s\" with \"%s\" records"
|
450 |
-
msgstr ""
|
451 |
-
|
452 |
-
#: ../inc/class-jobtype-dbdump.php:246 ../inc/pro/class-jobtype-dbdump.php:556
|
453 |
-
msgid "MySQL backup file not created"
|
454 |
-
msgstr ""
|
455 |
-
|
456 |
-
#: ../inc/class-jobtype-dbdump.php:250 ../inc/pro/class-jobtype-dbdump.php:740
|
457 |
-
#, php-format
|
458 |
-
msgid "Added database dump \"%1$s\" with %2$s to backup file list"
|
459 |
-
msgstr ""
|
460 |
-
|
461 |
-
#: ../inc/class-jobtype-dbdump.php:256 ../inc/pro/class-jobtype-dbdump.php:566 ..
|
462 |
-
#: /inc/pro/class-jobtype-dbdump.php:743
|
463 |
-
msgid "Database backup done!"
|
464 |
-
msgstr ""
|
465 |
-
|
466 |
-
#: ../inc/class-page-about.php:394
|
467 |
-
#, php-format
|
468 |
-
msgid "%s Welcome"
|
469 |
-
msgstr ""
|
470 |
-
|
471 |
-
#: ../inc/class-page-about.php:401
|
472 |
-
msgid "Heads up! You have updated from version 2.x"
|
473 |
-
msgstr ""
|
474 |
-
|
475 |
-
#: ../inc/class-page-about.php:402
|
476 |
-
#, php-format
|
477 |
-
msgid "Please <a href=\"%s\">check your settings</a> after updating from version 2.x:"
|
478 |
-
msgstr ""
|
479 |
-
|
480 |
-
#: ../inc/class-page-about.php:403
|
481 |
-
msgid "Dropbox authentication must be re-entered"
|
482 |
-
msgstr ""
|
483 |
-
|
484 |
-
#: ../inc/class-page-about.php:404
|
485 |
-
msgid "SugarSync authentication must be re-entered"
|
486 |
-
msgstr ""
|
487 |
-
|
488 |
-
#: ../inc/class-page-about.php:405
|
489 |
-
msgid "S3 Settings"
|
490 |
-
msgstr ""
|
491 |
-
|
492 |
-
#: ../inc/class-page-about.php:406
|
493 |
-
msgid "Google Storage is now a part of S3 service settings"
|
494 |
-
msgstr ""
|
495 |
-
|
496 |
-
#: ../inc/class-page-about.php:407
|
497 |
-
msgid "All your passwords"
|
498 |
-
msgstr ""
|
499 |
-
|
500 |
-
#: ../inc/class-page-about.php:416
|
501 |
-
msgid "Welcome to BackWPup Pro"
|
502 |
-
msgstr ""
|
503 |
-
|
504 |
-
#: ../inc/class-page-about.php:417 ../inc/class-page-backwpup.php:75
|
505 |
-
msgid ""
|
506 |
-
"BackWPup’s job wizards make planning and scheduling your backup jobs a "
|
507 |
-
"breeze."
|
508 |
-
msgstr ""
|
509 |
-
|
510 |
-
#: ../inc/class-page-about.php:418 ../inc/class-page-about.php:428
|
511 |
-
msgid ""
|
512 |
-
"Use your backup archives to save your entire WordPress installation "
|
513 |
-
"including <code>/wp-content/</code>. Push them to an external storage "
|
514 |
-
"service if you don’t want to save the backups on the same server. With a "
|
515 |
-
"single backup archive you are able to restore an installation. Use a tool "
|
516 |
-
"like phpMyAdmin or a plugin like <a href=\"http://wordpress."
|
517 |
-
"org/plugins/adminer/\" target=\"_blank\">Adminer</a> to restore your database "
|
518 |
-
"backup files."
|
519 |
-
msgstr ""
|
520 |
-
|
521 |
-
#: ../inc/class-page-about.php:419
|
522 |
-
#, php-format
|
523 |
-
msgid ""
|
524 |
-
"Ready to <a href=\"%1$s\">set up a backup job</a>? You can <a href=\"%2$s\">use "
|
525 |
-
"the wizards</a> or plan your backup in expert mode."
|
526 |
-
msgstr ""
|
527 |
-
|
528 |
-
#: ../inc/class-page-about.php:426
|
529 |
-
msgid "Welcome to BackWPup"
|
530 |
-
msgstr ""
|
531 |
-
|
532 |
-
#: ../inc/class-page-about.php:429
|
533 |
-
msgid ""
|
534 |
-
"Ready to set up a backup job? Use one of the wizards to plan what you want "
|
535 |
-
"to save."
|
536 |
-
msgstr ""
|
537 |
-
|
538 |
-
#: ../inc/class-page-about.php:446
|
539 |
-
msgid "Please activate your license"
|
540 |
-
msgstr ""
|
541 |
-
|
542 |
-
#: ../inc/class-page-about.php:447
|
543 |
-
msgid ""
|
544 |
-
"Please go to your plugin page and active the license to have the autoupdates "
|
545 |
-
"enabled."
|
546 |
-
msgstr ""
|
547 |
-
|
548 |
-
#: ../inc/class-page-about.php:456
|
549 |
-
msgid "Save your database"
|
550 |
-
msgstr ""
|
551 |
-
|
552 |
-
#: ../inc/class-page-about.php:459
|
553 |
-
msgid "Save your database regularly"
|
554 |
-
msgstr ""
|
555 |
-
|
556 |
-
#: ../inc/class-page-about.php:460
|
557 |
-
#, php-format
|
558 |
-
msgid ""
|
559 |
-
"With BackWPup you can schedule the database backup to run automatically. "
|
560 |
-
"With a single backup file you can restore your database. You should <a "
|
561 |
-
"href=\"%s\">set up a backup job</a>, so you will never forget it. There is "
|
562 |
-
"also an option to repair and optimize the database after each backup."
|
563 |
-
msgstr ""
|
564 |
-
|
565 |
-
#: ../inc/class-page-about.php:465 ../inc/class-page-about.php:469
|
566 |
-
msgid "WordPress XML Export"
|
567 |
-
msgstr ""
|
568 |
-
|
569 |
-
#: ../inc/class-page-about.php:466
|
570 |
-
msgid ""
|
571 |
-
"You can choose the built-in WordPress export format in addition or exclusive "
|
572 |
-
"to save your data. This works in automated backups too of course. The "
|
573 |
-
"advantage is: you can import these files into a blog with the regular "
|
574 |
-
"WordPress importer."
|
575 |
-
msgstr ""
|
576 |
-
|
577 |
-
#: ../inc/class-page-about.php:474
|
578 |
-
msgid "Save all data from the webserver"
|
579 |
-
msgstr ""
|
580 |
-
|
581 |
-
#: ../inc/class-page-about.php:477
|
582 |
-
msgid "Save all files"
|
583 |
-
msgstr ""
|
584 |
-
|
585 |
-
#: ../inc/class-page-about.php:478
|
586 |
-
#, php-format
|
587 |
-
msgid ""
|
588 |
-
"You can backup all your attachments, also all system files, plugins and "
|
589 |
-
"themes in a single file. You can <a href=\"%s\">create a job</a> to update a "
|
590 |
-
"backup copy of your file system only when files are changed."
|
591 |
-
msgstr ""
|
592 |
-
|
593 |
-
#: ../inc/class-page-about.php:483 ../inc/class-page-about.php:487
|
594 |
-
msgid "Security!"
|
595 |
-
msgstr ""
|
596 |
-
|
597 |
-
#: ../inc/class-page-about.php:484
|
598 |
-
msgid ""
|
599 |
-
"By default everything is encrypted: connections to external services, local "
|
600 |
-
"files and access to directories."
|
601 |
-
msgstr ""
|
602 |
-
|
603 |
-
#: ../inc/class-page-about.php:492 ../inc/class-page-about.php:495
|
604 |
-
msgid "Cloud Support"
|
605 |
-
msgstr ""
|
606 |
-
|
607 |
-
#: ../inc/class-page-about.php:496
|
608 |
-
msgid ""
|
609 |
-
"BackWPup supports multiple cloud services in parallel. This ensures backups "
|
610 |
-
"are redundant."
|
611 |
-
msgstr ""
|
612 |
-
|
613 |
-
#: ../inc/class-page-about.php:504
|
614 |
-
msgid "Features / differences between Free and Pro"
|
615 |
-
msgstr ""
|
616 |
-
|
617 |
-
#: ../inc/class-page-about.php:507
|
618 |
-
msgid "Features"
|
619 |
-
msgstr ""
|
620 |
-
|
621 |
-
#: ../inc/class-page-about.php:508
|
622 |
-
msgid "FREE"
|
623 |
-
msgstr ""
|
624 |
-
|
625 |
-
#: ../inc/class-page-about.php:509
|
626 |
-
msgid "PRO"
|
627 |
-
msgstr ""
|
628 |
-
|
629 |
-
#: ../inc/class-page-about.php:512
|
630 |
-
msgid "Complete database backup"
|
631 |
-
msgstr ""
|
632 |
-
|
633 |
-
#: ../inc/class-page-about.php:517
|
634 |
-
msgid "Complete file backup"
|
635 |
-
msgstr ""
|
636 |
-
|
637 |
-
#: ../inc/class-page-about.php:522
|
638 |
-
msgid "Database check"
|
639 |
-
msgstr ""
|
640 |
-
|
641 |
-
#: ../inc/class-page-about.php:527
|
642 |
-
msgid "Data compression"
|
643 |
-
msgstr ""
|
644 |
-
|
645 |
-
#: ../inc/class-page-about.php:532 ../inc/class-jobtype-wpexp.php:14
|
646 |
-
msgid "WordPress XML export"
|
647 |
-
msgstr ""
|
648 |
-
|
649 |
-
#: ../inc/class-page-about.php:537
|
650 |
-
msgid "List of installed plugins"
|
651 |
-
msgstr ""
|
652 |
-
|
653 |
-
#: ../inc/class-page-about.php:542
|
654 |
-
msgid "Backup archives management"
|
655 |
-
msgstr ""
|
656 |
-
|
657 |
-
#: ../inc/class-page-about.php:547
|
658 |
-
msgid "Log file management"
|
659 |
-
msgstr ""
|
660 |
-
|
661 |
-
#: ../inc/class-page-about.php:552
|
662 |
-
msgid "Start jobs per WP-Cron, URL, system, backend or WP-CLI"
|
663 |
-
msgstr ""
|
664 |
-
|
665 |
-
#: ../inc/class-page-about.php:557
|
666 |
-
msgid "Log report via email"
|
667 |
-
msgstr ""
|
668 |
-
|
669 |
-
#: ../inc/class-page-about.php:562
|
670 |
-
msgid "Backup to Microsoft Azure"
|
671 |
-
msgstr ""
|
672 |
-
|
673 |
-
#: ../inc/class-page-about.php:567
|
674 |
-
msgid "Backup as email"
|
675 |
-
msgstr ""
|
676 |
-
|
677 |
-
#: ../inc/class-page-about.php:572
|
678 |
-
msgid ""
|
679 |
-
"Backup to S3 services <small>(Amazon, Google Storage, Hosteurope and "
|
680 |
-
"more)</small>"
|
681 |
-
msgstr ""
|
682 |
-
|
683 |
-
#: ../inc/class-page-about.php:587
|
684 |
-
msgid "Backup to FTP server"
|
685 |
-
msgstr ""
|
686 |
-
|
687 |
-
#: ../inc/class-page-about.php:592
|
688 |
-
msgid "Backup to your web space"
|
689 |
-
msgstr ""
|
690 |
-
|
691 |
-
#: ../inc/class-page-about.php:602 ../inc/pro/class-pro.php:131
|
692 |
-
msgid "Backup to Google Drive"
|
693 |
-
msgstr ""
|
694 |
-
|
695 |
-
#: ../inc/class-page-about.php:607 ../inc/pro/class-pro.php:112
|
696 |
-
msgid "Backup to Amazon Glacier"
|
697 |
-
msgstr ""
|
698 |
-
|
699 |
-
#: ../inc/class-page-about.php:612
|
700 |
-
msgid "Custom API keys for DropBox and SugarSync"
|
701 |
-
msgstr ""
|
702 |
-
|
703 |
-
#: ../inc/class-page-about.php:617
|
704 |
-
msgid "XML database backup as PHPMyAdmin schema"
|
705 |
-
msgstr ""
|
706 |
-
|
707 |
-
#: ../inc/class-page-about.php:622
|
708 |
-
msgid "Database backup as mysqldump per command line"
|
709 |
-
msgstr ""
|
710 |
-
|
711 |
-
#: ../inc/class-page-about.php:627
|
712 |
-
msgid "Database backup for additional MySQL databases"
|
713 |
-
msgstr ""
|
714 |
-
|
715 |
-
#: ../inc/class-page-about.php:632
|
716 |
-
msgid "Import and export job settings as XML"
|
717 |
-
msgstr ""
|
718 |
-
|
719 |
-
#: ../inc/class-page-about.php:637
|
720 |
-
msgid "Wizard for system tests"
|
721 |
-
msgstr ""
|
722 |
-
|
723 |
-
#: ../inc/class-page-about.php:642
|
724 |
-
msgid "Wizard for scheduled backup jobs"
|
725 |
-
msgstr ""
|
726 |
-
|
727 |
-
#: ../inc/class-page-about.php:647
|
728 |
-
msgid "Wizard to import settings and backup jobs"
|
729 |
-
msgstr ""
|
730 |
-
|
731 |
-
#: ../inc/class-page-about.php:652
|
732 |
-
msgid "Differential backup of changed directories to Dropbox"
|
733 |
-
msgstr ""
|
734 |
-
|
735 |
-
#: ../inc/class-page-about.php:657
|
736 |
-
msgid "Differential backup of changed directories to Rackspace Cloud Files"
|
737 |
-
msgstr ""
|
738 |
-
|
739 |
-
#: ../inc/class-page-about.php:662
|
740 |
-
msgid "Differential backup of changed directories to S3"
|
741 |
-
msgstr ""
|
742 |
-
|
743 |
-
#: ../inc/class-page-about.php:667
|
744 |
-
msgid "Differential backup of changed directories to MS Azure"
|
745 |
-
msgstr ""
|
746 |
-
|
747 |
-
#: ../inc/class-page-about.php:672
|
748 |
-
msgid "<strong>Premium support</strong>"
|
749 |
-
msgstr ""
|
750 |
-
|
751 |
-
#: ../inc/class-page-about.php:677
|
752 |
-
msgid "<strong>Dynamically loaded documentation</strong>"
|
753 |
-
msgstr ""
|
754 |
-
|
755 |
-
#: ../inc/class-page-about.php:682
|
756 |
-
msgid "<strong>Automatic update from MarketPress</strong>"
|
757 |
-
msgstr ""
|
758 |
-
|
759 |
-
#: ../inc/class-page-about.php:689 ../inc/class-admin.php:
|
760 |
-
msgid "http://marketpress.com/product/backwpup-pro/"
|
761 |
-
msgstr ""
|
762 |
-
|
763 |
-
#: ../inc/class-page-about.php:689
|
764 |
-
msgid "GET PRO"
|
765 |
-
msgstr ""
|
766 |
-
|
767 |
-
#: ../inc/class-cron.php:64
|
768 |
-
msgid "Aborted, because no progress for one hour!"
|
769 |
-
msgstr ""
|
770 |
-
|
771 |
-
#: ../inc/class-page-backwpup.php:67
|
772 |
-
#, php-format
|
773 |
-
msgid "%s Dashboard"
|
774 |
-
msgstr ""
|
775 |
-
|
776 |
-
#: ../inc/class-page-backwpup.php:74 ../inc/class-page-backwpup.php:83
|
777 |
-
msgctxt "Dashboard heading"
|
778 |
-
msgid "Planning backups"
|
779 |
-
msgstr ""
|
780 |
-
|
781 |
-
#: ../inc/class-page-backwpup.php:75 ../inc/class-page-backwpup.php:84
|
782 |
-
msgid ""
|
783 |
-
"Use your backup archives to save your entire WordPress installation "
|
784 |
-
"including <code>/wp-content/</code>. Push them to an external storage "
|
785 |
-
"service if you don’t want to save the backups on the same server."
|
786 |
-
msgstr ""
|
787 |
-
|
788 |
-
#: ../inc/class-page-backwpup.php:76 ../inc/class-page-backwpup.php:85
|
789 |
-
msgctxt "Dashboard heading"
|
790 |
-
msgid "Restoring backups"
|
791 |
-
msgstr ""
|
792 |
-
|
793 |
-
#: ../inc/class-page-backwpup.php:77 ../inc/class-page-backwpup.php:86
|
794 |
-
msgid ""
|
795 |
-
"With a single backup archive you are able to restore an installation. Use a "
|
796 |
-
"tool like phpMyAdmin or a plugin like <a href=\"http://wordpress."
|
797 |
-
"org/plugins/adminer/\" target=\"_blank\">Adminer</a> to restore your database "
|
798 |
-
"backup files."
|
799 |
-
msgstr ""
|
800 |
-
|
801 |
-
#: ../inc/class-page-backwpup.php:78 ../inc/class-page-backwpup.php:87
|
802 |
-
msgctxt "Dashboard heading"
|
803 |
-
msgid "Ready to set up a backup job?"
|
804 |
-
msgstr ""
|
805 |
-
|
806 |
-
#: ../inc/class-page-backwpup.php:79
|
807 |
-
#, php-format
|
808 |
-
msgid ""
|
809 |
-
"Use one of the wizards to plan a backup, or use <a href=\"%s\">expert mode</a> "
|
810 |
-
"for full control over all options."
|
811 |
-
msgstr ""
|
812 |
-
|
813 |
-
#: ../inc/class-page-backwpup.php:79 ../inc/class-page-backwpup.php:89
|
814 |
-
msgid ""
|
815 |
-
"<strong>Please note: You are solely responsible for the security of your "
|
816 |
-
"data; the authors of this plugin are not.</strong>"
|
817 |
-
msgstr ""
|
818 |
-
|
819 |
-
#: ../inc/class-page-backwpup.php:84
|
820 |
-
msgid ""
|
821 |
-
"Use the short links in the <strong>First steps</strong> box to plan and "
|
822 |
-
"schedule backup jobs."
|
823 |
-
msgstr ""
|
824 |
-
|
825 |
-
#: ../inc/class-page-backwpup.php:88
|
826 |
-
#, php-format
|
827 |
-
msgid "<a href=\"%s\">Add a new backup job</a> and plan what you want to save."
|
828 |
-
msgstr ""
|
829 |
-
|
830 |
-
#: ../inc/class-page-backwpup.php:96
|
831 |
-
msgid "First Steps"
|
832 |
-
msgstr ""
|
833 |
-
|
834 |
-
#: ../inc/class-page-backwpup.php:100
|
835 |
-
msgid "Test the installation"
|
836 |
-
msgstr ""
|
837 |
-
|
838 |
-
#: ../inc/class-page-backwpup.php:101 ../inc/class-page-backwpup.php:104
|
839 |
-
msgid "Create a Job"
|
840 |
-
msgstr ""
|
841 |
-
|
842 |
-
#: ../inc/class-page-backwpup.php:103
|
843 |
-
msgid "Check the installation"
|
844 |
-
msgstr ""
|
845 |
-
|
846 |
-
#: ../inc/class-page-backwpup.php:106
|
847 |
-
msgid "Run the created job"
|
848 |
-
msgstr ""
|
849 |
-
|
850 |
-
#: ../inc/class-page-backwpup.php:107
|
851 |
-
msgid "Check the job log"
|
852 |
-
msgstr ""
|
853 |
-
|
854 |
-
#: ../inc/class-page-backwpup.php:115
|
855 |
-
msgid "One click backup"
|
856 |
-
msgstr ""
|
857 |
-
|
858 |
-
#: ../inc/class-page-backwpup.php:117
|
859 |
-
msgid "Generate a database backup of WordPress tables and download it right away!"
|
860 |
-
msgstr ""
|
861 |
-
|
862 |
-
#: ../inc/class-page-backwpup.php:117
|
863 |
-
msgid "Download database backup"
|
864 |
-
msgstr ""
|
865 |
-
|
866 |
-
#: ../inc/class-page-backwpup.php:123
|
867 |
-
msgid "BackWPup News"
|
868 |
-
msgstr ""
|
869 |
-
|
870 |
-
#: ../inc/class-page-backwpup.php:128
|
871 |
-
msgctxt "BackWPup News RSS Feed URL"
|
872 |
-
msgid "https://marketpress.com/tag/backwpup/feed/"
|
873 |
-
msgstr ""
|
874 |
-
|
875 |
-
#: ../inc/class-page-backwpup.php:133
|
876 |
-
#, php-format
|
877 |
-
msgid "<strong>RSS Error</strong>: %s"
|
878 |
-
msgstr ""
|
879 |
-
|
880 |
-
#: ../inc/class-page-backwpup.php:137
|
881 |
-
msgid ""
|
882 |
-
"An error has occurred, which probably means the feed is down. Try again "
|
883 |
-
"later."
|
884 |
-
msgstr ""
|
885 |
-
|
886 |
-
#: ../inc/class-page-backwpup.php:152
|
887 |
-
msgid "Untitled"
|
888 |
-
msgstr ""
|
889 |
-
|
890 |
-
#: ../inc/class-page-backwpup.php:216 ../inc/pro/class-page-wizard.php:358
|
891 |
-
msgid "Start wizard"
|
892 |
-
msgstr ""
|
893 |
-
|
894 |
-
#: ../inc/class-page-backwpup.php:223
|
895 |
-
msgid "Video: Introduction"
|
896 |
-
msgstr ""
|
897 |
-
|
898 |
-
#: ../inc/class-page-backwpup.php:228
|
899 |
-
msgid "Video: Settings"
|
900 |
-
msgstr ""
|
901 |
-
|
902 |
-
#: ../inc/class-page-backwpup.php:233
|
903 |
-
msgid "Video: Daily Backups"
|
904 |
-
msgstr ""
|
905 |
-
|
906 |
-
#: ../inc/class-page-backwpup.php:238
|
907 |
-
msgid "Video: Creating Full Backups"
|
908 |
-
msgstr ""
|
909 |
-
|
910 |
-
#: ../inc/class-page-backwpup.php:243
|
911 |
-
msgid "Video: Restoring Backups"
|
912 |
-
msgstr ""
|
913 |
-
|
914 |
-
#: ../inc/class-page-backwpup.php:258
|
915 |
-
msgctxt "Pro teaser box"
|
916 |
-
msgid "Thank you for using BackWPup!"
|
917 |
-
msgstr ""
|
918 |
-
|
919 |
-
#: ../inc/class-page-backwpup.php:261
|
920 |
-
msgctxt "Pro teaser box"
|
921 |
-
msgid "Get access to:"
|
922 |
-
msgstr ""
|
923 |
-
|
924 |
-
#: ../inc/class-page-backwpup.php:263
|
925 |
-
msgctxt "Pro teaser box"
|
926 |
-
msgid "First-class <strong>dedicated support</strong> at MarketPress Helpdesk."
|
927 |
-
msgstr ""
|
928 |
-
|
929 |
-
#: ../inc/class-page-backwpup.php:264
|
930 |
-
msgctxt "Pro teaser box"
|
931 |
-
msgid "Differential backups to Google Drive and other cloud storage service."
|
932 |
-
msgstr ""
|
933 |
-
|
934 |
-
#: ../inc/class-page-backwpup.php:265
|
935 |
-
msgctxt "Pro teaser box"
|
936 |
-
msgid "Easy-peasy wizards to create and schedule backup jobs."
|
937 |
-
msgstr ""
|
938 |
-
|
939 |
-
#: ../inc/class-page-backwpup.php:266
|
940 |
-
msgctxt "Pro teaser box, link text"
|
941 |
-
msgid "And more…"
|
942 |
-
msgstr ""
|
943 |
-
|
944 |
-
#: ../inc/class-page-backwpup.php:268
|
945 |
-
msgctxt "Pro teaser box, link title"
|
946 |
-
msgid "Get BackWPup Pro now"
|
947 |
-
msgstr ""
|
948 |
-
|
949 |
-
#: ../inc/class-page-backwpup.php:268
|
950 |
-
msgctxt "Pro teaser box, link text"
|
951 |
-
msgid "Get BackWPup Pro now"
|
952 |
-
msgstr ""
|
953 |
-
|
954 |
-
#: ../inc/class-page-backwpup.php:286
|
955 |
-
msgid "Last logs"
|
956 |
-
msgstr ""
|
957 |
-
|
958 |
-
#: ../inc/class-page-backwpup.php:288
|
959 |
-
msgid "Result"
|
960 |
-
msgstr ""
|
961 |
-
|
962 |
-
#: ../inc/class-page-backwpup.php:322
|
963 |
-
#, php-format
|
964 |
-
msgid "%d ERROR"
|
965 |
-
msgstr ""
|
966 |
-
|
967 |
-
#: ../inc/class-page-backwpup.php:324
|
968 |
-
#, php-format
|
969 |
-
msgid "%d WARNING"
|
970 |
-
msgstr ""
|
971 |
-
|
972 |
-
#: ../inc/class-page-backwpup.php:326
|
973 |
-
msgid "OK"
|
974 |
-
msgstr ""
|
975 |
-
|
976 |
-
#: ../inc/class-page-backwpup.php:350
|
977 |
-
msgid "Next scheduled jobs"
|
978 |
-
msgstr ""
|
979 |
-
|
980 |
-
#: ../inc/class-page-backwpup.php:377
|
981 |
-
#, php-format
|
982 |
-
msgid "working since %d seconds"
|
983 |
-
msgstr ""
|
984 |
-
|
985 |
-
#: ../inc/class-page-backwpup.php:379 ../inc/class-page-jobs.php:
|
986 |
-
msgid "Abort"
|
987 |
-
msgstr ""
|
988 |
-
|
989 |
-
#: ../inc/class-page-backwpup.php:393 ../inc/class-page-jobs.php:282 ../inc/class-
|
990 |
-
#: page-jobs.php:291 ../inc/class-job.php:335
|
991 |
-
msgid "Not scheduled!"
|
992 |
-
msgstr ""
|
993 |
-
|
994 |
-
#: ../inc/class-page-backwpup.php:395
|
995 |
-
msgid "Edit Job"
|
996 |
-
msgstr ""
|
997 |
-
|
998 |
-
#: ../inc/class-jobtype-file.php:15
|
999 |
-
msgid "Files"
|
1000 |
-
msgstr ""
|
1001 |
-
|
1002 |
-
#: ../inc/class-jobtype-file.php:16
|
1003 |
-
msgid "File backup"
|
1004 |
-
msgstr ""
|
1005 |
-
|
1006 |
-
#: ../inc/class-jobtype-file.php:73
|
1007 |
-
msgid "Folders to backup"
|
1008 |
-
msgstr ""
|
1009 |
-
|
1010 |
-
#: ../inc/class-jobtype-file.php:77
|
1011 |
-
msgid "Backup WordPress install folder"
|
1012 |
-
msgstr ""
|
1013 |
-
|
1014 |
-
#: ../inc/class-jobtype-file.php:88 ../inc/class-jobtype-file.php:125 ..
|
1015 |
-
#: /inc/class-jobtype-file.php:162 ../inc/class-jobtype-file.php:199 ../inc/class-
|
1016 |
-
#: jobtype-file.php:236
|
1017 |
-
#, php-format
|
1018 |
-
msgid "Path as set by user (symlink?): %s"
|
1019 |
-
msgstr ""
|
1020 |
-
|
1021 |
-
#: ../inc/class-jobtype-file.php:91 ../inc/class-jobtype-file.php:128 ..
|
1022 |
-
#: /inc/class-jobtype-file.php:165 ../inc/class-jobtype-file.php:202 ../inc/class-
|
1023 |
-
#: jobtype-file.php:239
|
1024 |
-
msgid "Exclude:"
|
1025 |
-
msgstr ""
|
1026 |
-
|
1027 |
-
#: ../inc/class-jobtype-file.php:102 ../inc/class-jobtype-file.php:139 ..
|
1028 |
-
#: /inc/class-jobtype-file.php:176 ../inc/class-jobtype-file.php:213 ../inc/class-
|
1029 |
-
#: jobtype-file.php:250
|
1030 |
-
msgid "Excluded by .donotbackup file!"
|
1031 |
-
msgstr ""
|
1032 |
-
|
1033 |
-
#: ../inc/class-jobtype-file.php:114
|
1034 |
-
msgid "Backup content folder"
|
1035 |
-
msgstr ""
|
1036 |
-
|
1037 |
-
#: ../inc/class-jobtype-file.php:151
|
1038 |
-
msgid "Backup plugins"
|
1039 |
-
msgstr ""
|
1040 |
-
|
1041 |
-
#: ../inc/class-jobtype-file.php:188
|
1042 |
-
msgid "Backup themes"
|
1043 |
-
msgstr ""
|
1044 |
-
|
1045 |
-
#: ../inc/class-jobtype-file.php:225 ../inc/pro/class-wizard-job.php:703 ..
|
1046 |
-
#: /inc/pro/class-wizard-job.php:704
|
1047 |
-
msgid "Backup uploads folder"
|
1048 |
-
msgstr ""
|
1049 |
-
|
1050 |
-
#: ../inc/class-jobtype-file.php:262
|
1051 |
-
msgid "Extra folders to backup"
|
1052 |
-
msgstr ""
|
1053 |
-
|
1054 |
-
#: ../inc/class-jobtype-file.php:264
|
1055 |
-
msgid ""
|
1056 |
-
"Separate folder names with a line-break or a comma. Folders must be set with "
|
1057 |
-
"their absolute path!"
|
1058 |
-
msgstr ""
|
1059 |
-
|
1060 |
-
#: ../inc/class-jobtype-file.php:269
|
1061 |
-
msgid "Exclude from backup"
|
1062 |
-
msgstr ""
|
1063 |
-
|
1064 |
-
#: ../inc/class-jobtype-file.php:273
|
1065 |
-
msgid "Thumbnails in uploads"
|
1066 |
-
msgstr ""
|
1067 |
-
|
1068 |
-
#: ../inc/class-jobtype-file.php:275
|
1069 |
-
msgid ""
|
1070 |
-
"All images with -???x???. will be excluded. Use a plugin like Regenerate "
|
1071 |
-
"Thumbnails to rebuild them after a restore."
|
1072 |
-
msgstr ""
|
1073 |
-
|
1074 |
-
#: ../inc/class-jobtype-file.php:277
|
1075 |
-
msgid "Don't backup thumbnails from the site's uploads folder."
|
1076 |
-
msgstr ""
|
1077 |
-
|
1078 |
-
#: ../inc/class-jobtype-file.php:281
|
1079 |
-
msgid "Exclude files/folders from backup"
|
1080 |
-
msgstr ""
|
1081 |
-
|
1082 |
-
#: ../inc/class-jobtype-file.php:283
|
1083 |
-
msgid ""
|
1084 |
-
"Separate file / folder name parts with a line-break or a comma. For example "
|
1085 |
-
"/logs/,.log,.tmp"
|
1086 |
-
msgstr ""
|
1087 |
-
|
1088 |
-
#: ../inc/class-jobtype-file.php:288
|
1089 |
-
msgid "Special options"
|
1090 |
-
msgstr ""
|
1091 |
-
|
1092 |
-
#: ../inc/class-jobtype-file.php:292
|
1093 |
-
msgid "Include special files"
|
1094 |
-
msgstr ""
|
1095 |
-
|
1096 |
-
#: ../inc/class-jobtype-file.php:294
|
1097 |
-
msgid ""
|
1098 |
-
"If the WordPress root folder is not included in this backup job, check this "
|
1099 |
-
"option to additionally include wp-config.php, robots.txt, .htaccess, ."
|
1100 |
-
"htpasswd and favicon.ico into the backup. Your wp-config.php will be "
|
1101 |
-
"included even if you placed it in the parent directory of your root folder."
|
1102 |
-
msgstr ""
|
1103 |
-
|
1104 |
-
#: ../inc/class-jobtype-file.php:296
|
1105 |
-
msgid ""
|
1106 |
-
"Backup wp-config.php, robots.txt, .htaccess, .htpasswd and favicon.ico from "
|
1107 |
-
"root."
|
1108 |
-
msgstr ""
|
1109 |
-
|
1110 |
-
#: ../inc/class-jobtype-file.php:300
|
1111 |
-
msgid "Use one folder above as WP install folder"
|
1112 |
-
msgstr ""
|
1113 |
-
|
1114 |
-
#: ../inc/class-jobtype-file.php:304
|
1115 |
-
msgid ""
|
1116 |
-
"Use one folder above as WordPress install folder! That can be helpful, if "
|
1117 |
-
"you would backup files and folder that are not in the WordPress installation "
|
1118 |
-
"folder. Or if you made a \"<a href=\"https://codex.wordpress."
|
1119 |
-
"org/Giving_WordPress_Its_Own_Directory\">Giving WordPress Its Own "
|
1120 |
-
"Directory</a>\" installation. Excludes must be configured again."
|
1121 |
-
msgstr ""
|
1122 |
-
|
1123 |
-
#: ../inc/class-jobtype-file.php:387
|
1124 |
-
#, php-format
|
1125 |
-
msgid "%d. Trying to make a list of folders to back up …"
|
1126 |
-
msgstr ""
|
1127 |
-
|
1128 |
-
#: ../inc/class-jobtype-file.php:503 ../inc/class-jobtype-file.php:508 ..
|
1129 |
-
#: /inc/class-jobtype-file.php:513 ../inc/class-jobtype-file.php:517 ../inc/class-
|
1130 |
-
#: jobtype-file.php:521 ../inc/class-jobtype-file.php:525
|
1131 |
-
#, php-format
|
1132 |
-
msgid "Added \"%s\" to backup file list"
|
1133 |
-
msgstr ""
|
1134 |
-
|
1135 |
-
#: ../inc/class-jobtype-file.php:530
|
1136 |
-
msgid "No files/folder for the backup."
|
1137 |
-
msgstr ""
|
1138 |
-
|
1139 |
-
#: ../inc/class-jobtype-file.php:532
|
1140 |
-
#, php-format
|
1141 |
-
msgid "%1$d folders to backup."
|
1142 |
-
msgstr ""
|
1143 |
-
|
1144 |
-
#: ../inc/class-jobtype-file.php:571
|
1145 |
-
#, php-format
|
1146 |
-
msgid "Folder \"%s\" is not readable!"
|
1147 |
-
msgstr ""
|
1148 |
-
|
1149 |
-
#: ../inc/class-wp-cli.php:23
|
1150 |
-
msgid "A job is already running."
|
1151 |
-
msgstr ""
|
1152 |
-
|
1153 |
-
#: ../inc/class-wp-cli.php:35
|
1154 |
-
msgid "No job ID specified!"
|
1155 |
-
msgstr ""
|
1156 |
-
|
1157 |
-
#: ../inc/class-wp-cli.php:41
|
1158 |
-
msgid "Job ID does not exist!"
|
1159 |
-
msgstr ""
|
1160 |
-
|
1161 |
-
#: ../inc/class-wp-cli.php:54
|
1162 |
-
msgid "Nothing to abort!"
|
1163 |
-
msgstr ""
|
1164 |
-
|
1165 |
-
#: ../inc/class-wp-cli.php:59 ../inc/class-page-jobs.php:
|
1166 |
-
msgid "Job will be terminated."
|
1167 |
-
msgstr ""
|
1168 |
-
|
1169 |
-
#: ../inc/class-wp-cli.php:105
|
1170 |
-
msgid "No job running"
|
1171 |
-
msgstr ""
|
1172 |
-
|
1173 |
-
#: ../inc/class-destination-s3-v1.php:
|
1174 |
-
msgid "Select a S3 service"
|
1175 |
-
msgstr ""
|
1176 |
-
|
1177 |
-
#: ../inc/class-destination-s3-v1.php:
|
1178 |
-
#: /inc/pro/class-destination-s3-v1.php:18 ../inc/pro/class-destination-s3.php:18
|
1179 |
-
msgid "Amazon S3 Region"
|
1180 |
-
msgstr ""
|
1181 |
-
|
1182 |
-
#: ../inc/class-destination-s3-v1.php:
|
1183 |
-
#: /inc/pro/class-destination-s3-v1.php:19 ../inc/pro/class-destination-s3.php:19
|
1184 |
-
msgid "Amazon S3: US Standard"
|
1185 |
-
msgstr ""
|
1186 |
-
|
1187 |
-
#: ../inc/class-destination-s3-v1.php:
|
1188 |
-
#: /inc/pro/class-destination-s3-v1.php:20 ../inc/pro/class-destination-s3.php:20
|
1189 |
-
msgid "Amazon S3: US West (Northern California)"
|
1190 |
-
msgstr ""
|
1191 |
-
|
1192 |
-
#: ../inc/class-destination-s3-v1.php:
|
1193 |
-
#: /inc/pro/class-destination-s3-v1.php:21 ../inc/pro/class-destination-s3.php:21
|
1194 |
-
msgid "Amazon S3: US West (Oregon)"
|
1195 |
-
msgstr ""
|
1196 |
-
|
1197 |
-
#: ../inc/class-destination-s3-v1.php:
|
1198 |
-
#: /inc/pro/class-destination-s3-v1.php:22 ../inc/pro/class-destination-s3.php:22
|
1199 |
-
msgid "Amazon S3: EU (Ireland)"
|
1200 |
-
msgstr ""
|
1201 |
-
|
1202 |
-
#: ../inc/class-destination-s3-v1.php:
|
1203 |
-
#: /inc/pro/class-destination-s3.php:23
|
1204 |
-
msgid "Amazon S3: EU (Germany)"
|
1205 |
-
msgstr ""
|
1206 |
-
|
1207 |
-
#: ../inc/class-destination-s3-v1.php:
|
1208 |
-
#: /inc/pro/class-destination-s3-v1.php:23 ../inc/pro/class-destination-s3.php:24
|
1209 |
-
msgid "Amazon S3: Asia Pacific (Tokyo)"
|
1210 |
-
msgstr ""
|
1211 |
-
|
1212 |
-
#: ../inc/class-destination-s3-v1.php:
|
1213 |
-
#: /inc/pro/class-destination-s3-v1.php:24 ../inc/pro/class-destination-s3.php:25
|
1214 |
-
msgid "Amazon S3: Asia Pacific (
|
1215 |
-
msgstr ""
|
1216 |
-
|
1217 |
-
#: ../inc/class-destination-s3-v1.php:
|
1218 |
-
#: /inc/pro/class-destination-s3-v1.php:25 ../inc/pro/class-destination-s3.php:26
|
1219 |
-
msgid "Amazon S3: Asia Pacific (
|
1220 |
-
msgstr ""
|
1221 |
-
|
1222 |
-
#: ../inc/class-destination-s3-v1.php:
|
1223 |
-
#: /inc/pro/class-destination-s3-v1.php:26 ../inc/pro/class-destination-s3.php:27
|
1224 |
-
msgid "Amazon S3:
|
1225 |
-
msgstr ""
|
1226 |
-
|
1227 |
-
#: ../inc/class-destination-s3-v1.php:
|
1228 |
-
#: /inc/pro/class-destination-s3-v1.php:27 ../inc/pro/class-destination-s3.php:28
|
1229 |
-
msgid "Amazon S3:
|
1230 |
-
msgstr ""
|
1231 |
-
|
1232 |
-
#: ../inc/class-destination-s3-v1.php:
|
1233 |
-
|
1234 |
-
|
1235 |
-
|
1236 |
-
|
1237 |
-
#:
|
1238 |
-
msgid "
|
1239 |
-
msgstr ""
|
1240 |
-
|
1241 |
-
#: ../inc/class-destination-s3-v1.php:
|
1242 |
-
#: /inc/pro/class-destination-s3-v1.php:31 ../inc/pro/class-destination-s3.php:33
|
1243 |
-
msgid "
|
1244 |
-
msgstr ""
|
1245 |
-
|
1246 |
-
#: ../inc/class-destination-s3-v1.php:
|
1247 |
-
|
1248 |
-
|
1249 |
-
|
1250 |
-
|
1251 |
-
|
1252 |
-
|
1253 |
-
|
1254 |
-
|
1255 |
-
#: /inc/
|
1256 |
-
msgid "Access
|
1257 |
-
msgstr ""
|
1258 |
-
|
1259 |
-
#: ../inc/class-destination-s3-v1.php:
|
1260 |
-
#: /inc/pro/class-destination-glacier.php:
|
1261 |
-
msgid "
|
1262 |
-
msgstr ""
|
1263 |
-
|
1264 |
-
#: ../inc/class-destination-s3-v1.php:
|
1265 |
-
|
1266 |
-
|
1267 |
-
|
1268 |
-
|
1269 |
-
|
1270 |
-
|
1271 |
-
|
1272 |
-
|
1273 |
-
|
1274 |
-
|
1275 |
-
|
1276 |
-
|
1277 |
-
|
1278 |
-
|
1279 |
-
|
1280 |
-
|
1281 |
-
#: /inc/class-destination-
|
1282 |
-
msgid "
|
1283 |
-
msgstr ""
|
1284 |
-
|
1285 |
-
#: ../inc/class-destination-s3-v1.php:
|
1286 |
-
|
1287 |
-
|
1288 |
-
|
1289 |
-
|
1290 |
-
#:
|
1291 |
-
msgid "Amazon
|
1292 |
-
msgstr ""
|
1293 |
-
|
1294 |
-
#: ../inc/class-destination-s3-v1.php:178 ../inc/class-destination-s3.php:
|
1295 |
-
|
1296 |
-
|
1297 |
-
|
1298 |
-
|
1299 |
-
|
1300 |
-
|
1301 |
-
|
1302 |
-
|
1303 |
-
|
1304 |
-
|
1305 |
-
|
1306 |
-
|
1307 |
-
|
1308 |
-
|
1309 |
-
|
1310 |
-
|
1311 |
-
|
1312 |
-
|
1313 |
-
|
1314 |
-
|
1315 |
-
|
1316 |
-
msgid "
|
1317 |
-
msgstr ""
|
1318 |
-
|
1319 |
-
#: ../inc/class-destination-s3-v1.php:
|
1320 |
-
|
1321 |
-
|
1322 |
-
|
1323 |
-
|
1324 |
-
|
1325 |
-
#:
|
1326 |
-
|
1327 |
-
|
1328 |
-
|
1329 |
-
|
1330 |
-
|
1331 |
-
|
1332 |
-
|
1333 |
-
|
1334 |
-
#:
|
1335 |
-
#, php-format
|
1336 |
-
msgid "
|
1337 |
-
msgstr ""
|
1338 |
-
|
1339 |
-
#: ../inc/class-destination-s3-v1.php:
|
1340 |
-
|
1341 |
-
|
1342 |
-
|
1343 |
-
|
1344 |
-
|
1345 |
-
#:
|
1346 |
-
|
1347 |
-
|
1348 |
-
|
1349 |
-
|
1350 |
-
|
1351 |
-
#:
|
1352 |
-
|
1353 |
-
|
1354 |
-
|
1355 |
-
|
1356 |
-
#: /inc/
|
1357 |
-
|
1358 |
-
|
1359 |
-
|
1360 |
-
|
1361 |
-
#:
|
1362 |
-
#, php-format
|
1363 |
-
msgid "
|
1364 |
-
msgstr ""
|
1365 |
-
|
1366 |
-
#: ../inc/class-destination-s3-v1.php:
|
1367 |
-
#, php-format
|
1368 |
-
msgid "Cannot
|
1369 |
-
msgstr ""
|
1370 |
-
|
1371 |
-
#: ../inc/class-destination-s3-v1.php:
|
1372 |
-
#, php-format
|
1373 |
-
msgid "
|
1374 |
-
|
1375 |
-
|
1376 |
-
|
1377 |
-
|
1378 |
-
|
1379 |
-
|
1380 |
-
|
1381 |
-
msgstr ""
|
1382 |
-
|
1383 |
-
#: ../inc/class-destination-s3-v1.php:
|
1384 |
-
|
1385 |
-
|
1386 |
-
|
1387 |
-
|
1388 |
-
|
1389 |
-
|
1390 |
-
|
1391 |
-
|
1392 |
-
|
1393 |
-
|
1394 |
-
|
1395 |
-
|
1396 |
-
|
1397 |
-
|
1398 |
-
|
1399 |
-
msgid "
|
1400 |
-
msgstr ""
|
1401 |
-
|
1402 |
-
#: ../inc/class-create-archive.php:
|
1403 |
-
|
1404 |
-
|
1405 |
-
|
1406 |
-
|
1407 |
-
|
1408 |
-
|
1409 |
-
|
1410 |
-
|
1411 |
-
|
1412 |
-
|
1413 |
-
|
1414 |
-
|
1415 |
-
|
1416 |
-
|
1417 |
-
|
1418 |
-
|
1419 |
-
|
1420 |
-
|
1421 |
-
|
1422 |
-
|
1423 |
-
|
1424 |
-
msgid "
|
1425 |
-
msgstr ""
|
1426 |
-
|
1427 |
-
#: ../inc/class-create-archive.php:
|
1428 |
-
|
1429 |
-
|
1430 |
-
|
1431 |
-
|
1432 |
-
|
1433 |
-
|
1434 |
-
|
1435 |
-
|
1436 |
-
|
1437 |
-
|
1438 |
-
|
1439 |
-
|
1440 |
-
|
1441 |
-
|
1442 |
-
|
1443 |
-
msgid "
|
1444 |
-
msgstr ""
|
1445 |
-
|
1446 |
-
#: ../inc/class-create-archive.php:
|
1447 |
-
|
1448 |
-
msgid "
|
1449 |
-
msgstr ""
|
1450 |
-
|
1451 |
-
#: ../inc/class-create-archive.php:
|
1452 |
-
|
1453 |
-
|
1454 |
-
|
1455 |
-
|
1456 |
-
#:
|
1457 |
-
|
1458 |
-
|
1459 |
-
|
1460 |
-
|
1461 |
-
#:
|
1462 |
-
|
1463 |
-
|
1464 |
-
|
1465 |
-
|
1466 |
-
|
1467 |
-
|
1468 |
-
|
1469 |
-
|
1470 |
-
|
1471 |
-
|
1472 |
-
|
1473 |
-
|
1474 |
-
|
1475 |
-
|
1476 |
-
|
1477 |
-
|
1478 |
-
|
1479 |
-
msgid "
|
1480 |
-
msgstr ""
|
1481 |
-
|
1482 |
-
#: ../inc/class-create-archive.php:
|
1483 |
-
#, php-format
|
1484 |
-
msgid "File
|
1485 |
-
msgstr ""
|
1486 |
-
|
1487 |
-
#: ../inc/class-create-archive.php:
|
1488 |
-
#, php-format
|
1489 |
-
msgid "
|
1490 |
-
msgstr ""
|
1491 |
-
|
1492 |
-
#: ../inc/class-create-archive.php:
|
1493 |
-
|
1494 |
-
msgid "
|
1495 |
-
msgstr ""
|
1496 |
-
|
1497 |
-
#: ../inc/class-create-archive.php:
|
1498 |
-
|
1499 |
-
msgid "
|
1500 |
-
msgstr ""
|
1501 |
-
|
1502 |
-
#: ../inc/class-create-archive.php:
|
1503 |
-
#, php-format
|
1504 |
-
msgid "Folder
|
1505 |
-
msgstr ""
|
1506 |
-
|
1507 |
-
#: ../inc/class-create-archive.php:
|
1508 |
-
#, php-format
|
1509 |
-
msgid ""
|
1510 |
-
|
1511 |
-
|
1512 |
-
|
1513 |
-
|
1514 |
-
|
1515 |
-
|
1516 |
-
|
1517 |
-
|
1518 |
-
|
1519 |
-
|
1520 |
-
#:
|
1521 |
-
msgid "
|
1522 |
-
msgstr ""
|
1523 |
-
|
1524 |
-
#: ../inc/class-admin.php:
|
1525 |
-
|
1526 |
-
|
1527 |
-
|
1528 |
-
|
1529 |
-
|
1530 |
-
|
1531 |
-
|
1532 |
-
|
1533 |
-
|
1534 |
-
|
1535 |
-
|
1536 |
-
|
1537 |
-
|
1538 |
-
|
1539 |
-
|
1540 |
-
|
1541 |
-
|
1542 |
-
|
1543 |
-
|
1544 |
-
|
1545 |
-
|
1546 |
-
|
1547 |
-
|
1548 |
-
|
1549 |
-
#:
|
1550 |
-
msgid "
|
1551 |
-
msgstr ""
|
1552 |
-
|
1553 |
-
#: ../inc/class-admin.php:
|
1554 |
-
|
1555 |
-
|
1556 |
-
|
1557 |
-
|
1558 |
-
#: php:
|
1559 |
-
msgid "
|
1560 |
-
msgstr ""
|
1561 |
-
|
1562 |
-
#: ../inc/class-admin.php:
|
1563 |
-
|
1564 |
-
|
1565 |
-
|
1566 |
-
|
1567 |
-
|
1568 |
-
|
1569 |
-
|
1570 |
-
|
1571 |
-
|
1572 |
-
|
1573 |
-
|
1574 |
-
|
1575 |
-
|
1576 |
-
|
1577 |
-
|
1578 |
-
|
1579 |
-
|
1580 |
-
|
1581 |
-
|
1582 |
-
|
1583 |
-
|
1584 |
-
msgid "
|
1585 |
-
msgstr ""
|
1586 |
-
|
1587 |
-
#: ../inc/class-admin.php:
|
1588 |
-
#, php-format
|
1589 |
-
msgid "
|
1590 |
-
msgstr ""
|
1591 |
-
|
1592 |
-
#: ../inc/class-admin.php:
|
1593 |
-
|
1594 |
-
|
1595 |
-
|
1596 |
-
|
1597 |
-
|
1598 |
-
|
1599 |
-
|
1600 |
-
|
1601 |
-
|
1602 |
-
msgid ""
|
1603 |
-
|
1604 |
-
|
1605 |
-
|
1606 |
-
|
1607 |
-
|
1608 |
-
|
1609 |
-
|
1610 |
-
|
1611 |
-
|
1612 |
-
|
1613 |
-
|
1614 |
-
|
1615 |
-
|
1616 |
-
|
1617 |
-
|
1618 |
-
|
1619 |
-
|
1620 |
-
|
1621 |
-
|
1622 |
-
|
1623 |
-
|
1624 |
-
|
1625 |
-
|
1626 |
-
|
1627 |
-
|
1628 |
-
|
1629 |
-
|
1630 |
-
|
1631 |
-
|
1632 |
-
|
1633 |
-
|
1634 |
-
|
1635 |
-
|
1636 |
-
|
1637 |
-
|
1638 |
-
|
1639 |
-
|
1640 |
-
|
1641 |
-
|
1642 |
-
|
1643 |
-
|
1644 |
-
|
1645 |
-
|
1646 |
-
|
1647 |
-
|
1648 |
-
|
1649 |
-
|
1650 |
-
|
1651 |
-
|
1652 |
-
|
1653 |
-
|
1654 |
-
|
1655 |
-
|
1656 |
-
|
1657 |
-
|
1658 |
-
|
1659 |
-
|
1660 |
-
|
1661 |
-
|
1662 |
-
|
1663 |
-
|
1664 |
-
|
1665 |
-
|
1666 |
-
|
1667 |
-
|
1668 |
-
|
1669 |
-
|
1670 |
-
|
1671 |
-
|
1672 |
-
|
1673 |
-
|
1674 |
-
|
1675 |
-
|
1676 |
-
|
1677 |
-
|
1678 |
-
|
1679 |
-
|
1680 |
-
|
1681 |
-
|
1682 |
-
|
1683 |
-
|
1684 |
-
|
1685 |
-
|
1686 |
-
|
1687 |
-
#:
|
1688 |
-
|
1689 |
-
|
1690 |
-
|
1691 |
-
|
1692 |
-
|
1693 |
-
|
1694 |
-
|
1695 |
-
|
1696 |
-
|
1697 |
-
|
1698 |
-
|
1699 |
-
|
1700 |
-
|
1701 |
-
|
1702 |
-
|
1703 |
-
|
1704 |
-
|
1705 |
-
|
1706 |
-
|
1707 |
-
|
1708 |
-
|
1709 |
-
|
1710 |
-
|
1711 |
-
|
1712 |
-
|
1713 |
-
|
1714 |
-
|
1715 |
-
|
1716 |
-
|
1717 |
-
|
1718 |
-
|
1719 |
-
|
1720 |
-
|
1721 |
-
|
1722 |
-
|
1723 |
-
|
1724 |
-
|
1725 |
-
|
1726 |
-
|
1727 |
-
|
1728 |
-
|
1729 |
-
|
1730 |
-
|
1731 |
-
|
1732 |
-
|
1733 |
-
|
1734 |
-
|
1735 |
-
|
1736 |
-
|
1737 |
-
|
1738 |
-
|
1739 |
-
|
1740 |
-
|
1741 |
-
|
1742 |
-
|
1743 |
-
|
1744 |
-
|
1745 |
-
|
1746 |
-
|
1747 |
-
|
1748 |
-
|
1749 |
-
|
1750 |
-
|
1751 |
-
|
1752 |
-
|
1753 |
-
|
1754 |
-
|
1755 |
-
|
1756 |
-
|
1757 |
-
|
1758 |
-
|
1759 |
-
|
1760 |
-
|
1761 |
-
|
1762 |
-
|
1763 |
-
|
1764 |
-
|
1765 |
-
|
1766 |
-
|
1767 |
-
|
1768 |
-
|
1769 |
-
|
1770 |
-
|
1771 |
-
|
1772 |
-
|
1773 |
-
|
1774 |
-
|
1775 |
-
|
1776 |
-
|
1777 |
-
|
1778 |
-
|
1779 |
-
|
1780 |
-
|
1781 |
-
|
1782 |
-
|
1783 |
-
|
1784 |
-
|
1785 |
-
|
1786 |
-
|
1787 |
-
|
1788 |
-
|
1789 |
-
|
1790 |
-
|
1791 |
-
|
1792 |
-
|
1793 |
-
|
1794 |
-
|
1795 |
-
|
1796 |
-
|
1797 |
-
|
1798 |
-
|
1799 |
-
|
1800 |
-
|
1801 |
-
|
1802 |
-
|
1803 |
-
|
1804 |
-
|
1805 |
-
|
1806 |
-
"
|
1807 |
-
|
1808 |
-
|
1809 |
-
|
1810 |
-
|
1811 |
-
|
1812 |
-
|
1813 |
-
|
1814 |
-
|
1815 |
-
|
1816 |
-
|
1817 |
-
|
1818 |
-
|
1819 |
-
|
1820 |
-
|
1821 |
-
|
1822 |
-
|
1823 |
-
|
1824 |
-
|
1825 |
-
|
1826 |
-
|
1827 |
-
|
1828 |
-
|
1829 |
-
|
1830 |
-
"BackWPup
|
1831 |
-
|
1832 |
-
|
1833 |
-
|
1834 |
-
|
1835 |
-
|
1836 |
-
|
1837 |
-
|
1838 |
-
|
1839 |
-
|
1840 |
-
|
1841 |
-
|
1842 |
-
|
1843 |
-
|
1844 |
-
|
1845 |
-
|
1846 |
-
|
1847 |
-
|
1848 |
-
|
1849 |
-
|
1850 |
-
"
|
1851 |
-
|
1852 |
-
|
1853 |
-
|
1854 |
-
|
1855 |
-
|
1856 |
-
|
1857 |
-
|
1858 |
-
|
1859 |
-
|
1860 |
-
|
1861 |
-
|
1862 |
-
|
1863 |
-
|
1864 |
-
|
1865 |
-
|
1866 |
-
|
1867 |
-
|
1868 |
-
|
1869 |
-
|
1870 |
-
|
1871 |
-
|
1872 |
-
|
1873 |
-
|
1874 |
-
|
1875 |
-
|
1876 |
-
|
1877 |
-
|
1878 |
-
|
1879 |
-
|
1880 |
-
|
1881 |
-
|
1882 |
-
|
1883 |
-
|
1884 |
-
|
1885 |
-
|
1886 |
-
|
1887 |
-
|
1888 |
-
|
1889 |
-
|
1890 |
-
|
1891 |
-
|
1892 |
-
|
1893 |
-
|
1894 |
-
|
1895 |
-
|
1896 |
-
|
1897 |
-
|
1898 |
-
|
1899 |
-
|
1900 |
-
|
1901 |
-
|
1902 |
-
|
1903 |
-
|
1904 |
-
|
1905 |
-
|
1906 |
-
|
1907 |
-
|
1908 |
-
|
1909 |
-
|
1910 |
-
|
1911 |
-
|
1912 |
-
|
1913 |
-
|
1914 |
-
|
1915 |
-
|
1916 |
-
|
1917 |
-
|
1918 |
-
|
1919 |
-
|
1920 |
-
|
1921 |
-
|
1922 |
-
|
1923 |
-
|
1924 |
-
|
1925 |
-
|
1926 |
-
|
1927 |
-
|
1928 |
-
|
1929 |
-
|
1930 |
-
|
1931 |
-
|
1932 |
-
|
1933 |
-
|
1934 |
-
|
1935 |
-
|
1936 |
-
|
1937 |
-
|
1938 |
-
|
1939 |
-
|
1940 |
-
|
1941 |
-
|
1942 |
-
|
1943 |
-
|
1944 |
-
|
1945 |
-
|
1946 |
-
|
1947 |
-
|
1948 |
-
|
1949 |
-
|
1950 |
-
|
1951 |
-
|
1952 |
-
|
1953 |
-
|
1954 |
-
|
1955 |
-
|
1956 |
-
|
1957 |
-
|
1958 |
-
|
1959 |
-
|
1960 |
-
|
1961 |
-
|
1962 |
-
|
1963 |
-
|
1964 |
-
|
1965 |
-
|
1966 |
-
|
1967 |
-
|
1968 |
-
|
1969 |
-
|
1970 |
-
|
1971 |
-
|
1972 |
-
|
1973 |
-
|
1974 |
-
|
1975 |
-
|
1976 |
-
|
1977 |
-
|
1978 |
-
|
1979 |
-
|
1980 |
-
|
1981 |
-
|
1982 |
-
|
1983 |
-
|
1984 |
-
|
1985 |
-
|
1986 |
-
|
1987 |
-
|
1988 |
-
|
1989 |
-
|
1990 |
-
|
1991 |
-
|
1992 |
-
|
1993 |
-
|
1994 |
-
|
1995 |
-
|
1996 |
-
|
1997 |
-
|
1998 |
-
|
1999 |
-
|
2000 |
-
|
2001 |
-
|
2002 |
-
|
2003 |
-
|
2004 |
-
|
2005 |
-
|
2006 |
-
|
2007 |
-
|
2008 |
-
|
2009 |
-
|
2010 |
-
#:
|
2011 |
-
#: /inc/class-destination-ftp.php:
|
2012 |
-
|
2013 |
-
|
2014 |
-
|
2015 |
-
|
2016 |
-
|
2017 |
-
|
2018 |
-
|
2019 |
-
|
2020 |
-
|
2021 |
-
|
2022 |
-
|
2023 |
-
|
2024 |
-
|
2025 |
-
|
2026 |
-
|
2027 |
-
|
2028 |
-
|
2029 |
-
|
2030 |
-
|
2031 |
-
|
2032 |
-
|
2033 |
-
|
2034 |
-
|
2035 |
-
|
2036 |
-
|
2037 |
-
|
2038 |
-
|
2039 |
-
|
2040 |
-
|
2041 |
-
|
2042 |
-
|
2043 |
-
|
2044 |
-
|
2045 |
-
|
2046 |
-
|
2047 |
-
|
2048 |
-
|
2049 |
-
|
2050 |
-
|
2051 |
-
|
2052 |
-
|
2053 |
-
|
2054 |
-
|
2055 |
-
|
2056 |
-
|
2057 |
-
|
2058 |
-
|
2059 |
-
|
2060 |
-
|
2061 |
-
|
2062 |
-
|
2063 |
-
|
2064 |
-
|
2065 |
-
|
2066 |
-
|
2067 |
-
|
2068 |
-
|
2069 |
-
|
2070 |
-
|
2071 |
-
|
2072 |
-
|
2073 |
-
|
2074 |
-
|
2075 |
-
|
2076 |
-
|
2077 |
-
|
2078 |
-
|
2079 |
-
|
2080 |
-
|
2081 |
-
|
2082 |
-
|
2083 |
-
|
2084 |
-
|
2085 |
-
|
2086 |
-
|
2087 |
-
|
2088 |
-
|
2089 |
-
|
2090 |
-
|
2091 |
-
|
2092 |
-
|
2093 |
-
|
2094 |
-
|
2095 |
-
|
2096 |
-
|
2097 |
-
|
2098 |
-
|
2099 |
-
|
2100 |
-
|
2101 |
-
|
2102 |
-
|
2103 |
-
|
2104 |
-
|
2105 |
-
|
2106 |
-
|
2107 |
-
|
2108 |
-
|
2109 |
-
|
2110 |
-
|
2111 |
-
|
2112 |
-
|
2113 |
-
|
2114 |
-
|
2115 |
-
|
2116 |
-
|
2117 |
-
|
2118 |
-
|
2119 |
-
|
2120 |
-
|
2121 |
-
|
2122 |
-
|
2123 |
-
|
2124 |
-
|
2125 |
-
|
2126 |
-
|
2127 |
-
|
2128 |
-
|
2129 |
-
|
2130 |
-
|
2131 |
-
|
2132 |
-
|
2133 |
-
|
2134 |
-
|
2135 |
-
|
2136 |
-
|
2137 |
-
|
2138 |
-
|
2139 |
-
|
2140 |
-
|
2141 |
-
|
2142 |
-
|
2143 |
-
|
2144 |
-
|
2145 |
-
|
2146 |
-
|
2147 |
-
|
2148 |
-
|
2149 |
-
|
2150 |
-
|
2151 |
-
|
2152 |
-
|
2153 |
-
|
2154 |
-
|
2155 |
-
|
2156 |
-
|
2157 |
-
|
2158 |
-
|
2159 |
-
|
2160 |
-
|
2161 |
-
|
2162 |
-
|
2163 |
-
|
2164 |
-
|
2165 |
-
|
2166 |
-
|
2167 |
-
|
2168 |
-
|
2169 |
-
|
2170 |
-
|
2171 |
-
|
2172 |
-
|
2173 |
-
|
2174 |
-
|
2175 |
-
|
2176 |
-
|
2177 |
-
|
2178 |
-
|
2179 |
-
|
2180 |
-
|
2181 |
-
|
2182 |
-
|
2183 |
-
|
2184 |
-
|
2185 |
-
|
2186 |
-
|
2187 |
-
|
2188 |
-
|
2189 |
-
|
2190 |
-
|
2191 |
-
|
2192 |
-
|
2193 |
-
|
2194 |
-
|
2195 |
-
|
2196 |
-
|
2197 |
-
|
2198 |
-
|
2199 |
-
|
2200 |
-
|
2201 |
-
|
2202 |
-
|
2203 |
-
|
2204 |
-
|
2205 |
-
|
2206 |
-
|
2207 |
-
|
2208 |
-
|
2209 |
-
|
2210 |
-
|
2211 |
-
|
2212 |
-
|
2213 |
-
|
2214 |
-
|
2215 |
-
|
2216 |
-
|
2217 |
-
|
2218 |
-
|
2219 |
-
|
2220 |
-
|
2221 |
-
|
2222 |
-
|
2223 |
-
|
2224 |
-
|
2225 |
-
|
2226 |
-
|
2227 |
-
|
2228 |
-
|
2229 |
-
|
2230 |
-
|
2231 |
-
|
2232 |
-
|
2233 |
-
|
2234 |
-
|
2235 |
-
|
2236 |
-
|
2237 |
-
|
2238 |
-
#: page-
|
2239 |
-
|
2240 |
-
|
2241 |
-
|
2242 |
-
|
2243 |
-
|
2244 |
-
|
2245 |
-
|
2246 |
-
|
2247 |
-
|
2248 |
-
|
2249 |
-
|
2250 |
-
|
2251 |
-
|
2252 |
-
|
2253 |
-
|
2254 |
-
|
2255 |
-
|
2256 |
-
|
2257 |
-
|
2258 |
-
|
2259 |
-
|
2260 |
-
|
2261 |
-
|
2262 |
-
|
2263 |
-
|
2264 |
-
|
2265 |
-
|
2266 |
-
|
2267 |
-
|
2268 |
-
|
2269 |
-
|
2270 |
-
|
2271 |
-
|
2272 |
-
|
2273 |
-
|
2274 |
-
|
2275 |
-
|
2276 |
-
|
2277 |
-
|
2278 |
-
|
2279 |
-
|
2280 |
-
|
2281 |
-
|
2282 |
-
|
2283 |
-
|
2284 |
-
|
2285 |
-
|
2286 |
-
|
2287 |
-
|
2288 |
-
|
2289 |
-
|
2290 |
-
|
2291 |
-
|
2292 |
-
|
2293 |
-
|
2294 |
-
|
2295 |
-
|
2296 |
-
|
2297 |
-
|
2298 |
-
|
2299 |
-
|
2300 |
-
|
2301 |
-
|
2302 |
-
|
2303 |
-
|
2304 |
-
|
2305 |
-
|
2306 |
-
|
2307 |
-
|
2308 |
-
|
2309 |
-
|
2310 |
-
|
2311 |
-
|
2312 |
-
|
2313 |
-
|
2314 |
-
|
2315 |
-
|
2316 |
-
|
2317 |
-
|
2318 |
-
|
2319 |
-
|
2320 |
-
|
2321 |
-
|
2322 |
-
|
2323 |
-
|
2324 |
-
|
2325 |
-
|
2326 |
-
|
2327 |
-
"
|
2328 |
-
|
2329 |
-
|
2330 |
-
|
2331 |
-
|
2332 |
-
|
2333 |
-
|
2334 |
-
|
2335 |
-
|
2336 |
-
|
2337 |
-
|
2338 |
-
"
|
2339 |
-
|
2340 |
-
|
2341 |
-
|
2342 |
-
|
2343 |
-
|
2344 |
-
|
2345 |
-
|
2346 |
-
|
2347 |
-
#:
|
2348 |
-
#:
|
2349 |
-
|
2350 |
-
|
2351 |
-
|
2352 |
-
|
2353 |
-
|
2354 |
-
|
2355 |
-
|
2356 |
-
|
2357 |
-
#:
|
2358 |
-
#:
|
2359 |
-
|
2360 |
-
|
2361 |
-
|
2362 |
-
|
2363 |
-
|
2364 |
-
|
2365 |
-
|
2366 |
-
|
2367 |
-
|
2368 |
-
|
2369 |
-
|
2370 |
-
|
2371 |
-
|
2372 |
-
|
2373 |
-
|
2374 |
-
|
2375 |
-
|
2376 |
-
|
2377 |
-
|
2378 |
-
|
2379 |
-
|
2380 |
-
|
2381 |
-
|
2382 |
-
|
2383 |
-
|
2384 |
-
|
2385 |
-
|
2386 |
-
|
2387 |
-
|
2388 |
-
|
2389 |
-
|
2390 |
-
|
2391 |
-
|
2392 |
-
|
2393 |
-
|
2394 |
-
|
2395 |
-
|
2396 |
-
|
2397 |
-
"
|
2398 |
-
|
2399 |
-
|
2400 |
-
|
2401 |
-
|
2402 |
-
|
2403 |
-
|
2404 |
-
|
2405 |
-
|
2406 |
-
|
2407 |
-
|
2408 |
-
|
2409 |
-
|
2410 |
-
|
2411 |
-
|
2412 |
-
|
2413 |
-
|
2414 |
-
|
2415 |
-
|
2416 |
-
|
2417 |
-
|
2418 |
-
|
2419 |
-
|
2420 |
-
|
2421 |
-
|
2422 |
-
|
2423 |
-
|
2424 |
-
|
2425 |
-
|
2426 |
-
|
2427 |
-
|
2428 |
-
|
2429 |
-
|
2430 |
-
|
2431 |
-
|
2432 |
-
|
2433 |
-
|
2434 |
-
|
2435 |
-
|
2436 |
-
|
2437 |
-
|
2438 |
-
|
2439 |
-
|
2440 |
-
|
2441 |
-
|
2442 |
-
|
2443 |
-
|
2444 |
-
|
2445 |
-
|
2446 |
-
|
2447 |
-
|
2448 |
-
|
2449 |
-
|
2450 |
-
|
2451 |
-
|
2452 |
-
|
2453 |
-
|
2454 |
-
|
2455 |
-
|
2456 |
-
|
2457 |
-
|
2458 |
-
|
2459 |
-
|
2460 |
-
|
2461 |
-
|
2462 |
-
|
2463 |
-
|
2464 |
-
|
2465 |
-
|
2466 |
-
|
2467 |
-
|
2468 |
-
|
2469 |
-
|
2470 |
-
|
2471 |
-
|
2472 |
-
|
2473 |
-
|
2474 |
-
|
2475 |
-
|
2476 |
-
|
2477 |
-
|
2478 |
-
|
2479 |
-
|
2480 |
-
|
2481 |
-
|
2482 |
-
|
2483 |
-
"
|
2484 |
-
|
2485 |
-
|
2486 |
-
|
2487 |
-
|
2488 |
-
|
2489 |
-
|
2490 |
-
|
2491 |
-
|
2492 |
-
|
2493 |
-
|
2494 |
-
|
2495 |
-
"
|
2496 |
-
|
2497 |
-
|
2498 |
-
|
2499 |
-
|
2500 |
-
|
2501 |
-
"
|
2502 |
-
|
2503 |
-
|
2504 |
-
|
2505 |
-
|
2506 |
-
|
2507 |
-
|
2508 |
-
|
2509 |
-
|
2510 |
-
|
2511 |
-
|
2512 |
-
|
2513 |
-
|
2514 |
-
|
2515 |
-
|
2516 |
-
|
2517 |
-
|
2518 |
-
|
2519 |
-
|
2520 |
-
|
2521 |
-
|
2522 |
-
|
2523 |
-
|
2524 |
-
|
2525 |
-
|
2526 |
-
|
2527 |
-
|
2528 |
-
|
2529 |
-
|
2530 |
-
|
2531 |
-
|
2532 |
-
|
2533 |
-
|
2534 |
-
|
2535 |
-
|
2536 |
-
|
2537 |
-
#: /inc/
|
2538 |
-
|
2539 |
-
|
2540 |
-
|
2541 |
-
|
2542 |
-
|
2543 |
-
|
2544 |
-
|
2545 |
-
|
2546 |
-
|
2547 |
-
|
2548 |
-
|
2549 |
-
|
2550 |
-
|
2551 |
-
|
2552 |
-
|
2553 |
-
|
2554 |
-
|
2555 |
-
|
2556 |
-
|
2557 |
-
|
2558 |
-
|
2559 |
-
|
2560 |
-
|
2561 |
-
|
2562 |
-
|
2563 |
-
|
2564 |
-
|
2565 |
-
|
2566 |
-
|
2567 |
-
|
2568 |
-
|
2569 |
-
|
2570 |
-
|
2571 |
-
#:
|
2572 |
-
#: /inc/
|
2573 |
-
#:
|
2574 |
-
|
2575 |
-
|
2576 |
-
|
2577 |
-
|
2578 |
-
|
2579 |
-
|
2580 |
-
|
2581 |
-
|
2582 |
-
|
2583 |
-
|
2584 |
-
|
2585 |
-
|
2586 |
-
|
2587 |
-
|
2588 |
-
|
2589 |
-
|
2590 |
-
|
2591 |
-
|
2592 |
-
|
2593 |
-
|
2594 |
-
|
2595 |
-
|
2596 |
-
|
2597 |
-
|
2598 |
-
|
2599 |
-
|
2600 |
-
|
2601 |
-
|
2602 |
-
|
2603 |
-
|
2604 |
-
|
2605 |
-
msgstr[
|
2606 |
-
|
2607 |
-
|
2608 |
-
|
2609 |
-
|
2610 |
-
|
2611 |
-
|
2612 |
-
|
2613 |
-
|
2614 |
-
|
2615 |
-
|
2616 |
-
|
2617 |
-
|
2618 |
-
|
2619 |
-
|
2620 |
-
|
2621 |
-
|
2622 |
-
|
2623 |
-
|
2624 |
-
|
2625 |
-
|
2626 |
-
|
2627 |
-
|
2628 |
-
|
2629 |
-
|
2630 |
-
|
2631 |
-
|
2632 |
-
|
2633 |
-
|
2634 |
-
|
2635 |
-
|
2636 |
-
|
2637 |
-
|
2638 |
-
|
2639 |
-
|
2640 |
-
|
2641 |
-
|
2642 |
-
|
2643 |
-
|
2644 |
-
|
2645 |
-
|
2646 |
-
|
2647 |
-
|
2648 |
-
|
2649 |
-
|
2650 |
-
|
2651 |
-
|
2652 |
-
|
2653 |
-
|
2654 |
-
|
2655 |
-
|
2656 |
-
|
2657 |
-
|
2658 |
-
|
2659 |
-
|
2660 |
-
|
2661 |
-
|
2662 |
-
|
2663 |
-
|
2664 |
-
|
2665 |
-
|
2666 |
-
|
2667 |
-
|
2668 |
-
|
2669 |
-
|
2670 |
-
|
2671 |
-
|
2672 |
-
|
2673 |
-
|
2674 |
-
|
2675 |
-
|
2676 |
-
|
2677 |
-
|
2678 |
-
|
2679 |
-
|
2680 |
-
|
2681 |
-
|
2682 |
-
|
2683 |
-
|
2684 |
-
|
2685 |
-
|
2686 |
-
|
2687 |
-
|
2688 |
-
|
2689 |
-
|
2690 |
-
|
2691 |
-
"
|
2692 |
-
|
2693 |
-
|
2694 |
-
|
2695 |
-
|
2696 |
-
|
2697 |
-
|
2698 |
-
|
2699 |
-
|
2700 |
-
|
2701 |
-
|
2702 |
-
|
2703 |
-
|
2704 |
-
|
2705 |
-
|
2706 |
-
|
2707 |
-
|
2708 |
-
|
2709 |
-
"
|
2710 |
-
|
2711 |
-
|
2712 |
-
|
2713 |
-
|
2714 |
-
|
2715 |
-
"
|
2716 |
-
|
2717 |
-
|
2718 |
-
|
2719 |
-
|
2720 |
-
|
2721 |
-
|
2722 |
-
|
2723 |
-
|
2724 |
-
|
2725 |
-
"
|
2726 |
-
|
2727 |
-
|
2728 |
-
|
2729 |
-
|
2730 |
-
|
2731 |
-
|
2732 |
-
|
2733 |
-
|
2734 |
-
|
2735 |
-
|
2736 |
-
|
2737 |
-
|
2738 |
-
|
2739 |
-
|
2740 |
-
|
2741 |
-
|
2742 |
-
|
2743 |
-
|
2744 |
-
|
2745 |
-
|
2746 |
-
|
2747 |
-
|
2748 |
-
|
2749 |
-
|
2750 |
-
|
2751 |
-
"
|
2752 |
-
"
|
2753 |
-
|
2754 |
-
|
2755 |
-
|
2756 |
-
|
2757 |
-
|
2758 |
-
|
2759 |
-
|
2760 |
-
|
2761 |
-
|
2762 |
-
|
2763 |
-
|
2764 |
-
|
2765 |
-
|
2766 |
-
|
2767 |
-
|
2768 |
-
|
2769 |
-
|
2770 |
-
|
2771 |
-
|
2772 |
-
|
2773 |
-
|
2774 |
-
|
2775 |
-
|
2776 |
-
|
2777 |
-
|
2778 |
-
|
2779 |
-
|
2780 |
-
|
2781 |
-
|
2782 |
-
|
2783 |
-
|
2784 |
-
|
2785 |
-
|
2786 |
-
|
2787 |
-
|
2788 |
-
|
2789 |
-
|
2790 |
-
"
|
2791 |
-
"
|
2792 |
-
|
2793 |
-
|
2794 |
-
|
2795 |
-
|
2796 |
-
|
2797 |
-
|
2798 |
-
|
2799 |
-
|
2800 |
-
|
2801 |
-
|
2802 |
-
|
2803 |
-
|
2804 |
-
|
2805 |
-
"
|
2806 |
-
"= Uses
|
2807 |
-
|
2808 |
-
|
2809 |
-
|
2810 |
-
|
2811 |
-
|
2812 |
-
|
2813 |
-
|
2814 |
-
|
2815 |
-
|
2816 |
-
|
2817 |
-
|
2818 |
-
|
2819 |
-
|
2820 |
-
|
2821 |
-
|
2822 |
-
|
2823 |
-
|
2824 |
-
|
2825 |
-
|
2826 |
-
|
2827 |
-
|
2828 |
-
"
|
2829 |
-
|
2830 |
-
|
2831 |
-
|
2832 |
-
|
2833 |
-
|
2834 |
-
|
2835 |
-
|
2836 |
-
|
2837 |
-
|
2838 |
-
"
|
2839 |
-
"
|
2840 |
-
|
2841 |
-
|
2842 |
-
|
2843 |
-
|
2844 |
-
|
2845 |
-
|
2846 |
-
|
2847 |
-
|
2848 |
-
|
2849 |
-
|
2850 |
-
|
2851 |
-
|
2852 |
-
|
2853 |
-
|
2854 |
-
|
2855 |
-
|
2856 |
-
|
2857 |
-
|
2858 |
-
|
2859 |
-
|
2860 |
-
|
2861 |
-
|
2862 |
-
|
2863 |
-
|
2864 |
-
|
2865 |
-
|
2866 |
-
|
2867 |
-
|
2868 |
-
|
2869 |
-
"
|
2870 |
-
|
2871 |
-
|
2872 |
-
|
2873 |
-
|
2874 |
-
|
2875 |
-
|
2876 |
-
|
2877 |
-
|
2878 |
-
|
2879 |
-
|
2880 |
-
"you
|
2881 |
-
"
|
2882 |
-
|
2883 |
-
|
2884 |
-
|
2885 |
-
|
2886 |
-
|
2887 |
-
|
2888 |
-
|
2889 |
-
|
2890 |
-
|
2891 |
-
|
2892 |
-
|
2893 |
-
|
2894 |
-
|
2895 |
-
|
2896 |
-
|
2897 |
-
|
2898 |
-
|
2899 |
-
|
2900 |
-
|
2901 |
-
|
2902 |
-
|
2903 |
-
|
2904 |
-
|
2905 |
-
|
2906 |
-
|
2907 |
-
|
2908 |
-
|
2909 |
-
|
2910 |
-
|
2911 |
-
|
2912 |
-
|
2913 |
-
|
2914 |
-
|
2915 |
-
|
2916 |
-
|
2917 |
-
|
2918 |
-
|
2919 |
-
|
2920 |
-
|
2921 |
-
|
2922 |
-
|
2923 |
-
|
2924 |
-
|
2925 |
-
|
2926 |
-
|
2927 |
-
|
2928 |
-
|
2929 |
-
|
2930 |
-
|
2931 |
-
|
2932 |
-
|
2933 |
-
|
2934 |
-
|
2935 |
-
|
2936 |
-
|
2937 |
-
|
2938 |
-
|
2939 |
-
|
2940 |
-
|
2941 |
-
|
2942 |
-
|
2943 |
-
|
2944 |
-
|
2945 |
-
|
2946 |
-
|
2947 |
-
|
2948 |
-
|
2949 |
-
|
2950 |
-
|
2951 |
-
|
2952 |
-
|
2953 |
-
|
2954 |
-
|
2955 |
-
|
2956 |
-
|
2957 |
-
|
2958 |
-
|
2959 |
-
|
2960 |
-
|
2961 |
-
|
2962 |
-
|
2963 |
-
|
2964 |
-
|
2965 |
-
|
2966 |
-
|
2967 |
-
|
2968 |
-
|
2969 |
-
|
2970 |
-
|
2971 |
-
|
2972 |
-
|
2973 |
-
|
2974 |
-
|
2975 |
-
|
2976 |
-
|
2977 |
-
|
2978 |
-
|
2979 |
-
|
2980 |
-
|
2981 |
-
|
2982 |
-
|
2983 |
-
|
2984 |
-
|
2985 |
-
|
2986 |
-
|
2987 |
-
|
2988 |
-
|
2989 |
-
|
2990 |
-
|
2991 |
-
|
2992 |
-
|
2993 |
-
|
2994 |
-
|
2995 |
-
|
2996 |
-
|
2997 |
-
|
2998 |
-
|
2999 |
-
|
3000 |
-
|
3001 |
-
|
3002 |
-
|
3003 |
-
|
3004 |
-
|
3005 |
-
|
3006 |
-
|
3007 |
-
|
3008 |
-
|
3009 |
-
|
3010 |
-
|
3011 |
-
|
3012 |
-
|
3013 |
-
|
3014 |
-
|
3015 |
-
|
3016 |
-
|
3017 |
-
|
3018 |
-
|
3019 |
-
|
3020 |
-
|
3021 |
-
|
3022 |
-
#: /inc/class-page-settings.php:
|
3023 |
-
|
3024 |
-
|
3025 |
-
|
3026 |
-
|
3027 |
-
#: /inc/class-page-settings.php:
|
3028 |
-
|
3029 |
-
|
3030 |
-
|
3031 |
-
|
3032 |
-
|
3033 |
-
|
3034 |
-
|
3035 |
-
|
3036 |
-
|
3037 |
-
|
3038 |
-
|
3039 |
-
|
3040 |
-
|
3041 |
-
|
3042 |
-
|
3043 |
-
|
3044 |
-
|
3045 |
-
|
3046 |
-
|
3047 |
-
|
3048 |
-
|
3049 |
-
|
3050 |
-
|
3051 |
-
|
3052 |
-
|
3053 |
-
|
3054 |
-
|
3055 |
-
|
3056 |
-
|
3057 |
-
|
3058 |
-
|
3059 |
-
|
3060 |
-
|
3061 |
-
|
3062 |
-
|
3063 |
-
|
3064 |
-
|
3065 |
-
|
3066 |
-
|
3067 |
-
|
3068 |
-
|
3069 |
-
|
3070 |
-
|
3071 |
-
|
3072 |
-
|
3073 |
-
|
3074 |
-
|
3075 |
-
|
3076 |
-
|
3077 |
-
|
3078 |
-
|
3079 |
-
|
3080 |
-
|
3081 |
-
|
3082 |
-
|
3083 |
-
|
3084 |
-
|
3085 |
-
|
3086 |
-
|
3087 |
-
|
3088 |
-
|
3089 |
-
|
3090 |
-
|
3091 |
-
|
3092 |
-
|
3093 |
-
|
3094 |
-
|
3095 |
-
|
3096 |
-
|
3097 |
-
|
3098 |
-
|
3099 |
-
|
3100 |
-
|
3101 |
-
|
3102 |
-
|
3103 |
-
|
3104 |
-
|
3105 |
-
|
3106 |
-
|
3107 |
-
|
3108 |
-
|
3109 |
-
|
3110 |
-
|
3111 |
-
|
3112 |
-
|
3113 |
-
|
3114 |
-
|
3115 |
-
|
3116 |
-
|
3117 |
-
|
3118 |
-
|
3119 |
-
|
3120 |
-
|
3121 |
-
|
3122 |
-
|
3123 |
-
|
3124 |
-
|
3125 |
-
|
3126 |
-
|
3127 |
-
|
3128 |
-
|
3129 |
-
|
3130 |
-
|
3131 |
-
"
|
3132 |
-
|
3133 |
-
|
3134 |
-
|
3135 |
-
|
3136 |
-
|
3137 |
-
|
3138 |
-
|
3139 |
-
|
3140 |
-
|
3141 |
-
|
3142 |
-
|
3143 |
-
|
3144 |
-
|
3145 |
-
|
3146 |
-
|
3147 |
-
|
3148 |
-
|
3149 |
-
|
3150 |
-
|
3151 |
-
|
3152 |
-
|
3153 |
-
|
3154 |
-
|
3155 |
-
|
3156 |
-
|
3157 |
-
|
3158 |
-
|
3159 |
-
|
3160 |
-
|
3161 |
-
|
3162 |
-
|
3163 |
-
|
3164 |
-
|
3165 |
-
|
3166 |
-
|
3167 |
-
|
3168 |
-
|
3169 |
-
|
3170 |
-
|
3171 |
-
|
3172 |
-
|
3173 |
-
|
3174 |
-
|
3175 |
-
|
3176 |
-
|
3177 |
-
|
3178 |
-
|
3179 |
-
|
3180 |
-
|
3181 |
-
|
3182 |
-
|
3183 |
-
|
3184 |
-
|
3185 |
-
|
3186 |
-
|
3187 |
-
|
3188 |
-
|
3189 |
-
|
3190 |
-
|
3191 |
-
#: /inc/class-jobtype-dbcheck.php:
|
3192 |
-
|
3193 |
-
|
3194 |
-
|
3195 |
-
|
3196 |
-
|
3197 |
-
#: /inc/class-jobtype-dbcheck.php:
|
3198 |
-
|
3199 |
-
|
3200 |
-
|
3201 |
-
|
3202 |
-
|
3203 |
-
|
3204 |
-
|
3205 |
-
|
3206 |
-
|
3207 |
-
|
3208 |
-
|
3209 |
-
|
3210 |
-
|
3211 |
-
|
3212 |
-
|
3213 |
-
|
3214 |
-
|
3215 |
-
|
3216 |
-
|
3217 |
-
|
3218 |
-
|
3219 |
-
|
3220 |
-
|
3221 |
-
|
3222 |
-
|
3223 |
-
|
3224 |
-
|
3225 |
-
|
3226 |
-
|
3227 |
-
|
3228 |
-
|
3229 |
-
|
3230 |
-
|
3231 |
-
|
3232 |
-
|
3233 |
-
|
3234 |
-
|
3235 |
-
|
3236 |
-
|
3237 |
-
|
3238 |
-
#: mysqldump.php:
|
3239 |
-
#:
|
3240 |
-
#: mysqldump.php:
|
3241 |
-
#:
|
3242 |
-
#:
|
3243 |
-
#:
|
3244 |
-
|
3245 |
-
|
3246 |
-
|
3247 |
-
|
3248 |
-
|
3249 |
-
|
3250 |
-
|
3251 |
-
|
3252 |
-
|
3253 |
-
|
3254 |
-
|
3255 |
-
|
3256 |
-
|
3257 |
-
|
3258 |
-
|
3259 |
-
|
3260 |
-
|
3261 |
-
|
3262 |
-
|
3263 |
-
|
3264 |
-
|
3265 |
-
|
3266 |
-
|
3267 |
-
|
3268 |
-
|
3269 |
-
|
3270 |
-
|
3271 |
-
|
3272 |
-
|
3273 |
-
|
3274 |
-
|
3275 |
-
|
3276 |
-
|
3277 |
-
|
3278 |
-
|
3279 |
-
|
3280 |
-
|
3281 |
-
|
3282 |
-
|
3283 |
-
|
3284 |
-
|
3285 |
-
|
3286 |
-
|
3287 |
-
|
3288 |
-
|
3289 |
-
|
3290 |
-
|
3291 |
-
|
3292 |
-
|
3293 |
-
|
3294 |
-
|
3295 |
-
|
3296 |
-
|
3297 |
-
|
3298 |
-
|
3299 |
-
|
3300 |
-
|
3301 |
-
|
3302 |
-
|
3303 |
-
|
3304 |
-
|
3305 |
-
|
3306 |
-
|
3307 |
-
|
3308 |
-
|
3309 |
-
|
3310 |
-
|
3311 |
-
|
3312 |
-
|
3313 |
-
|
3314 |
-
|
3315 |
-
|
3316 |
-
|
3317 |
-
|
3318 |
-
|
3319 |
-
|
3320 |
-
|
3321 |
-
|
3322 |
-
|
3323 |
-
|
3324 |
-
|
3325 |
-
|
3326 |
-
|
3327 |
-
|
3328 |
-
|
3329 |
-
|
3330 |
-
|
3331 |
-
|
3332 |
-
|
3333 |
-
|
3334 |
-
|
3335 |
-
|
3336 |
-
|
3337 |
-
|
3338 |
-
|
3339 |
-
|
3340 |
-
|
3341 |
-
|
3342 |
-
|
3343 |
-
|
3344 |
-
|
3345 |
-
|
3346 |
-
|
3347 |
-
|
3348 |
-
|
3349 |
-
|
3350 |
-
|
3351 |
-
|
3352 |
-
|
3353 |
-
|
3354 |
-
|
3355 |
-
|
3356 |
-
|
3357 |
-
|
3358 |
-
|
3359 |
-
|
3360 |
-
|
3361 |
-
|
3362 |
-
|
3363 |
-
|
3364 |
-
|
3365 |
-
|
3366 |
-
|
3367 |
-
|
3368 |
-
|
3369 |
-
|
3370 |
-
|
3371 |
-
|
3372 |
-
|
3373 |
-
|
3374 |
-
|
3375 |
-
|
3376 |
-
|
3377 |
-
|
3378 |
-
|
3379 |
-
|
3380 |
-
|
3381 |
-
|
3382 |
-
|
3383 |
-
|
3384 |
-
|
3385 |
-
|
3386 |
-
|
3387 |
-
|
3388 |
-
|
3389 |
-
|
3390 |
-
|
3391 |
-
|
3392 |
-
|
3393 |
-
|
3394 |
-
|
3395 |
-
|
3396 |
-
|
3397 |
-
|
3398 |
-
|
3399 |
-
|
3400 |
-
|
3401 |
-
|
3402 |
-
|
3403 |
-
|
3404 |
-
|
3405 |
-
|
3406 |
-
|
3407 |
-
|
3408 |
-
|
3409 |
-
|
3410 |
-
|
3411 |
-
|
3412 |
-
|
3413 |
-
|
3414 |
-
|
3415 |
-
|
3416 |
-
|
3417 |
-
|
3418 |
-
|
3419 |
-
|
3420 |
-
|
3421 |
-
|
3422 |
-
|
3423 |
-
|
3424 |
-
|
3425 |
-
|
3426 |
-
|
3427 |
-
|
3428 |
-
|
3429 |
-
|
3430 |
-
|
3431 |
-
|
3432 |
-
|
3433 |
-
|
3434 |
-
|
3435 |
-
|
3436 |
-
|
3437 |
-
|
3438 |
-
|
3439 |
-
|
3440 |
-
|
3441 |
-
|
3442 |
-
|
3443 |
-
|
3444 |
-
|
3445 |
-
|
3446 |
-
|
3447 |
-
|
3448 |
-
|
3449 |
-
|
3450 |
-
|
3451 |
-
|
3452 |
-
|
3453 |
-
|
3454 |
-
|
3455 |
-
|
3456 |
-
|
3457 |
-
|
3458 |
-
|
3459 |
-
|
3460 |
-
msgstr[
|
3461 |
-
|
3462 |
-
|
3463 |
-
|
3464 |
-
|
3465 |
-
|
3466 |
-
"
|
3467 |
-
|
3468 |
-
|
3469 |
-
|
3470 |
-
|
3471 |
-
|
3472 |
-
|
3473 |
-
|
3474 |
-
|
3475 |
-
|
3476 |
-
|
3477 |
-
|
3478 |
-
|
3479 |
-
|
3480 |
-
|
3481 |
-
|
3482 |
-
|
3483 |
-
|
3484 |
-
|
3485 |
-
|
3486 |
-
|
3487 |
-
|
3488 |
-
|
3489 |
-
|
3490 |
-
|
3491 |
-
|
3492 |
-
|
3493 |
-
|
3494 |
-
|
3495 |
-
|
3496 |
-
|
3497 |
-
|
3498 |
-
|
3499 |
-
|
3500 |
-
|
3501 |
-
|
3502 |
-
|
3503 |
-
|
3504 |
-
|
3505 |
-
|
3506 |
-
|
3507 |
-
|
3508 |
-
|
3509 |
-
|
3510 |
-
|
3511 |
-
|
3512 |
-
"be
|
3513 |
-
|
3514 |
-
|
3515 |
-
|
3516 |
-
|
3517 |
-
|
3518 |
-
|
3519 |
-
|
3520 |
-
|
3521 |
-
|
3522 |
-
|
3523 |
-
|
3524 |
-
|
3525 |
-
|
3526 |
-
|
3527 |
-
|
3528 |
-
|
3529 |
-
|
3530 |
-
|
3531 |
-
"
|
3532 |
-
|
3533 |
-
|
3534 |
-
|
3535 |
-
|
3536 |
-
|
3537 |
-
|
3538 |
-
|
3539 |
-
|
3540 |
-
|
3541 |
-
|
3542 |
-
|
3543 |
-
|
3544 |
-
|
3545 |
-
|
3546 |
-
|
3547 |
-
|
3548 |
-
|
3549 |
-
|
3550 |
-
|
3551 |
-
|
3552 |
-
|
3553 |
-
|
3554 |
-
|
3555 |
-
|
3556 |
-
|
3557 |
-
|
3558 |
-
|
3559 |
-
|
3560 |
-
|
3561 |
-
|
3562 |
-
|
3563 |
-
|
3564 |
-
|
3565 |
-
|
3566 |
-
|
3567 |
-
|
3568 |
-
|
3569 |
-
|
3570 |
-
"
|
3571 |
-
"
|
3572 |
-
|
3573 |
-
|
3574 |
-
|
3575 |
-
|
3576 |
-
|
3577 |
-
|
3578 |
-
|
3579 |
-
|
3580 |
-
|
3581 |
-
|
3582 |
-
|
3583 |
-
|
3584 |
-
|
3585 |
-
|
3586 |
-
|
3587 |
-
|
3588 |
-
|
3589 |
-
|
3590 |
-
|
3591 |
-
|
3592 |
-
|
3593 |
-
|
3594 |
-
|
3595 |
-
|
3596 |
-
|
3597 |
-
|
3598 |
-
|
3599 |
-
|
3600 |
-
|
3601 |
-
|
3602 |
-
|
3603 |
-
|
3604 |
-
|
3605 |
-
|
3606 |
-
|
3607 |
-
|
3608 |
-
|
3609 |
-
|
3610 |
-
|
3611 |
-
|
3612 |
-
|
3613 |
-
|
3614 |
-
|
3615 |
-
|
3616 |
-
|
3617 |
-
|
3618 |
-
|
3619 |
-
|
3620 |
-
|
3621 |
-
|
3622 |
-
|
3623 |
-
|
3624 |
-
|
3625 |
-
#:
|
3626 |
-
|
3627 |
-
|
3628 |
-
|
3629 |
-
|
3630 |
-
|
3631 |
-
|
3632 |
-
|
3633 |
-
|
3634 |
-
|
3635 |
-
|
3636 |
-
|
3637 |
-
|
3638 |
-
|
3639 |
-
|
3640 |
-
#:
|
3641 |
-
#: /inc/class-jobtype-wpexp.php:
|
3642 |
-
#: /inc/class-jobtype-wpexp.php:
|
3643 |
-
|
3644 |
-
|
3645 |
-
|
3646 |
-
|
3647 |
-
|
3648 |
-
|
3649 |
-
|
3650 |
-
|
3651 |
-
|
3652 |
-
|
3653 |
-
|
3654 |
-
|
3655 |
-
|
3656 |
-
|
3657 |
-
|
3658 |
-
|
3659 |
-
|
3660 |
-
|
3661 |
-
|
3662 |
-
|
3663 |
-
|
3664 |
-
|
3665 |
-
|
3666 |
-
|
3667 |
-
|
3668 |
-
|
3669 |
-
|
3670 |
-
|
3671 |
-
|
3672 |
-
|
3673 |
-
|
3674 |
-
|
3675 |
-
|
3676 |
-
|
3677 |
-
|
3678 |
-
|
3679 |
-
|
3680 |
-
"
|
3681 |
-
|
3682 |
-
|
3683 |
-
|
3684 |
-
|
3685 |
-
|
3686 |
-
|
3687 |
-
|
3688 |
-
|
3689 |
-
|
3690 |
-
|
3691 |
-
|
3692 |
-
|
3693 |
-
|
3694 |
-
|
3695 |
-
|
3696 |
-
|
3697 |
-
|
3698 |
-
|
3699 |
-
|
3700 |
-
|
3701 |
-
|
3702 |
-
|
3703 |
-
|
3704 |
-
|
3705 |
-
|
3706 |
-
|
3707 |
-
|
3708 |
-
|
3709 |
-
|
3710 |
-
|
3711 |
-
|
3712 |
-
|
3713 |
-
|
3714 |
-
|
3715 |
-
|
3716 |
-
|
3717 |
-
|
3718 |
-
|
3719 |
-
|
3720 |
-
|
3721 |
-
|
3722 |
-
|
3723 |
-
|
3724 |
-
|
3725 |
-
|
3726 |
-
|
3727 |
-
|
3728 |
-
|
3729 |
-
|
3730 |
-
|
3731 |
-
|
3732 |
-
|
3733 |
-
|
3734 |
-
|
3735 |
-
|
3736 |
-
|
3737 |
-
|
3738 |
-
|
3739 |
-
|
3740 |
-
#: /inc/class-
|
3741 |
-
|
3742 |
-
|
3743 |
-
|
3744 |
-
|
3745 |
-
|
3746 |
-
|
3747 |
-
|
3748 |
-
|
3749 |
-
|
3750 |
-
|
3751 |
-
|
3752 |
-
|
3753 |
-
|
3754 |
-
|
3755 |
-
|
3756 |
-
|
3757 |
-
|
3758 |
-
|
3759 |
-
|
3760 |
-
|
3761 |
-
|
3762 |
-
|
3763 |
-
|
3764 |
-
|
3765 |
-
|
3766 |
-
|
3767 |
-
|
3768 |
-
|
3769 |
-
|
3770 |
-
|
3771 |
-
|
3772 |
-
|
3773 |
-
|
3774 |
-
|
3775 |
-
|
3776 |
-
|
3777 |
-
|
3778 |
-
|
3779 |
-
|
3780 |
-
|
3781 |
-
|
3782 |
-
|
3783 |
-
|
3784 |
-
|
3785 |
-
|
3786 |
-
|
3787 |
-
|
3788 |
-
|
3789 |
-
|
3790 |
-
|
3791 |
-
|
3792 |
-
|
3793 |
-
|
3794 |
-
|
3795 |
-
|
3796 |
-
|
3797 |
-
|
3798 |
-
|
3799 |
-
|
3800 |
-
|
3801 |
-
|
3802 |
-
|
3803 |
-
|
3804 |
-
|
3805 |
-
|
3806 |
-
|
3807 |
-
|
3808 |
-
|
3809 |
-
|
3810 |
-
|
3811 |
-
|
3812 |
-
|
3813 |
-
|
3814 |
-
|
3815 |
-
#:
|
3816 |
-
|
3817 |
-
|
3818 |
-
|
3819 |
-
|
3820 |
-
|
3821 |
-
|
3822 |
-
|
3823 |
-
|
3824 |
-
|
3825 |
-
|
3826 |
-
|
3827 |
-
|
3828 |
-
|
3829 |
-
|
3830 |
-
|
3831 |
-
|
3832 |
-
|
3833 |
-
|
3834 |
-
|
3835 |
-
|
3836 |
-
|
3837 |
-
|
3838 |
-
|
3839 |
-
|
3840 |
-
|
3841 |
-
|
3842 |
-
|
3843 |
-
|
3844 |
-
|
3845 |
-
|
3846 |
-
|
3847 |
-
|
3848 |
-
|
3849 |
-
|
3850 |
-
|
3851 |
-
|
3852 |
-
|
3853 |
-
|
3854 |
-
|
3855 |
-
|
3856 |
-
|
3857 |
-
|
3858 |
-
|
3859 |
-
|
3860 |
-
|
3861 |
-
|
3862 |
-
|
3863 |
-
|
3864 |
-
|
3865 |
-
|
3866 |
-
|
3867 |
-
|
3868 |
-
|
3869 |
-
|
3870 |
-
|
3871 |
-
|
3872 |
-
|
3873 |
-
|
3874 |
-
|
3875 |
-
|
3876 |
-
|
3877 |
-
|
3878 |
-
|
3879 |
-
|
3880 |
-
|
3881 |
-
|
3882 |
-
|
3883 |
-
|
3884 |
-
|
3885 |
-
|
3886 |
-
|
3887 |
-
|
3888 |
-
|
3889 |
-
|
3890 |
-
|
3891 |
-
|
3892 |
-
|
3893 |
-
|
3894 |
-
|
3895 |
-
|
3896 |
-
|
3897 |
-
|
3898 |
-
|
3899 |
-
|
3900 |
-
|
3901 |
-
|
3902 |
-
|
3903 |
-
|
3904 |
-
|
3905 |
-
|
3906 |
-
|
3907 |
-
|
3908 |
-
|
3909 |
-
|
3910 |
-
|
3911 |
-
"
|
3912 |
-
|
3913 |
-
|
3914 |
-
|
3915 |
-
#:
|
3916 |
-
|
3917 |
-
|
3918 |
-
|
3919 |
-
|
3920 |
-
#: /inc/class-page-editjob.php:
|
3921 |
-
|
3922 |
-
|
3923 |
-
|
3924 |
-
|
3925 |
-
|
3926 |
-
|
3927 |
-
|
3928 |
-
|
3929 |
-
|
3930 |
-
|
3931 |
-
|
3932 |
-
|
3933 |
-
|
3934 |
-
|
3935 |
-
|
3936 |
-
|
3937 |
-
#:
|
3938 |
-
|
3939 |
-
|
3940 |
-
|
3941 |
-
|
3942 |
-
|
3943 |
-
|
3944 |
-
|
3945 |
-
|
3946 |
-
#:
|
3947 |
-
|
3948 |
-
|
3949 |
-
|
3950 |
-
|
3951 |
-
|
3952 |
-
|
3953 |
-
|
3954 |
-
|
3955 |
-
|
3956 |
-
|
3957 |
-
|
3958 |
-
|
3959 |
-
|
3960 |
-
|
3961 |
-
|
3962 |
-
|
3963 |
-
|
3964 |
-
|
3965 |
-
|
3966 |
-
|
3967 |
-
|
3968 |
-
|
3969 |
-
"
|
3970 |
-
|
3971 |
-
|
3972 |
-
|
3973 |
-
|
3974 |
-
|
3975 |
-
|
3976 |
-
|
3977 |
-
|
3978 |
-
|
3979 |
-
|
3980 |
-
|
3981 |
-
|
3982 |
-
|
3983 |
-
|
3984 |
-
|
3985 |
-
|
3986 |
-
|
3987 |
-
|
3988 |
-
|
3989 |
-
|
3990 |
-
|
3991 |
-
|
3992 |
-
|
3993 |
-
|
3994 |
-
|
3995 |
-
|
3996 |
-
|
3997 |
-
|
3998 |
-
|
3999 |
-
|
4000 |
-
|
4001 |
-
|
4002 |
-
|
4003 |
-
|
4004 |
-
|
4005 |
-
|
4006 |
-
|
4007 |
-
|
4008 |
-
|
4009 |
-
|
4010 |
-
|
4011 |
-
"
|
4012 |
-
|
4013 |
-
|
4014 |
-
|
4015 |
-
|
4016 |
-
|
4017 |
-
|
4018 |
-
"
|
4019 |
-
|
4020 |
-
|
4021 |
-
|
4022 |
-
|
4023 |
-
|
4024 |
-
"the link
|
4025 |
-
|
4026 |
-
|
4027 |
-
|
4028 |
-
|
4029 |
-
|
4030 |
-
|
4031 |
-
|
4032 |
-
|
4033 |
-
|
4034 |
-
|
4035 |
-
|
4036 |
-
|
4037 |
-
|
4038 |
-
"
|
4039 |
-
|
4040 |
-
|
4041 |
-
|
4042 |
-
|
4043 |
-
|
4044 |
-
|
4045 |
-
|
4046 |
-
|
4047 |
-
|
4048 |
-
|
4049 |
-
|
4050 |
-
|
4051 |
-
|
4052 |
-
|
4053 |
-
|
4054 |
-
|
4055 |
-
|
4056 |
-
|
4057 |
-
|
4058 |
-
|
4059 |
-
|
4060 |
-
|
4061 |
-
|
4062 |
-
#: /inc/
|
4063 |
-
|
4064 |
-
|
4065 |
-
|
4066 |
-
|
4067 |
-
|
4068 |
-
|
4069 |
-
|
4070 |
-
|
4071 |
-
|
4072 |
-
|
4073 |
-
|
4074 |
-
|
4075 |
-
|
4076 |
-
|
4077 |
-
|
4078 |
-
|
4079 |
-
|
4080 |
-
|
4081 |
-
|
4082 |
-
|
4083 |
-
|
4084 |
-
|
4085 |
-
|
4086 |
-
|
4087 |
-
#: /inc/
|
4088 |
-
|
4089 |
-
|
4090 |
-
|
4091 |
-
|
4092 |
-
#: /inc/
|
4093 |
-
|
4094 |
-
|
4095 |
-
|
4096 |
-
|
4097 |
-
#: /inc/
|
4098 |
-
|
4099 |
-
|
4100 |
-
|
4101 |
-
|
4102 |
-
#: /inc/
|
4103 |
-
|
4104 |
-
|
4105 |
-
|
4106 |
-
|
4107 |
-
#: /inc/
|
4108 |
-
|
4109 |
-
|
4110 |
-
|
4111 |
-
|
4112 |
-
#: /inc/
|
4113 |
-
|
4114 |
-
|
4115 |
-
|
4116 |
-
|
4117 |
-
#: /inc/
|
4118 |
-
|
4119 |
-
|
4120 |
-
|
4121 |
-
|
4122 |
-
|
4123 |
-
|
4124 |
-
|
4125 |
-
|
4126 |
-
|
4127 |
-
|
4128 |
-
|
4129 |
-
|
4130 |
-
|
4131 |
-
|
4132 |
-
|
4133 |
-
|
4134 |
-
#:
|
4135 |
-
#: page-editjob.php:
|
4136 |
-
|
4137 |
-
|
4138 |
-
|
4139 |
-
|
4140 |
-
|
4141 |
-
|
4142 |
-
|
4143 |
-
|
4144 |
-
|
4145 |
-
|
4146 |
-
|
4147 |
-
|
4148 |
-
|
4149 |
-
|
4150 |
-
|
4151 |
-
|
4152 |
-
|
4153 |
-
|
4154 |
-
|
4155 |
-
|
4156 |
-
|
4157 |
-
|
4158 |
-
|
4159 |
-
|
4160 |
-
|
4161 |
-
|
4162 |
-
|
4163 |
-
|
4164 |
-
|
4165 |
-
|
4166 |
-
|
4167 |
-
|
4168 |
-
|
4169 |
-
|
4170 |
-
|
4171 |
-
|
4172 |
-
|
4173 |
-
|
4174 |
-
|
4175 |
-
|
4176 |
-
|
4177 |
-
|
4178 |
-
|
4179 |
-
|
4180 |
-
|
4181 |
-
|
4182 |
-
|
4183 |
-
|
4184 |
-
|
4185 |
-
|
4186 |
-
|
4187 |
-
|
4188 |
-
|
4189 |
-
|
4190 |
-
|
4191 |
-
|
4192 |
-
|
4193 |
-
|
4194 |
-
|
4195 |
-
|
4196 |
-
|
4197 |
-
|
4198 |
-
|
4199 |
-
|
4200 |
-
|
4201 |
-
|
4202 |
-
|
4203 |
-
|
4204 |
-
|
4205 |
-
|
4206 |
-
|
4207 |
-
|
4208 |
-
|
4209 |
-
|
4210 |
-
|
4211 |
-
|
4212 |
-
#:
|
4213 |
-
#:
|
4214 |
-
|
4215 |
-
|
4216 |
-
|
4217 |
-
|
4218 |
-
#: php:
|
4219 |
-
|
4220 |
-
|
4221 |
-
|
4222 |
-
|
4223 |
-
#: php:
|
4224 |
-
|
4225 |
-
|
4226 |
-
|
4227 |
-
|
4228 |
-
#: php:
|
4229 |
-
|
4230 |
-
|
4231 |
-
|
4232 |
-
|
4233 |
-
|
4234 |
-
|
4235 |
-
|
4236 |
-
|
4237 |
-
|
4238 |
-
|
4239 |
-
|
4240 |
-
|
4241 |
-
|
4242 |
-
|
4243 |
-
|
4244 |
-
|
4245 |
-
|
4246 |
-
|
4247 |
-
|
4248 |
-
|
4249 |
-
|
4250 |
-
|
4251 |
-
|
4252 |
-
|
4253 |
-
|
4254 |
-
|
4255 |
-
|
4256 |
-
|
4257 |
-
|
4258 |
-
|
4259 |
-
|
4260 |
-
|
4261 |
-
|
4262 |
-
|
4263 |
-
|
4264 |
-
|
4265 |
-
|
4266 |
-
|
4267 |
-
|
4268 |
-
|
4269 |
-
|
4270 |
-
|
4271 |
-
|
4272 |
-
|
4273 |
-
|
4274 |
-
|
4275 |
-
|
4276 |
-
|
4277 |
-
|
4278 |
-
|
4279 |
-
|
4280 |
-
|
4281 |
-
|
4282 |
-
|
4283 |
-
|
4284 |
-
|
4285 |
-
|
4286 |
-
|
4287 |
-
|
4288 |
-
|
4289 |
-
|
4290 |
-
|
4291 |
-
|
4292 |
-
"
|
4293 |
-
|
4294 |
-
|
4295 |
-
|
4296 |
-
|
4297 |
-
|
4298 |
-
|
4299 |
-
"version
|
4300 |
-
|
4301 |
-
|
4302 |
-
|
4303 |
-
|
4304 |
-
|
4305 |
-
|
4306 |
-
"
|
4307 |
-
|
4308 |
-
|
4309 |
-
|
4310 |
-
|
4311 |
-
|
4312 |
-
|
4313 |
-
"
|
4314 |
-
|
4315 |
-
|
4316 |
-
|
4317 |
-
|
4318 |
-
|
4319 |
-
|
4320 |
-
|
4321 |
-
|
4322 |
-
|
4323 |
-
|
4324 |
-
|
4325 |
-
|
4326 |
-
|
4327 |
-
|
4328 |
-
|
4329 |
-
|
4330 |
-
|
4331 |
-
|
4332 |
-
|
4333 |
-
|
4334 |
-
|
4335 |
-
"
|
4336 |
-
|
4337 |
-
|
4338 |
-
|
4339 |
-
|
4340 |
-
|
4341 |
-
|
4342 |
-
|
4343 |
-
|
4344 |
-
|
4345 |
-
|
4346 |
-
|
4347 |
-
"status
|
4348 |
-
|
4349 |
-
|
4350 |
-
|
4351 |
-
|
4352 |
-
|
4353 |
-
|
4354 |
-
|
4355 |
-
|
4356 |
-
|
4357 |
-
|
4358 |
-
|
4359 |
-
|
4360 |
-
|
4361 |
-
"
|
4362 |
-
|
4363 |
-
|
4364 |
-
|
4365 |
-
|
4366 |
-
|
4367 |
-
|
4368 |
-
|
4369 |
-
|
4370 |
-
|
4371 |
-
|
4372 |
-
|
4373 |
-
|
4374 |
-
|
4375 |
-
|
4376 |
-
|
4377 |
-
|
4378 |
-
|
4379 |
-
|
4380 |
-
|
4381 |
-
|
4382 |
-
|
4383 |
-
|
4384 |
-
|
4385 |
-
|
4386 |
-
|
4387 |
-
|
4388 |
-
|
4389 |
-
|
4390 |
-
|
4391 |
-
|
4392 |
-
|
4393 |
-
|
4394 |
-
|
4395 |
-
|
4396 |
-
|
4397 |
-
|
4398 |
-
|
4399 |
-
|
4400 |
-
|
4401 |
-
|
4402 |
-
|
4403 |
-
|
4404 |
-
|
4405 |
-
|
4406 |
-
|
4407 |
-
|
4408 |
-
|
4409 |
-
|
4410 |
-
|
4411 |
-
|
4412 |
-
|
4413 |
-
|
4414 |
-
|
4415 |
-
|
4416 |
-
|
4417 |
-
|
4418 |
-
|
4419 |
-
"
|
4420 |
-
"
|
4421 |
-
|
4422 |
-
|
4423 |
-
|
4424 |
-
|
4425 |
-
|
4426 |
-
|
4427 |
-
|
4428 |
-
|
4429 |
-
|
4430 |
-
|
4431 |
-
|
4432 |
-
|
4433 |
-
|
4434 |
-
|
4435 |
-
|
4436 |
-
|
4437 |
-
|
4438 |
-
|
4439 |
-
|
4440 |
-
|
4441 |
-
|
4442 |
-
|
4443 |
-
|
4444 |
-
|
4445 |
-
|
4446 |
-
|
4447 |
-
|
4448 |
-
|
4449 |
-
|
4450 |
-
|
4451 |
-
|
4452 |
-
|
4453 |
-
|
4454 |
-
|
4455 |
-
|
4456 |
-
|
4457 |
-
|
4458 |
-
|
4459 |
-
|
4460 |
-
"
|
4461 |
-
|
4462 |
-
|
4463 |
-
|
4464 |
-
|
4465 |
-
|
4466 |
-
|
4467 |
-
|
4468 |
-
|
4469 |
-
|
4470 |
-
|
4471 |
-
|
4472 |
-
|
4473 |
-
|
4474 |
-
|
4475 |
-
|
4476 |
-
|
4477 |
-
|
4478 |
-
|
4479 |
-
|
4480 |
-
|
4481 |
-
|
4482 |
-
|
4483 |
-
|
4484 |
-
|
4485 |
-
|
4486 |
-
|
4487 |
-
|
4488 |
-
|
4489 |
-
|
4490 |
-
|
4491 |
-
|
4492 |
-
|
4493 |
-
|
4494 |
-
|
4495 |
-
|
4496 |
-
|
4497 |
-
|
4498 |
-
|
4499 |
-
|
4500 |
-
|
4501 |
-
|
4502 |
-
|
4503 |
-
|
4504 |
-
|
4505 |
-
|
4506 |
-
|
4507 |
-
|
4508 |
-
|
4509 |
-
|
4510 |
-
|
4511 |
-
|
4512 |
-
|
4513 |
-
|
4514 |
-
|
4515 |
-
|
4516 |
-
|
4517 |
-
|
4518 |
-
|
4519 |
-
|
4520 |
-
|
4521 |
-
|
4522 |
-
|
4523 |
-
|
4524 |
-
|
4525 |
-
|
4526 |
-
|
4527 |
-
|
4528 |
-
|
4529 |
-
|
4530 |
-
|
4531 |
-
|
4532 |
-
|
4533 |
-
|
4534 |
-
|
4535 |
-
|
4536 |
-
|
4537 |
-
|
4538 |
-
|
4539 |
-
|
4540 |
-
|
4541 |
-
|
4542 |
-
|
4543 |
-
|
4544 |
-
|
4545 |
-
|
4546 |
-
|
4547 |
-
|
4548 |
-
|
4549 |
-
|
4550 |
-
|
4551 |
-
|
4552 |
-
|
4553 |
-
|
4554 |
-
|
4555 |
-
|
4556 |
-
|
4557 |
-
|
4558 |
-
"
|
4559 |
-
|
4560 |
-
|
4561 |
-
|
4562 |
-
|
4563 |
-
|
4564 |
-
|
4565 |
-
|
4566 |
-
|
4567 |
-
|
4568 |
-
|
4569 |
-
|
4570 |
-
|
4571 |
-
|
4572 |
-
"
|
4573 |
-
|
4574 |
-
|
4575 |
-
|
4576 |
-
|
4577 |
-
|
4578 |
-
|
4579 |
-
|
4580 |
-
|
4581 |
-
|
4582 |
-
|
4583 |
-
|
4584 |
-
|
4585 |
-
|
4586 |
-
|
4587 |
-
|
4588 |
-
|
4589 |
-
|
4590 |
-
|
4591 |
-
|
4592 |
-
|
4593 |
-
|
4594 |
-
|
4595 |
-
|
4596 |
-
|
4597 |
-
|
4598 |
-
"
|
4599 |
-
|
4600 |
-
|
4601 |
-
|
4602 |
-
|
4603 |
-
|
4604 |
-
|
4605 |
-
|
4606 |
-
|
4607 |
-
|
4608 |
-
|
4609 |
-
|
4610 |
-
|
4611 |
-
|
4612 |
-
|
4613 |
-
|
4614 |
-
|
4615 |
-
|
4616 |
-
|
4617 |
-
|
4618 |
-
|
4619 |
-
|
4620 |
-
|
4621 |
-
|
4622 |
-
|
4623 |
-
|
4624 |
-
|
4625 |
-
|
4626 |
-
|
4627 |
-
|
4628 |
-
|
4629 |
-
|
4630 |
-
|
4631 |
-
|
4632 |
-
|
4633 |
-
|
4634 |
-
|
4635 |
-
|
4636 |
-
|
4637 |
-
|
4638 |
-
|
4639 |
-
|
4640 |
-
|
4641 |
-
|
4642 |
-
#:
|
4643 |
-
|
4644 |
-
|
4645 |
-
|
4646 |
-
|
4647 |
-
|
4648 |
-
|
4649 |
-
|
4650 |
-
|
4651 |
-
|
4652 |
-
|
4653 |
-
|
4654 |
-
|
4655 |
-
|
4656 |
-
|
4657 |
-
|
4658 |
-
|
4659 |
-
|
4660 |
-
|
4661 |
-
|
4662 |
-
|
4663 |
-
|
4664 |
-
|
4665 |
-
"
|
4666 |
-
|
4667 |
-
|
4668 |
-
|
4669 |
-
|
4670 |
-
|
4671 |
-
|
4672 |
-
|
4673 |
-
|
4674 |
-
|
4675 |
-
|
4676 |
-
|
4677 |
-
|
4678 |
-
|
4679 |
-
|
4680 |
-
|
4681 |
-
|
4682 |
-
|
4683 |
-
|
4684 |
-
|
4685 |
-
|
4686 |
-
|
4687 |
-
|
4688 |
-
|
4689 |
-
|
4690 |
-
|
4691 |
-
|
4692 |
-
|
4693 |
-
|
4694 |
-
|
4695 |
-
|
4696 |
-
|
4697 |
-
|
4698 |
-
|
4699 |
-
|
4700 |
-
|
4701 |
-
|
4702 |
-
|
4703 |
-
|
4704 |
-
|
4705 |
-
|
4706 |
-
|
4707 |
-
|
4708 |
-
"
|
4709 |
-
"
|
4710 |
-
|
4711 |
-
|
4712 |
-
|
4713 |
-
|
4714 |
-
|
4715 |
-
|
4716 |
-
"
|
4717 |
-
|
4718 |
-
|
4719 |
-
|
4720 |
-
|
4721 |
-
|
4722 |
-
|
4723 |
-
|
4724 |
-
|
4725 |
-
|
4726 |
-
|
4727 |
-
"
|
4728 |
-
|
4729 |
-
|
4730 |
-
|
4731 |
-
|
4732 |
-
|
4733 |
-
|
4734 |
-
|
4735 |
-
|
4736 |
-
|
4737 |
-
|
4738 |
-
|
4739 |
-
|
4740 |
-
|
4741 |
-
|
4742 |
-
|
4743 |
-
|
4744 |
-
|
4745 |
-
|
4746 |
-
|
4747 |
-
|
4748 |
-
|
4749 |
-
|
4750 |
-
|
4751 |
-
|
4752 |
-
|
4753 |
-
|
4754 |
-
|
4755 |
-
|
4756 |
-
#:
|
4757 |
-
|
4758 |
-
|
4759 |
-
|
4760 |
-
|
4761 |
-
|
4762 |
-
|
4763 |
-
|
4764 |
-
|
4765 |
-
|
4766 |
-
|
4767 |
-
|
4768 |
-
|
4769 |
-
|
4770 |
-
|
4771 |
-
|
4772 |
-
|
4773 |
-
#: 135
|
4774 |
-
|
4775 |
-
|
4776 |
-
|
4777 |
-
|
4778 |
-
|
4779 |
-
#:
|
4780 |
-
|
4781 |
-
|
4782 |
-
|
4783 |
-
|
4784 |
-
|
4785 |
-
#:
|
4786 |
-
|
4787 |
-
|
4788 |
-
|
4789 |
-
|
4790 |
-
#:
|
4791 |
-
|
4792 |
-
|
4793 |
-
|
4794 |
-
|
4795 |
-
#:
|
4796 |
-
|
4797 |
-
|
4798 |
-
|
4799 |
-
|
4800 |
-
|
4801 |
-
#:
|
4802 |
-
|
4803 |
-
|
4804 |
-
|
4805 |
-
|
4806 |
-
|
4807 |
-
#:
|
4808 |
-
|
4809 |
-
|
4810 |
-
|
4811 |
-
|
4812 |
-
#:
|
4813 |
-
|
4814 |
-
|
4815 |
-
|
4816 |
-
|
4817 |
-
|
4818 |
-
#: sugarsync.php:
|
4819 |
-
|
4820 |
-
|
4821 |
-
|
4822 |
-
|
4823 |
-
#:
|
4824 |
-
#: destination-gdrive.php:
|
4825 |
-
|
4826 |
-
|
4827 |
-
|
4828 |
-
|
4829 |
-
|
4830 |
-
|
4831 |
-
|
4832 |
-
|
4833 |
-
#:
|
4834 |
-
|
4835 |
-
|
4836 |
-
|
4837 |
-
|
4838 |
-
#: php:
|
4839 |
-
|
4840 |
-
|
4841 |
-
|
4842 |
-
|
4843 |
-
#: php:
|
4844 |
-
|
4845 |
-
|
4846 |
-
|
4847 |
-
|
4848 |
-
|
4849 |
-
|
4850 |
-
|
4851 |
-
|
4852 |
-
|
4853 |
-
|
4854 |
-
|
4855 |
-
|
4856 |
-
|
4857 |
-
|
4858 |
-
|
4859 |
-
|
4860 |
-
|
4861 |
-
|
4862 |
-
|
4863 |
-
|
4864 |
-
|
4865 |
-
|
4866 |
-
|
4867 |
-
|
4868 |
-
|
4869 |
-
|
4870 |
-
|
4871 |
-
|
4872 |
-
|
4873 |
-
|
4874 |
-
|
4875 |
-
|
4876 |
-
|
4877 |
-
|
4878 |
-
|
4879 |
-
|
4880 |
-
|
4881 |
-
|
4882 |
-
|
4883 |
-
|
4884 |
-
|
4885 |
-
|
4886 |
-
|
4887 |
-
|
4888 |
-
|
4889 |
-
|
4890 |
-
|
4891 |
-
|
4892 |
-
|
4893 |
-
|
4894 |
-
|
4895 |
-
|
4896 |
-
|
4897 |
-
|
4898 |
-
|
4899 |
-
|
4900 |
-
|
4901 |
-
|
4902 |
-
|
4903 |
-
|
4904 |
-
|
4905 |
-
|
4906 |
-
|
4907 |
-
|
4908 |
-
|
4909 |
-
|
4910 |
-
|
4911 |
-
|
4912 |
-
|
4913 |
-
|
4914 |
-
|
4915 |
-
|
4916 |
-
|
4917 |
-
|
4918 |
-
|
4919 |
-
|
4920 |
-
|
4921 |
-
|
4922 |
-
|
4923 |
-
|
4924 |
-
|
4925 |
-
|
4926 |
-
|
4927 |
-
|
4928 |
-
|
4929 |
-
|
4930 |
-
|
4931 |
-
|
4932 |
-
|
4933 |
-
|
4934 |
-
|
4935 |
-
|
4936 |
-
|
4937 |
-
|
4938 |
-
|
4939 |
-
|
4940 |
-
|
4941 |
-
|
4942 |
-
#: /inc/pro/class-page-wizard.php:
|
4943 |
-
|
4944 |
-
|
4945 |
-
|
4946 |
-
|
4947 |
-
|
4948 |
-
|
4949 |
-
|
4950 |
-
|
4951 |
-
|
4952 |
-
|
4953 |
-
|
4954 |
-
|
4955 |
-
|
4956 |
-
|
4957 |
-
|
4958 |
-
|
4959 |
-
|
4960 |
-
|
4961 |
-
|
4962 |
-
|
4963 |
-
|
4964 |
-
|
4965 |
-
|
4966 |
-
|
4967 |
-
|
4968 |
-
|
4969 |
-
|
4970 |
-
|
4971 |
-
|
4972 |
-
|
4973 |
-
|
4974 |
-
|
4975 |
-
|
4976 |
-
|
4977 |
-
|
4978 |
-
|
4979 |
-
|
4980 |
-
|
4981 |
-
|
4982 |
-
|
4983 |
-
|
4984 |
-
|
4985 |
-
|
4986 |
-
|
4987 |
-
|
4988 |
-
|
4989 |
-
|
4990 |
-
|
4991 |
-
|
4992 |
-
|
4993 |
-
|
4994 |
-
|
4995 |
-
|
4996 |
-
|
4997 |
-
|
4998 |
-
|
4999 |
-
|
5000 |
-
|
5001 |
-
|
5002 |
-
|
5003 |
-
|
5004 |
-
|
5005 |
-
|
5006 |
-
|
5007 |
-
|
5008 |
-
|
5009 |
-
|
5010 |
-
|
5011 |
-
|
5012 |
-
|
5013 |
-
|
5014 |
-
|
5015 |
-
|
5016 |
-
|
5017 |
-
|
5018 |
-
|
5019 |
-
|
5020 |
-
|
5021 |
-
|
5022 |
-
|
5023 |
-
|
5024 |
-
|
5025 |
-
|
5026 |
-
|
5027 |
-
|
5028 |
-
#: marketpress-documentation.php:
|
5029 |
-
|
5030 |
-
|
5031 |
-
|
5032 |
-
|
5033 |
-
|
5034 |
-
|
5035 |
-
#: marketpress-documentation.php:
|
5036 |
-
|
5037 |
-
|
5038 |
-
|
5039 |
-
|
5040 |
-
#: marketpress-documentation.php:
|
5041 |
-
|
5042 |
-
|
5043 |
-
|
5044 |
-
|
5045 |
-
#: marketpress-documentation.php:
|
5046 |
-
|
5047 |
-
|
5048 |
-
|
5049 |
-
|
5050 |
-
|
5051 |
-
|
5052 |
-
|
5053 |
-
|
5054 |
-
|
5055 |
-
|
5056 |
-
|
5057 |
-
|
5058 |
-
#: php:
|
5059 |
-
|
5060 |
-
|
5061 |
-
|
5062 |
-
"
|
5063 |
-
"
|
5064 |
-
|
5065 |
-
|
5066 |
-
|
5067 |
-
#: php:
|
5068 |
-
|
5069 |
-
|
5070 |
-
|
5071 |
-
|
5072 |
-
#: php:
|
5073 |
-
|
5074 |
-
|
5075 |
-
|
5076 |
-
|
5077 |
-
|
5078 |
-
|
5079 |
-
|
5080 |
-
|
5081 |
-
|
5082 |
-
|
5083 |
-
"
|
5084 |
-
|
5085 |
-
|
5086 |
-
|
5087 |
-
#: gdrive.php:
|
5088 |
-
|
5089 |
-
|
5090 |
-
|
5091 |
-
|
5092 |
-
#: gdrive.php:
|
5093 |
-
|
5094 |
-
|
5095 |
-
|
5096 |
-
|
5097 |
-
#:
|
5098 |
-
#: destination-gdrive.php:
|
5099 |
-
|
5100 |
-
|
5101 |
-
|
5102 |
-
|
5103 |
-
|
5104 |
-
|
5105 |
-
|
5106 |
-
|
5107 |
-
|
5108 |
-
|
5109 |
-
|
5110 |
-
|
5111 |
-
|
5112 |
-
|
5113 |
-
|
5114 |
-
|
5115 |
-
|
5116 |
-
|
5117 |
-
|
5118 |
-
|
5119 |
-
|
5120 |
-
|
5121 |
-
|
5122 |
-
|
5123 |
-
|
5124 |
-
|
5125 |
-
|
5126 |
-
#: gdrive.php:
|
5127 |
-
|
5128 |
-
|
5129 |
-
|
5130 |
-
|
5131 |
-
|
5132 |
-
|
5133 |
-
|
5134 |
-
|
5135 |
-
msgstr[
|
5136 |
-
|
5137 |
-
|
5138 |
-
#: gdrive.php:
|
5139 |
-
|
5140 |
-
|
5141 |
-
|
5142 |
-
|
5143 |
-
|
5144 |
-
|
5145 |
-
|
5146 |
-
|
5147 |
-
|
5148 |
-
|
5149 |
-
|
5150 |
-
|
5151 |
-
|
5152 |
-
|
5153 |
-
|
5154 |
-
|
5155 |
-
|
5156 |
-
|
5157 |
-
|
5158 |
-
|
5159 |
-
|
5160 |
-
|
5161 |
-
|
5162 |
-
|
5163 |
-
|
5164 |
-
|
5165 |
-
|
5166 |
-
|
5167 |
-
|
5168 |
-
|
5169 |
-
|
5170 |
-
|
5171 |
-
|
5172 |
-
|
5173 |
-
|
5174 |
-
|
5175 |
-
|
5176 |
-
|
5177 |
-
|
5178 |
-
|
5179 |
-
|
5180 |
-
|
5181 |
-
|
5182 |
-
|
5183 |
-
|
5184 |
-
|
5185 |
-
|
5186 |
-
|
5187 |
-
|
5188 |
-
|
5189 |
-
|
5190 |
-
|
5191 |
-
#: glacier.php:
|
5192 |
-
|
5193 |
-
|
5194 |
-
|
5195 |
-
|
5196 |
-
#: glacier.php:
|
5197 |
-
|
5198 |
-
|
5199 |
-
|
5200 |
-
|
5201 |
-
#: glacier.php:
|
5202 |
-
|
5203 |
-
|
5204 |
-
|
5205 |
-
|
5206 |
-
#: glacier.php:
|
5207 |
-
|
5208 |
-
|
5209 |
-
|
5210 |
-
|
5211 |
-
#: glacier.php:
|
5212 |
-
|
5213 |
-
|
5214 |
-
|
5215 |
-
|
5216 |
-
#: glacier.php:
|
5217 |
-
|
5218 |
-
|
5219 |
-
|
5220 |
-
|
5221 |
-
#: glacier.php:
|
5222 |
-
|
5223 |
-
|
5224 |
-
|
5225 |
-
|
5226 |
-
#: glacier.php:
|
5227 |
-
|
5228 |
-
|
5229 |
-
|
5230 |
-
|
5231 |
-
#: glacier.php:
|
5232 |
-
|
5233 |
-
|
5234 |
-
|
5235 |
-
|
5236 |
-
#: glacier.php:
|
5237 |
-
|
5238 |
-
|
5239 |
-
|
5240 |
-
|
5241 |
-
|
5242 |
-
|
5243 |
-
|
5244 |
-
|
5245 |
-
|
5246 |
-
|
5247 |
-
|
5248 |
-
|
5249 |
-
|
5250 |
-
|
5251 |
-
|
5252 |
-
|
5253 |
-
|
5254 |
-
|
5255 |
-
|
5256 |
-
|
5257 |
-
|
5258 |
-
|
5259 |
-
|
5260 |
-
|
5261 |
-
|
5262 |
-
|
5263 |
-
|
5264 |
-
|
5265 |
-
|
5266 |
-
|
5267 |
-
|
5268 |
-
"
|
5269 |
-
msgstr ""
|
5270 |
-
|
5271 |
-
#: ../inc/pro/class-destination-glacier.php:
|
5272 |
-
#: glacier.php:
|
5273 |
-
|
5274 |
-
|
5275 |
-
|
5276 |
-
|
5277 |
-
|
5278 |
-
#: glacier.php:
|
5279 |
-
|
5280 |
-
|
5281 |
-
|
5282 |
-
|
5283 |
-
|
5284 |
-
|
5285 |
-
|
5286 |
-
|
5287 |
-
|
5288 |
-
|
5289 |
-
|
5290 |
-
|
5291 |
-
|
5292 |
-
|
5293 |
-
|
5294 |
-
|
5295 |
-
|
5296 |
-
|
5297 |
-
|
5298 |
-
|
5299 |
-
msgid "
|
5300 |
-
msgstr ""
|
5301 |
-
|
5302 |
-
#: ../inc/pro/class-destination-glacier.php:
|
5303 |
-
|
5304 |
-
|
5305 |
-
|
5306 |
-
|
5307 |
-
|
5308 |
-
|
5309 |
-
|
5310 |
-
|
5311 |
-
|
5312 |
-
|
5313 |
-
|
5314 |
-
|
5315 |
-
|
5316 |
-
|
5317 |
-
|
5318 |
-
|
5319 |
-
|
5320 |
-
|
5321 |
-
|
5322 |
-
|
5323 |
-
|
5324 |
-
|
5325 |
-
|
5326 |
-
|
5327 |
-
|
5328 |
-
|
5329 |
-
|
5330 |
-
|
5331 |
-
|
5332 |
-
|
5333 |
-
|
5334 |
-
|
5335 |
-
|
5336 |
-
|
5337 |
-
|
5338 |
-
|
5339 |
-
|
5340 |
-
msgstr
|
5341 |
-
|
5342 |
-
#: ../inc/pro/class-destination-glacier.php:
|
5343 |
-
|
5344 |
-
|
5345 |
-
|
5346 |
-
|
5347 |
-
|
5348 |
-
|
5349 |
-
|
5350 |
-
|
5351 |
-
|
5352 |
-
|
5353 |
-
|
5354 |
-
|
5355 |
-
|
5356 |
-
|
5357 |
-
|
5358 |
-
|
5359 |
-
"
|
5360 |
-
"
|
5361 |
-
|
5362 |
-
|
5363 |
-
|
5364 |
-
|
5365 |
-
|
5366 |
-
|
5367 |
-
|
5368 |
-
"
|
5369 |
-
"
|
5370 |
-
|
5371 |
-
|
5372 |
-
|
5373 |
-
|
5374 |
-
|
5375 |
-
|
5376 |
-
|
5377 |
-
|
5378 |
-
|
5379 |
-
|
5380 |
-
|
5381 |
-
|
5382 |
-
|
5383 |
-
|
5384 |
-
|
5385 |
-
|
5386 |
-
"
|
5387 |
-
msgstr ""
|
5388 |
-
|
5389 |
-
#: ../inc/pro/class-marketpress-autoupdate.php:
|
5390 |
-
|
5391 |
-
|
5392 |
-
"
|
5393 |
-
"
|
5394 |
-
|
5395 |
-
|
5396 |
-
|
5397 |
-
|
5398 |
-
msgid "
|
5399 |
-
|
5400 |
-
|
5401 |
-
|
5402 |
-
|
5403 |
-
|
5404 |
-
|
5405 |
-
|
5406 |
-
|
5407 |
-
|
5408 |
-
|
5409 |
-
|
5410 |
-
|
5411 |
-
|
5412 |
-
|
5413 |
-
|
5414 |
-
|
5415 |
-
|
5416 |
-
|
5417 |
-
|
5418 |
-
|
5419 |
-
|
5420 |
-
|
5421 |
-
|
5422 |
-
|
5423 |
-
|
5424 |
-
|
5425 |
-
|
5426 |
-
|
5427 |
-
|
5428 |
-
|
5429 |
-
|
5430 |
-
|
5431 |
-
"
|
5432 |
-
msgstr ""
|
5433 |
-
|
5434 |
-
#: ../inc/pro/class-marketpress-autoupdate.php:
|
5435 |
-
#, php-format
|
5436 |
-
msgid ""
|
5437 |
-
"
|
5438 |
-
"%s."
|
5439 |
-
msgstr ""
|
5440 |
-
|
5441 |
-
#: ../inc/pro/class-marketpress-autoupdate.php:
|
5442 |
-
#, php-format
|
5443 |
-
msgid ""
|
5444 |
-
"
|
5445 |
-
"
|
5446 |
-
msgstr ""
|
5447 |
-
|
5448 |
-
#: ../inc/pro/class-
|
5449 |
-
|
5450 |
-
|
5451 |
-
|
5452 |
-
|
5453 |
-
|
5454 |
-
|
5455 |
-
|
5456 |
-
|
5457 |
-
|
5458 |
-
|
5459 |
-
|
5460 |
-
|
5461 |
-
|
5462 |
-
|
5463 |
-
|
5464 |
-
|
5465 |
-
|
5466 |
-
|
5467 |
-
|
5468 |
-
|
5469 |
-
|
5470 |
-
|
5471 |
-
|
5472 |
-
|
5473 |
-
|
5474 |
-
|
5475 |
-
|
5476 |
-
|
5477 |
-
|
5478 |
-
|
5479 |
-
|
5480 |
-
|
5481 |
-
|
5482 |
-
|
5483 |
-
|
5484 |
-
|
5485 |
-
|
5486 |
-
|
5487 |
-
|
5488 |
-
|
5489 |
-
|
5490 |
-
|
5491 |
-
|
5492 |
-
|
5493 |
-
|
5494 |
-
|
5495 |
-
|
5496 |
-
|
5497 |
-
|
5498 |
-
|
5499 |
-
|
5500 |
-
|
5501 |
-
|
5502 |
-
|
5503 |
-
|
5504 |
-
|
5505 |
-
|
5506 |
-
|
5507 |
-
|
5508 |
-
|
5509 |
-
|
5510 |
-
|
5511 |
-
#:
|
5512 |
-
msgid "
|
5513 |
-
|
5514 |
-
|
5515 |
-
|
5516 |
-
|
5517 |
-
|
5518 |
-
|
5519 |
-
|
5520 |
-
|
5521 |
-
|
5522 |
-
|
5523 |
-
|
5524 |
-
|
5525 |
-
|
5526 |
-
|
5527 |
-
|
5528 |
-
|
5529 |
-
|
5530 |
-
|
5531 |
-
|
5532 |
-
|
5533 |
-
|
5534 |
-
|
5535 |
-
|
5536 |
-
|
5537 |
-
|
5538 |
-
|
5539 |
-
|
5540 |
-
|
5541 |
-
|
5542 |
-
|
5543 |
-
|
5544 |
-
|
5545 |
-
|
5546 |
-
|
5547 |
-
|
5548 |
-
|
5549 |
-
|
5550 |
-
|
5551 |
-
|
5552 |
-
|
5553 |
-
|
5554 |
-
|
5555 |
-
|
5556 |
-
|
5557 |
-
|
5558 |
-
|
5559 |
-
|
5560 |
-
|
5561 |
-
|
5562 |
-
|
5563 |
-
|
5564 |
-
|
5565 |
-
|
5566 |
-
|
5567 |
-
|
5568 |
-
|
5569 |
-
|
5570 |
-
|
5571 |
-
|
5572 |
-
|
5573 |
-
|
5574 |
-
|
5575 |
-
|
5576 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Loco Gettext template
|
2 |
+
#, fuzzy
|
3 |
+
msgid ""
|
4 |
+
msgstr ""
|
5 |
+
"Project-Id-Version: BackWPup Pro\n"
|
6 |
+
"Report-Msgid-Bugs-To: \n"
|
7 |
+
"POT-Creation-Date: Tue Aug 25 2015 08:53:55 GMT+0200 (Mitteleuropäische "
|
8 |
+
"Sommerzeit)\n"
|
9 |
+
"POT-Revision-Date: Fri Jan 08 2016 09:59:59 GMT+0100 (Mitteleuropäische "
|
10 |
+
"Zeit)\n"
|
11 |
+
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
12 |
+
"Last-Translator: \n"
|
13 |
+
"Language-Team: \n"
|
14 |
+
"Language: \n"
|
15 |
+
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION\n"
|
16 |
+
"MIME-Version: 1.0\n"
|
17 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
18 |
+
"Content-Transfer-Encoding: 8bit\n"
|
19 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
20 |
+
"X-Poedit-Basepath: .\n"
|
21 |
+
"X-Poedit-SearchPath-0: ..\n"
|
22 |
+
"X-Poedit-KeywordsList: _:1;gettext:1;dgettext:2;ngettext:1,2;dngettext:2,3;"
|
23 |
+
"__:1;_e:1;_c:1;_n:1,2;_n_noop:1,2;_nc:1,2;__ngettext:1,2;__ngettext_noop:1,2;"
|
24 |
+
"_x:1,2c;_ex:1,2c;_nx:1,2,4c;_nx_noop:1,2,3c;_n_js:1,2;_nx_js:1,2,3c;"
|
25 |
+
"esc_attr__:1;esc_html__:1;esc_attr_e:1;esc_html_e:1;esc_attr_x:1,2c;"
|
26 |
+
"esc_html_x:1,2c;comments_number_link:2,3;t:1;st:1;trans:1;transChoice:1,2\n"
|
27 |
+
"X-Generator: Loco - https://localise.biz/"
|
28 |
+
|
29 |
+
#. Name of the plugin
|
30 |
+
msgid "BackWPup Pro"
|
31 |
+
msgstr ""
|
32 |
+
|
33 |
+
#. URI of the plugin
|
34 |
+
msgid "https://marketpress.com/product/backwpup-pro"
|
35 |
+
msgstr ""
|
36 |
+
|
37 |
+
#. Description of the plugin
|
38 |
+
msgid "WordPress Backup Plugin"
|
39 |
+
msgstr ""
|
40 |
+
|
41 |
+
#. Author of the plugin
|
42 |
+
msgid "Inpsyde GmbH"
|
43 |
+
msgstr ""
|
44 |
+
|
45 |
+
#. Author URI of the plugin
|
46 |
+
msgid "http://inpsyde.com"
|
47 |
+
msgstr ""
|
48 |
+
|
49 |
+
#: ../backwpup.php:297 ../inc/class-page-backups.php:269
|
50 |
+
msgid "Folder"
|
51 |
+
msgstr ""
|
52 |
+
|
53 |
+
#: ../backwpup.php:298
|
54 |
+
msgid "Backup to Folder"
|
55 |
+
msgstr ""
|
56 |
+
|
57 |
+
#: ../backwpup.php:313
|
58 |
+
msgid "Email"
|
59 |
+
msgstr ""
|
60 |
+
|
61 |
+
#: ../backwpup.php:314
|
62 |
+
msgid "Backup sent via email"
|
63 |
+
msgstr ""
|
64 |
+
|
65 |
+
#: ../backwpup.php:329
|
66 |
+
msgid "FTP"
|
67 |
+
msgstr ""
|
68 |
+
|
69 |
+
#: ../backwpup.php:330
|
70 |
+
msgid "Backup to FTP"
|
71 |
+
msgstr ""
|
72 |
+
|
73 |
+
#: ../backwpup.php:345 ../inc/class-destination-dropbox.php:278
|
74 |
+
msgid "Dropbox"
|
75 |
+
msgstr ""
|
76 |
+
|
77 |
+
#: ../backwpup.php:346 ../inc/class-page-about.php:577
|
78 |
+
msgid "Backup to Dropbox"
|
79 |
+
msgstr ""
|
80 |
+
|
81 |
+
#: ../backwpup.php:362 ../backwpup.php:381 ../inc/class-destination-s3-v1.php:73 .
|
82 |
+
#: ./inc/class-destination-s3.php:76
|
83 |
+
msgid "S3 Service"
|
84 |
+
msgstr ""
|
85 |
+
|
86 |
+
#: ../backwpup.php:363
|
87 |
+
msgid "Backup to an S3 Service"
|
88 |
+
msgstr ""
|
89 |
+
|
90 |
+
#: ../backwpup.php:382
|
91 |
+
msgid "Backup to an S3 Service v1"
|
92 |
+
msgstr ""
|
93 |
+
|
94 |
+
#: ../backwpup.php:398
|
95 |
+
msgid "MS Azure"
|
96 |
+
msgstr ""
|
97 |
+
|
98 |
+
#: ../backwpup.php:399
|
99 |
+
msgid "Backup to Microsoft Azure (Blob)"
|
100 |
+
msgstr ""
|
101 |
+
|
102 |
+
#: ../backwpup.php:414
|
103 |
+
msgid "RSC"
|
104 |
+
msgstr ""
|
105 |
+
|
106 |
+
#: ../backwpup.php:415 ../inc/class-page-about.php:582
|
107 |
+
msgid "Backup to Rackspace Cloud Files"
|
108 |
+
msgstr ""
|
109 |
+
|
110 |
+
#: ../backwpup.php:431
|
111 |
+
msgid "SugarSync"
|
112 |
+
msgstr ""
|
113 |
+
|
114 |
+
#: ../backwpup.php:432 ../inc/class-page-about.php:597
|
115 |
+
msgid "Backup to SugarSync"
|
116 |
+
msgstr ""
|
117 |
+
|
118 |
+
#: ../backwpup.php:451
|
119 |
+
#, php-format
|
120 |
+
msgid "PHP Version %1$s is to low, you need Version %2$s or above."
|
121 |
+
msgstr ""
|
122 |
+
|
123 |
+
#: ../backwpup.php:458
|
124 |
+
#, php-format
|
125 |
+
msgid "Missing function \"%s\"."
|
126 |
+
msgstr ""
|
127 |
+
|
128 |
+
#: ../backwpup.php:467
|
129 |
+
#, php-format
|
130 |
+
msgid "Missing class \"%s\"."
|
131 |
+
msgstr ""
|
132 |
+
|
133 |
+
#: ../inc/class-page-logs.php:113
|
134 |
+
msgid "No Logs."
|
135 |
+
msgstr ""
|
136 |
+
|
137 |
+
#: ../inc/class-page-logs.php:125 ../inc/class-page-logs.php:204 ../inc/class-
|
138 |
+
#: page-jobs.php:113 ../inc/class-page-jobs.php:177 ../inc/class-page-backups.php:
|
139 |
+
#: 194 ../inc/class-page-backups.php:313
|
140 |
+
msgid "Delete"
|
141 |
+
msgstr ""
|
142 |
+
|
143 |
+
#: ../inc/class-page-logs.php:136 ../inc/class-page-backwpup.php:288 ../inc/class-
|
144 |
+
#: page-backwpup.php:353 ../inc/class-page-backups.php:267
|
145 |
+
msgid "Time"
|
146 |
+
msgstr ""
|
147 |
+
|
148 |
+
#: ../inc/class-page-logs.php:137 ../inc/class-page-backwpup.php:288 ../inc/class-
|
149 |
+
#: page-backwpup.php:354
|
150 |
+
msgid "Job"
|
151 |
+
msgstr ""
|
152 |
+
|
153 |
+
#: ../inc/class-page-logs.php:138
|
154 |
+
msgid "Status"
|
155 |
+
msgstr ""
|
156 |
+
|
157 |
+
#: ../inc/class-page-logs.php:139 ../inc/class-page-jobs.php:126 ../inc/class-
|
158 |
+
#: page-editjob.php:718 ../inc/pro/class-wizard-job.php:302
|
159 |
+
msgid "Type"
|
160 |
+
msgstr ""
|
161 |
+
|
162 |
+
#: ../inc/class-page-logs.php:140 ../inc/class-page-backups.php:270
|
163 |
+
msgid "Size"
|
164 |
+
msgstr ""
|
165 |
+
|
166 |
+
#: ../inc/class-page-logs.php:141
|
167 |
+
msgid "Runtime"
|
168 |
+
msgstr ""
|
169 |
+
|
170 |
+
#: ../inc/class-page-logs.php:164 ../inc/class-page-backwpup.php:317 ../inc/class-
|
171 |
+
#: page-backwpup.php:391 ../inc/class-page-jobs.php:318 ../inc/class-page-backups.
|
172 |
+
#: php:359
|
173 |
+
#, php-format
|
174 |
+
msgid "%1$s at %2$s"
|
175 |
+
msgstr ""
|
176 |
+
|
177 |
+
#: ../inc/class-page-logs.php:200 ../inc/class-page-jobs.php:172
|
178 |
+
#, php-format
|
179 |
+
msgid "Job ID: %d"
|
180 |
+
msgstr ""
|
181 |
+
|
182 |
+
#: ../inc/class-page-logs.php:202
|
183 |
+
msgid "View"
|
184 |
+
msgstr ""
|
185 |
+
|
186 |
+
#: ../inc/class-page-logs.php:206 ../inc/class-page-jobs.php:330 ../inc/class-
|
187 |
+
#: page-backups.php:316
|
188 |
+
msgid "Download"
|
189 |
+
msgstr ""
|
190 |
+
|
191 |
+
#: ../inc/class-page-logs.php:222
|
192 |
+
#, php-format
|
193 |
+
msgid "1 ERROR"
|
194 |
+
msgid_plural "%d ERRORS"
|
195 |
+
msgstr[0] ""
|
196 |
+
msgstr[1] ""
|
197 |
+
|
198 |
+
#: ../inc/class-page-logs.php:224
|
199 |
+
#, php-format
|
200 |
+
msgid "1 WARNING"
|
201 |
+
msgid_plural "%d WARNINGS"
|
202 |
+
msgstr[0] ""
|
203 |
+
msgstr[1] ""
|
204 |
+
|
205 |
+
#: ../inc/class-page-logs.php:226
|
206 |
+
msgid "O.K."
|
207 |
+
msgstr ""
|
208 |
+
|
209 |
+
#: ../inc/class-page-logs.php:243
|
210 |
+
msgid "Log only"
|
211 |
+
msgstr ""
|
212 |
+
|
213 |
+
#: ../inc/class-page-logs.php:254 ../inc/class-destination-ftp.php:86 ..
|
214 |
+
#: /inc/class-page-settings.php:477
|
215 |
+
msgid "seconds"
|
216 |
+
msgstr ""
|
217 |
+
|
218 |
+
#: ../inc/class-page-logs.php:321 ../inc/class-admin.php:194 ../inc/class-admin.
|
219 |
+
#: php:194 ../inc/class-adminbar.php:102 ../inc/class-page-settings.php:120
|
220 |
+
msgid "Logs"
|
221 |
+
msgstr ""
|
222 |
+
|
223 |
+
#: ../inc/class-page-logs.php:384
|
224 |
+
#, php-format
|
225 |
+
msgid "%s Logs"
|
226 |
+
msgstr ""
|
227 |
+
|
228 |
+
#: ../inc/class-page-logs.php:415
|
229 |
+
msgid "Logfile not found!"
|
230 |
+
msgstr ""
|
231 |
+
|
232 |
+
#: ../inc/class-destination-msazure.php:25
|
233 |
+
msgid "MS Azure access keys"
|
234 |
+
msgstr ""
|
235 |
+
|
236 |
+
#: ../inc/class-destination-msazure.php:29
|
237 |
+
msgid "Account name"
|
238 |
+
msgstr ""
|
239 |
+
|
240 |
+
#: ../inc/class-destination-msazure.php:36
|
241 |
+
msgid "Access key"
|
242 |
+
msgstr ""
|
243 |
+
|
244 |
+
#: ../inc/class-destination-msazure.php:44
|
245 |
+
msgid "Blob container"
|
246 |
+
msgstr ""
|
247 |
+
|
248 |
+
#: ../inc/class-destination-msazure.php:48 ../inc/class-destination-rsc.php:77
|
249 |
+
msgid "Container selection"
|
250 |
+
msgstr ""
|
251 |
+
|
252 |
+
#: ../inc/class-destination-msazure.php:59 ../inc/class-destination-rsc.php:89
|
253 |
+
msgid "Create a new container"
|
254 |
+
msgstr ""
|
255 |
+
|
256 |
+
#: ../inc/class-destination-msazure.php:66 ../inc/class-destination-sugarsync.php:
|
257 |
+
#: 86 ../inc/class-destination-folder.php:29 ../inc/class-destination-dropbox.php:
|
258 |
+
#: 91 ../inc/class-destination-ftp.php:52 ../inc/class-destination-rsc.php:96 ..
|
259 |
+
#: /inc/pro/class-destination-gdrive.php:61
|
260 |
+
msgid "Backup settings"
|
261 |
+
msgstr ""
|
262 |
+
|
263 |
+
#: ../inc/class-destination-msazure.php:70
|
264 |
+
msgid "Folder in container"
|
265 |
+
msgstr ""
|
266 |
+
|
267 |
+
#: ../inc/class-destination-msazure.php:76 ../inc/class-destination-s3-v1.php:158
|
268 |
+
#: ../inc/class-destination-s3.php:163 ../inc/class-destination-rsc.php:106 ..
|
269 |
+
#: /inc/pro/class-destination-glacier.php:95
|
270 |
+
msgid "File deletion"
|
271 |
+
msgstr ""
|
272 |
+
|
273 |
+
#: ../inc/class-destination-msazure.php:81 ../inc/class-destination-s3-v1.php:163
|
274 |
+
#: ../inc/class-destination-sugarsync.php:101 ../inc/class-destination-folder.php:
|
275 |
+
#: 44 ../inc/class-destination-ftp.php:67 ../inc/class-destination-s3.php:168 ..
|
276 |
+
#: /inc/class-destination-rsc.php:111 ../inc/pro/class-destination-msazure.php:35
|
277 |
+
#: ../inc/pro/class-destination-s3-v1.php:61 ../inc/pro/class-destination-folder.
|
278 |
+
#: php:24 ../inc/pro/class-destination-dropbox.php:42 ../inc/pro/class-
|
279 |
+
#: destination-s3.php:63 ../inc/pro/class-destination-rsc.php:55 ../inc/pro/class-
|
280 |
+
#: destination-gdrive.php:76 ../inc/pro/class-destination-gdrive.php:285 ..
|
281 |
+
#: /inc/pro/class-destination-glacier.php:97 ../inc/pro/class-destination-glacier.
|
282 |
+
#: php:183
|
283 |
+
msgid "Oldest files will be deleted first. 0 = no deletion"
|
284 |
+
msgstr ""
|
285 |
+
|
286 |
+
#: ../inc/class-destination-msazure.php:82 ../inc/class-destination-s3-v1.php:164
|
287 |
+
#: ../inc/class-destination-sugarsync.php:102 ../inc/class-destination-folder.php:
|
288 |
+
#: 45 ../inc/class-destination-dropbox.php:108 ../inc/class-destination-s3.php:
|
289 |
+
#: 169 ../inc/class-destination-rsc.php:112 ../inc/pro/class-destination-msazure.
|
290 |
+
#: php:36 ../inc/pro/class-destination-s3-v1.php:62 ../inc/pro/class-destination-
|
291 |
+
#: folder.php:25 ../inc/pro/class-destination-dropbox.php:43 ../inc/pro/class-
|
292 |
+
#: destination-s3.php:64 ../inc/pro/class-destination-rsc.php:56 ../inc/pro/class-
|
293 |
+
#: destination-gdrive.php:77 ../inc/pro/class-destination-gdrive.php:286
|
294 |
+
msgid "Number of files to keep in folder."
|
295 |
+
msgstr ""
|
296 |
+
|
297 |
+
#: ../inc/class-destination-msazure.php:86 ../inc/class-destination-s3-v1.php:168
|
298 |
+
#: ../inc/class-destination-sugarsync.php:106 ../inc/class-destination-folder.php:
|
299 |
+
#: 49 ../inc/class-destination-dropbox.php:112 ../inc/class-destination-ftp.php:
|
300 |
+
#: 72 ../inc/class-destination-s3.php:173 ../inc/class-destination-rsc.php:116 ..
|
301 |
+
#: /inc/pro/class-destination-msazure.php:41 ../inc/pro/class-destination-s3-v1.
|
302 |
+
#: php:67 ../inc/pro/class-destination-sugarsync.php:68 ../inc/pro/class-
|
303 |
+
#: destination-folder.php:30 ../inc/pro/class-destination-dropbox.php:45 ..
|
304 |
+
#: /inc/pro/class-destination-ftp.php:46 ../inc/pro/class-destination-s3.php:69 ..
|
305 |
+
#: /inc/pro/class-destination-rsc.php:61 ../inc/pro/class-destination-gdrive.php:
|
306 |
+
#: 81 ../inc/pro/class-destination-gdrive.php:288
|
307 |
+
msgid "Do not delete files while syncing to destination!"
|
308 |
+
msgstr ""
|
309 |
+
|
310 |
+
#: ../inc/class-destination-msazure.php:124 ../inc/pro/class-destination-msazure.
|
311 |
+
#: php:81
|
312 |
+
#, php-format
|
313 |
+
msgid "MS Azure container \"%s\" created."
|
314 |
+
msgstr ""
|
315 |
+
|
316 |
+
#: ../inc/class-destination-msazure.php:127 ../inc/pro/class-destination-msazure.
|
317 |
+
#: php:84
|
318 |
+
#, php-format
|
319 |
+
msgid "MS Azure container create: %s"
|
320 |
+
msgstr ""
|
321 |
+
|
322 |
+
#: ../inc/class-destination-msazure.php:203
|
323 |
+
#, php-format
|
324 |
+
msgid "%d. Try sending backup to a Microsoft Azure (Blob) …"
|
325 |
+
msgstr ""
|
326 |
+
|
327 |
+
#: ../inc/class-destination-msazure.php:225 ../inc/pro/class-destination-msazure.
|
328 |
+
#: php:126
|
329 |
+
#, php-format
|
330 |
+
msgid "MS Azure container \"%s\" does not exist!"
|
331 |
+
msgstr ""
|
332 |
+
|
333 |
+
#: ../inc/class-destination-msazure.php:229 ../inc/pro/class-destination-msazure.
|
334 |
+
#: php:130
|
335 |
+
#, php-format
|
336 |
+
msgid "Connected to MS Azure container \"%s\"."
|
337 |
+
msgstr ""
|
338 |
+
|
339 |
+
#: ../inc/class-destination-msazure.php:232
|
340 |
+
msgid "Starting upload to MS Azure …"
|
341 |
+
msgstr ""
|
342 |
+
|
343 |
+
#: ../inc/class-destination-msazure.php:259 ../inc/class-destination-ftp.php:344 .
|
344 |
+
#: ./inc/class-destination-s3.php:416 ../inc/class-destination-s3.php:508 ..
|
345 |
+
#: /inc/class-destination-rsc.php:282 ../inc/pro/class-destination-rsc.php:215 ..
|
346 |
+
#: /inc/pro/class-destination-rsc.php:248 ../inc/pro/class-destination-gdrive.php:
|
347 |
+
#: 602 ../inc/pro/class-destination-glacier.php:390
|
348 |
+
msgid "Can not open source file for transfer."
|
349 |
+
msgstr ""
|
350 |
+
|
351 |
+
#: ../inc/class-destination-msazure.php:272 ../inc/class-destination-sugarsync.
|
352 |
+
#: php:257 ../inc/class-destination-dropbox.php:269 ../inc/pro/class-destination-
|
353 |
+
#: gdrive.php:611
|
354 |
+
#, php-format
|
355 |
+
msgid "Backup transferred to %s"
|
356 |
+
msgstr ""
|
357 |
+
|
358 |
+
#: ../inc/class-destination-msazure.php:277 ../inc/class-destination-msazure.php:
|
359 |
+
#: 333 ../inc/pro/class-destination-msazure.php:215
|
360 |
+
#, php-format
|
361 |
+
msgid "Microsoft Azure API: %s"
|
362 |
+
msgstr ""
|
363 |
+
|
364 |
+
#: ../inc/class-destination-msazure.php:326
|
365 |
+
#, php-format
|
366 |
+
msgid "One file deleted on Microsoft Azure container."
|
367 |
+
msgid_plural "%d files deleted on Microsoft Azure container."
|
368 |
+
msgstr[0] ""
|
369 |
+
msgstr[1] ""
|
370 |
+
|
371 |
+
#: ../inc/class-destination-msazure.php:419
|
372 |
+
msgid "Missing account name!"
|
373 |
+
msgstr ""
|
374 |
+
|
375 |
+
#: ../inc/class-destination-msazure.php:421 ../inc/class-destination-s3-v1.php:
|
376 |
+
#: 579 ../inc/class-destination-s3.php:685 ../inc/pro/class-destination-glacier.
|
377 |
+
#: php:539
|
378 |
+
msgid "Missing access key!"
|
379 |
+
msgstr ""
|
380 |
+
|
381 |
+
#: ../inc/class-destination-msazure.php:425
|
382 |
+
msgid "No container found!"
|
383 |
+
msgstr ""
|
384 |
+
|
385 |
+
#: ../inc/class-jobtype-dbdump.php:13
|
386 |
+
msgid "DB Backup"
|
387 |
+
msgstr ""
|
388 |
+
|
389 |
+
#: ../inc/class-jobtype-dbdump.php:14
|
390 |
+
msgid "Database backup"
|
391 |
+
msgstr ""
|
392 |
+
|
393 |
+
#: ../inc/class-jobtype-dbdump.php:15
|
394 |
+
msgid "Creates an .sql database backup file"
|
395 |
+
msgstr ""
|
396 |
+
|
397 |
+
#: ../inc/class-jobtype-dbdump.php:61 ../inc/pro/class-jobtype-dbdump.php:84 ..
|
398 |
+
#: /inc/pro/class-jobtype-dbdump.php:105
|
399 |
+
msgid "Settings for database backup"
|
400 |
+
msgstr ""
|
401 |
+
|
402 |
+
#: ../inc/class-jobtype-dbdump.php:65 ../inc/pro/class-jobtype-dbdump.php:151
|
403 |
+
msgid "Tables to backup"
|
404 |
+
msgstr ""
|
405 |
+
|
406 |
+
#: ../inc/class-jobtype-dbdump.php:67 ../inc/pro/class-jobtype-dbdump.php:153
|
407 |
+
msgid "all"
|
408 |
+
msgstr ""
|
409 |
+
|
410 |
+
#: ../inc/class-jobtype-dbdump.php:68 ../inc/class-jobtype-dbdump.php:103 ..
|
411 |
+
#: /inc/class-page-backwpup.php:334 ../inc/class-page-backwpup.php:399 ..
|
412 |
+
#: /inc/class-destination-email.php:114 ../inc/class-page-settings.php:345 ..
|
413 |
+
#: /inc/class-jobtype-wpexp.php:73 ../inc/class-jobtype-wpplugin.php:57 ..
|
414 |
+
#: /inc/pro/class-jobtype-dbdump.php:154 ../inc/pro/class-jobtype-dbdump.php:198
|
415 |
+
msgid "none"
|
416 |
+
msgstr ""
|
417 |
+
|
418 |
+
#: ../inc/class-jobtype-dbdump.php:91 ../inc/pro/class-jobtype-dbdump.php:186
|
419 |
+
msgid "Backup file name"
|
420 |
+
msgstr ""
|
421 |
+
|
422 |
+
#: ../inc/class-jobtype-dbdump.php:99 ../inc/pro/class-jobtype-dbdump.php:194
|
423 |
+
msgid "Backup file compression"
|
424 |
+
msgstr ""
|
425 |
+
|
426 |
+
#: ../inc/class-jobtype-dbdump.php:105 ../inc/class-jobtype-dbdump.php:107 ..
|
427 |
+
#: /inc/class-jobtype-wpexp.php:75 ../inc/class-jobtype-wpexp.php:77 ../inc/class-
|
428 |
+
#: jobtype-wpplugin.php:59 ../inc/class-jobtype-wpplugin.php:61 ../inc/pro/class-
|
429 |
+
#: jobtype-dbdump.php:200 ../inc/pro/class-jobtype-dbdump.php:202
|
430 |
+
msgid "GZip"
|
431 |
+
msgstr ""
|
432 |
+
|
433 |
+
#: ../inc/class-jobtype-dbdump.php:155 ../inc/pro/class-jobtype-dbdump.php:456
|
434 |
+
#, php-format
|
435 |
+
msgid "%d. Try to backup database …"
|
436 |
+
msgstr ""
|
437 |
+
|
438 |
+
#: ../inc/class-jobtype-dbdump.php:169 ../inc/pro/class-jobtype-dbdump.php:476
|
439 |
+
#, php-format
|
440 |
+
msgid "Connected to database %1$s on %2$s"
|
441 |
+
msgstr ""
|
442 |
+
|
443 |
+
#: ../inc/class-jobtype-dbdump.php:183 ../inc/pro/class-jobtype-dbdump.php:490
|
444 |
+
msgid "No tables to backup."
|
445 |
+
msgstr ""
|
446 |
+
|
447 |
+
#: ../inc/class-jobtype-dbdump.php:206 ../inc/pro/class-jobtype-dbdump.php:516
|
448 |
+
#, php-format
|
449 |
+
msgid "Backup database table \"%s\" with \"%s\" records"
|
450 |
+
msgstr ""
|
451 |
+
|
452 |
+
#: ../inc/class-jobtype-dbdump.php:246 ../inc/pro/class-jobtype-dbdump.php:556
|
453 |
+
msgid "MySQL backup file not created"
|
454 |
+
msgstr ""
|
455 |
+
|
456 |
+
#: ../inc/class-jobtype-dbdump.php:250 ../inc/pro/class-jobtype-dbdump.php:740
|
457 |
+
#, php-format
|
458 |
+
msgid "Added database dump \"%1$s\" with %2$s to backup file list"
|
459 |
+
msgstr ""
|
460 |
+
|
461 |
+
#: ../inc/class-jobtype-dbdump.php:256 ../inc/pro/class-jobtype-dbdump.php:566 ..
|
462 |
+
#: /inc/pro/class-jobtype-dbdump.php:743
|
463 |
+
msgid "Database backup done!"
|
464 |
+
msgstr ""
|
465 |
+
|
466 |
+
#: ../inc/class-page-about.php:394
|
467 |
+
#, php-format
|
468 |
+
msgid "%s Welcome"
|
469 |
+
msgstr ""
|
470 |
+
|
471 |
+
#: ../inc/class-page-about.php:401
|
472 |
+
msgid "Heads up! You have updated from version 2.x"
|
473 |
+
msgstr ""
|
474 |
+
|
475 |
+
#: ../inc/class-page-about.php:402
|
476 |
+
#, php-format
|
477 |
+
msgid "Please <a href=\"%s\">check your settings</a> after updating from version 2.x:"
|
478 |
+
msgstr ""
|
479 |
+
|
480 |
+
#: ../inc/class-page-about.php:403
|
481 |
+
msgid "Dropbox authentication must be re-entered"
|
482 |
+
msgstr ""
|
483 |
+
|
484 |
+
#: ../inc/class-page-about.php:404
|
485 |
+
msgid "SugarSync authentication must be re-entered"
|
486 |
+
msgstr ""
|
487 |
+
|
488 |
+
#: ../inc/class-page-about.php:405
|
489 |
+
msgid "S3 Settings"
|
490 |
+
msgstr ""
|
491 |
+
|
492 |
+
#: ../inc/class-page-about.php:406
|
493 |
+
msgid "Google Storage is now a part of S3 service settings"
|
494 |
+
msgstr ""
|
495 |
+
|
496 |
+
#: ../inc/class-page-about.php:407
|
497 |
+
msgid "All your passwords"
|
498 |
+
msgstr ""
|
499 |
+
|
500 |
+
#: ../inc/class-page-about.php:416
|
501 |
+
msgid "Welcome to BackWPup Pro"
|
502 |
+
msgstr ""
|
503 |
+
|
504 |
+
#: ../inc/class-page-about.php:417 ../inc/class-page-backwpup.php:75
|
505 |
+
msgid ""
|
506 |
+
"BackWPup’s job wizards make planning and scheduling your backup jobs a "
|
507 |
+
"breeze."
|
508 |
+
msgstr ""
|
509 |
+
|
510 |
+
#: ../inc/class-page-about.php:418 ../inc/class-page-about.php:428
|
511 |
+
msgid ""
|
512 |
+
"Use your backup archives to save your entire WordPress installation "
|
513 |
+
"including <code>/wp-content/</code>. Push them to an external storage "
|
514 |
+
"service if you don’t want to save the backups on the same server. With a "
|
515 |
+
"single backup archive you are able to restore an installation. Use a tool "
|
516 |
+
"like phpMyAdmin or a plugin like <a href=\"http://wordpress."
|
517 |
+
"org/plugins/adminer/\" target=\"_blank\">Adminer</a> to restore your database "
|
518 |
+
"backup files."
|
519 |
+
msgstr ""
|
520 |
+
|
521 |
+
#: ../inc/class-page-about.php:419
|
522 |
+
#, php-format
|
523 |
+
msgid ""
|
524 |
+
"Ready to <a href=\"%1$s\">set up a backup job</a>? You can <a href=\"%2$s\">use "
|
525 |
+
"the wizards</a> or plan your backup in expert mode."
|
526 |
+
msgstr ""
|
527 |
+
|
528 |
+
#: ../inc/class-page-about.php:426
|
529 |
+
msgid "Welcome to BackWPup"
|
530 |
+
msgstr ""
|
531 |
+
|
532 |
+
#: ../inc/class-page-about.php:429
|
533 |
+
msgid ""
|
534 |
+
"Ready to set up a backup job? Use one of the wizards to plan what you want "
|
535 |
+
"to save."
|
536 |
+
msgstr ""
|
537 |
+
|
538 |
+
#: ../inc/class-page-about.php:446
|
539 |
+
msgid "Please activate your license"
|
540 |
+
msgstr ""
|
541 |
+
|
542 |
+
#: ../inc/class-page-about.php:447
|
543 |
+
msgid ""
|
544 |
+
"Please go to your plugin page and active the license to have the autoupdates "
|
545 |
+
"enabled."
|
546 |
+
msgstr ""
|
547 |
+
|
548 |
+
#: ../inc/class-page-about.php:456
|
549 |
+
msgid "Save your database"
|
550 |
+
msgstr ""
|
551 |
+
|
552 |
+
#: ../inc/class-page-about.php:459
|
553 |
+
msgid "Save your database regularly"
|
554 |
+
msgstr ""
|
555 |
+
|
556 |
+
#: ../inc/class-page-about.php:460
|
557 |
+
#, php-format
|
558 |
+
msgid ""
|
559 |
+
"With BackWPup you can schedule the database backup to run automatically. "
|
560 |
+
"With a single backup file you can restore your database. You should <a "
|
561 |
+
"href=\"%s\">set up a backup job</a>, so you will never forget it. There is "
|
562 |
+
"also an option to repair and optimize the database after each backup."
|
563 |
+
msgstr ""
|
564 |
+
|
565 |
+
#: ../inc/class-page-about.php:465 ../inc/class-page-about.php:469
|
566 |
+
msgid "WordPress XML Export"
|
567 |
+
msgstr ""
|
568 |
+
|
569 |
+
#: ../inc/class-page-about.php:466
|
570 |
+
msgid ""
|
571 |
+
"You can choose the built-in WordPress export format in addition or exclusive "
|
572 |
+
"to save your data. This works in automated backups too of course. The "
|
573 |
+
"advantage is: you can import these files into a blog with the regular "
|
574 |
+
"WordPress importer."
|
575 |
+
msgstr ""
|
576 |
+
|
577 |
+
#: ../inc/class-page-about.php:474
|
578 |
+
msgid "Save all data from the webserver"
|
579 |
+
msgstr ""
|
580 |
+
|
581 |
+
#: ../inc/class-page-about.php:477
|
582 |
+
msgid "Save all files"
|
583 |
+
msgstr ""
|
584 |
+
|
585 |
+
#: ../inc/class-page-about.php:478
|
586 |
+
#, php-format
|
587 |
+
msgid ""
|
588 |
+
"You can backup all your attachments, also all system files, plugins and "
|
589 |
+
"themes in a single file. You can <a href=\"%s\">create a job</a> to update a "
|
590 |
+
"backup copy of your file system only when files are changed."
|
591 |
+
msgstr ""
|
592 |
+
|
593 |
+
#: ../inc/class-page-about.php:483 ../inc/class-page-about.php:487
|
594 |
+
msgid "Security!"
|
595 |
+
msgstr ""
|
596 |
+
|
597 |
+
#: ../inc/class-page-about.php:484
|
598 |
+
msgid ""
|
599 |
+
"By default everything is encrypted: connections to external services, local "
|
600 |
+
"files and access to directories."
|
601 |
+
msgstr ""
|
602 |
+
|
603 |
+
#: ../inc/class-page-about.php:492 ../inc/class-page-about.php:495
|
604 |
+
msgid "Cloud Support"
|
605 |
+
msgstr ""
|
606 |
+
|
607 |
+
#: ../inc/class-page-about.php:496
|
608 |
+
msgid ""
|
609 |
+
"BackWPup supports multiple cloud services in parallel. This ensures backups "
|
610 |
+
"are redundant."
|
611 |
+
msgstr ""
|
612 |
+
|
613 |
+
#: ../inc/class-page-about.php:504
|
614 |
+
msgid "Features / differences between Free and Pro"
|
615 |
+
msgstr ""
|
616 |
+
|
617 |
+
#: ../inc/class-page-about.php:507
|
618 |
+
msgid "Features"
|
619 |
+
msgstr ""
|
620 |
+
|
621 |
+
#: ../inc/class-page-about.php:508
|
622 |
+
msgid "FREE"
|
623 |
+
msgstr ""
|
624 |
+
|
625 |
+
#: ../inc/class-page-about.php:509
|
626 |
+
msgid "PRO"
|
627 |
+
msgstr ""
|
628 |
+
|
629 |
+
#: ../inc/class-page-about.php:512
|
630 |
+
msgid "Complete database backup"
|
631 |
+
msgstr ""
|
632 |
+
|
633 |
+
#: ../inc/class-page-about.php:517
|
634 |
+
msgid "Complete file backup"
|
635 |
+
msgstr ""
|
636 |
+
|
637 |
+
#: ../inc/class-page-about.php:522
|
638 |
+
msgid "Database check"
|
639 |
+
msgstr ""
|
640 |
+
|
641 |
+
#: ../inc/class-page-about.php:527
|
642 |
+
msgid "Data compression"
|
643 |
+
msgstr ""
|
644 |
+
|
645 |
+
#: ../inc/class-page-about.php:532 ../inc/class-jobtype-wpexp.php:14
|
646 |
+
msgid "WordPress XML export"
|
647 |
+
msgstr ""
|
648 |
+
|
649 |
+
#: ../inc/class-page-about.php:537
|
650 |
+
msgid "List of installed plugins"
|
651 |
+
msgstr ""
|
652 |
+
|
653 |
+
#: ../inc/class-page-about.php:542
|
654 |
+
msgid "Backup archives management"
|
655 |
+
msgstr ""
|
656 |
+
|
657 |
+
#: ../inc/class-page-about.php:547
|
658 |
+
msgid "Log file management"
|
659 |
+
msgstr ""
|
660 |
+
|
661 |
+
#: ../inc/class-page-about.php:552
|
662 |
+
msgid "Start jobs per WP-Cron, URL, system, backend or WP-CLI"
|
663 |
+
msgstr ""
|
664 |
+
|
665 |
+
#: ../inc/class-page-about.php:557
|
666 |
+
msgid "Log report via email"
|
667 |
+
msgstr ""
|
668 |
+
|
669 |
+
#: ../inc/class-page-about.php:562
|
670 |
+
msgid "Backup to Microsoft Azure"
|
671 |
+
msgstr ""
|
672 |
+
|
673 |
+
#: ../inc/class-page-about.php:567
|
674 |
+
msgid "Backup as email"
|
675 |
+
msgstr ""
|
676 |
+
|
677 |
+
#: ../inc/class-page-about.php:572
|
678 |
+
msgid ""
|
679 |
+
"Backup to S3 services <small>(Amazon, Google Storage, Hosteurope and "
|
680 |
+
"more)</small>"
|
681 |
+
msgstr ""
|
682 |
+
|
683 |
+
#: ../inc/class-page-about.php:587
|
684 |
+
msgid "Backup to FTP server"
|
685 |
+
msgstr ""
|
686 |
+
|
687 |
+
#: ../inc/class-page-about.php:592
|
688 |
+
msgid "Backup to your web space"
|
689 |
+
msgstr ""
|
690 |
+
|
691 |
+
#: ../inc/class-page-about.php:602 ../inc/pro/class-pro.php:131
|
692 |
+
msgid "Backup to Google Drive"
|
693 |
+
msgstr ""
|
694 |
+
|
695 |
+
#: ../inc/class-page-about.php:607 ../inc/pro/class-pro.php:112
|
696 |
+
msgid "Backup to Amazon Glacier"
|
697 |
+
msgstr ""
|
698 |
+
|
699 |
+
#: ../inc/class-page-about.php:612
|
700 |
+
msgid "Custom API keys for DropBox and SugarSync"
|
701 |
+
msgstr ""
|
702 |
+
|
703 |
+
#: ../inc/class-page-about.php:617
|
704 |
+
msgid "XML database backup as PHPMyAdmin schema"
|
705 |
+
msgstr ""
|
706 |
+
|
707 |
+
#: ../inc/class-page-about.php:622
|
708 |
+
msgid "Database backup as mysqldump per command line"
|
709 |
+
msgstr ""
|
710 |
+
|
711 |
+
#: ../inc/class-page-about.php:627
|
712 |
+
msgid "Database backup for additional MySQL databases"
|
713 |
+
msgstr ""
|
714 |
+
|
715 |
+
#: ../inc/class-page-about.php:632
|
716 |
+
msgid "Import and export job settings as XML"
|
717 |
+
msgstr ""
|
718 |
+
|
719 |
+
#: ../inc/class-page-about.php:637
|
720 |
+
msgid "Wizard for system tests"
|
721 |
+
msgstr ""
|
722 |
+
|
723 |
+
#: ../inc/class-page-about.php:642
|
724 |
+
msgid "Wizard for scheduled backup jobs"
|
725 |
+
msgstr ""
|
726 |
+
|
727 |
+
#: ../inc/class-page-about.php:647
|
728 |
+
msgid "Wizard to import settings and backup jobs"
|
729 |
+
msgstr ""
|
730 |
+
|
731 |
+
#: ../inc/class-page-about.php:652
|
732 |
+
msgid "Differential backup of changed directories to Dropbox"
|
733 |
+
msgstr ""
|
734 |
+
|
735 |
+
#: ../inc/class-page-about.php:657
|
736 |
+
msgid "Differential backup of changed directories to Rackspace Cloud Files"
|
737 |
+
msgstr ""
|
738 |
+
|
739 |
+
#: ../inc/class-page-about.php:662
|
740 |
+
msgid "Differential backup of changed directories to S3"
|
741 |
+
msgstr ""
|
742 |
+
|
743 |
+
#: ../inc/class-page-about.php:667
|
744 |
+
msgid "Differential backup of changed directories to MS Azure"
|
745 |
+
msgstr ""
|
746 |
+
|
747 |
+
#: ../inc/class-page-about.php:672
|
748 |
+
msgid "<strong>Premium support</strong>"
|
749 |
+
msgstr ""
|
750 |
+
|
751 |
+
#: ../inc/class-page-about.php:677
|
752 |
+
msgid "<strong>Dynamically loaded documentation</strong>"
|
753 |
+
msgstr ""
|
754 |
+
|
755 |
+
#: ../inc/class-page-about.php:682
|
756 |
+
msgid "<strong>Automatic update from MarketPress</strong>"
|
757 |
+
msgstr ""
|
758 |
+
|
759 |
+
#: ../inc/class-page-about.php:689 ../inc/class-admin.php:397
|
760 |
+
msgid "http://marketpress.com/product/backwpup-pro/"
|
761 |
+
msgstr ""
|
762 |
+
|
763 |
+
#: ../inc/class-page-about.php:689
|
764 |
+
msgid "GET PRO"
|
765 |
+
msgstr ""
|
766 |
+
|
767 |
+
#: ../inc/class-cron.php:64
|
768 |
+
msgid "Aborted, because no progress for one hour!"
|
769 |
+
msgstr ""
|
770 |
+
|
771 |
+
#: ../inc/class-page-backwpup.php:67
|
772 |
+
#, php-format
|
773 |
+
msgid "%s Dashboard"
|
774 |
+
msgstr ""
|
775 |
+
|
776 |
+
#: ../inc/class-page-backwpup.php:74 ../inc/class-page-backwpup.php:83
|
777 |
+
msgctxt "Dashboard heading"
|
778 |
+
msgid "Planning backups"
|
779 |
+
msgstr ""
|
780 |
+
|
781 |
+
#: ../inc/class-page-backwpup.php:75 ../inc/class-page-backwpup.php:84
|
782 |
+
msgid ""
|
783 |
+
"Use your backup archives to save your entire WordPress installation "
|
784 |
+
"including <code>/wp-content/</code>. Push them to an external storage "
|
785 |
+
"service if you don’t want to save the backups on the same server."
|
786 |
+
msgstr ""
|
787 |
+
|
788 |
+
#: ../inc/class-page-backwpup.php:76 ../inc/class-page-backwpup.php:85
|
789 |
+
msgctxt "Dashboard heading"
|
790 |
+
msgid "Restoring backups"
|
791 |
+
msgstr ""
|
792 |
+
|
793 |
+
#: ../inc/class-page-backwpup.php:77 ../inc/class-page-backwpup.php:86
|
794 |
+
msgid ""
|
795 |
+
"With a single backup archive you are able to restore an installation. Use a "
|
796 |
+
"tool like phpMyAdmin or a plugin like <a href=\"http://wordpress."
|
797 |
+
"org/plugins/adminer/\" target=\"_blank\">Adminer</a> to restore your database "
|
798 |
+
"backup files."
|
799 |
+
msgstr ""
|
800 |
+
|
801 |
+
#: ../inc/class-page-backwpup.php:78 ../inc/class-page-backwpup.php:87
|
802 |
+
msgctxt "Dashboard heading"
|
803 |
+
msgid "Ready to set up a backup job?"
|
804 |
+
msgstr ""
|
805 |
+
|
806 |
+
#: ../inc/class-page-backwpup.php:79
|
807 |
+
#, php-format
|
808 |
+
msgid ""
|
809 |
+
"Use one of the wizards to plan a backup, or use <a href=\"%s\">expert mode</a> "
|
810 |
+
"for full control over all options."
|
811 |
+
msgstr ""
|
812 |
+
|
813 |
+
#: ../inc/class-page-backwpup.php:79 ../inc/class-page-backwpup.php:89
|
814 |
+
msgid ""
|
815 |
+
"<strong>Please note: You are solely responsible for the security of your "
|
816 |
+
"data; the authors of this plugin are not.</strong>"
|
817 |
+
msgstr ""
|
818 |
+
|
819 |
+
#: ../inc/class-page-backwpup.php:84
|
820 |
+
msgid ""
|
821 |
+
"Use the short links in the <strong>First steps</strong> box to plan and "
|
822 |
+
"schedule backup jobs."
|
823 |
+
msgstr ""
|
824 |
+
|
825 |
+
#: ../inc/class-page-backwpup.php:88
|
826 |
+
#, php-format
|
827 |
+
msgid "<a href=\"%s\">Add a new backup job</a> and plan what you want to save."
|
828 |
+
msgstr ""
|
829 |
+
|
830 |
+
#: ../inc/class-page-backwpup.php:96
|
831 |
+
msgid "First Steps"
|
832 |
+
msgstr ""
|
833 |
+
|
834 |
+
#: ../inc/class-page-backwpup.php:100
|
835 |
+
msgid "Test the installation"
|
836 |
+
msgstr ""
|
837 |
+
|
838 |
+
#: ../inc/class-page-backwpup.php:101 ../inc/class-page-backwpup.php:104
|
839 |
+
msgid "Create a Job"
|
840 |
+
msgstr ""
|
841 |
+
|
842 |
+
#: ../inc/class-page-backwpup.php:103
|
843 |
+
msgid "Check the installation"
|
844 |
+
msgstr ""
|
845 |
+
|
846 |
+
#: ../inc/class-page-backwpup.php:106
|
847 |
+
msgid "Run the created job"
|
848 |
+
msgstr ""
|
849 |
+
|
850 |
+
#: ../inc/class-page-backwpup.php:107
|
851 |
+
msgid "Check the job log"
|
852 |
+
msgstr ""
|
853 |
+
|
854 |
+
#: ../inc/class-page-backwpup.php:115
|
855 |
+
msgid "One click backup"
|
856 |
+
msgstr ""
|
857 |
+
|
858 |
+
#: ../inc/class-page-backwpup.php:117
|
859 |
+
msgid "Generate a database backup of WordPress tables and download it right away!"
|
860 |
+
msgstr ""
|
861 |
+
|
862 |
+
#: ../inc/class-page-backwpup.php:117
|
863 |
+
msgid "Download database backup"
|
864 |
+
msgstr ""
|
865 |
+
|
866 |
+
#: ../inc/class-page-backwpup.php:123
|
867 |
+
msgid "BackWPup News"
|
868 |
+
msgstr ""
|
869 |
+
|
870 |
+
#: ../inc/class-page-backwpup.php:128
|
871 |
+
msgctxt "BackWPup News RSS Feed URL"
|
872 |
+
msgid "https://marketpress.com/tag/backwpup/feed/"
|
873 |
+
msgstr ""
|
874 |
+
|
875 |
+
#: ../inc/class-page-backwpup.php:133
|
876 |
+
#, php-format
|
877 |
+
msgid "<strong>RSS Error</strong>: %s"
|
878 |
+
msgstr ""
|
879 |
+
|
880 |
+
#: ../inc/class-page-backwpup.php:137
|
881 |
+
msgid ""
|
882 |
+
"An error has occurred, which probably means the feed is down. Try again "
|
883 |
+
"later."
|
884 |
+
msgstr ""
|
885 |
+
|
886 |
+
#: ../inc/class-page-backwpup.php:152
|
887 |
+
msgid "Untitled"
|
888 |
+
msgstr ""
|
889 |
+
|
890 |
+
#: ../inc/class-page-backwpup.php:216 ../inc/pro/class-page-wizard.php:358
|
891 |
+
msgid "Start wizard"
|
892 |
+
msgstr ""
|
893 |
+
|
894 |
+
#: ../inc/class-page-backwpup.php:223
|
895 |
+
msgid "Video: Introduction"
|
896 |
+
msgstr ""
|
897 |
+
|
898 |
+
#: ../inc/class-page-backwpup.php:228
|
899 |
+
msgid "Video: Settings"
|
900 |
+
msgstr ""
|
901 |
+
|
902 |
+
#: ../inc/class-page-backwpup.php:233
|
903 |
+
msgid "Video: Daily Backups"
|
904 |
+
msgstr ""
|
905 |
+
|
906 |
+
#: ../inc/class-page-backwpup.php:238
|
907 |
+
msgid "Video: Creating Full Backups"
|
908 |
+
msgstr ""
|
909 |
+
|
910 |
+
#: ../inc/class-page-backwpup.php:243
|
911 |
+
msgid "Video: Restoring Backups"
|
912 |
+
msgstr ""
|
913 |
+
|
914 |
+
#: ../inc/class-page-backwpup.php:258
|
915 |
+
msgctxt "Pro teaser box"
|
916 |
+
msgid "Thank you for using BackWPup!"
|
917 |
+
msgstr ""
|
918 |
+
|
919 |
+
#: ../inc/class-page-backwpup.php:261
|
920 |
+
msgctxt "Pro teaser box"
|
921 |
+
msgid "Get access to:"
|
922 |
+
msgstr ""
|
923 |
+
|
924 |
+
#: ../inc/class-page-backwpup.php:263
|
925 |
+
msgctxt "Pro teaser box"
|
926 |
+
msgid "First-class <strong>dedicated support</strong> at MarketPress Helpdesk."
|
927 |
+
msgstr ""
|
928 |
+
|
929 |
+
#: ../inc/class-page-backwpup.php:264
|
930 |
+
msgctxt "Pro teaser box"
|
931 |
+
msgid "Differential backups to Google Drive and other cloud storage service."
|
932 |
+
msgstr ""
|
933 |
+
|
934 |
+
#: ../inc/class-page-backwpup.php:265
|
935 |
+
msgctxt "Pro teaser box"
|
936 |
+
msgid "Easy-peasy wizards to create and schedule backup jobs."
|
937 |
+
msgstr ""
|
938 |
+
|
939 |
+
#: ../inc/class-page-backwpup.php:266
|
940 |
+
msgctxt "Pro teaser box, link text"
|
941 |
+
msgid "And more…"
|
942 |
+
msgstr ""
|
943 |
+
|
944 |
+
#: ../inc/class-page-backwpup.php:268
|
945 |
+
msgctxt "Pro teaser box, link title"
|
946 |
+
msgid "Get BackWPup Pro now"
|
947 |
+
msgstr ""
|
948 |
+
|
949 |
+
#: ../inc/class-page-backwpup.php:268
|
950 |
+
msgctxt "Pro teaser box, link text"
|
951 |
+
msgid "Get BackWPup Pro now"
|
952 |
+
msgstr ""
|
953 |
+
|
954 |
+
#: ../inc/class-page-backwpup.php:286
|
955 |
+
msgid "Last logs"
|
956 |
+
msgstr ""
|
957 |
+
|
958 |
+
#: ../inc/class-page-backwpup.php:288
|
959 |
+
msgid "Result"
|
960 |
+
msgstr ""
|
961 |
+
|
962 |
+
#: ../inc/class-page-backwpup.php:322
|
963 |
+
#, php-format
|
964 |
+
msgid "%d ERROR"
|
965 |
+
msgstr ""
|
966 |
+
|
967 |
+
#: ../inc/class-page-backwpup.php:324
|
968 |
+
#, php-format
|
969 |
+
msgid "%d WARNING"
|
970 |
+
msgstr ""
|
971 |
+
|
972 |
+
#: ../inc/class-page-backwpup.php:326
|
973 |
+
msgid "OK"
|
974 |
+
msgstr ""
|
975 |
+
|
976 |
+
#: ../inc/class-page-backwpup.php:350
|
977 |
+
msgid "Next scheduled jobs"
|
978 |
+
msgstr ""
|
979 |
+
|
980 |
+
#: ../inc/class-page-backwpup.php:377
|
981 |
+
#, php-format
|
982 |
+
msgid "working since %d seconds"
|
983 |
+
msgstr ""
|
984 |
+
|
985 |
+
#: ../inc/class-page-backwpup.php:379 ../inc/class-page-jobs.php:625
|
986 |
+
msgid "Abort"
|
987 |
+
msgstr ""
|
988 |
+
|
989 |
+
#: ../inc/class-page-backwpup.php:393 ../inc/class-page-jobs.php:282 ../inc/class-
|
990 |
+
#: page-jobs.php:291 ../inc/class-job.php:335
|
991 |
+
msgid "Not scheduled!"
|
992 |
+
msgstr ""
|
993 |
+
|
994 |
+
#: ../inc/class-page-backwpup.php:395
|
995 |
+
msgid "Edit Job"
|
996 |
+
msgstr ""
|
997 |
+
|
998 |
+
#: ../inc/class-jobtype-file.php:15
|
999 |
+
msgid "Files"
|
1000 |
+
msgstr ""
|
1001 |
+
|
1002 |
+
#: ../inc/class-jobtype-file.php:16
|
1003 |
+
msgid "File backup"
|
1004 |
+
msgstr ""
|
1005 |
+
|
1006 |
+
#: ../inc/class-jobtype-file.php:73
|
1007 |
+
msgid "Folders to backup"
|
1008 |
+
msgstr ""
|
1009 |
+
|
1010 |
+
#: ../inc/class-jobtype-file.php:77
|
1011 |
+
msgid "Backup WordPress install folder"
|
1012 |
+
msgstr ""
|
1013 |
+
|
1014 |
+
#: ../inc/class-jobtype-file.php:88 ../inc/class-jobtype-file.php:125 ..
|
1015 |
+
#: /inc/class-jobtype-file.php:162 ../inc/class-jobtype-file.php:199 ../inc/class-
|
1016 |
+
#: jobtype-file.php:236
|
1017 |
+
#, php-format
|
1018 |
+
msgid "Path as set by user (symlink?): %s"
|
1019 |
+
msgstr ""
|
1020 |
+
|
1021 |
+
#: ../inc/class-jobtype-file.php:91 ../inc/class-jobtype-file.php:128 ..
|
1022 |
+
#: /inc/class-jobtype-file.php:165 ../inc/class-jobtype-file.php:202 ../inc/class-
|
1023 |
+
#: jobtype-file.php:239
|
1024 |
+
msgid "Exclude:"
|
1025 |
+
msgstr ""
|
1026 |
+
|
1027 |
+
#: ../inc/class-jobtype-file.php:102 ../inc/class-jobtype-file.php:139 ..
|
1028 |
+
#: /inc/class-jobtype-file.php:176 ../inc/class-jobtype-file.php:213 ../inc/class-
|
1029 |
+
#: jobtype-file.php:250
|
1030 |
+
msgid "Excluded by .donotbackup file!"
|
1031 |
+
msgstr ""
|
1032 |
+
|
1033 |
+
#: ../inc/class-jobtype-file.php:114
|
1034 |
+
msgid "Backup content folder"
|
1035 |
+
msgstr ""
|
1036 |
+
|
1037 |
+
#: ../inc/class-jobtype-file.php:151
|
1038 |
+
msgid "Backup plugins"
|
1039 |
+
msgstr ""
|
1040 |
+
|
1041 |
+
#: ../inc/class-jobtype-file.php:188
|
1042 |
+
msgid "Backup themes"
|
1043 |
+
msgstr ""
|
1044 |
+
|
1045 |
+
#: ../inc/class-jobtype-file.php:225 ../inc/pro/class-wizard-job.php:703 ..
|
1046 |
+
#: /inc/pro/class-wizard-job.php:704
|
1047 |
+
msgid "Backup uploads folder"
|
1048 |
+
msgstr ""
|
1049 |
+
|
1050 |
+
#: ../inc/class-jobtype-file.php:262
|
1051 |
+
msgid "Extra folders to backup"
|
1052 |
+
msgstr ""
|
1053 |
+
|
1054 |
+
#: ../inc/class-jobtype-file.php:264
|
1055 |
+
msgid ""
|
1056 |
+
"Separate folder names with a line-break or a comma. Folders must be set with "
|
1057 |
+
"their absolute path!"
|
1058 |
+
msgstr ""
|
1059 |
+
|
1060 |
+
#: ../inc/class-jobtype-file.php:269
|
1061 |
+
msgid "Exclude from backup"
|
1062 |
+
msgstr ""
|
1063 |
+
|
1064 |
+
#: ../inc/class-jobtype-file.php:273
|
1065 |
+
msgid "Thumbnails in uploads"
|
1066 |
+
msgstr ""
|
1067 |
+
|
1068 |
+
#: ../inc/class-jobtype-file.php:275
|
1069 |
+
msgid ""
|
1070 |
+
"All images with -???x???. will be excluded. Use a plugin like Regenerate "
|
1071 |
+
"Thumbnails to rebuild them after a restore."
|
1072 |
+
msgstr ""
|
1073 |
+
|
1074 |
+
#: ../inc/class-jobtype-file.php:277
|
1075 |
+
msgid "Don't backup thumbnails from the site's uploads folder."
|
1076 |
+
msgstr ""
|
1077 |
+
|
1078 |
+
#: ../inc/class-jobtype-file.php:281
|
1079 |
+
msgid "Exclude files/folders from backup"
|
1080 |
+
msgstr ""
|
1081 |
+
|
1082 |
+
#: ../inc/class-jobtype-file.php:283
|
1083 |
+
msgid ""
|
1084 |
+
"Separate file / folder name parts with a line-break or a comma. For example "
|
1085 |
+
"/logs/,.log,.tmp"
|
1086 |
+
msgstr ""
|
1087 |
+
|
1088 |
+
#: ../inc/class-jobtype-file.php:288
|
1089 |
+
msgid "Special options"
|
1090 |
+
msgstr ""
|
1091 |
+
|
1092 |
+
#: ../inc/class-jobtype-file.php:292
|
1093 |
+
msgid "Include special files"
|
1094 |
+
msgstr ""
|
1095 |
+
|
1096 |
+
#: ../inc/class-jobtype-file.php:294
|
1097 |
+
msgid ""
|
1098 |
+
"If the WordPress root folder is not included in this backup job, check this "
|
1099 |
+
"option to additionally include wp-config.php, robots.txt, .htaccess, ."
|
1100 |
+
"htpasswd and favicon.ico into the backup. Your wp-config.php will be "
|
1101 |
+
"included even if you placed it in the parent directory of your root folder."
|
1102 |
+
msgstr ""
|
1103 |
+
|
1104 |
+
#: ../inc/class-jobtype-file.php:296
|
1105 |
+
msgid ""
|
1106 |
+
"Backup wp-config.php, robots.txt, .htaccess, .htpasswd and favicon.ico from "
|
1107 |
+
"root."
|
1108 |
+
msgstr ""
|
1109 |
+
|
1110 |
+
#: ../inc/class-jobtype-file.php:300
|
1111 |
+
msgid "Use one folder above as WP install folder"
|
1112 |
+
msgstr ""
|
1113 |
+
|
1114 |
+
#: ../inc/class-jobtype-file.php:304
|
1115 |
+
msgid ""
|
1116 |
+
"Use one folder above as WordPress install folder! That can be helpful, if "
|
1117 |
+
"you would backup files and folder that are not in the WordPress installation "
|
1118 |
+
"folder. Or if you made a \"<a href=\"https://codex.wordpress."
|
1119 |
+
"org/Giving_WordPress_Its_Own_Directory\">Giving WordPress Its Own "
|
1120 |
+
"Directory</a>\" installation. Excludes must be configured again."
|
1121 |
+
msgstr ""
|
1122 |
+
|
1123 |
+
#: ../inc/class-jobtype-file.php:387
|
1124 |
+
#, php-format
|
1125 |
+
msgid "%d. Trying to make a list of folders to back up …"
|
1126 |
+
msgstr ""
|
1127 |
+
|
1128 |
+
#: ../inc/class-jobtype-file.php:503 ../inc/class-jobtype-file.php:508 ..
|
1129 |
+
#: /inc/class-jobtype-file.php:513 ../inc/class-jobtype-file.php:517 ../inc/class-
|
1130 |
+
#: jobtype-file.php:521 ../inc/class-jobtype-file.php:525
|
1131 |
+
#, php-format
|
1132 |
+
msgid "Added \"%s\" to backup file list"
|
1133 |
+
msgstr ""
|
1134 |
+
|
1135 |
+
#: ../inc/class-jobtype-file.php:530
|
1136 |
+
msgid "No files/folder for the backup."
|
1137 |
+
msgstr ""
|
1138 |
+
|
1139 |
+
#: ../inc/class-jobtype-file.php:532
|
1140 |
+
#, php-format
|
1141 |
+
msgid "%1$d folders to backup."
|
1142 |
+
msgstr ""
|
1143 |
+
|
1144 |
+
#: ../inc/class-jobtype-file.php:571
|
1145 |
+
#, php-format
|
1146 |
+
msgid "Folder \"%s\" is not readable!"
|
1147 |
+
msgstr ""
|
1148 |
+
|
1149 |
+
#: ../inc/class-wp-cli.php:23
|
1150 |
+
msgid "A job is already running."
|
1151 |
+
msgstr ""
|
1152 |
+
|
1153 |
+
#: ../inc/class-wp-cli.php:35
|
1154 |
+
msgid "No job ID specified!"
|
1155 |
+
msgstr ""
|
1156 |
+
|
1157 |
+
#: ../inc/class-wp-cli.php:41
|
1158 |
+
msgid "Job ID does not exist!"
|
1159 |
+
msgstr ""
|
1160 |
+
|
1161 |
+
#: ../inc/class-wp-cli.php:54
|
1162 |
+
msgid "Nothing to abort!"
|
1163 |
+
msgstr ""
|
1164 |
+
|
1165 |
+
#: ../inc/class-wp-cli.php:59 ../inc/class-page-jobs.php:488
|
1166 |
+
msgid "Job will be terminated."
|
1167 |
+
msgstr ""
|
1168 |
+
|
1169 |
+
#: ../inc/class-wp-cli.php:105
|
1170 |
+
msgid "No job running"
|
1171 |
+
msgstr ""
|
1172 |
+
|
1173 |
+
#: ../inc/class-destination-s3-v1.php:77 ../inc/class-destination-s3.php:80
|
1174 |
+
msgid "Select a S3 service"
|
1175 |
+
msgstr ""
|
1176 |
+
|
1177 |
+
#: ../inc/class-destination-s3-v1.php:79 ../inc/class-destination-s3.php:82 ..
|
1178 |
+
#: /inc/pro/class-destination-s3-v1.php:18 ../inc/pro/class-destination-s3.php:18
|
1179 |
+
msgid "Amazon S3 Region"
|
1180 |
+
msgstr ""
|
1181 |
+
|
1182 |
+
#: ../inc/class-destination-s3-v1.php:80 ../inc/class-destination-s3.php:83 ..
|
1183 |
+
#: /inc/pro/class-destination-s3-v1.php:19 ../inc/pro/class-destination-s3.php:19
|
1184 |
+
msgid "Amazon S3: US Standard"
|
1185 |
+
msgstr ""
|
1186 |
+
|
1187 |
+
#: ../inc/class-destination-s3-v1.php:81 ../inc/class-destination-s3.php:84 ..
|
1188 |
+
#: /inc/pro/class-destination-s3-v1.php:20 ../inc/pro/class-destination-s3.php:20
|
1189 |
+
msgid "Amazon S3: US West (Northern California)"
|
1190 |
+
msgstr ""
|
1191 |
+
|
1192 |
+
#: ../inc/class-destination-s3-v1.php:82 ../inc/class-destination-s3.php:85 ..
|
1193 |
+
#: /inc/pro/class-destination-s3-v1.php:21 ../inc/pro/class-destination-s3.php:21
|
1194 |
+
msgid "Amazon S3: US West (Oregon)"
|
1195 |
+
msgstr ""
|
1196 |
+
|
1197 |
+
#: ../inc/class-destination-s3-v1.php:83 ../inc/class-destination-s3.php:86 ..
|
1198 |
+
#: /inc/pro/class-destination-s3-v1.php:22 ../inc/pro/class-destination-s3.php:22
|
1199 |
+
msgid "Amazon S3: EU (Ireland)"
|
1200 |
+
msgstr ""
|
1201 |
+
|
1202 |
+
#: ../inc/class-destination-s3-v1.php:84 ../inc/class-destination-s3.php:87 ..
|
1203 |
+
#: /inc/pro/class-destination-s3.php:23
|
1204 |
+
msgid "Amazon S3: EU (Germany)"
|
1205 |
+
msgstr ""
|
1206 |
+
|
1207 |
+
#: ../inc/class-destination-s3-v1.php:85 ../inc/class-destination-s3.php:88 ..
|
1208 |
+
#: /inc/pro/class-destination-s3-v1.php:23 ../inc/pro/class-destination-s3.php:24
|
1209 |
+
msgid "Amazon S3: Asia Pacific (Tokyo)"
|
1210 |
+
msgstr ""
|
1211 |
+
|
1212 |
+
#: ../inc/class-destination-s3-v1.php:86 ../inc/class-destination-s3.php:89 ..
|
1213 |
+
#: /inc/pro/class-destination-s3-v1.php:24 ../inc/pro/class-destination-s3.php:25
|
1214 |
+
msgid "Amazon S3: Asia Pacific (Seoul)"
|
1215 |
+
msgstr ""
|
1216 |
+
|
1217 |
+
#: ../inc/class-destination-s3-v1.php:87 ../inc/class-destination-s3.php:90 ..
|
1218 |
+
#: /inc/pro/class-destination-s3-v1.php:25 ../inc/pro/class-destination-s3.php:26
|
1219 |
+
msgid "Amazon S3: Asia Pacific (Singapore)"
|
1220 |
+
msgstr ""
|
1221 |
+
|
1222 |
+
#: ../inc/class-destination-s3-v1.php:88 ../inc/class-destination-s3.php:91 ..
|
1223 |
+
#: /inc/pro/class-destination-s3-v1.php:26 ../inc/pro/class-destination-s3.php:27
|
1224 |
+
msgid "Amazon S3: Asia Pacific (Sydney)"
|
1225 |
+
msgstr ""
|
1226 |
+
|
1227 |
+
#: ../inc/class-destination-s3-v1.php:89 ../inc/class-destination-s3.php:92 ..
|
1228 |
+
#: /inc/pro/class-destination-s3-v1.php:27 ../inc/pro/class-destination-s3.php:28
|
1229 |
+
msgid "Amazon S3: South America (Sao Paulo)"
|
1230 |
+
msgstr ""
|
1231 |
+
|
1232 |
+
#: ../inc/class-destination-s3-v1.php:90 ../inc/class-destination-s3.php:93 ..
|
1233 |
+
#: /inc/pro/class-destination-s3-v1.php:28 ../inc/pro/class-destination-s3.php:29
|
1234 |
+
msgid "Amazon S3: China (Beijing)"
|
1235 |
+
msgstr ""
|
1236 |
+
|
1237 |
+
#: ../inc/class-destination-s3-v1.php:91 ../inc/pro/class-destination-s3-v1.php:29
|
1238 |
+
msgid "Google Storage (Interoperable Access)"
|
1239 |
+
msgstr ""
|
1240 |
+
|
1241 |
+
#: ../inc/class-destination-s3-v1.php:92 ../inc/class-destination-s3.php:97 ..
|
1242 |
+
#: /inc/pro/class-destination-s3-v1.php:31 ../inc/pro/class-destination-s3.php:33
|
1243 |
+
msgid "Dream Host Cloud Storage"
|
1244 |
+
msgstr ""
|
1245 |
+
|
1246 |
+
#: ../inc/class-destination-s3-v1.php:93 ../inc/class-destination-s3.php:98 ..
|
1247 |
+
#: /inc/pro/class-destination-s3-v1.php:32 ../inc/pro/class-destination-s3.php:34
|
1248 |
+
msgid "GreenQloud Storage Qloud"
|
1249 |
+
msgstr ""
|
1250 |
+
|
1251 |
+
#: ../inc/class-destination-s3-v1.php:98 ../inc/class-destination-s3.php:103
|
1252 |
+
msgid "Or a S3 Server URL"
|
1253 |
+
msgstr ""
|
1254 |
+
|
1255 |
+
#: ../inc/class-destination-s3-v1.php:105 ../inc/class-destination-s3.php:110
|
1256 |
+
msgid "S3 Access Keys"
|
1257 |
+
msgstr ""
|
1258 |
+
|
1259 |
+
#: ../inc/class-destination-s3-v1.php:109 ../inc/class-destination-s3.php:114 ..
|
1260 |
+
#: /inc/pro/class-destination-glacier.php:53
|
1261 |
+
msgid "Access Key"
|
1262 |
+
msgstr ""
|
1263 |
+
|
1264 |
+
#: ../inc/class-destination-s3-v1.php:116 ../inc/class-destination-s3.php:121 ..
|
1265 |
+
#: /inc/pro/class-destination-glacier.php:60
|
1266 |
+
msgid "Secret Key"
|
1267 |
+
msgstr ""
|
1268 |
+
|
1269 |
+
#: ../inc/class-destination-s3-v1.php:124 ../inc/class-destination-s3.php:129
|
1270 |
+
msgid "S3 Bucket"
|
1271 |
+
msgstr ""
|
1272 |
+
|
1273 |
+
#: ../inc/class-destination-s3-v1.php:128 ../inc/class-destination-s3.php:133
|
1274 |
+
msgid "Bucket selection"
|
1275 |
+
msgstr ""
|
1276 |
+
|
1277 |
+
#: ../inc/class-destination-s3-v1.php:141 ../inc/class-destination-s3.php:146
|
1278 |
+
msgid "Create a new bucket"
|
1279 |
+
msgstr ""
|
1280 |
+
|
1281 |
+
#: ../inc/class-destination-s3-v1.php:148 ../inc/class-destination-s3.php:153
|
1282 |
+
msgid "S3 Backup settings"
|
1283 |
+
msgstr ""
|
1284 |
+
|
1285 |
+
#: ../inc/class-destination-s3-v1.php:152 ../inc/class-destination-s3.php:157 ..
|
1286 |
+
#: /inc/class-destination-rsc.php:100
|
1287 |
+
msgid "Folder in bucket"
|
1288 |
+
msgstr ""
|
1289 |
+
|
1290 |
+
#: ../inc/class-destination-s3-v1.php:174 ../inc/class-destination-s3.php:189
|
1291 |
+
msgid "Amazon specific settings"
|
1292 |
+
msgstr ""
|
1293 |
+
|
1294 |
+
#: ../inc/class-destination-s3-v1.php:178 ../inc/class-destination-s3-v1.php:180 .
|
1295 |
+
#: ./inc/class-destination-s3.php:193 ../inc/class-destination-s3.php:195
|
1296 |
+
msgid "Amazon: Storage Class"
|
1297 |
+
msgstr ""
|
1298 |
+
|
1299 |
+
#: ../inc/class-destination-s3-v1.php:181 ../inc/class-destination-s3.php:196
|
1300 |
+
msgid "Standard"
|
1301 |
+
msgstr ""
|
1302 |
+
|
1303 |
+
#: ../inc/class-destination-s3-v1.php:182 ../inc/class-destination-s3.php:197
|
1304 |
+
msgid "Standard-Infrequent Access"
|
1305 |
+
msgstr ""
|
1306 |
+
|
1307 |
+
#: ../inc/class-destination-s3-v1.php:183 ../inc/class-destination-s3.php:198
|
1308 |
+
msgid "Reduced Redundancy"
|
1309 |
+
msgstr ""
|
1310 |
+
|
1311 |
+
#: ../inc/class-destination-s3-v1.php:188 ../inc/class-destination-s3.php:203
|
1312 |
+
msgid "Server side encryption"
|
1313 |
+
msgstr ""
|
1314 |
+
|
1315 |
+
#: ../inc/class-destination-s3-v1.php:192 ../inc/class-destination-s3.php:207
|
1316 |
+
msgid "Save files encrypted (AES256) on server."
|
1317 |
+
msgstr ""
|
1318 |
+
|
1319 |
+
#: ../inc/class-destination-s3-v1.php:253 ../inc/class-destination-s3.php:267
|
1320 |
+
#, php-format
|
1321 |
+
msgid "Bucket %1$s created."
|
1322 |
+
msgstr ""
|
1323 |
+
|
1324 |
+
#: ../inc/class-destination-s3-v1.php:255 ../inc/pro/class-destination-s3-v1.php:
|
1325 |
+
#: 137
|
1326 |
+
#, php-format
|
1327 |
+
msgid "Bucket %s could not be created."
|
1328 |
+
msgstr ""
|
1329 |
+
|
1330 |
+
#: ../inc/class-destination-s3-v1.php:301 ../inc/class-destination-s3-v1.php:423 .
|
1331 |
+
#: ./inc/class-destination-s3-v1.php:474 ../inc/class-destination-s3.php:310 ..
|
1332 |
+
#: /inc/class-destination-s3.php:439 ../inc/class-destination-s3.php:493 ..
|
1333 |
+
#: /inc/class-destination-s3.php:527 ../inc/class-destination-s3.php:587 ..
|
1334 |
+
#: /inc/pro/class-destination-s3-v1.php:315 ../inc/pro/class-destination-s3.php:328
|
1335 |
+
#, php-format
|
1336 |
+
msgid "S3 Service API: %s"
|
1337 |
+
msgstr ""
|
1338 |
+
|
1339 |
+
#: ../inc/class-destination-s3-v1.php:366 ../inc/class-destination-s3.php:374
|
1340 |
+
#, php-format
|
1341 |
+
msgid "%d. Trying to send backup file to S3 Service …"
|
1342 |
+
msgstr ""
|
1343 |
+
|
1344 |
+
#: ../inc/class-destination-s3-v1.php:387 ../inc/class-destination-s3.php:387 ..
|
1345 |
+
#: /inc/pro/class-destination-s3-v1.php:183 ../inc/pro/class-destination-s3.php:179
|
1346 |
+
#, php-format
|
1347 |
+
msgid "Connected to S3 Bucket \"%1$s\" in %2$s"
|
1348 |
+
msgstr ""
|
1349 |
+
|
1350 |
+
#: ../inc/class-destination-s3-v1.php:390 ../inc/class-destination-s3.php:390 ..
|
1351 |
+
#: /inc/pro/class-destination-s3-v1.php:186 ../inc/pro/class-destination-s3.php:182
|
1352 |
+
#, php-format
|
1353 |
+
msgid "S3 Bucket \"%s\" does not exist!"
|
1354 |
+
msgstr ""
|
1355 |
+
|
1356 |
+
#: ../inc/class-destination-s3-v1.php:396 ../inc/class-destination-s3.php:409
|
1357 |
+
msgid "Starting upload to S3 Service …"
|
1358 |
+
msgstr ""
|
1359 |
+
|
1360 |
+
#: ../inc/class-destination-s3-v1.php:414 ../inc/class-destination-s3.php:518 ..
|
1361 |
+
#: /inc/pro/class-destination-glacier.php:366
|
1362 |
+
#, php-format
|
1363 |
+
msgid "Backup transferred to %s."
|
1364 |
+
msgstr ""
|
1365 |
+
|
1366 |
+
#: ../inc/class-destination-s3-v1.php:419 ../inc/class-destination-s3.php:523
|
1367 |
+
#, php-format
|
1368 |
+
msgid "Cannot transfer backup to S3! (%1$d) %2$s"
|
1369 |
+
msgstr ""
|
1370 |
+
|
1371 |
+
#: ../inc/class-destination-s3-v1.php:464 ../inc/class-destination-s3.php:577
|
1372 |
+
#, php-format
|
1373 |
+
msgid "Cannot delete backup from %s."
|
1374 |
+
msgstr ""
|
1375 |
+
|
1376 |
+
#: ../inc/class-destination-s3-v1.php:468 ../inc/class-destination-s3.php:581
|
1377 |
+
#, php-format
|
1378 |
+
msgid "One file deleted on S3 Bucket."
|
1379 |
+
msgid_plural "%d files deleted on S3 Bucket"
|
1380 |
+
msgstr[0] ""
|
1381 |
+
msgstr[1] ""
|
1382 |
+
|
1383 |
+
#: ../inc/class-destination-s3-v1.php:581 ../inc/class-destination-s3.php:687 ..
|
1384 |
+
#: /inc/pro/class-destination-glacier.php:541
|
1385 |
+
msgid "Missing secret access key!"
|
1386 |
+
msgstr ""
|
1387 |
+
|
1388 |
+
#: ../inc/class-destination-s3-v1.php:587 ../inc/class-destination-s3.php:693
|
1389 |
+
msgid "No bucket found!"
|
1390 |
+
msgstr ""
|
1391 |
+
|
1392 |
+
#: ../inc/class-create-archive.php:71
|
1393 |
+
msgid "The file name of an archive cannot be empty."
|
1394 |
+
msgstr ""
|
1395 |
+
|
1396 |
+
#: ../inc/class-create-archive.php:79
|
1397 |
+
#, php-format
|
1398 |
+
msgctxt "%s = Folder name"
|
1399 |
+
msgid "Folder %s for archive not found"
|
1400 |
+
msgstr ""
|
1401 |
+
|
1402 |
+
#: ../inc/class-create-archive.php:85 ../inc/class-create-archive.php:120 ..
|
1403 |
+
#: /inc/class-create-archive.php:137 ../inc/class-mysqldump.php:133
|
1404 |
+
msgid "Functions for gz compression not available"
|
1405 |
+
msgstr ""
|
1406 |
+
|
1407 |
+
#: ../inc/class-create-archive.php:92 ../inc/class-create-archive.php:143
|
1408 |
+
msgid "Functions for bz2 compression not available"
|
1409 |
+
msgstr ""
|
1410 |
+
|
1411 |
+
#: ../inc/class-create-archive.php:116
|
1412 |
+
#, php-format
|
1413 |
+
msgctxt "ZipArchive open() result"
|
1414 |
+
msgid "Cannot create zip archive: %d"
|
1415 |
+
msgstr ""
|
1416 |
+
|
1417 |
+
#: ../inc/class-create-archive.php:149
|
1418 |
+
#, php-format
|
1419 |
+
msgctxt "%s = file name"
|
1420 |
+
msgid "Method to archive file %s not detected"
|
1421 |
+
msgstr ""
|
1422 |
+
|
1423 |
+
#: ../inc/class-create-archive.php:154
|
1424 |
+
msgid "Cannot open archive file"
|
1425 |
+
msgstr ""
|
1426 |
+
|
1427 |
+
#: ../inc/class-create-archive.php:174 ../inc/class-create-archive.php:371
|
1428 |
+
#, php-format
|
1429 |
+
msgid "PclZip archive add error: %s"
|
1430 |
+
msgstr ""
|
1431 |
+
|
1432 |
+
#: ../inc/class-create-archive.php:184
|
1433 |
+
msgid "ZIP archive cannot be closed correctly."
|
1434 |
+
msgstr ""
|
1435 |
+
|
1436 |
+
#: ../inc/class-create-archive.php:238
|
1437 |
+
msgid "File name cannot be empty"
|
1438 |
+
msgstr ""
|
1439 |
+
|
1440 |
+
#: ../inc/class-create-archive.php:247
|
1441 |
+
#, php-format
|
1442 |
+
msgctxt "File to add to archive"
|
1443 |
+
msgid "File %s does not exist or is not readable"
|
1444 |
+
msgstr ""
|
1445 |
+
|
1446 |
+
#: ../inc/class-create-archive.php:278 ../inc/class-create-archive.php:294 ..
|
1447 |
+
#: /inc/class-create-archive.php:414 ../inc/class-create-archive.php:418
|
1448 |
+
msgid "This archive method can only add one file"
|
1449 |
+
msgstr ""
|
1450 |
+
|
1451 |
+
#: ../inc/class-create-archive.php:283 ../inc/class-create-archive.php:299
|
1452 |
+
#, php-format
|
1453 |
+
msgid "Cannot open source file %s to archive"
|
1454 |
+
msgstr ""
|
1455 |
+
|
1456 |
+
#: ../inc/class-create-archive.php:333
|
1457 |
+
msgid "ZIP archive cannot be closed correctly"
|
1458 |
+
msgstr ""
|
1459 |
+
|
1460 |
+
#: ../inc/class-create-archive.php:351 ../inc/class-create-archive.php:360 ..
|
1461 |
+
#: /inc/class-create-archive.php:429
|
1462 |
+
#, php-format
|
1463 |
+
msgid "Cannot add \"%s\" to zip archive!"
|
1464 |
+
msgstr ""
|
1465 |
+
|
1466 |
+
#: ../inc/class-create-archive.php:396
|
1467 |
+
msgid "Folder name cannot be empty"
|
1468 |
+
msgstr ""
|
1469 |
+
|
1470 |
+
#: ../inc/class-create-archive.php:401
|
1471 |
+
#, php-format
|
1472 |
+
msgctxt "Folder path to add to archive"
|
1473 |
+
msgid "Folder %s does not exist or is not readable"
|
1474 |
+
msgstr ""
|
1475 |
+
|
1476 |
+
#: ../inc/class-create-archive.php:451
|
1477 |
+
#, php-format
|
1478 |
+
msgctxt "Text of ZipArchive status Message"
|
1479 |
+
msgid "ZipArchive returns status: %s"
|
1480 |
+
msgstr ""
|
1481 |
+
|
1482 |
+
#: ../inc/class-create-archive.php:481
|
1483 |
+
#, php-format
|
1484 |
+
msgid "File name \"%1$s\" is too long to be saved correctly in %2$s archive!"
|
1485 |
+
msgstr ""
|
1486 |
+
|
1487 |
+
#: ../inc/class-create-archive.php:484
|
1488 |
+
#, php-format
|
1489 |
+
msgid "File path \"%1$s\" is too long to be saved correctly in %2$s archive!"
|
1490 |
+
msgstr ""
|
1491 |
+
|
1492 |
+
#: ../inc/class-create-archive.php:496
|
1493 |
+
#, php-format
|
1494 |
+
msgid "Cannot open source file %s for archiving"
|
1495 |
+
msgstr ""
|
1496 |
+
|
1497 |
+
#: ../inc/class-create-archive.php:501 ../inc/class-create-archive.php:502 ..
|
1498 |
+
#: /inc/class-create-archive.php:601 ../inc/class-create-archive.php:602
|
1499 |
+
msgid "Unknown"
|
1500 |
+
msgstr ""
|
1501 |
+
|
1502 |
+
#: ../inc/class-create-archive.php:592
|
1503 |
+
#, php-format
|
1504 |
+
msgid "Folder name \"%1$s\" is too long to be saved correctly in %2$s archive!"
|
1505 |
+
msgstr ""
|
1506 |
+
|
1507 |
+
#: ../inc/class-create-archive.php:595
|
1508 |
+
#, php-format
|
1509 |
+
msgid "Folder path \"%1$s\" is too long to be saved correctly in %2$s archive!"
|
1510 |
+
msgstr ""
|
1511 |
+
|
1512 |
+
#: ../inc/class-create-archive.php:676
|
1513 |
+
#, php-format
|
1514 |
+
msgid ""
|
1515 |
+
"If %s will be added to your backup archive, the archive will be too large "
|
1516 |
+
"for operations with this PHP Version. You might want to consider splitting "
|
1517 |
+
"the backup job in multiple jobs with less files each."
|
1518 |
+
msgstr ""
|
1519 |
+
|
1520 |
+
#: ../inc/class-admin.php:130 ../inc/class-help.php:29
|
1521 |
+
msgid "https://marketpress.com/documentation/backwpup-pro/"
|
1522 |
+
msgstr ""
|
1523 |
+
|
1524 |
+
#: ../inc/class-admin.php:130 ../inc/pro/class-marketpress-documentation.php:149 .
|
1525 |
+
#: ./inc/pro/class-pro.php:197 ../inc/pro/class-pro.php:197
|
1526 |
+
msgid "Documentation"
|
1527 |
+
msgstr ""
|
1528 |
+
|
1529 |
+
#: ../inc/class-admin.php:132 ../inc/class-help.php:26
|
1530 |
+
msgid "https://marketpress.com/support/forum/plugins/backwpup-pro/"
|
1531 |
+
msgstr ""
|
1532 |
+
|
1533 |
+
#: ../inc/class-admin.php:132 ../inc/class-help.php:26
|
1534 |
+
msgid "Pro Support"
|
1535 |
+
msgstr ""
|
1536 |
+
|
1537 |
+
#: ../inc/class-admin.php:134 ../inc/class-help.php:28
|
1538 |
+
msgid "http://wordpress.org/support/plugin/backwpup/"
|
1539 |
+
msgstr ""
|
1540 |
+
|
1541 |
+
#: ../inc/class-admin.php:134 ../inc/class-help.php:28
|
1542 |
+
msgid "Support"
|
1543 |
+
msgstr ""
|
1544 |
+
|
1545 |
+
#: ../inc/class-admin.php:147
|
1546 |
+
msgid "BackWPup Dashboard"
|
1547 |
+
msgstr ""
|
1548 |
+
|
1549 |
+
#: ../inc/class-admin.php:147
|
1550 |
+
msgid "Dashboard"
|
1551 |
+
msgstr ""
|
1552 |
+
|
1553 |
+
#: ../inc/class-admin.php:164 ../inc/class-admin.php:164 ../inc/class-adminbar.
|
1554 |
+
#: php:86 ../inc/class-page-settings.php:120
|
1555 |
+
msgid "Jobs"
|
1556 |
+
msgstr ""
|
1557 |
+
|
1558 |
+
#: ../inc/class-admin.php:179 ../inc/class-admin.php:179
|
1559 |
+
msgid "Add new job"
|
1560 |
+
msgstr ""
|
1561 |
+
|
1562 |
+
#: ../inc/class-admin.php:209 ../inc/class-admin.php:209 ../inc/class-adminbar.
|
1563 |
+
#: php:110
|
1564 |
+
msgid "Backups"
|
1565 |
+
msgstr ""
|
1566 |
+
|
1567 |
+
#: ../inc/class-admin.php:224 ../inc/class-admin.php:224
|
1568 |
+
msgid "Settings"
|
1569 |
+
msgstr ""
|
1570 |
+
|
1571 |
+
#: ../inc/class-admin.php:237 ../inc/class-admin.php:237
|
1572 |
+
msgid "About"
|
1573 |
+
msgstr ""
|
1574 |
+
|
1575 |
+
#: ../inc/class-admin.php:274 ../inc/class-admin.php:280
|
1576 |
+
msgid "Cheating, huh?"
|
1577 |
+
msgstr ""
|
1578 |
+
|
1579 |
+
#: ../inc/class-admin.php:395
|
1580 |
+
msgid "http://marketpress.com"
|
1581 |
+
msgstr ""
|
1582 |
+
|
1583 |
+
#: ../inc/class-admin.php:395 ../inc/class-admin.php:395
|
1584 |
+
msgid "MarketPress"
|
1585 |
+
msgstr ""
|
1586 |
+
|
1587 |
+
#: ../inc/class-admin.php:397
|
1588 |
+
#, php-format
|
1589 |
+
msgid "<a class=\"backwpup-get-pro\" href=\"%s\">Get BackWPup Pro now.</a>"
|
1590 |
+
msgstr ""
|
1591 |
+
|
1592 |
+
#: ../inc/class-admin.php:416
|
1593 |
+
#, php-format
|
1594 |
+
msgid "version %s"
|
1595 |
+
msgstr ""
|
1596 |
+
|
1597 |
+
#: ../inc/class-admin.php:461
|
1598 |
+
msgid "Add BackWPup Role"
|
1599 |
+
msgstr ""
|
1600 |
+
|
1601 |
+
#: ../inc/class-admin.php:465
|
1602 |
+
msgid "— No additional role for BackWPup —"
|
1603 |
+
msgstr ""
|
1604 |
+
|
1605 |
+
#: ../inc/class-admin.php:548
|
1606 |
+
#, php-format
|
1607 |
+
msgid ""
|
1608 |
+
"<strong>Important:</strong> before updating, please <a href=\"%1$s\">back up "
|
1609 |
+
"your database and files</a> with <a href=\"http://marketpress."
|
1610 |
+
"de/product/backwpup-pro/\">%2$s</a>. For help with updates, visit the <a "
|
1611 |
+
"href=\"http://codex.wordpress.org/Updating_WordPress\">Updating WordPress</a> "
|
1612 |
+
"Codex page."
|
1613 |
+
msgstr ""
|
1614 |
+
|
1615 |
+
#: ../inc/class-admin.php:552 ../inc/class-admin.php:556
|
1616 |
+
#, php-format
|
1617 |
+
msgid ""
|
1618 |
+
"<strong>Important:</strong> before installing this plugin, please <a "
|
1619 |
+
"href=\"%1$s\">back up your database and files</a> with <a href=\"http:"
|
1620 |
+
"//marketpress.de/product/backwpup-pro/\">%2$s</a>."
|
1621 |
+
msgstr ""
|
1622 |
+
|
1623 |
+
#: ../inc/class-easycron.php:179
|
1624 |
+
#, php-format
|
1625 |
+
msgid "EasyCron.com API returns (%s): %s"
|
1626 |
+
msgstr ""
|
1627 |
+
|
1628 |
+
#: ../inc/class-easycron.php:188
|
1629 |
+
msgid "EasyCron"
|
1630 |
+
msgstr ""
|
1631 |
+
|
1632 |
+
#: ../inc/class-easycron.php:189
|
1633 |
+
msgid ""
|
1634 |
+
"Here you can setup your <a href=\"https://www.easycron.com/user/token?"
|
1635 |
+
"ref=36673\" class=\"help-tip\" title=\"Affiliate Link!\">EasyCron.com API key</a> "
|
1636 |
+
"to use this service."
|
1637 |
+
msgstr ""
|
1638 |
+
|
1639 |
+
#: ../inc/class-easycron.php:192
|
1640 |
+
msgid "Api key:"
|
1641 |
+
msgstr ""
|
1642 |
+
|
1643 |
+
#: ../inc/class-easycron.php:200
|
1644 |
+
msgid "Trigger WordPress Cron:"
|
1645 |
+
msgstr ""
|
1646 |
+
|
1647 |
+
#: ../inc/class-easycron.php:204
|
1648 |
+
msgid ""
|
1649 |
+
"If you check this box, a cron job will be created on EasyCron that all 5 "
|
1650 |
+
"Minutes calls the WordPress cron."
|
1651 |
+
msgstr ""
|
1652 |
+
|
1653 |
+
#: ../inc/class-destination-sugarsync.php:22
|
1654 |
+
msgid "Sugarsync Login"
|
1655 |
+
msgstr ""
|
1656 |
+
|
1657 |
+
#: ../inc/class-destination-sugarsync.php:28 ../inc/class-destination-sugarsync.
|
1658 |
+
#: php:47 ../inc/class-destination-dropbox.php:55
|
1659 |
+
msgid "Authentication"
|
1660 |
+
msgstr ""
|
1661 |
+
|
1662 |
+
#: ../inc/class-destination-sugarsync.php:30 ../inc/pro/class-destination-
|
1663 |
+
#: sugarsync.php:17
|
1664 |
+
msgid "Email address:"
|
1665 |
+
msgstr ""
|
1666 |
+
|
1667 |
+
#: ../inc/class-destination-sugarsync.php:34 ../inc/pro/class-jobtype-dbdump.php:
|
1668 |
+
#: 123 ../inc/pro/class-destination-sugarsync.php:20 ../inc/pro/class-destination-
|
1669 |
+
#: ftp.php:29
|
1670 |
+
msgid "Password:"
|
1671 |
+
msgstr ""
|
1672 |
+
|
1673 |
+
#: ../inc/class-destination-sugarsync.php:40 ../inc/class-destination-sugarsync.
|
1674 |
+
#: php:121
|
1675 |
+
msgid "Authenticate with Sugarsync!"
|
1676 |
+
msgstr ""
|
1677 |
+
|
1678 |
+
#: ../inc/class-destination-sugarsync.php:42 ../inc/class-destination-sugarsync.
|
1679 |
+
#: php:137 ../inc/pro/class-destination-sugarsync.php:27 ../inc/pro/class-
|
1680 |
+
#: destination-sugarsync.php:101
|
1681 |
+
msgid "Create Sugarsync account"
|
1682 |
+
msgstr ""
|
1683 |
+
|
1684 |
+
#: ../inc/class-destination-sugarsync.php:49 ../inc/class-destination-dropbox.php:
|
1685 |
+
#: 60 ../inc/pro/class-destination-sugarsync.php:32 ../inc/pro/class-destination-
|
1686 |
+
#: dropbox.php:35 ../inc/pro/class-destination-gdrive.php:53 ../inc/pro/class-
|
1687 |
+
#: destination-gdrive.php:277
|
1688 |
+
msgid "Authenticated!"
|
1689 |
+
msgstr ""
|
1690 |
+
|
1691 |
+
#: ../inc/class-destination-sugarsync.php:51 ../inc/class-destination-sugarsync.
|
1692 |
+
#: php:133 ../inc/pro/class-destination-sugarsync.php:34 ../inc/pro/class-
|
1693 |
+
#: destination-sugarsync.php:97
|
1694 |
+
msgid "Delete Sugarsync authentication!"
|
1695 |
+
msgstr ""
|
1696 |
+
|
1697 |
+
#: ../inc/class-destination-sugarsync.php:57
|
1698 |
+
msgid "SugarSync Root"
|
1699 |
+
msgstr ""
|
1700 |
+
|
1701 |
+
#: ../inc/class-destination-sugarsync.php:61
|
1702 |
+
msgid "Sync folder selection"
|
1703 |
+
msgstr ""
|
1704 |
+
|
1705 |
+
#: ../inc/class-destination-sugarsync.php:69 ../inc/pro/class-destination-
|
1706 |
+
#: sugarsync.php:43
|
1707 |
+
msgid "No Syncfolders found!"
|
1708 |
+
msgstr ""
|
1709 |
+
|
1710 |
+
#: ../inc/class-destination-sugarsync.php:90
|
1711 |
+
msgid "Folder in root"
|
1712 |
+
msgstr ""
|
1713 |
+
|
1714 |
+
#: ../inc/class-destination-sugarsync.php:96 ../inc/class-destination-folder.php:
|
1715 |
+
#: 39 ../inc/class-destination-dropbox.php:102 ../inc/class-destination-ftp.php:
|
1716 |
+
#: 62 ../inc/pro/class-destination-gdrive.php:71
|
1717 |
+
msgid "File Deletion"
|
1718 |
+
msgstr ""
|
1719 |
+
|
1720 |
+
#: ../inc/class-destination-sugarsync.php:227
|
1721 |
+
#, php-format
|
1722 |
+
msgid "%d. Try to send backup to SugarSync …"
|
1723 |
+
msgstr ""
|
1724 |
+
|
1725 |
+
#: ../inc/class-destination-sugarsync.php:234
|
1726 |
+
#, php-format
|
1727 |
+
msgid "Authenticated to SugarSync with nickname %s"
|
1728 |
+
msgstr ""
|
1729 |
+
|
1730 |
+
#: ../inc/class-destination-sugarsync.php:237
|
1731 |
+
#, php-format
|
1732 |
+
msgctxt "Available space on SugarSync"
|
1733 |
+
msgid "Not enough disk space available on SugarSync. Available: %s."
|
1734 |
+
msgstr ""
|
1735 |
+
|
1736 |
+
#: ../inc/class-destination-sugarsync.php:243
|
1737 |
+
#, php-format
|
1738 |
+
msgid "%s available at SugarSync"
|
1739 |
+
msgstr ""
|
1740 |
+
|
1741 |
+
#: ../inc/class-destination-sugarsync.php:250
|
1742 |
+
msgid "Starting upload to SugarSync …"
|
1743 |
+
msgstr ""
|
1744 |
+
|
1745 |
+
#: ../inc/class-destination-sugarsync.php:260
|
1746 |
+
msgid "Cannot transfer backup to SugarSync!"
|
1747 |
+
msgstr ""
|
1748 |
+
|
1749 |
+
#: ../inc/class-destination-sugarsync.php:299
|
1750 |
+
#, php-format
|
1751 |
+
msgid "One file deleted on SugarSync folder"
|
1752 |
+
msgid_plural "%d files deleted on SugarSync folder"
|
1753 |
+
msgstr[0] ""
|
1754 |
+
msgstr[1] ""
|
1755 |
+
|
1756 |
+
#: ../inc/class-destination-sugarsync.php:305
|
1757 |
+
#, php-format
|
1758 |
+
msgid "SugarSync API: %s"
|
1759 |
+
msgstr ""
|
1760 |
+
|
1761 |
+
#: ../inc/class-destination-folder.php:33
|
1762 |
+
msgid "Folder to store backups in"
|
1763 |
+
msgstr ""
|
1764 |
+
|
1765 |
+
#: ../inc/class-destination-folder.php:211
|
1766 |
+
#, php-format
|
1767 |
+
msgid "One backup file deleted"
|
1768 |
+
msgid_plural "%d backup files deleted"
|
1769 |
+
msgstr[0] ""
|
1770 |
+
msgstr[1] ""
|
1771 |
+
|
1772 |
+
#: ../inc/class-destination-dropbox.php:36 ../inc/class-destination-dropbox.php:
|
1773 |
+
#: 332 ../inc/pro/class-destination-dropbox.php:253
|
1774 |
+
#, php-format
|
1775 |
+
msgid "Dropbox API: %s"
|
1776 |
+
msgstr ""
|
1777 |
+
|
1778 |
+
#: ../inc/class-destination-dropbox.php:51 ../inc/pro/class-destination-gdrive.
|
1779 |
+
#: php:45
|
1780 |
+
msgid "Login"
|
1781 |
+
msgstr ""
|
1782 |
+
|
1783 |
+
#: ../inc/class-destination-dropbox.php:57 ../inc/pro/class-destination-gdrive.
|
1784 |
+
#: php:51 ../inc/pro/class-destination-gdrive.php:271
|
1785 |
+
msgid "Not authenticated!"
|
1786 |
+
msgstr ""
|
1787 |
+
|
1788 |
+
#: ../inc/class-destination-dropbox.php:58 ../inc/pro/class-destination-dropbox.
|
1789 |
+
#: php:29
|
1790 |
+
msgid "Create Account"
|
1791 |
+
msgstr ""
|
1792 |
+
|
1793 |
+
#: ../inc/class-destination-dropbox.php:61 ../inc/class-destination-dropbox.php:61
|
1794 |
+
msgid "Delete Dropbox Authentication"
|
1795 |
+
msgstr ""
|
1796 |
+
|
1797 |
+
#: ../inc/class-destination-dropbox.php:68
|
1798 |
+
msgid "App Access to Dropbox"
|
1799 |
+
msgstr ""
|
1800 |
+
|
1801 |
+
#: ../inc/class-destination-dropbox.php:70
|
1802 |
+
msgid ""
|
1803 |
+
"A dedicated folder named BackWPup will be created inside of the Apps folder "
|
1804 |
+
"in your Dropbox. BackWPup will get read and write access to that folder only."
|
1805 |
+
" You can specify a subfolder as your backup destination for this job in the "
|
1806 |
+
"destination field below."
|
1807 |
+
msgstr ""
|
1808 |
+
|
1809 |
+
#: ../inc/class-destination-dropbox.php:71
|
1810 |
+
msgid "Get Dropbox App auth code"
|
1811 |
+
msgstr ""
|
1812 |
+
|
1813 |
+
#: ../inc/class-destination-dropbox.php:72
|
1814 |
+
msgid "Allows restricted access to Apps/BackWPup folder only."
|
1815 |
+
msgstr ""
|
1816 |
+
|
1817 |
+
#: ../inc/class-destination-dropbox.php:77
|
1818 |
+
msgid "— OR —"
|
1819 |
+
msgstr ""
|
1820 |
+
|
1821 |
+
#: ../inc/class-destination-dropbox.php:80
|
1822 |
+
msgid "Full Access to Dropbox"
|
1823 |
+
msgstr ""
|
1824 |
+
|
1825 |
+
#: ../inc/class-destination-dropbox.php:82
|
1826 |
+
msgid ""
|
1827 |
+
"BackWPup will have full read and write access to your entire Dropbox. You "
|
1828 |
+
"can specify your backup destination wherever you want, just be aware that "
|
1829 |
+
"ANY files or folders inside of your Dropbox can be overridden or deleted by "
|
1830 |
+
"BackWPup."
|
1831 |
+
msgstr ""
|
1832 |
+
|
1833 |
+
#: ../inc/class-destination-dropbox.php:83
|
1834 |
+
msgid "Get full Dropbox auth code "
|
1835 |
+
msgstr ""
|
1836 |
+
|
1837 |
+
#: ../inc/class-destination-dropbox.php:84
|
1838 |
+
msgid "Allows full access to your entire Dropbox."
|
1839 |
+
msgstr ""
|
1840 |
+
|
1841 |
+
#: ../inc/class-destination-dropbox.php:95
|
1842 |
+
msgid "Destination Folder"
|
1843 |
+
msgstr ""
|
1844 |
+
|
1845 |
+
#: ../inc/class-destination-dropbox.php:97
|
1846 |
+
msgid ""
|
1847 |
+
"Specify a subfolder where your backup archives will be stored. If you use "
|
1848 |
+
"the App option from above, this folder will be created inside of "
|
1849 |
+
"Apps/BackWPup. Otherwise it will be created at the root of your Dropbox. "
|
1850 |
+
"Already exisiting folders with the same name will not be overriden."
|
1851 |
+
msgstr ""
|
1852 |
+
|
1853 |
+
#: ../inc/class-destination-dropbox.php:98
|
1854 |
+
msgid "Folder inside your Dropbox where your backup archives will be stored."
|
1855 |
+
msgstr ""
|
1856 |
+
|
1857 |
+
#: ../inc/class-destination-dropbox.php:107
|
1858 |
+
msgid "Older files will be deleted first. 0 = no files will be deleted."
|
1859 |
+
msgstr ""
|
1860 |
+
|
1861 |
+
#: ../inc/class-destination-dropbox.php:224
|
1862 |
+
#, php-format
|
1863 |
+
msgid "%d. Try to send backup file to Dropbox …"
|
1864 |
+
msgstr ""
|
1865 |
+
|
1866 |
+
#: ../inc/class-destination-dropbox.php:247 ../inc/pro/class-destination-dropbox.
|
1867 |
+
#: php:128
|
1868 |
+
#, php-format
|
1869 |
+
msgid "Authenticated with Dropbox of user: %s"
|
1870 |
+
msgstr ""
|
1871 |
+
|
1872 |
+
#: ../inc/class-destination-dropbox.php:251 ../inc/pro/class-destination-dropbox.
|
1873 |
+
#: php:132
|
1874 |
+
#, php-format
|
1875 |
+
msgid "%s available on your Dropbox"
|
1876 |
+
msgstr ""
|
1877 |
+
|
1878 |
+
#: ../inc/class-destination-dropbox.php:254 ../inc/pro/class-destination-dropbox.
|
1879 |
+
#: php:135
|
1880 |
+
msgid "Not Authenticated with Dropbox!"
|
1881 |
+
msgstr ""
|
1882 |
+
|
1883 |
+
#: ../inc/class-destination-dropbox.php:257
|
1884 |
+
msgid "Uploading to Dropbox …"
|
1885 |
+
msgstr ""
|
1886 |
+
|
1887 |
+
#: ../inc/class-destination-dropbox.php:273 ../inc/pro/class-destination-gdrive.
|
1888 |
+
#: php:615
|
1889 |
+
msgid "Uploaded file size and local file size don't match."
|
1890 |
+
msgstr ""
|
1891 |
+
|
1892 |
+
#: ../inc/class-destination-dropbox.php:277 ../inc/pro/class-destination-gdrive.
|
1893 |
+
#: php:617 ../inc/pro/class-destination-glacier.php:370
|
1894 |
+
#, php-format
|
1895 |
+
msgid "Error transfering backup to %s."
|
1896 |
+
msgstr ""
|
1897 |
+
|
1898 |
+
#: ../inc/class-destination-dropbox.php:323
|
1899 |
+
#, php-format
|
1900 |
+
msgid "Error while deleting file from Dropbox: %s"
|
1901 |
+
msgstr ""
|
1902 |
+
|
1903 |
+
#: ../inc/class-destination-dropbox.php:326
|
1904 |
+
#, php-format
|
1905 |
+
msgid "One file deleted from Dropbox"
|
1906 |
+
msgid_plural "%d files deleted on Dropbox"
|
1907 |
+
msgstr[0] ""
|
1908 |
+
msgstr[1] ""
|
1909 |
+
|
1910 |
+
#: ../inc/class-destination-ftp.php:23
|
1911 |
+
msgid "FTP server and login"
|
1912 |
+
msgstr ""
|
1913 |
+
|
1914 |
+
#: ../inc/class-destination-ftp.php:27
|
1915 |
+
msgid "FTP server"
|
1916 |
+
msgstr ""
|
1917 |
+
|
1918 |
+
#: ../inc/class-destination-ftp.php:31 ../inc/class-destination-email.php:104 ..
|
1919 |
+
#: /inc/pro/class-destination-ftp.php:21
|
1920 |
+
msgid "Port:"
|
1921 |
+
msgstr ""
|
1922 |
+
|
1923 |
+
#: ../inc/class-destination-ftp.php:37 ../inc/class-destination-rsc.php:45
|
1924 |
+
msgid "Username"
|
1925 |
+
msgstr ""
|
1926 |
+
|
1927 |
+
#: ../inc/class-destination-ftp.php:44
|
1928 |
+
msgid "Password"
|
1929 |
+
msgstr ""
|
1930 |
+
|
1931 |
+
#: ../inc/class-destination-ftp.php:56
|
1932 |
+
msgid "Folder to store files in"
|
1933 |
+
msgstr ""
|
1934 |
+
|
1935 |
+
#: ../inc/class-destination-ftp.php:68
|
1936 |
+
msgid "Maximum number of files to keep in folder."
|
1937 |
+
msgstr ""
|
1938 |
+
|
1939 |
+
#: ../inc/class-destination-ftp.php:78
|
1940 |
+
msgid "FTP specific settings"
|
1941 |
+
msgstr ""
|
1942 |
+
|
1943 |
+
#: ../inc/class-destination-ftp.php:82
|
1944 |
+
msgid "Timeout for FTP connection"
|
1945 |
+
msgstr ""
|
1946 |
+
|
1947 |
+
#: ../inc/class-destination-ftp.php:90
|
1948 |
+
msgid "SSL-FTP connection"
|
1949 |
+
msgstr ""
|
1950 |
+
|
1951 |
+
#: ../inc/class-destination-ftp.php:94
|
1952 |
+
msgid "Use explicit SSL-FTP connection."
|
1953 |
+
msgstr ""
|
1954 |
+
|
1955 |
+
#: ../inc/class-destination-ftp.php:99
|
1956 |
+
msgid "FTP Passive Mode"
|
1957 |
+
msgstr ""
|
1958 |
+
|
1959 |
+
#: ../inc/class-destination-ftp.php:103
|
1960 |
+
msgid "Use FTP Passive Mode."
|
1961 |
+
msgstr ""
|
1962 |
+
|
1963 |
+
#: ../inc/class-destination-ftp.php:179
|
1964 |
+
msgid "FTP: Login failure!"
|
1965 |
+
msgstr ""
|
1966 |
+
|
1967 |
+
#: ../inc/class-destination-ftp.php:203
|
1968 |
+
#, php-format
|
1969 |
+
msgid "%d. Try to send backup file to an FTP server …"
|
1970 |
+
msgstr ""
|
1971 |
+
|
1972 |
+
#: ../inc/class-destination-ftp.php:209
|
1973 |
+
#, php-format
|
1974 |
+
msgid "Connected via explicit SSL-FTP to server: %s"
|
1975 |
+
msgstr ""
|
1976 |
+
|
1977 |
+
#: ../inc/class-destination-ftp.php:211
|
1978 |
+
#, php-format
|
1979 |
+
msgid "Cannot connect via explicit SSL-FTP to server: %s"
|
1980 |
+
msgstr ""
|
1981 |
+
|
1982 |
+
#: ../inc/class-destination-ftp.php:217
|
1983 |
+
msgid "PHP function to connect with explicit SSL-FTP to server does not exist!"
|
1984 |
+
msgstr ""
|
1985 |
+
|
1986 |
+
#: ../inc/class-destination-ftp.php:225
|
1987 |
+
#, php-format
|
1988 |
+
msgid "Connected to FTP server: %s"
|
1989 |
+
msgstr ""
|
1990 |
+
|
1991 |
+
#: ../inc/class-destination-ftp.php:227
|
1992 |
+
#, php-format
|
1993 |
+
msgid "Cannot connect to FTP server: %s"
|
1994 |
+
msgstr ""
|
1995 |
+
|
1996 |
+
#: ../inc/class-destination-ftp.php:234 ../inc/class-destination-ftp.php:242 ..
|
1997 |
+
#: /inc/class-destination-ftp.php:258 ../inc/class-destination-ftp.php:305
|
1998 |
+
#, php-format
|
1999 |
+
msgid "FTP client command: %s"
|
2000 |
+
msgstr ""
|
2001 |
+
|
2002 |
+
#: ../inc/class-destination-ftp.php:236
|
2003 |
+
#, php-format
|
2004 |
+
msgid "FTP server response: %s"
|
2005 |
+
msgstr ""
|
2006 |
+
|
2007 |
+
#: ../inc/class-destination-ftp.php:240 ../inc/class-destination-ftp.php:245 ..
|
2008 |
+
#: /inc/class-destination-ftp.php:248 ../inc/class-destination-ftp.php:261 ..
|
2009 |
+
#: /inc/class-destination-ftp.php:263 ../inc/class-destination-ftp.php:308 ..
|
2010 |
+
#: /inc/class-destination-ftp.php:310 ../inc/class-destination-ftp.php:314 ..
|
2011 |
+
#: /inc/class-destination-ftp.php:316
|
2012 |
+
#, php-format
|
2013 |
+
msgid "FTP server reply: %s"
|
2014 |
+
msgstr ""
|
2015 |
+
|
2016 |
+
#: ../inc/class-destination-ftp.php:263
|
2017 |
+
msgid "Error getting SYSTYPE"
|
2018 |
+
msgstr ""
|
2019 |
+
|
2020 |
+
#: ../inc/class-destination-ftp.php:281
|
2021 |
+
#, php-format
|
2022 |
+
msgid "FTP Folder \"%s\" created!"
|
2023 |
+
msgstr ""
|
2024 |
+
|
2025 |
+
#: ../inc/class-destination-ftp.php:285
|
2026 |
+
#, php-format
|
2027 |
+
msgid "FTP Folder \"%s\" cannot be created!"
|
2028 |
+
msgstr ""
|
2029 |
+
|
2030 |
+
#: ../inc/class-destination-ftp.php:296
|
2031 |
+
#, php-format
|
2032 |
+
msgid "FTP current folder is: %s"
|
2033 |
+
msgstr ""
|
2034 |
+
|
2035 |
+
#: ../inc/class-destination-ftp.php:308
|
2036 |
+
msgid "Entering passive mode"
|
2037 |
+
msgstr ""
|
2038 |
+
|
2039 |
+
#: ../inc/class-destination-ftp.php:310
|
2040 |
+
msgid "Cannot enter passive mode"
|
2041 |
+
msgstr ""
|
2042 |
+
|
2043 |
+
#: ../inc/class-destination-ftp.php:314
|
2044 |
+
msgid "Entering normal mode"
|
2045 |
+
msgstr ""
|
2046 |
+
|
2047 |
+
#: ../inc/class-destination-ftp.php:316
|
2048 |
+
msgid "Cannot enter normal mode"
|
2049 |
+
msgstr ""
|
2050 |
+
|
2051 |
+
#: ../inc/class-destination-ftp.php:320
|
2052 |
+
msgid "Starting upload to FTP  …"
|
2053 |
+
msgstr ""
|
2054 |
+
|
2055 |
+
#: ../inc/class-destination-ftp.php:332
|
2056 |
+
msgid "Cannot transfer backup to FTP server!"
|
2057 |
+
msgstr ""
|
2058 |
+
|
2059 |
+
#: ../inc/class-destination-ftp.php:337
|
2060 |
+
#, php-format
|
2061 |
+
msgid "Backup transferred to FTP server: %s"
|
2062 |
+
msgstr ""
|
2063 |
+
|
2064 |
+
#: ../inc/class-destination-ftp.php:388
|
2065 |
+
#, php-format
|
2066 |
+
msgid "Cannot delete \"%s\" on FTP server!"
|
2067 |
+
msgstr ""
|
2068 |
+
|
2069 |
+
#: ../inc/class-destination-ftp.php:391
|
2070 |
+
#, php-format
|
2071 |
+
msgid "One file deleted on FTP server"
|
2072 |
+
msgid_plural "%d files deleted on FTP server"
|
2073 |
+
msgstr[0] ""
|
2074 |
+
msgstr[1] ""
|
2075 |
+
|
2076 |
+
#: ../inc/class-destination-s3.php:94 ../inc/pro/class-destination-s3.php:30
|
2077 |
+
msgid "Google Storage: EU"
|
2078 |
+
msgstr ""
|
2079 |
+
|
2080 |
+
#: ../inc/class-destination-s3.php:95 ../inc/pro/class-destination-s3.php:31
|
2081 |
+
msgid "Google Storage: USA"
|
2082 |
+
msgstr ""
|
2083 |
+
|
2084 |
+
#: ../inc/class-destination-s3.php:96 ../inc/pro/class-destination-s3.php:32
|
2085 |
+
msgid "Google Storage: Asia"
|
2086 |
+
msgstr ""
|
2087 |
+
|
2088 |
+
#: ../inc/class-destination-s3.php:179
|
2089 |
+
msgid "Multipart Upload"
|
2090 |
+
msgstr ""
|
2091 |
+
|
2092 |
+
#: ../inc/class-destination-s3.php:181
|
2093 |
+
msgid ""
|
2094 |
+
"Multipart splits file into multiple chunks while uploading. This is "
|
2095 |
+
"necessary for displaying the upload process and to transfer bigger files. "
|
2096 |
+
"Works without a problem on Amazon. Other services might have issues."
|
2097 |
+
msgstr ""
|
2098 |
+
|
2099 |
+
#: ../inc/class-destination-s3.php:183
|
2100 |
+
msgid "Use multipart upload for uploading a file"
|
2101 |
+
msgstr ""
|
2102 |
+
|
2103 |
+
#: ../inc/class-destination-s3.php:269 ../inc/pro/class-destination-s3.php:138
|
2104 |
+
#, php-format
|
2105 |
+
msgid " %s is not a valid bucket name."
|
2106 |
+
msgstr ""
|
2107 |
+
|
2108 |
+
#: ../inc/class-destination-s3.php:397
|
2109 |
+
msgid "Checking for not aborted multipart Uploads …"
|
2110 |
+
msgstr ""
|
2111 |
+
|
2112 |
+
#: ../inc/class-destination-s3.php:403
|
2113 |
+
#, php-format
|
2114 |
+
msgid "Upload for %s aborted."
|
2115 |
+
msgstr ""
|
2116 |
+
|
2117 |
+
#: ../inc/class-destination-s3.php:551
|
2118 |
+
#, php-format
|
2119 |
+
msgid "Storage Class: %s"
|
2120 |
+
msgstr ""
|
2121 |
+
|
2122 |
+
#: ../inc/class-file.php:154
|
2123 |
+
#, php-format
|
2124 |
+
msgid "Folder %1$s not allowed, please use another folder."
|
2125 |
+
msgstr ""
|
2126 |
+
|
2127 |
+
#: ../inc/class-file.php:159
|
2128 |
+
#, php-format
|
2129 |
+
msgid "Folder %1$s is not in open basedir, please use another folder."
|
2130 |
+
msgstr ""
|
2131 |
+
|
2132 |
+
#: ../inc/class-file.php:165
|
2133 |
+
#, php-format
|
2134 |
+
msgid "Cannot create folder: %1$s"
|
2135 |
+
msgstr ""
|
2136 |
+
|
2137 |
+
#: ../inc/class-file.php:171
|
2138 |
+
#, php-format
|
2139 |
+
msgid "Folder \"%1$s\" is not writable"
|
2140 |
+
msgstr ""
|
2141 |
+
|
2142 |
+
#: ../inc/class-file.php:200
|
2143 |
+
msgid ""
|
2144 |
+
"BackWPup will not backup folders and its sub folders when this file is "
|
2145 |
+
"inside."
|
2146 |
+
msgstr ""
|
2147 |
+
|
2148 |
+
#: ../inc/class-page-jobs.php:100
|
2149 |
+
msgid "No Jobs."
|
2150 |
+
msgstr ""
|
2151 |
+
|
2152 |
+
#: ../inc/class-page-jobs.php:125 ../inc/class-page-editjob.php:438
|
2153 |
+
msgid "Job Name"
|
2154 |
+
msgstr ""
|
2155 |
+
|
2156 |
+
#: ../inc/class-page-jobs.php:127 ../inc/pro/class-wizard-job.php:57 ..
|
2157 |
+
#: /inc/pro/class-wizard-job.php:438
|
2158 |
+
msgid "Destinations"
|
2159 |
+
msgstr ""
|
2160 |
+
|
2161 |
+
#: ../inc/class-page-jobs.php:128
|
2162 |
+
msgid "Next Run"
|
2163 |
+
msgstr ""
|
2164 |
+
|
2165 |
+
#: ../inc/class-page-jobs.php:129
|
2166 |
+
msgid "Last Run"
|
2167 |
+
msgstr ""
|
2168 |
+
|
2169 |
+
#: ../inc/class-page-jobs.php:175
|
2170 |
+
msgid "Edit"
|
2171 |
+
msgstr ""
|
2172 |
+
|
2173 |
+
#: ../inc/class-page-jobs.php:176
|
2174 |
+
msgid "Copy"
|
2175 |
+
msgstr ""
|
2176 |
+
|
2177 |
+
#: ../inc/class-page-jobs.php:181 ../inc/class-page-editjob.php:195
|
2178 |
+
msgid "Run now"
|
2179 |
+
msgstr ""
|
2180 |
+
|
2181 |
+
#: ../inc/class-page-jobs.php:189
|
2182 |
+
msgid "Last log"
|
2183 |
+
msgstr ""
|
2184 |
+
|
2185 |
+
#: ../inc/class-page-jobs.php:251
|
2186 |
+
msgid "Not needed or set"
|
2187 |
+
msgstr ""
|
2188 |
+
|
2189 |
+
#: ../inc/class-page-jobs.php:273
|
2190 |
+
#, php-format
|
2191 |
+
msgid "Running for: %s seconds"
|
2192 |
+
msgstr ""
|
2193 |
+
|
2194 |
+
#: ../inc/class-page-jobs.php:280 ../inc/class-page-jobs.php:289
|
2195 |
+
#, php-format
|
2196 |
+
msgid "Cron: %s"
|
2197 |
+
msgstr ""
|
2198 |
+
|
2199 |
+
#: ../inc/class-page-jobs.php:280
|
2200 |
+
#, php-format
|
2201 |
+
msgid "%1$s at %2$s by WP-Cron"
|
2202 |
+
msgstr ""
|
2203 |
+
|
2204 |
+
#: ../inc/class-page-jobs.php:289
|
2205 |
+
#, php-format
|
2206 |
+
msgid "%1$s at %2$s by EasyCron"
|
2207 |
+
msgstr ""
|
2208 |
+
|
2209 |
+
#: ../inc/class-page-jobs.php:295
|
2210 |
+
msgid "External link"
|
2211 |
+
msgstr ""
|
2212 |
+
|
2213 |
+
#: ../inc/class-page-jobs.php:298
|
2214 |
+
msgid "Inactive"
|
2215 |
+
msgstr ""
|
2216 |
+
|
2217 |
+
#: ../inc/class-page-jobs.php:320
|
2218 |
+
#, php-format
|
2219 |
+
msgid "Runtime: %d seconds"
|
2220 |
+
msgstr ""
|
2221 |
+
|
2222 |
+
#: ../inc/class-page-jobs.php:324
|
2223 |
+
msgid "not yet"
|
2224 |
+
msgstr ""
|
2225 |
+
|
2226 |
+
#: ../inc/class-page-jobs.php:330
|
2227 |
+
msgid "Download last backup"
|
2228 |
+
msgstr ""
|
2229 |
+
|
2230 |
+
#: ../inc/class-page-jobs.php:339
|
2231 |
+
msgid "Log"
|
2232 |
+
msgstr ""
|
2233 |
+
|
2234 |
+
#: ../inc/class-page-jobs.php:382
|
2235 |
+
msgid "Copy of"
|
2236 |
+
msgstr ""
|
2237 |
+
|
2238 |
+
#: ../inc/class-page-jobs.php:397 ../inc/class-page-backups.php:375 ../inc/class-
|
2239 |
+
#: page-backups.php:414 ../inc/class-page-editjob.php:35
|
2240 |
+
msgid "Sorry, you don't have permissions to do that."
|
2241 |
+
msgstr ""
|
2242 |
+
|
2243 |
+
#: ../inc/class-page-jobs.php:429
|
2244 |
+
#, php-format
|
2245 |
+
msgid "The job \"%s\" destination \"%s\" is not configured properly"
|
2246 |
+
msgstr ""
|
2247 |
+
|
2248 |
+
#: ../inc/class-page-jobs.php:434
|
2249 |
+
#, php-format
|
2250 |
+
msgid "The job \"%s\" needs properly configured destinations to run!"
|
2251 |
+
msgstr ""
|
2252 |
+
|
2253 |
+
#: ../inc/class-page-jobs.php:442 ../inc/class-page-settings.php:439
|
2254 |
+
#, php-format
|
2255 |
+
msgid "The HTTP response test get an error \"%s\""
|
2256 |
+
msgstr ""
|
2257 |
+
|
2258 |
+
#: ../inc/class-page-jobs.php:446 ../inc/class-page-settings.php:441
|
2259 |
+
#, php-format
|
2260 |
+
msgid "The HTTP response test get a false http status (%s)"
|
2261 |
+
msgstr ""
|
2262 |
+
|
2263 |
+
#: ../inc/class-page-jobs.php:450
|
2264 |
+
#, php-format
|
2265 |
+
msgid "Not expected HTTP response body: %s"
|
2266 |
+
msgstr ""
|
2267 |
+
|
2268 |
+
#: ../inc/class-page-jobs.php:471
|
2269 |
+
#, php-format
|
2270 |
+
msgid "Job “%s” has started, but not responded for 10 seconds."
|
2271 |
+
msgstr ""
|
2272 |
+
|
2273 |
+
#: ../inc/class-page-jobs.php:476
|
2274 |
+
#, php-format
|
2275 |
+
msgid "Job \"%s\" started."
|
2276 |
+
msgstr ""
|
2277 |
+
|
2278 |
+
#: ../inc/class-page-jobs.php:601
|
2279 |
+
#, php-format
|
2280 |
+
msgid "%s Jobs"
|
2281 |
+
msgstr ""
|
2282 |
+
|
2283 |
+
#: ../inc/class-page-jobs.php:601 ../inc/class-adminbar.php:94
|
2284 |
+
msgid "Add new"
|
2285 |
+
msgstr ""
|
2286 |
+
|
2287 |
+
#: ../inc/class-page-jobs.php:621
|
2288 |
+
#, php-format
|
2289 |
+
msgid "Job currently running: %s"
|
2290 |
+
msgstr ""
|
2291 |
+
|
2292 |
+
#: ../inc/class-page-jobs.php:622
|
2293 |
+
msgid "Warnings:"
|
2294 |
+
msgstr ""
|
2295 |
+
|
2296 |
+
#: ../inc/class-page-jobs.php:623
|
2297 |
+
msgid "Errors:"
|
2298 |
+
msgstr ""
|
2299 |
+
|
2300 |
+
#: ../inc/class-page-jobs.php:624
|
2301 |
+
msgid "Log of running job"
|
2302 |
+
msgstr ""
|
2303 |
+
|
2304 |
+
#: ../inc/class-page-jobs.php:624
|
2305 |
+
msgid "Display working log"
|
2306 |
+
msgstr ""
|
2307 |
+
|
2308 |
+
#: ../inc/class-page-jobs.php:626
|
2309 |
+
msgid "Close working screen"
|
2310 |
+
msgstr ""
|
2311 |
+
|
2312 |
+
#: ../inc/class-page-jobs.php:626
|
2313 |
+
msgid "close"
|
2314 |
+
msgstr ""
|
2315 |
+
|
2316 |
+
#: ../inc/class-page-jobs.php:793
|
2317 |
+
msgid "Job completed"
|
2318 |
+
msgstr ""
|
2319 |
+
|
2320 |
+
#: ../inc/class-page-jobs.php:795 ../inc/class-job.php:1274
|
2321 |
+
msgid "ERROR:"
|
2322 |
+
msgstr ""
|
2323 |
+
|
2324 |
+
#: ../inc/class-page-jobs.php:795 ../inc/class-job.php:1487
|
2325 |
+
#, php-format
|
2326 |
+
msgid ""
|
2327 |
+
"Job has ended with errors in %s seconds. You must resolve the errors for "
|
2328 |
+
"correct execution."
|
2329 |
+
msgstr ""
|
2330 |
+
|
2331 |
+
#: ../inc/class-page-jobs.php:797 ../inc/class-job.php:1265
|
2332 |
+
msgid "WARNING:"
|
2333 |
+
msgstr ""
|
2334 |
+
|
2335 |
+
#: ../inc/class-page-jobs.php:797
|
2336 |
+
#, php-format
|
2337 |
+
msgid ""
|
2338 |
+
"Job has done with warnings in %s seconds. Please resolve them for correct "
|
2339 |
+
"execution."
|
2340 |
+
msgstr ""
|
2341 |
+
|
2342 |
+
#: ../inc/class-page-jobs.php:799 ../inc/class-job.php:1491
|
2343 |
+
#, php-format
|
2344 |
+
msgid "Job done in %s seconds."
|
2345 |
+
msgstr ""
|
2346 |
+
|
2347 |
+
#: ../inc/class-destination-email.php:38 ../inc/class-destination-email.php:41 ..
|
2348 |
+
#: /inc/pro/class-destination-email.php:16 ../inc/pro/class-destination-email.php:
|
2349 |
+
#: 18
|
2350 |
+
msgid "Email address"
|
2351 |
+
msgstr ""
|
2352 |
+
|
2353 |
+
#: ../inc/class-destination-email.php:43 ../inc/pro/class-destination-email.php:19
|
2354 |
+
msgid "Email address to which Backups are sent."
|
2355 |
+
msgstr ""
|
2356 |
+
|
2357 |
+
#: ../inc/class-destination-email.php:48 ../inc/class-destination-email.php:50 ..
|
2358 |
+
#: /inc/pro/class-destination-email.php:24 ../inc/pro/class-destination-email.php:
|
2359 |
+
#: 25
|
2360 |
+
msgid "Send test email"
|
2361 |
+
msgstr ""
|
2362 |
+
|
2363 |
+
#: ../inc/class-destination-email.php:55
|
2364 |
+
msgid "Send email settings"
|
2365 |
+
msgstr ""
|
2366 |
+
|
2367 |
+
#: ../inc/class-destination-email.php:58
|
2368 |
+
msgid "Maximum file size"
|
2369 |
+
msgstr ""
|
2370 |
+
|
2371 |
+
#: ../inc/class-destination-email.php:59
|
2372 |
+
msgid "Maximum file size to be included in an email. 0 = unlimited"
|
2373 |
+
msgstr ""
|
2374 |
+
|
2375 |
+
#: ../inc/class-destination-email.php:59
|
2376 |
+
msgid "MB"
|
2377 |
+
msgstr ""
|
2378 |
+
|
2379 |
+
#: ../inc/class-destination-email.php:63 ../inc/class-destination-email.php:64
|
2380 |
+
msgid "Sender email address"
|
2381 |
+
msgstr ""
|
2382 |
+
|
2383 |
+
#: ../inc/class-destination-email.php:70
|
2384 |
+
msgid "Sender name"
|
2385 |
+
msgstr ""
|
2386 |
+
|
2387 |
+
#: ../inc/class-destination-email.php:71
|
2388 |
+
msgid "Name of email sender"
|
2389 |
+
msgstr ""
|
2390 |
+
|
2391 |
+
#: ../inc/class-destination-email.php:77
|
2392 |
+
msgid "Sending method"
|
2393 |
+
msgstr ""
|
2394 |
+
|
2395 |
+
#: ../inc/class-destination-email.php:79
|
2396 |
+
msgid ""
|
2397 |
+
"- Use site settings: retrieve the email settings of your site.<br />-PHP "
|
2398 |
+
"mail(): needs more PHP memory"
|
2399 |
+
msgstr ""
|
2400 |
+
|
2401 |
+
#: ../inc/class-destination-email.php:81
|
2402 |
+
msgid "Use site settings"
|
2403 |
+
msgstr ""
|
2404 |
+
|
2405 |
+
#: ../inc/class-destination-email.php:82
|
2406 |
+
msgid "PHP: mail()"
|
2407 |
+
msgstr ""
|
2408 |
+
|
2409 |
+
#: ../inc/class-destination-email.php:83
|
2410 |
+
msgid "Sendmail"
|
2411 |
+
msgstr ""
|
2412 |
+
|
2413 |
+
#: ../inc/class-destination-email.php:84
|
2414 |
+
msgid "SMTP"
|
2415 |
+
msgstr ""
|
2416 |
+
|
2417 |
+
#: ../inc/class-destination-email.php:91
|
2418 |
+
msgid "Sendmail path"
|
2419 |
+
msgstr ""
|
2420 |
+
|
2421 |
+
#: ../inc/class-destination-email.php:99
|
2422 |
+
msgid "SMTP host name"
|
2423 |
+
msgstr ""
|
2424 |
+
|
2425 |
+
#: ../inc/class-destination-email.php:110
|
2426 |
+
msgid "SMTP secure connection"
|
2427 |
+
msgstr ""
|
2428 |
+
|
2429 |
+
#: ../inc/class-destination-email.php:115
|
2430 |
+
msgid "SSL"
|
2431 |
+
msgstr ""
|
2432 |
+
|
2433 |
+
#: ../inc/class-destination-email.php:116
|
2434 |
+
msgid "TLS"
|
2435 |
+
msgstr ""
|
2436 |
+
|
2437 |
+
#: ../inc/class-destination-email.php:121
|
2438 |
+
msgid "SMTP username"
|
2439 |
+
msgstr ""
|
2440 |
+
|
2441 |
+
#: ../inc/class-destination-email.php:128
|
2442 |
+
msgid "SMTP password"
|
2443 |
+
msgstr ""
|
2444 |
+
|
2445 |
+
#: ../inc/class-destination-email.php:204
|
2446 |
+
#, php-format
|
2447 |
+
msgid "%d. Try to send backup with email …"
|
2448 |
+
msgstr ""
|
2449 |
+
|
2450 |
+
#: ../inc/class-destination-email.php:209
|
2451 |
+
msgid "Backup archive too big to be sent by email!"
|
2452 |
+
msgstr ""
|
2453 |
+
|
2454 |
+
#: ../inc/class-destination-email.php:216
|
2455 |
+
#, php-format
|
2456 |
+
msgid "Sending email to %s…"
|
2457 |
+
msgstr ""
|
2458 |
+
|
2459 |
+
#: ../inc/class-destination-email.php:292
|
2460 |
+
#, php-format
|
2461 |
+
msgid "BackWPup archive from %1$s: %2$s"
|
2462 |
+
msgstr ""
|
2463 |
+
|
2464 |
+
#: ../inc/class-destination-email.php:295
|
2465 |
+
#, php-format
|
2466 |
+
msgid "Backup archive: %s"
|
2467 |
+
msgstr ""
|
2468 |
+
|
2469 |
+
#: ../inc/class-destination-email.php:309 ../inc/class-destination-email.php:431
|
2470 |
+
msgid "Error while sending email!"
|
2471 |
+
msgstr ""
|
2472 |
+
|
2473 |
+
#: ../inc/class-destination-email.php:315 ../inc/class-destination-email.php:433
|
2474 |
+
msgid "Email sent."
|
2475 |
+
msgstr ""
|
2476 |
+
|
2477 |
+
#: ../inc/class-destination-email.php:415
|
2478 |
+
msgid "BackWPup archive sending TEST Message"
|
2479 |
+
msgstr ""
|
2480 |
+
|
2481 |
+
#: ../inc/class-destination-email.php:418
|
2482 |
+
msgid ""
|
2483 |
+
"If this message reaches your inbox, sending backup archives via email should "
|
2484 |
+
"work for you."
|
2485 |
+
msgstr ""
|
2486 |
+
|
2487 |
+
#: ../inc/class-help.php:15
|
2488 |
+
msgid "Plugin Info"
|
2489 |
+
msgstr ""
|
2490 |
+
|
2491 |
+
#: ../inc/class-help.php:17
|
2492 |
+
#, php-format
|
2493 |
+
msgctxt "Plugin name and link; Plugin Version"
|
2494 |
+
msgid ""
|
2495 |
+
"%1$s version %2$s. A project by <a href=\"http://inpsyde.com\">Inpsyde "
|
2496 |
+
"GmbH</a>."
|
2497 |
+
msgstr ""
|
2498 |
+
|
2499 |
+
#: ../inc/class-help.php:18
|
2500 |
+
msgid ""
|
2501 |
+
"BackWPup comes with ABSOLUTELY NO WARRANTY. This is a free software, and you "
|
2502 |
+
"are welcome to redistribute it under certain conditions."
|
2503 |
+
msgstr ""
|
2504 |
+
|
2505 |
+
#: ../inc/class-help.php:21
|
2506 |
+
msgid "For more information:"
|
2507 |
+
msgstr ""
|
2508 |
+
|
2509 |
+
#: ../inc/class-help.php:23
|
2510 |
+
msgid "Plugin on wordpress.org"
|
2511 |
+
msgstr ""
|
2512 |
+
|
2513 |
+
#: ../inc/class-help.php:24
|
2514 |
+
msgid "https://marketpress.com/news/"
|
2515 |
+
msgstr ""
|
2516 |
+
|
2517 |
+
#: ../inc/class-help.php:24
|
2518 |
+
msgid "News"
|
2519 |
+
msgstr ""
|
2520 |
+
|
2521 |
+
#: ../inc/class-help.php:29
|
2522 |
+
msgid "Manual"
|
2523 |
+
msgstr ""
|
2524 |
+
|
2525 |
+
#: ../inc/class-destination-rsc.php:41
|
2526 |
+
msgid "Rack Space Cloud Keys"
|
2527 |
+
msgstr ""
|
2528 |
+
|
2529 |
+
#: ../inc/class-destination-rsc.php:52
|
2530 |
+
msgid "API Key"
|
2531 |
+
msgstr ""
|
2532 |
+
|
2533 |
+
#: ../inc/class-destination-rsc.php:60
|
2534 |
+
msgid "Select region"
|
2535 |
+
msgstr ""
|
2536 |
+
|
2537 |
+
#: ../inc/class-destination-rsc.php:64 ../inc/class-destination-rsc.php:66 ..
|
2538 |
+
#: /inc/pro/class-destination-rsc.php:30
|
2539 |
+
msgid "Rackspace Cloud Files Region"
|
2540 |
+
msgstr ""
|
2541 |
+
|
2542 |
+
#: ../inc/class-destination-rsc.php:67 ../inc/pro/class-destination-rsc.php:31
|
2543 |
+
msgid "Dallas (DFW)"
|
2544 |
+
msgstr ""
|
2545 |
+
|
2546 |
+
#: ../inc/class-destination-rsc.php:68 ../inc/pro/class-destination-rsc.php:32
|
2547 |
+
msgid "Chicago (ORD)"
|
2548 |
+
msgstr ""
|
2549 |
+
|
2550 |
+
#: ../inc/class-destination-rsc.php:69 ../inc/pro/class-destination-rsc.php:33
|
2551 |
+
msgid "Sydney (SYD)"
|
2552 |
+
msgstr ""
|
2553 |
+
|
2554 |
+
#: ../inc/class-destination-rsc.php:70 ../inc/pro/class-destination-rsc.php:34
|
2555 |
+
msgid "London (LON)"
|
2556 |
+
msgstr ""
|
2557 |
+
|
2558 |
+
#: ../inc/class-destination-rsc.php:71 ../inc/pro/class-destination-rsc.php:35
|
2559 |
+
msgid "Northern Virginia (IAD)"
|
2560 |
+
msgstr ""
|
2561 |
+
|
2562 |
+
#: ../inc/class-destination-rsc.php:72 ../inc/pro/class-destination-rsc.php:36
|
2563 |
+
msgid "Hong Kong (HKG)"
|
2564 |
+
msgstr ""
|
2565 |
+
|
2566 |
+
#: ../inc/class-destination-rsc.php:155 ../inc/pro/class-destination-rsc.php:105
|
2567 |
+
#, php-format
|
2568 |
+
msgid "Rackspace Cloud container \"%s\" created."
|
2569 |
+
msgstr ""
|
2570 |
+
|
2571 |
+
#: ../inc/class-destination-rsc.php:159 ../inc/class-destination-rsc.php:267 ..
|
2572 |
+
#: /inc/class-destination-rsc.php:307 ../inc/class-destination-rsc.php:352 ..
|
2573 |
+
#: /inc/pro/class-destination-rsc.php:109 ../inc/pro/class-destination-rsc.php:
|
2574 |
+
#: 159 ../inc/pro/class-destination-rsc.php:279
|
2575 |
+
#, php-format
|
2576 |
+
msgid "Rackspace Cloud API: %s"
|
2577 |
+
msgstr ""
|
2578 |
+
|
2579 |
+
#: ../inc/class-destination-rsc.php:250
|
2580 |
+
#, php-format
|
2581 |
+
msgid "%d. Trying to send backup file to Rackspace cloud …"
|
2582 |
+
msgstr ""
|
2583 |
+
|
2584 |
+
#: ../inc/class-destination-rsc.php:264
|
2585 |
+
#, php-format
|
2586 |
+
msgid "Connected to Rackspace cloud files container %s"
|
2587 |
+
msgstr ""
|
2588 |
+
|
2589 |
+
#: ../inc/class-destination-rsc.php:276
|
2590 |
+
msgid "Upload to Rackspace cloud started …"
|
2591 |
+
msgstr ""
|
2592 |
+
|
2593 |
+
#: ../inc/class-destination-rsc.php:295
|
2594 |
+
msgid "Backup File transferred to RSC://"
|
2595 |
+
msgstr ""
|
2596 |
+
|
2597 |
+
#: ../inc/class-destination-rsc.php:301
|
2598 |
+
msgid "Cannot transfer backup to Rackspace cloud."
|
2599 |
+
msgstr ""
|
2600 |
+
|
2601 |
+
#: ../inc/class-destination-rsc.php:346
|
2602 |
+
#, php-format
|
2603 |
+
msgid "One file deleted on Rackspace cloud container."
|
2604 |
+
msgid_plural "%d files deleted on Rackspace cloud container."
|
2605 |
+
msgstr[0] ""
|
2606 |
+
msgstr[1] ""
|
2607 |
+
|
2608 |
+
#: ../inc/class-destination-rsc.php:449
|
2609 |
+
msgid "Missing username!"
|
2610 |
+
msgstr ""
|
2611 |
+
|
2612 |
+
#: ../inc/class-destination-rsc.php:451
|
2613 |
+
msgid "Missing API Key!"
|
2614 |
+
msgstr ""
|
2615 |
+
|
2616 |
+
#: ../inc/class-destination-rsc.php:455
|
2617 |
+
msgid "A container could not be found!"
|
2618 |
+
msgstr ""
|
2619 |
+
|
2620 |
+
#: ../inc/class-adminbar.php:55
|
2621 |
+
msgid "running"
|
2622 |
+
msgstr ""
|
2623 |
+
|
2624 |
+
#: ../inc/class-adminbar.php:71
|
2625 |
+
msgid "Now Running"
|
2626 |
+
msgstr ""
|
2627 |
+
|
2628 |
+
#: ../inc/class-adminbar.php:77
|
2629 |
+
msgid "Abort!"
|
2630 |
+
msgstr ""
|
2631 |
+
|
2632 |
+
#: ../inc/class-adminbar.php:132
|
2633 |
+
msgid "Run Now"
|
2634 |
+
msgstr ""
|
2635 |
+
|
2636 |
+
#: ../inc/class-page-settings.php:60
|
2637 |
+
msgid "Settings reset to default"
|
2638 |
+
msgstr ""
|
2639 |
+
|
2640 |
+
#: ../inc/class-page-settings.php:107
|
2641 |
+
msgid "Settings saved"
|
2642 |
+
msgstr ""
|
2643 |
+
|
2644 |
+
#: ../inc/class-page-settings.php:118
|
2645 |
+
#, php-format
|
2646 |
+
msgid "%s Settings"
|
2647 |
+
msgstr ""
|
2648 |
+
|
2649 |
+
#: ../inc/class-page-settings.php:120 ../inc/class-page-editjob.php:389
|
2650 |
+
msgid "General"
|
2651 |
+
msgstr ""
|
2652 |
+
|
2653 |
+
#: ../inc/class-page-settings.php:120
|
2654 |
+
msgid "Network"
|
2655 |
+
msgstr ""
|
2656 |
+
|
2657 |
+
#: ../inc/class-page-settings.php:120
|
2658 |
+
msgid "API Keys"
|
2659 |
+
msgstr ""
|
2660 |
+
|
2661 |
+
#: ../inc/class-page-settings.php:120
|
2662 |
+
msgid "Information"
|
2663 |
+
msgstr ""
|
2664 |
+
|
2665 |
+
#: ../inc/class-page-settings.php:137
|
2666 |
+
msgid "Display Settings"
|
2667 |
+
msgstr ""
|
2668 |
+
|
2669 |
+
#: ../inc/class-page-settings.php:138
|
2670 |
+
msgid "Do you want to see BackWPup in the WordPress admin bar?"
|
2671 |
+
msgstr ""
|
2672 |
+
|
2673 |
+
#: ../inc/class-page-settings.php:141
|
2674 |
+
msgid "Admin bar"
|
2675 |
+
msgstr ""
|
2676 |
+
|
2677 |
+
#: ../inc/class-page-settings.php:144
|
2678 |
+
msgid "Admin Bar"
|
2679 |
+
msgstr ""
|
2680 |
+
|
2681 |
+
#: ../inc/class-page-settings.php:149
|
2682 |
+
msgid "Show BackWPup links in admin bar."
|
2683 |
+
msgstr ""
|
2684 |
+
|
2685 |
+
#: ../inc/class-page-settings.php:154 ../inc/class-page-settings.php:157
|
2686 |
+
msgid "Folder sizes"
|
2687 |
+
msgstr ""
|
2688 |
+
|
2689 |
+
#: ../inc/class-page-settings.php:162
|
2690 |
+
msgid ""
|
2691 |
+
"Display folder sizes in the files tab when editing a job. (Might increase "
|
2692 |
+
"loading time of files tab.)"
|
2693 |
+
msgstr ""
|
2694 |
+
|
2695 |
+
#: ../inc/class-page-settings.php:167
|
2696 |
+
msgid "Security"
|
2697 |
+
msgstr ""
|
2698 |
+
|
2699 |
+
#: ../inc/class-page-settings.php:168
|
2700 |
+
msgid "Security option for BackWPup"
|
2701 |
+
msgstr ""
|
2702 |
+
|
2703 |
+
#: ../inc/class-page-settings.php:171 ../inc/class-page-settings.php:174
|
2704 |
+
msgid "Protect folders"
|
2705 |
+
msgstr ""
|
2706 |
+
|
2707 |
+
#: ../inc/class-page-settings.php:179
|
2708 |
+
msgid ""
|
2709 |
+
"Protect BackWPup folders ( Temp, Log and Backups ) with <code>."
|
2710 |
+
"htaccess</code> and <code>index.php</code>"
|
2711 |
+
msgstr ""
|
2712 |
+
|
2713 |
+
#: ../inc/class-page-settings.php:192
|
2714 |
+
msgid ""
|
2715 |
+
"Every time BackWPup runs a backup job, a log file is being generated. Choose "
|
2716 |
+
"where to store your log files and how many of them."
|
2717 |
+
msgstr ""
|
2718 |
+
|
2719 |
+
#: ../inc/class-page-settings.php:195
|
2720 |
+
msgid "Log file folder"
|
2721 |
+
msgstr ""
|
2722 |
+
|
2723 |
+
#: ../inc/class-page-settings.php:197
|
2724 |
+
msgid ""
|
2725 |
+
"You can use absolute or relative path! Relative path is relative to "
|
2726 |
+
"WP_CONTENT_DIR."
|
2727 |
+
msgstr ""
|
2728 |
+
|
2729 |
+
#: ../inc/class-page-settings.php:203
|
2730 |
+
msgid "Maximum number of log files in folder"
|
2731 |
+
msgstr ""
|
2732 |
+
|
2733 |
+
#: ../inc/class-page-settings.php:206
|
2734 |
+
msgid "Oldest files will be deleted first."
|
2735 |
+
msgstr ""
|
2736 |
+
|
2737 |
+
#: ../inc/class-page-settings.php:211 ../inc/class-page-settings.php:214
|
2738 |
+
msgid "Compression"
|
2739 |
+
msgstr ""
|
2740 |
+
|
2741 |
+
#: ../inc/class-page-settings.php:219
|
2742 |
+
msgid "Compress log files with GZip."
|
2743 |
+
msgstr ""
|
2744 |
+
|
2745 |
+
#: ../inc/class-page-settings.php:224 ../inc/class-page-settings.php:227
|
2746 |
+
msgid "Logging Level"
|
2747 |
+
msgstr ""
|
2748 |
+
|
2749 |
+
#: ../inc/class-page-settings.php:230
|
2750 |
+
msgid ""
|
2751 |
+
"Debug log has much more informations than normal logs. It is for support and "
|
2752 |
+
"should be handled carefully. For support is the best to use a not translated "
|
2753 |
+
"log file. Usage of not translated logs can reduce the PHP memory usage."
|
2754 |
+
msgstr ""
|
2755 |
+
|
2756 |
+
#: ../inc/class-page-settings.php:231
|
2757 |
+
msgid "Normal (translated)"
|
2758 |
+
msgstr ""
|
2759 |
+
|
2760 |
+
#: ../inc/class-page-settings.php:232
|
2761 |
+
msgid "Normal (not translated)"
|
2762 |
+
msgstr ""
|
2763 |
+
|
2764 |
+
#: ../inc/class-page-settings.php:233
|
2765 |
+
msgid "Debug (translated)"
|
2766 |
+
msgstr ""
|
2767 |
+
|
2768 |
+
#: ../inc/class-page-settings.php:234
|
2769 |
+
msgid "Debug (not translated)"
|
2770 |
+
msgstr ""
|
2771 |
+
|
2772 |
+
#: ../inc/class-page-settings.php:245
|
2773 |
+
msgid "There are a couple of general options for backup jobs. Set them here."
|
2774 |
+
msgstr ""
|
2775 |
+
|
2776 |
+
#: ../inc/class-page-settings.php:249
|
2777 |
+
msgid "Maximum number of retries for job steps"
|
2778 |
+
msgstr ""
|
2779 |
+
|
2780 |
+
#: ../inc/class-page-settings.php:257
|
2781 |
+
msgid "Maximum script execution time"
|
2782 |
+
msgstr ""
|
2783 |
+
|
2784 |
+
#: ../inc/class-page-settings.php:260
|
2785 |
+
msgid "Maximum PHP Script execution time"
|
2786 |
+
msgstr ""
|
2787 |
+
|
2788 |
+
#: ../inc/class-page-settings.php:263
|
2789 |
+
msgid ""
|
2790 |
+
"Job will restart before hitting maximum execution time. It will not work "
|
2791 |
+
"with CLI and not on every step during execution. If "
|
2792 |
+
"<code>ALTERNATE_WP_CRON</code> has been defined, WordPress Cron will be used."
|
2793 |
+
msgstr ""
|
2794 |
+
|
2795 |
+
#: ../inc/class-page-settings.php:265
|
2796 |
+
msgid "seconds. 0 = disabled."
|
2797 |
+
msgstr ""
|
2798 |
+
|
2799 |
+
#: ../inc/class-page-settings.php:271 ../inc/class-page-settings.php:274
|
2800 |
+
msgid "Method for creating ZIP-file archives"
|
2801 |
+
msgstr ""
|
2802 |
+
|
2803 |
+
#: ../inc/class-page-settings.php:277
|
2804 |
+
msgid ""
|
2805 |
+
"Auto = Uses PHP class ZipArchive if available; otherwise uses PclZip.<br "
|
2806 |
+
"/>ZipArchive = Uses less memory, but many open files at a time.<br />PclZip "
|
2807 |
+
"= Uses more memory, but only 2 open files at a time."
|
2808 |
+
msgstr ""
|
2809 |
+
|
2810 |
+
#: ../inc/class-page-settings.php:278
|
2811 |
+
msgid "Auto"
|
2812 |
+
msgstr ""
|
2813 |
+
|
2814 |
+
#: ../inc/class-page-settings.php:279
|
2815 |
+
msgid "ZipArchive"
|
2816 |
+
msgstr ""
|
2817 |
+
|
2818 |
+
#: ../inc/class-page-settings.php:280
|
2819 |
+
msgid "PclZip"
|
2820 |
+
msgstr ""
|
2821 |
+
|
2822 |
+
#: ../inc/class-page-settings.php:288
|
2823 |
+
msgid "Key to start jobs externally with an URL"
|
2824 |
+
msgstr ""
|
2825 |
+
|
2826 |
+
#: ../inc/class-page-settings.php:291
|
2827 |
+
msgid ""
|
2828 |
+
"empty = deactivated. Will be used to protect job starts from unauthorized "
|
2829 |
+
"person."
|
2830 |
+
msgstr ""
|
2831 |
+
|
2832 |
+
#: ../inc/class-page-settings.php:296 ../inc/class-page-settings.php:299
|
2833 |
+
msgid "Reduce server load"
|
2834 |
+
msgstr ""
|
2835 |
+
|
2836 |
+
#: ../inc/class-page-settings.php:302
|
2837 |
+
msgid ""
|
2838 |
+
"This adds short pauses to the process. Can be used to reduce the CPU load."
|
2839 |
+
"<br /> Disabled = off<br /> minimum = shortest sleep<br /> medium = middle "
|
2840 |
+
"between minimum and maximum<br /> maximum = longest sleep<br />"
|
2841 |
+
msgstr ""
|
2842 |
+
|
2843 |
+
#: ../inc/class-page-settings.php:303
|
2844 |
+
msgid "disabled"
|
2845 |
+
msgstr ""
|
2846 |
+
|
2847 |
+
#: ../inc/class-page-settings.php:304
|
2848 |
+
msgid "minimum"
|
2849 |
+
msgstr ""
|
2850 |
+
|
2851 |
+
#: ../inc/class-page-settings.php:305
|
2852 |
+
msgid "medium"
|
2853 |
+
msgstr ""
|
2854 |
+
|
2855 |
+
#: ../inc/class-page-settings.php:306
|
2856 |
+
msgid "maximum"
|
2857 |
+
msgstr ""
|
2858 |
+
|
2859 |
+
#: ../inc/class-page-settings.php:313
|
2860 |
+
msgid "Empty output on working"
|
2861 |
+
msgstr ""
|
2862 |
+
|
2863 |
+
#: ../inc/class-page-settings.php:316 ../inc/class-page-settings.php:321
|
2864 |
+
msgid "Enable an empty Output on backup working."
|
2865 |
+
msgstr ""
|
2866 |
+
|
2867 |
+
#: ../inc/class-page-settings.php:319
|
2868 |
+
msgid ""
|
2869 |
+
"This do an empty output on job working. This can help in some situations or "
|
2870 |
+
"can brake the working. You must test it."
|
2871 |
+
msgstr ""
|
2872 |
+
|
2873 |
+
#: ../inc/class-page-settings.php:332
|
2874 |
+
#, php-format
|
2875 |
+
msgid "Authentication for <code>%s</code>"
|
2876 |
+
msgstr ""
|
2877 |
+
|
2878 |
+
#: ../inc/class-page-settings.php:333
|
2879 |
+
msgid ""
|
2880 |
+
"If you protected your blog with HTTP basic authentication (.htaccess), or "
|
2881 |
+
"you use a Plugin to secure wp-cron.php, than use the authentication methods "
|
2882 |
+
"below."
|
2883 |
+
msgstr ""
|
2884 |
+
|
2885 |
+
#: ../inc/class-page-settings.php:339 ../inc/class-page-settings.php:342
|
2886 |
+
msgid "Authentication method"
|
2887 |
+
msgstr ""
|
2888 |
+
|
2889 |
+
#: ../inc/class-page-settings.php:346
|
2890 |
+
msgid "Basic auth"
|
2891 |
+
msgstr ""
|
2892 |
+
|
2893 |
+
#: ../inc/class-page-settings.php:347
|
2894 |
+
msgid "WordPress User"
|
2895 |
+
msgstr ""
|
2896 |
+
|
2897 |
+
#: ../inc/class-page-settings.php:348
|
2898 |
+
msgid "Query argument"
|
2899 |
+
msgstr ""
|
2900 |
+
|
2901 |
+
#: ../inc/class-page-settings.php:355
|
2902 |
+
msgid "Basic Auth Username:"
|
2903 |
+
msgstr ""
|
2904 |
+
|
2905 |
+
#: ../inc/class-page-settings.php:363
|
2906 |
+
msgid "Basic Auth Password:"
|
2907 |
+
msgstr ""
|
2908 |
+
|
2909 |
+
#: ../inc/class-page-settings.php:370 ../inc/class-page-settings.php:373
|
2910 |
+
msgid "Select WordPress User"
|
2911 |
+
msgstr ""
|
2912 |
+
|
2913 |
+
#: ../inc/class-page-settings.php:389
|
2914 |
+
msgid "Query arg key=value:"
|
2915 |
+
msgstr ""
|
2916 |
+
|
2917 |
+
#: ../inc/class-page-settings.php:409 ../inc/class-page-settings.php:410
|
2918 |
+
msgid "Setting"
|
2919 |
+
msgstr ""
|
2920 |
+
|
2921 |
+
#: ../inc/class-page-settings.php:409 ../inc/class-page-settings.php:410
|
2922 |
+
msgid "Value"
|
2923 |
+
msgstr ""
|
2924 |
+
|
2925 |
+
#: ../inc/class-page-settings.php:411
|
2926 |
+
msgid "WordPress version"
|
2927 |
+
msgstr ""
|
2928 |
+
|
2929 |
+
#: ../inc/class-page-settings.php:413
|
2930 |
+
msgid "BackWPup version"
|
2931 |
+
msgstr ""
|
2932 |
+
|
2933 |
+
#: ../inc/class-page-settings.php:413
|
2934 |
+
msgid "Get pro."
|
2935 |
+
msgstr ""
|
2936 |
+
|
2937 |
+
#: ../inc/class-page-settings.php:415
|
2938 |
+
msgid "BackWPup Pro version"
|
2939 |
+
msgstr ""
|
2940 |
+
|
2941 |
+
#: ../inc/class-page-settings.php:423
|
2942 |
+
msgid "PHP version"
|
2943 |
+
msgstr ""
|
2944 |
+
|
2945 |
+
#: ../inc/class-page-settings.php:424
|
2946 |
+
msgid "MySQL version"
|
2947 |
+
msgstr ""
|
2948 |
+
|
2949 |
+
#: ../inc/class-page-settings.php:427 ../inc/class-page-settings.php:431
|
2950 |
+
msgid "cURL version"
|
2951 |
+
msgstr ""
|
2952 |
+
|
2953 |
+
#: ../inc/class-page-settings.php:428
|
2954 |
+
msgid "cURL SSL version"
|
2955 |
+
msgstr ""
|
2956 |
+
|
2957 |
+
#: ../inc/class-page-settings.php:431
|
2958 |
+
msgid "unavailable"
|
2959 |
+
msgstr ""
|
2960 |
+
|
2961 |
+
#: ../inc/class-page-settings.php:433
|
2962 |
+
msgid "WP-Cron url:"
|
2963 |
+
msgstr ""
|
2964 |
+
|
2965 |
+
#: ../inc/class-page-settings.php:435
|
2966 |
+
msgid "Server self connect:"
|
2967 |
+
msgstr ""
|
2968 |
+
|
2969 |
+
#: ../inc/class-page-settings.php:444 ../inc/pro/class-wizard-systemtest.php:183
|
2970 |
+
#, php-format
|
2971 |
+
msgid "The BackWPup HTTP response header returns a false value: \"%s\""
|
2972 |
+
msgstr ""
|
2973 |
+
|
2974 |
+
#: ../inc/class-page-settings.php:447
|
2975 |
+
msgid "Response Test O.K."
|
2976 |
+
msgstr ""
|
2977 |
+
|
2978 |
+
#: ../inc/class-page-settings.php:452
|
2979 |
+
msgid "Temp folder:"
|
2980 |
+
msgstr ""
|
2981 |
+
|
2982 |
+
#: ../inc/class-page-settings.php:454
|
2983 |
+
#, php-format
|
2984 |
+
msgid "Temp folder %s doesn't exist."
|
2985 |
+
msgstr ""
|
2986 |
+
|
2987 |
+
#: ../inc/class-page-settings.php:456
|
2988 |
+
#, php-format
|
2989 |
+
msgid "Temporary folder %s is not writable."
|
2990 |
+
msgstr ""
|
2991 |
+
|
2992 |
+
#: ../inc/class-page-settings.php:462
|
2993 |
+
msgid "Log folder:"
|
2994 |
+
msgstr ""
|
2995 |
+
|
2996 |
+
#: ../inc/class-page-settings.php:464
|
2997 |
+
#, php-format
|
2998 |
+
msgid "Logs folder %s not exist."
|
2999 |
+
msgstr ""
|
3000 |
+
|
3001 |
+
#: ../inc/class-page-settings.php:466
|
3002 |
+
#, php-format
|
3003 |
+
msgid "Log folder %s is not writable."
|
3004 |
+
msgstr ""
|
3005 |
+
|
3006 |
+
#: ../inc/class-page-settings.php:471
|
3007 |
+
msgid "Server"
|
3008 |
+
msgstr ""
|
3009 |
+
|
3010 |
+
#: ../inc/class-page-settings.php:472
|
3011 |
+
msgid "Operating System"
|
3012 |
+
msgstr ""
|
3013 |
+
|
3014 |
+
#: ../inc/class-page-settings.php:473
|
3015 |
+
msgid "PHP SAPI"
|
3016 |
+
msgstr ""
|
3017 |
+
|
3018 |
+
#: ../inc/class-page-settings.php:474
|
3019 |
+
msgid "Current PHP user"
|
3020 |
+
msgstr ""
|
3021 |
+
|
3022 |
+
#: ../inc/class-page-settings.php:475 ../inc/class-page-settings.php:479 ..
|
3023 |
+
#: /inc/class-page-settings.php:483
|
3024 |
+
msgid "On"
|
3025 |
+
msgstr ""
|
3026 |
+
|
3027 |
+
#: ../inc/class-page-settings.php:475 ../inc/class-page-settings.php:481 ..
|
3028 |
+
#: /inc/class-page-settings.php:485
|
3029 |
+
msgid "Off"
|
3030 |
+
msgstr ""
|
3031 |
+
|
3032 |
+
#: ../inc/class-page-settings.php:476
|
3033 |
+
msgid "Safe Mode"
|
3034 |
+
msgstr ""
|
3035 |
+
|
3036 |
+
#: ../inc/class-page-settings.php:477
|
3037 |
+
msgid "Maximum execution time"
|
3038 |
+
msgstr ""
|
3039 |
+
|
3040 |
+
#: ../inc/class-page-settings.php:479 ../inc/class-page-settings.php:481
|
3041 |
+
msgid "Alternative WP Cron"
|
3042 |
+
msgstr ""
|
3043 |
+
|
3044 |
+
#: ../inc/class-page-settings.php:483 ../inc/class-page-settings.php:485
|
3045 |
+
msgid "Disabled WP Cron"
|
3046 |
+
msgstr ""
|
3047 |
+
|
3048 |
+
#: ../inc/class-page-settings.php:487 ../inc/class-page-settings.php:489
|
3049 |
+
msgid "CHMOD Dir"
|
3050 |
+
msgstr ""
|
3051 |
+
|
3052 |
+
#: ../inc/class-page-settings.php:491
|
3053 |
+
msgid "Server Time"
|
3054 |
+
msgstr ""
|
3055 |
+
|
3056 |
+
#: ../inc/class-page-settings.php:492
|
3057 |
+
msgid "Blog Time"
|
3058 |
+
msgstr ""
|
3059 |
+
|
3060 |
+
#: ../inc/class-page-settings.php:493
|
3061 |
+
msgid "Blog Timezone"
|
3062 |
+
msgstr ""
|
3063 |
+
|
3064 |
+
#: ../inc/class-page-settings.php:494
|
3065 |
+
msgid "Blog Time offset"
|
3066 |
+
msgstr ""
|
3067 |
+
|
3068 |
+
#: ../inc/class-page-settings.php:494
|
3069 |
+
#, php-format
|
3070 |
+
msgid "%s hours"
|
3071 |
+
msgstr ""
|
3072 |
+
|
3073 |
+
#: ../inc/class-page-settings.php:495
|
3074 |
+
msgid "Blog language"
|
3075 |
+
msgstr ""
|
3076 |
+
|
3077 |
+
#: ../inc/class-page-settings.php:496
|
3078 |
+
msgid "MySQL Client encoding"
|
3079 |
+
msgstr ""
|
3080 |
+
|
3081 |
+
#: ../inc/class-page-settings.php:499
|
3082 |
+
msgid "Blog charset"
|
3083 |
+
msgstr ""
|
3084 |
+
|
3085 |
+
#: ../inc/class-page-settings.php:500
|
3086 |
+
msgid "PHP Memory limit"
|
3087 |
+
msgstr ""
|
3088 |
+
|
3089 |
+
#: ../inc/class-page-settings.php:501
|
3090 |
+
msgid "WP memory limit"
|
3091 |
+
msgstr ""
|
3092 |
+
|
3093 |
+
#: ../inc/class-page-settings.php:502
|
3094 |
+
msgid "WP maximum memory limit"
|
3095 |
+
msgstr ""
|
3096 |
+
|
3097 |
+
#: ../inc/class-page-settings.php:503
|
3098 |
+
msgid "Memory in use"
|
3099 |
+
msgstr ""
|
3100 |
+
|
3101 |
+
#: ../inc/class-page-settings.php:508
|
3102 |
+
msgid "Disabled PHP Functions:"
|
3103 |
+
msgstr ""
|
3104 |
+
|
3105 |
+
#: ../inc/class-page-settings.php:513
|
3106 |
+
msgid "Loaded PHP Extensions:"
|
3107 |
+
msgstr ""
|
3108 |
+
|
3109 |
+
#: ../inc/class-page-settings.php:525
|
3110 |
+
msgid "Save Changes"
|
3111 |
+
msgstr ""
|
3112 |
+
|
3113 |
+
#: ../inc/class-page-settings.php:527
|
3114 |
+
msgid "Reset all settings to default"
|
3115 |
+
msgstr ""
|
3116 |
+
|
3117 |
+
#: ../inc/class-page-backups.php:182
|
3118 |
+
msgid "No files could be found. (List will be generated during next backup.)"
|
3119 |
+
msgstr ""
|
3120 |
+
|
3121 |
+
#: ../inc/class-page-backups.php:228
|
3122 |
+
msgid "Change destination"
|
3123 |
+
msgstr ""
|
3124 |
+
|
3125 |
+
#: ../inc/class-page-backups.php:268
|
3126 |
+
msgid "File"
|
3127 |
+
msgstr ""
|
3128 |
+
|
3129 |
+
#: ../inc/class-page-backups.php:313
|
3130 |
+
msgid ""
|
3131 |
+
"You are about to delete this backup archive. \n"
|
3132 |
+
" 'Cancel' to stop, 'OK' to delete."
|
3133 |
+
msgstr ""
|
3134 |
+
|
3135 |
+
#: ../inc/class-page-backups.php:346
|
3136 |
+
msgid "?"
|
3137 |
+
msgstr ""
|
3138 |
+
|
3139 |
+
#: ../inc/class-page-backups.php:438
|
3140 |
+
msgid "Backup Files"
|
3141 |
+
msgstr ""
|
3142 |
+
|
3143 |
+
#: ../inc/class-page-backups.php:486
|
3144 |
+
#, php-format
|
3145 |
+
msgid "%s Manage Backup Archives"
|
3146 |
+
msgstr ""
|
3147 |
+
|
3148 |
+
#: ../inc/class-jobtype-dbcheck.php:13
|
3149 |
+
msgid "DB Check"
|
3150 |
+
msgstr ""
|
3151 |
+
|
3152 |
+
#: ../inc/class-jobtype-dbcheck.php:14
|
3153 |
+
msgid "Check database tables"
|
3154 |
+
msgstr ""
|
3155 |
+
|
3156 |
+
#: ../inc/class-jobtype-dbcheck.php:35 ../inc/pro/class-jobtype-dbcheck.php:16
|
3157 |
+
msgid "Settings for database check"
|
3158 |
+
msgstr ""
|
3159 |
+
|
3160 |
+
#: ../inc/class-jobtype-dbcheck.php:39
|
3161 |
+
msgid "WordPress tables only"
|
3162 |
+
msgstr ""
|
3163 |
+
|
3164 |
+
#: ../inc/class-jobtype-dbcheck.php:44
|
3165 |
+
msgid "Check WordPress database tables only"
|
3166 |
+
msgstr ""
|
3167 |
+
|
3168 |
+
#: ../inc/class-jobtype-dbcheck.php:49
|
3169 |
+
msgid "Repair"
|
3170 |
+
msgstr ""
|
3171 |
+
|
3172 |
+
#: ../inc/class-jobtype-dbcheck.php:54 ../inc/pro/class-jobtype-dbcheck.php:25
|
3173 |
+
msgid "Try to repair defect table"
|
3174 |
+
msgstr ""
|
3175 |
+
|
3176 |
+
#: ../inc/class-jobtype-dbcheck.php:79
|
3177 |
+
#, php-format
|
3178 |
+
msgid "%d. Trying to check database …"
|
3179 |
+
msgstr ""
|
3180 |
+
|
3181 |
+
#: ../inc/class-jobtype-dbcheck.php:111
|
3182 |
+
#, php-format
|
3183 |
+
msgid "Table %1$s is a view. Not checked."
|
3184 |
+
msgstr ""
|
3185 |
+
|
3186 |
+
#: ../inc/class-jobtype-dbcheck.php:116
|
3187 |
+
#, php-format
|
3188 |
+
msgid "Table %1$s is not a MyISAM/InnoDB table. Not checked."
|
3189 |
+
msgstr ""
|
3190 |
+
|
3191 |
+
#: ../inc/class-jobtype-dbcheck.php:124 ../inc/class-jobtype-dbcheck.php:127 ..
|
3192 |
+
#: /inc/class-jobtype-dbcheck.php:129
|
3193 |
+
#, php-format
|
3194 |
+
msgid "Result of table check for %1$s is: %2$s"
|
3195 |
+
msgstr ""
|
3196 |
+
|
3197 |
+
#: ../inc/class-jobtype-dbcheck.php:135 ../inc/class-jobtype-dbcheck.php:137 ..
|
3198 |
+
#: /inc/class-jobtype-dbcheck.php:139
|
3199 |
+
#, php-format
|
3200 |
+
msgid "Result of table repair for %1$s is: %2$s"
|
3201 |
+
msgstr ""
|
3202 |
+
|
3203 |
+
#: ../inc/class-jobtype-dbcheck.php:145
|
3204 |
+
msgid "Database check done!"
|
3205 |
+
msgstr ""
|
3206 |
+
|
3207 |
+
#: ../inc/class-jobtype-dbcheck.php:148
|
3208 |
+
msgid "No tables to check."
|
3209 |
+
msgstr ""
|
3210 |
+
|
3211 |
+
#: ../inc/class-mysqldump.php:60
|
3212 |
+
msgid "No MySQLi extension found. Please install it."
|
3213 |
+
msgstr ""
|
3214 |
+
|
3215 |
+
#: ../inc/class-mysqldump.php:100 ../inc/pro/class-jobtype-dbdump.php:808
|
3216 |
+
msgid "Cannot init MySQLi database connection"
|
3217 |
+
msgstr ""
|
3218 |
+
|
3219 |
+
#: ../inc/class-mysqldump.php:105 ../inc/pro/class-jobtype-dbdump.php:814
|
3220 |
+
msgid "Setting of MySQLi connection timeout failed"
|
3221 |
+
msgstr ""
|
3222 |
+
|
3223 |
+
#: ../inc/class-mysqldump.php:110 ../inc/pro/class-jobtype-dbdump.php:820
|
3224 |
+
#, php-format
|
3225 |
+
msgid "Cannot connect to MySQL database %1$d: %2$s"
|
3226 |
+
msgstr ""
|
3227 |
+
|
3228 |
+
#: ../inc/class-mysqldump.php:117
|
3229 |
+
#, php-format
|
3230 |
+
msgctxt "Database Charset"
|
3231 |
+
msgid "Cannot set DB charset to %s error: %s"
|
3232 |
+
msgstr ""
|
3233 |
+
|
3234 |
+
#: ../inc/class-mysqldump.php:146
|
3235 |
+
msgid "Cannot open SQL backup file"
|
3236 |
+
msgstr ""
|
3237 |
+
|
3238 |
+
#: ../inc/class-mysqldump.php:153 ../inc/class-mysqldump.php:164 ../inc/class-
|
3239 |
+
#: mysqldump.php:257 ../inc/class-mysqldump.php:270 ../inc/class-mysqldump.php:
|
3240 |
+
#: 285 ../inc/class-mysqldump.php:298 ../inc/class-mysqldump.php:344 ../inc/class-
|
3241 |
+
#: mysqldump.php:368 ../inc/class-mysqldump.php:406 ../inc/class-mysqldump.php:
|
3242 |
+
#: 463 ../inc/pro/class-jobtype-dbdump.php:836 ../inc/pro/class-jobtype-dbdump.
|
3243 |
+
#: php:850 ../inc/pro/class-jobtype-dbdump.php:898 ../inc/pro/class-jobtype-
|
3244 |
+
#: dbdump.php:917 ../inc/pro/class-jobtype-dbdump.php:960
|
3245 |
+
#, php-format
|
3246 |
+
msgid "Database error %1$s for query %2$s"
|
3247 |
+
msgstr ""
|
3248 |
+
|
3249 |
+
#: ../inc/class-mysqldump.php:442
|
3250 |
+
#, php-format
|
3251 |
+
msgid "Start for table backup is not correctly set: %1$s"
|
3252 |
+
msgstr ""
|
3253 |
+
|
3254 |
+
#: ../inc/class-mysqldump.php:446
|
3255 |
+
#, php-format
|
3256 |
+
msgid "Length for table backup is not correctly set: %1$s"
|
3257 |
+
msgstr ""
|
3258 |
+
|
3259 |
+
#: ../inc/class-mysqldump.php:521
|
3260 |
+
msgid "Error while writing file!"
|
3261 |
+
msgstr ""
|
3262 |
+
|
3263 |
+
#: ../inc/class-job.php:176
|
3264 |
+
msgid "Starting job"
|
3265 |
+
msgstr ""
|
3266 |
+
|
3267 |
+
#: ../inc/class-job.php:193
|
3268 |
+
msgid "Job Start"
|
3269 |
+
msgstr ""
|
3270 |
+
|
3271 |
+
#: ../inc/class-job.php:213
|
3272 |
+
msgid "Creates manifest file"
|
3273 |
+
msgstr ""
|
3274 |
+
|
3275 |
+
#: ../inc/class-job.php:235
|
3276 |
+
msgid "Creates archive"
|
3277 |
+
msgstr ""
|
3278 |
+
|
3279 |
+
#: ../inc/class-job.php:274
|
3280 |
+
msgid "End of Job"
|
3281 |
+
msgstr ""
|
3282 |
+
|
3283 |
+
#: ../inc/class-job.php:291
|
3284 |
+
#, php-format
|
3285 |
+
msgid "BackWPup log for %1$s from %2$s at %3$s"
|
3286 |
+
msgstr ""
|
3287 |
+
|
3288 |
+
#: ../inc/class-job.php:310
|
3289 |
+
#, php-format
|
3290 |
+
msgctxt "Plugin name; Plugin Version; plugin url"
|
3291 |
+
msgid "[INFO] %1$s %2$s; A project of Inpsyde GmbH"
|
3292 |
+
msgstr ""
|
3293 |
+
|
3294 |
+
#: ../inc/class-job.php:312
|
3295 |
+
#, php-format
|
3296 |
+
msgctxt "WordPress Version; Blog url"
|
3297 |
+
msgid "[INFO] WordPress %1$s on %2$s"
|
3298 |
+
msgstr ""
|
3299 |
+
|
3300 |
+
#: ../inc/class-job.php:318
|
3301 |
+
#, php-format
|
3302 |
+
msgid "[INFO] BackWPup job: %1$s"
|
3303 |
+
msgstr ""
|
3304 |
+
|
3305 |
+
#: ../inc/class-job.php:321
|
3306 |
+
#, php-format
|
3307 |
+
msgid "[INFO] Runs with user: %1$s (%2$d) "
|
3308 |
+
msgstr ""
|
3309 |
+
|
3310 |
+
#: ../inc/class-job.php:339 ../inc/class-job.php:351
|
3311 |
+
#, php-format
|
3312 |
+
msgid "[INFO] Cron: %s; Next: %s "
|
3313 |
+
msgstr ""
|
3314 |
+
|
3315 |
+
#: ../inc/class-job.php:343
|
3316 |
+
msgid "[INFO] BackWPup job start with link is active"
|
3317 |
+
msgstr ""
|
3318 |
+
|
3319 |
+
#: ../inc/class-job.php:346
|
3320 |
+
msgid "[INFO] BackWPup job start with EasyCron.com"
|
3321 |
+
msgstr ""
|
3322 |
+
|
3323 |
+
#: ../inc/class-job.php:355
|
3324 |
+
msgid "[INFO] BackWPup no automatic job start configured"
|
3325 |
+
msgstr ""
|
3326 |
+
|
3327 |
+
#: ../inc/class-job.php:359
|
3328 |
+
msgid "[INFO] BackWPup job started from wp-cron"
|
3329 |
+
msgstr ""
|
3330 |
+
|
3331 |
+
#: ../inc/class-job.php:361
|
3332 |
+
msgid "[INFO] BackWPup job started manually"
|
3333 |
+
msgstr ""
|
3334 |
+
|
3335 |
+
#: ../inc/class-job.php:363
|
3336 |
+
msgid "[INFO] BackWPup job started from external url"
|
3337 |
+
msgstr ""
|
3338 |
+
|
3339 |
+
#: ../inc/class-job.php:365
|
3340 |
+
msgid "[INFO] BackWPup job started form commandline interface"
|
3341 |
+
msgstr ""
|
3342 |
+
|
3343 |
+
#: ../inc/class-job.php:374
|
3344 |
+
msgid "[INFO] PHP ver.:"
|
3345 |
+
msgstr ""
|
3346 |
+
|
3347 |
+
#: ../inc/class-job.php:375
|
3348 |
+
#, php-format
|
3349 |
+
msgid "[INFO] Maximum PHP script execution time is %1$d seconds"
|
3350 |
+
msgstr ""
|
3351 |
+
|
3352 |
+
#: ../inc/class-job.php:379
|
3353 |
+
#, php-format
|
3354 |
+
msgid "[INFO] Script restart time is configured to %1$d seconds"
|
3355 |
+
msgstr ""
|
3356 |
+
|
3357 |
+
#: ../inc/class-job.php:382
|
3358 |
+
#, php-format
|
3359 |
+
msgid "[INFO] MySQL ver.: %s"
|
3360 |
+
msgstr ""
|
3361 |
+
|
3362 |
+
#: ../inc/class-job.php:384
|
3363 |
+
#, php-format
|
3364 |
+
msgid "[INFO] Web Server: %s"
|
3365 |
+
msgstr ""
|
3366 |
+
|
3367 |
+
#: ../inc/class-job.php:387
|
3368 |
+
#, php-format
|
3369 |
+
msgid "[INFO] curl ver.: %1$s; %2$s"
|
3370 |
+
msgstr ""
|
3371 |
+
|
3372 |
+
#: ../inc/class-job.php:389
|
3373 |
+
#, php-format
|
3374 |
+
msgid "[INFO] Temp folder is: %s"
|
3375 |
+
msgstr ""
|
3376 |
+
|
3377 |
+
#: ../inc/class-job.php:396
|
3378 |
+
#, php-format
|
3379 |
+
msgid "[INFO] Logfile is: %s"
|
3380 |
+
msgstr ""
|
3381 |
+
|
3382 |
+
#: ../inc/class-job.php:403
|
3383 |
+
#, php-format
|
3384 |
+
msgid "[INFO] Backup file is: %s"
|
3385 |
+
msgstr ""
|
3386 |
+
|
3387 |
+
#: ../inc/class-job.php:405
|
3388 |
+
#, php-format
|
3389 |
+
msgid "[INFO] Backup type is: %s"
|
3390 |
+
msgstr ""
|
3391 |
+
|
3392 |
+
#: ../inc/class-job.php:413
|
3393 |
+
msgid "Could not write log file"
|
3394 |
+
msgstr ""
|
3395 |
+
|
3396 |
+
#: ../inc/class-job.php:425
|
3397 |
+
msgid "No destination correctly defined for backup! Please correct job settings."
|
3398 |
+
msgstr ""
|
3399 |
+
|
3400 |
+
#: ../inc/class-job.php:647
|
3401 |
+
msgid "Wrong BackWPup JobID"
|
3402 |
+
msgstr ""
|
3403 |
+
|
3404 |
+
#: ../inc/class-job.php:660
|
3405 |
+
msgid "A BackWPup job is already running"
|
3406 |
+
msgstr ""
|
3407 |
+
|
3408 |
+
#: ../inc/class-job.php:752
|
3409 |
+
msgid "Job restarts due to inactivity for more than 5 minutes."
|
3410 |
+
msgstr ""
|
3411 |
+
|
3412 |
+
#: ../inc/class-job.php:879
|
3413 |
+
msgid "Step aborted: too many attempts!"
|
3414 |
+
msgstr ""
|
3415 |
+
|
3416 |
+
#: ../inc/class-job.php:970
|
3417 |
+
#, php-format
|
3418 |
+
msgid "Restart after %1$d seconds."
|
3419 |
+
msgstr ""
|
3420 |
+
|
3421 |
+
#: ../inc/class-job.php:1169
|
3422 |
+
#, php-format
|
3423 |
+
msgid "Signal \"%s\" is sent to script!"
|
3424 |
+
msgstr ""
|
3425 |
+
|
3426 |
+
#: ../inc/class-job.php:1184 ../inc/class-job.php:1197
|
3427 |
+
#, php-format
|
3428 |
+
msgid "System: %s"
|
3429 |
+
msgstr ""
|
3430 |
+
|
3431 |
+
#: ../inc/class-job.php:1212
|
3432 |
+
#, php-format
|
3433 |
+
msgid "Exception caught in %1$s: %2$s"
|
3434 |
+
msgstr ""
|
3435 |
+
|
3436 |
+
#: ../inc/class-job.php:1278
|
3437 |
+
msgid "DEPRECATED:"
|
3438 |
+
msgstr ""
|
3439 |
+
|
3440 |
+
#: ../inc/class-job.php:1281
|
3441 |
+
msgid "STRICT NOTICE:"
|
3442 |
+
msgstr ""
|
3443 |
+
|
3444 |
+
#: ../inc/class-job.php:1286
|
3445 |
+
msgid "RECOVERABLE ERROR:"
|
3446 |
+
msgstr ""
|
3447 |
+
|
3448 |
+
#: ../inc/class-job.php:1436
|
3449 |
+
msgid "Cannot write progress to working file. Job will be aborted."
|
3450 |
+
msgstr ""
|
3451 |
+
|
3452 |
+
#: ../inc/class-job.php:1454
|
3453 |
+
msgid "Aborted by user!"
|
3454 |
+
msgstr ""
|
3455 |
+
|
3456 |
+
#: ../inc/class-job.php:1481
|
3457 |
+
#, php-format
|
3458 |
+
msgid "One old log deleted"
|
3459 |
+
msgid_plural "%d old logs deleted"
|
3460 |
+
msgstr[0] ""
|
3461 |
+
msgstr[1] ""
|
3462 |
+
|
3463 |
+
#: ../inc/class-job.php:1489
|
3464 |
+
#, php-format
|
3465 |
+
msgid ""
|
3466 |
+
"Job finished with warnings in %s seconds. Please resolve them for correct "
|
3467 |
+
"execution."
|
3468 |
+
msgstr ""
|
3469 |
+
|
3470 |
+
#: ../inc/class-job.php:1536
|
3471 |
+
msgid "SUCCESSFUL"
|
3472 |
+
msgstr ""
|
3473 |
+
|
3474 |
+
#: ../inc/class-job.php:1539
|
3475 |
+
msgid "WARNING"
|
3476 |
+
msgstr ""
|
3477 |
+
|
3478 |
+
#: ../inc/class-job.php:1543
|
3479 |
+
msgid "ERROR"
|
3480 |
+
msgstr ""
|
3481 |
+
|
3482 |
+
#: ../inc/class-job.php:1547
|
3483 |
+
#, php-format
|
3484 |
+
msgid "[%3$s] BackWPup log %1$s: %2$s"
|
3485 |
+
msgstr ""
|
3486 |
+
|
3487 |
+
#: ../inc/class-job.php:1921
|
3488 |
+
#, php-format
|
3489 |
+
msgctxt "Folder name"
|
3490 |
+
msgid "Folder %s not exists"
|
3491 |
+
msgstr ""
|
3492 |
+
|
3493 |
+
#: ../inc/class-job.php:1926
|
3494 |
+
#, php-format
|
3495 |
+
msgctxt "Folder name"
|
3496 |
+
msgid "Folder %s not readable"
|
3497 |
+
msgstr ""
|
3498 |
+
|
3499 |
+
#: ../inc/class-job.php:1945
|
3500 |
+
#, php-format
|
3501 |
+
msgid "Link \"%s\" not following."
|
3502 |
+
msgstr ""
|
3503 |
+
|
3504 |
+
#: ../inc/class-job.php:1947
|
3505 |
+
#, php-format
|
3506 |
+
msgid "File \"%s\" is not readable!"
|
3507 |
+
msgstr ""
|
3508 |
+
|
3509 |
+
#: ../inc/class-job.php:1951
|
3510 |
+
#, php-format
|
3511 |
+
msgid ""
|
3512 |
+
"File size of “%s” cannot be retrieved. File might be too large and will not "
|
3513 |
+
"be added to queue."
|
3514 |
+
msgstr ""
|
3515 |
+
|
3516 |
+
#: ../inc/class-job.php:1971
|
3517 |
+
#, php-format
|
3518 |
+
msgid "%d. Trying to generate a manifest file …"
|
3519 |
+
msgstr ""
|
3520 |
+
|
3521 |
+
#: ../inc/class-job.php:2021
|
3522 |
+
msgid "You may have noticed the manifest.json file in this archive."
|
3523 |
+
msgstr ""
|
3524 |
+
|
3525 |
+
#: ../inc/class-job.php:2022
|
3526 |
+
msgid "manifest.json might be needed for later restoring a backup from this archive."
|
3527 |
+
msgstr ""
|
3528 |
+
|
3529 |
+
#: ../inc/class-job.php:2023
|
3530 |
+
msgid ""
|
3531 |
+
"Please leave manifest.json untouched and in place. Otherwise it is safe to "
|
3532 |
+
"be ignored."
|
3533 |
+
msgstr ""
|
3534 |
+
|
3535 |
+
#: ../inc/class-job.php:2033
|
3536 |
+
#, php-format
|
3537 |
+
msgid "Added manifest.json file with %1$s to backup file list."
|
3538 |
+
msgstr ""
|
3539 |
+
|
3540 |
+
#: ../inc/class-job.php:2063
|
3541 |
+
#, php-format
|
3542 |
+
msgid "%d. Trying to create backup archive …"
|
3543 |
+
msgstr ""
|
3544 |
+
|
3545 |
+
#: ../inc/class-job.php:2070
|
3546 |
+
#, php-format
|
3547 |
+
msgctxt "Archive compression method"
|
3548 |
+
msgid "Compressing files as %s. Please be patient, this may take a moment."
|
3549 |
+
msgstr ""
|
3550 |
+
|
3551 |
+
#: ../inc/class-job.php:2077
|
3552 |
+
msgid "Adding Extra files to Archive"
|
3553 |
+
msgstr ""
|
3554 |
+
|
3555 |
+
#: ../inc/class-job.php:2088 ../inc/class-job.php:2146
|
3556 |
+
msgid "Cannot create backup archive correctly. Aborting creation."
|
3557 |
+
msgstr ""
|
3558 |
+
|
3559 |
+
#: ../inc/class-job.php:2103
|
3560 |
+
#, php-format
|
3561 |
+
msgid "Archiving Folder: %s"
|
3562 |
+
msgstr ""
|
3563 |
+
|
3564 |
+
#: ../inc/class-job.php:2155
|
3565 |
+
msgid "Backup archive created."
|
3566 |
+
msgstr ""
|
3567 |
+
|
3568 |
+
#: ../inc/class-job.php:2168
|
3569 |
+
msgid ""
|
3570 |
+
"The Backup archive will be too large for file operations with this PHP "
|
3571 |
+
"Version. You might want to consider splitting the backup job in multiple "
|
3572 |
+
"jobs with less files each."
|
3573 |
+
msgstr ""
|
3574 |
+
|
3575 |
+
#: ../inc/class-job.php:2172
|
3576 |
+
#, php-format
|
3577 |
+
msgid "Archive size is %s."
|
3578 |
+
msgstr ""
|
3579 |
+
|
3580 |
+
#: ../inc/class-job.php:2175
|
3581 |
+
#, php-format
|
3582 |
+
msgid "%1$d Files with %2$s in Archive."
|
3583 |
+
msgstr ""
|
3584 |
+
|
3585 |
+
#: ../inc/class-install.php:83
|
3586 |
+
msgid "BackWPup Admin"
|
3587 |
+
msgstr ""
|
3588 |
+
|
3589 |
+
#: ../inc/class-install.php:97
|
3590 |
+
msgid "BackWPup jobs checker"
|
3591 |
+
msgstr ""
|
3592 |
+
|
3593 |
+
#: ../inc/class-install.php:111
|
3594 |
+
msgid "BackWPup jobs helper"
|
3595 |
+
msgstr ""
|
3596 |
+
|
3597 |
+
#: ../inc/class-jobtype-wpexp.php:13
|
3598 |
+
msgid "XML export"
|
3599 |
+
msgstr ""
|
3600 |
+
|
3601 |
+
#: ../inc/class-jobtype-wpexp.php:46
|
3602 |
+
msgid "Items to export"
|
3603 |
+
msgstr ""
|
3604 |
+
|
3605 |
+
#: ../inc/class-jobtype-wpexp.php:49 ../inc/pro/class-jobtype-wpexp.php:20
|
3606 |
+
msgid "All content"
|
3607 |
+
msgstr ""
|
3608 |
+
|
3609 |
+
#: ../inc/class-jobtype-wpexp.php:50 ../inc/pro/class-jobtype-wpexp.php:21
|
3610 |
+
msgid "Posts"
|
3611 |
+
msgstr ""
|
3612 |
+
|
3613 |
+
#: ../inc/class-jobtype-wpexp.php:51 ../inc/pro/class-jobtype-wpexp.php:22
|
3614 |
+
msgid "Pages"
|
3615 |
+
msgstr ""
|
3616 |
+
|
3617 |
+
#: ../inc/class-jobtype-wpexp.php:61
|
3618 |
+
msgid "XML Export file name"
|
3619 |
+
msgstr ""
|
3620 |
+
|
3621 |
+
#: ../inc/class-jobtype-wpexp.php:69 ../inc/class-jobtype-wpplugin.php:53
|
3622 |
+
msgid "File compression"
|
3623 |
+
msgstr ""
|
3624 |
+
|
3625 |
+
#: ../inc/class-jobtype-wpexp.php:79 ../inc/class-jobtype-wpexp.php:81 ..
|
3626 |
+
#: /inc/class-jobtype-wpplugin.php:63 ../inc/class-jobtype-wpplugin.php:65
|
3627 |
+
msgid "BZip2"
|
3628 |
+
msgstr ""
|
3629 |
+
|
3630 |
+
#: ../inc/class-jobtype-wpexp.php:111
|
3631 |
+
#, php-format
|
3632 |
+
msgid "%d. Trying to create a WordPress export to XML file …"
|
3633 |
+
msgstr ""
|
3634 |
+
|
3635 |
+
#: ../inc/class-jobtype-wpexp.php:126
|
3636 |
+
#, php-format
|
3637 |
+
msgid "WP Export: Post type “%s” does not allow export."
|
3638 |
+
msgstr ""
|
3639 |
+
|
3640 |
+
#: ../inc/class-jobtype-wpexp.php:171 ../inc/class-jobtype-wpexp.php:185 ..
|
3641 |
+
#: /inc/class-jobtype-wpexp.php:214 ../inc/class-jobtype-wpexp.php:235 ..
|
3642 |
+
#: /inc/class-jobtype-wpexp.php:268 ../inc/class-jobtype-wpexp.php:288 ..
|
3643 |
+
#: /inc/class-jobtype-wpexp.php:378 ../inc/class-jobtype-wpexp.php:387
|
3644 |
+
msgid "WP Export file could not written."
|
3645 |
+
msgstr ""
|
3646 |
+
|
3647 |
+
#: ../inc/class-jobtype-wpexp.php:402
|
3648 |
+
msgid "Check WP Export file …"
|
3649 |
+
msgstr ""
|
3650 |
+
|
3651 |
+
#: ../inc/class-jobtype-wpexp.php:422
|
3652 |
+
#, php-format
|
3653 |
+
msgid "XML WARNING (%s): %s"
|
3654 |
+
msgstr ""
|
3655 |
+
|
3656 |
+
#: ../inc/class-jobtype-wpexp.php:425
|
3657 |
+
#, php-format
|
3658 |
+
msgid "XML RECOVERABLE (%s): %s"
|
3659 |
+
msgstr ""
|
3660 |
+
|
3661 |
+
#: ../inc/class-jobtype-wpexp.php:428
|
3662 |
+
#, php-format
|
3663 |
+
msgid "XML ERROR (%s): %s"
|
3664 |
+
msgstr ""
|
3665 |
+
|
3666 |
+
#: ../inc/class-jobtype-wpexp.php:438
|
3667 |
+
msgid "There was an error when reading this WXR file"
|
3668 |
+
msgstr ""
|
3669 |
+
|
3670 |
+
#: ../inc/class-jobtype-wpexp.php:444 ../inc/class-jobtype-wpexp.php:451
|
3671 |
+
msgid "This does not appear to be a WXR file, missing/invalid WXR version number"
|
3672 |
+
msgstr ""
|
3673 |
+
|
3674 |
+
#: ../inc/class-jobtype-wpexp.php:460
|
3675 |
+
msgid "WP Export file is a valid WXR file."
|
3676 |
+
msgstr ""
|
3677 |
+
|
3678 |
+
#: ../inc/class-jobtype-wpexp.php:462
|
3679 |
+
msgid ""
|
3680 |
+
"WP Export file can not be checked, because no XML extension is loaded, to "
|
3681 |
+
"ensure the file verification."
|
3682 |
+
msgstr ""
|
3683 |
+
|
3684 |
+
#: ../inc/class-jobtype-wpexp.php:474 ../inc/pro/class-jobtype-dbdump.php:718
|
3685 |
+
msgid "Compressing file …"
|
3686 |
+
msgstr ""
|
3687 |
+
|
3688 |
+
#: ../inc/class-jobtype-wpexp.php:481 ../inc/pro/class-jobtype-dbdump.php:725
|
3689 |
+
msgid "Compressing done."
|
3690 |
+
msgstr ""
|
3691 |
+
|
3692 |
+
#: ../inc/class-jobtype-wpexp.php:500
|
3693 |
+
#, php-format
|
3694 |
+
msgid "Added XML export \"%1$s\" with %2$s to backup file list."
|
3695 |
+
msgstr ""
|
3696 |
+
|
3697 |
+
#: ../inc/class-jobtype-wpplugin.php:13
|
3698 |
+
msgid "Plugins"
|
3699 |
+
msgstr ""
|
3700 |
+
|
3701 |
+
#: ../inc/class-jobtype-wpplugin.php:14
|
3702 |
+
msgid "Installed plugins list"
|
3703 |
+
msgstr ""
|
3704 |
+
|
3705 |
+
#: ../inc/class-jobtype-wpplugin.php:45
|
3706 |
+
msgid "Plugin list file name"
|
3707 |
+
msgstr ""
|
3708 |
+
|
3709 |
+
#: ../inc/class-jobtype-wpplugin.php:93
|
3710 |
+
#, php-format
|
3711 |
+
msgid "%d. Trying to generate a file with installed plugin names …"
|
3712 |
+
msgstr ""
|
3713 |
+
|
3714 |
+
#: ../inc/class-jobtype-wpplugin.php:121
|
3715 |
+
msgid "All plugin information:"
|
3716 |
+
msgstr ""
|
3717 |
+
|
3718 |
+
#: ../inc/class-jobtype-wpplugin.php:123
|
3719 |
+
#, php-format
|
3720 |
+
msgid "from %s"
|
3721 |
+
msgstr ""
|
3722 |
+
|
3723 |
+
#: ../inc/class-jobtype-wpplugin.php:125
|
3724 |
+
msgid "Active plugins:"
|
3725 |
+
msgstr ""
|
3726 |
+
|
3727 |
+
#: ../inc/class-jobtype-wpplugin.php:131
|
3728 |
+
msgid "Inactive plugins:"
|
3729 |
+
msgstr ""
|
3730 |
+
|
3731 |
+
#: ../inc/class-jobtype-wpplugin.php:138 ../inc/pro/class-jobtype-dbdump.php:775
|
3732 |
+
msgid "Can not open target file for writing."
|
3733 |
+
msgstr ""
|
3734 |
+
|
3735 |
+
#: ../inc/class-jobtype-wpplugin.php:145
|
3736 |
+
#, php-format
|
3737 |
+
msgid "Added plugin list file \"%1$s\" with %2$s to backup file list."
|
3738 |
+
msgstr ""
|
3739 |
+
|
3740 |
+
#: ../inc/class-page-editjob.php:87 ../inc/class-page-editjob.php:444 ..
|
3741 |
+
#: /inc/class-option.php:111
|
3742 |
+
msgid "New Job"
|
3743 |
+
msgstr ""
|
3744 |
+
|
3745 |
+
#: ../inc/class-page-editjob.php:88
|
3746 |
+
#, php-format
|
3747 |
+
msgid "Job with ID %d"
|
3748 |
+
msgstr ""
|
3749 |
+
|
3750 |
+
#: ../inc/class-page-editjob.php:194
|
3751 |
+
#, php-format
|
3752 |
+
msgid "Changes for job <i>%s</i> saved."
|
3753 |
+
msgstr ""
|
3754 |
+
|
3755 |
+
#: ../inc/class-page-editjob.php:195
|
3756 |
+
msgid "Jobs overview"
|
3757 |
+
msgstr ""
|
3758 |
+
|
3759 |
+
#: ../inc/class-page-editjob.php:332
|
3760 |
+
msgid "Working as <a href=\"http://wikipedia.org/wiki/Cron\">Cron</a> schedule:"
|
3761 |
+
msgstr ""
|
3762 |
+
|
3763 |
+
#: ../inc/class-page-editjob.php:341
|
3764 |
+
#, php-format
|
3765 |
+
msgid "ATTENTION: Job runs every %d minutes!"
|
3766 |
+
msgstr ""
|
3767 |
+
|
3768 |
+
#: ../inc/class-page-editjob.php:347
|
3769 |
+
#, php-format
|
3770 |
+
msgid "ATTENTION: Job runs every %d hours!"
|
3771 |
+
msgstr ""
|
3772 |
+
|
3773 |
+
#: ../inc/class-page-editjob.php:351
|
3774 |
+
msgid "ATTENTION: Can't calculate cron!"
|
3775 |
+
msgstr ""
|
3776 |
+
|
3777 |
+
#: ../inc/class-page-editjob.php:354
|
3778 |
+
msgid "Next runtime:"
|
3779 |
+
msgstr ""
|
3780 |
+
|
3781 |
+
#: ../inc/class-page-editjob.php:386
|
3782 |
+
#, php-format
|
3783 |
+
msgid "%1$s Job: %2$s"
|
3784 |
+
msgstr ""
|
3785 |
+
|
3786 |
+
#: ../inc/class-page-editjob.php:389
|
3787 |
+
msgid "Schedule"
|
3788 |
+
msgstr ""
|
3789 |
+
|
3790 |
+
#: ../inc/class-page-editjob.php:404
|
3791 |
+
#, php-format
|
3792 |
+
msgid "To: %s"
|
3793 |
+
msgstr ""
|
3794 |
+
|
3795 |
+
#: ../inc/class-page-editjob.php:442
|
3796 |
+
msgid "Please name this job."
|
3797 |
+
msgstr ""
|
3798 |
+
|
3799 |
+
#: ../inc/class-page-editjob.php:450
|
3800 |
+
msgid "Job Tasks"
|
3801 |
+
msgstr ""
|
3802 |
+
|
3803 |
+
#: ../inc/class-page-editjob.php:454 ../inc/pro/class-wizard-job.php:235
|
3804 |
+
msgid "This job is a …"
|
3805 |
+
msgstr ""
|
3806 |
+
|
3807 |
+
#: ../inc/class-page-editjob.php:457 ../inc/pro/class-wizard-job.php:238
|
3808 |
+
msgid "Job tasks"
|
3809 |
+
msgstr ""
|
3810 |
+
|
3811 |
+
#: ../inc/class-page-editjob.php:475
|
3812 |
+
msgid "Backup File Creation"
|
3813 |
+
msgstr ""
|
3814 |
+
|
3815 |
+
#: ../inc/class-page-editjob.php:480 ../inc/class-page-editjob.php:483 ..
|
3816 |
+
#: /inc/pro/class-wizard-job.php:380 ../inc/pro/class-wizard-job.php:383
|
3817 |
+
msgid "Backup type"
|
3818 |
+
msgstr ""
|
3819 |
+
|
3820 |
+
#: ../inc/class-page-editjob.php:487
|
3821 |
+
msgid "Synchronize file by file to destination"
|
3822 |
+
msgstr ""
|
3823 |
+
|
3824 |
+
#: ../inc/class-page-editjob.php:491 ../inc/pro/class-wizard-job.php:391
|
3825 |
+
msgid "Create a backup archive"
|
3826 |
+
msgstr ""
|
3827 |
+
|
3828 |
+
#: ../inc/class-page-editjob.php:497
|
3829 |
+
msgid "Archive name"
|
3830 |
+
msgstr ""
|
3831 |
+
|
3832 |
+
#: ../inc/class-page-editjob.php:502
|
3833 |
+
msgid "Replacement patterns:"
|
3834 |
+
msgstr ""
|
3835 |
+
|
3836 |
+
#: ../inc/class-page-editjob.php:503
|
3837 |
+
#, php-format
|
3838 |
+
msgid "%d = Two digit day of the month, with leading zeros"
|
3839 |
+
msgstr ""
|
3840 |
+
|
3841 |
+
#: ../inc/class-page-editjob.php:504
|
3842 |
+
msgid "%j = Day of the month, without leading zeros"
|
3843 |
+
msgstr ""
|
3844 |
+
|
3845 |
+
#: ../inc/class-page-editjob.php:505
|
3846 |
+
msgid "%m = Day of the month, with leading zeros"
|
3847 |
+
msgstr ""
|
3848 |
+
|
3849 |
+
#: ../inc/class-page-editjob.php:506
|
3850 |
+
#, php-format
|
3851 |
+
msgid "%n = Representation of the month (without leading zeros)"
|
3852 |
+
msgstr ""
|
3853 |
+
|
3854 |
+
#: ../inc/class-page-editjob.php:507
|
3855 |
+
msgid "%Y = Four digit representation for the year"
|
3856 |
+
msgstr ""
|
3857 |
+
|
3858 |
+
#: ../inc/class-page-editjob.php:508
|
3859 |
+
msgid "%y = Two digit representation of the year"
|
3860 |
+
msgstr ""
|
3861 |
+
|
3862 |
+
#: ../inc/class-page-editjob.php:509
|
3863 |
+
#, php-format
|
3864 |
+
msgid "%a = Lowercase ante meridiem (am) and post meridiem (pm)"
|
3865 |
+
msgstr ""
|
3866 |
+
|
3867 |
+
#: ../inc/class-page-editjob.php:510
|
3868 |
+
#, php-format
|
3869 |
+
msgid "%A = Uppercase ante meridiem (AM) and post meridiem (PM)"
|
3870 |
+
msgstr ""
|
3871 |
+
|
3872 |
+
#: ../inc/class-page-editjob.php:511
|
3873 |
+
#, php-format
|
3874 |
+
msgid "%B = Swatch Internet Time"
|
3875 |
+
msgstr ""
|
3876 |
+
|
3877 |
+
#: ../inc/class-page-editjob.php:512
|
3878 |
+
#, php-format
|
3879 |
+
msgid "%g = Hour in 12-hour format, without leading zeros"
|
3880 |
+
msgstr ""
|
3881 |
+
|
3882 |
+
#: ../inc/class-page-editjob.php:513
|
3883 |
+
#, php-format
|
3884 |
+
msgid "%G = Hour in 24-hour format, without leading zeros"
|
3885 |
+
msgstr ""
|
3886 |
+
|
3887 |
+
#: ../inc/class-page-editjob.php:514
|
3888 |
+
msgid "%h = Hour in 12-hour format, with leading zeros"
|
3889 |
+
msgstr ""
|
3890 |
+
|
3891 |
+
#: ../inc/class-page-editjob.php:515
|
3892 |
+
msgid "%H = Hour in 24-hour format, with leading zeros"
|
3893 |
+
msgstr ""
|
3894 |
+
|
3895 |
+
#: ../inc/class-page-editjob.php:516
|
3896 |
+
#, php-format
|
3897 |
+
msgid "%i = Two digit representation of the minute"
|
3898 |
+
msgstr ""
|
3899 |
+
|
3900 |
+
#: ../inc/class-page-editjob.php:517
|
3901 |
+
#, php-format
|
3902 |
+
msgid "%s = Two digit representation of the second"
|
3903 |
+
msgstr ""
|
3904 |
+
|
3905 |
+
#: ../inc/class-page-editjob.php:529 ../inc/class-page-editjob.php:532
|
3906 |
+
msgid "Archive Format"
|
3907 |
+
msgstr ""
|
3908 |
+
|
3909 |
+
#: ../inc/class-page-editjob.php:535
|
3910 |
+
msgid ""
|
3911 |
+
"PHP Zip functions will be used if available (needs less memory). Otherwise "
|
3912 |
+
"the PCLZip class will be used."
|
3913 |
+
msgstr ""
|
3914 |
+
|
3915 |
+
#: ../inc/class-page-editjob.php:535 ../inc/class-page-editjob.php:537 ..
|
3916 |
+
#: /inc/pro/class-wizard-job.php:404 ../inc/pro/class-wizard-job.php:406
|
3917 |
+
msgid "Zip"
|
3918 |
+
msgstr ""
|
3919 |
+
|
3920 |
+
#: ../inc/class-page-editjob.php:537 ../inc/class-page-editjob.php:542 ..
|
3921 |
+
#: /inc/class-page-editjob.php:546
|
3922 |
+
msgid "Disabled due to missing PHP function."
|
3923 |
+
msgstr ""
|
3924 |
+
|
3925 |
+
#: ../inc/class-page-editjob.php:538
|
3926 |
+
msgid "A tarballed, not compressed archive (fast and less memory)"
|
3927 |
+
msgstr ""
|
3928 |
+
|
3929 |
+
#: ../inc/class-page-editjob.php:538 ../inc/pro/class-wizard-job.php:407
|
3930 |
+
msgid "Tar"
|
3931 |
+
msgstr ""
|
3932 |
+
|
3933 |
+
#: ../inc/class-page-editjob.php:540
|
3934 |
+
msgid "A tarballed, GZipped archive (fast and less memory)"
|
3935 |
+
msgstr ""
|
3936 |
+
|
3937 |
+
#: ../inc/class-page-editjob.php:540 ../inc/class-page-editjob.php:542 ..
|
3938 |
+
#: /inc/pro/class-wizard-job.php:409 ../inc/pro/class-wizard-job.php:411
|
3939 |
+
msgid "Tar GZip"
|
3940 |
+
msgstr ""
|
3941 |
+
|
3942 |
+
#: ../inc/class-page-editjob.php:544
|
3943 |
+
msgid "A tarballed, BZipped archive (fast and less memory)"
|
3944 |
+
msgstr ""
|
3945 |
+
|
3946 |
+
#: ../inc/class-page-editjob.php:544 ../inc/class-page-editjob.php:546 ..
|
3947 |
+
#: /inc/pro/class-wizard-job.php:413 ../inc/pro/class-wizard-job.php:415
|
3948 |
+
msgid "Tar BZip2"
|
3949 |
+
msgstr ""
|
3950 |
+
|
3951 |
+
#: ../inc/class-page-editjob.php:552
|
3952 |
+
msgid "Job Destination"
|
3953 |
+
msgstr ""
|
3954 |
+
|
3955 |
+
#: ../inc/class-page-editjob.php:556 ../inc/class-page-editjob.php:559
|
3956 |
+
msgid "Where should your backup file be stored?"
|
3957 |
+
msgstr ""
|
3958 |
+
|
3959 |
+
#: ../inc/class-page-editjob.php:580
|
3960 |
+
msgid "Log Files"
|
3961 |
+
msgstr ""
|
3962 |
+
|
3963 |
+
#: ../inc/class-page-editjob.php:584
|
3964 |
+
msgid "Send log to email address"
|
3965 |
+
msgstr ""
|
3966 |
+
|
3967 |
+
#: ../inc/class-page-editjob.php:588
|
3968 |
+
msgid ""
|
3969 |
+
"Leave empty to not have log sent. Or separate with , for more than one "
|
3970 |
+
"receiver."
|
3971 |
+
msgstr ""
|
3972 |
+
|
3973 |
+
#: ../inc/class-page-editjob.php:592
|
3974 |
+
msgid "Email FROM field"
|
3975 |
+
msgstr ""
|
3976 |
+
|
3977 |
+
#: ../inc/class-page-editjob.php:596
|
3978 |
+
msgid "Email \"From\" field (Name < you@your-email-address.tld >)"
|
3979 |
+
msgstr ""
|
3980 |
+
|
3981 |
+
#: ../inc/class-page-editjob.php:600
|
3982 |
+
msgid "Errors only"
|
3983 |
+
msgstr ""
|
3984 |
+
|
3985 |
+
#: ../inc/class-page-editjob.php:605
|
3986 |
+
msgid "Send email with log only when errors occur during job execution."
|
3987 |
+
msgstr ""
|
3988 |
+
|
3989 |
+
#: ../inc/class-page-editjob.php:616
|
3990 |
+
msgid "Job Schedule"
|
3991 |
+
msgstr ""
|
3992 |
+
|
3993 |
+
#: ../inc/class-page-editjob.php:620 ../inc/class-page-editjob.php:623
|
3994 |
+
msgid "Start job"
|
3995 |
+
msgstr ""
|
3996 |
+
|
3997 |
+
#: ../inc/class-page-editjob.php:627
|
3998 |
+
msgid "manually only"
|
3999 |
+
msgstr ""
|
4000 |
+
|
4001 |
+
#: ../inc/class-page-editjob.php:631
|
4002 |
+
msgid "with WordPress cron"
|
4003 |
+
msgstr ""
|
4004 |
+
|
4005 |
+
#: ../inc/class-page-editjob.php:642
|
4006 |
+
msgid "Use EasyCron.com Cron jobs."
|
4007 |
+
msgstr ""
|
4008 |
+
|
4009 |
+
#: ../inc/class-page-editjob.php:642
|
4010 |
+
msgid ""
|
4011 |
+
"with <a href=\"https://www.easycron.com?ref=36673\" class=\"help-tip\" "
|
4012 |
+
"title=\"Affiliate Link!\">EasyCron.com</a>"
|
4013 |
+
msgstr ""
|
4014 |
+
|
4015 |
+
#: ../inc/class-page-editjob.php:645
|
4016 |
+
#, php-format
|
4017 |
+
msgid ""
|
4018 |
+
"Setup <a href=\"https://www.easycron.com?ref=36673\" class=\"help-tip\" "
|
4019 |
+
"title=\"Affiliate Link!\">Account</a> / <a href=\"%s\">API Key</a> first."
|
4020 |
+
msgstr ""
|
4021 |
+
|
4022 |
+
#: ../inc/class-page-editjob.php:655
|
4023 |
+
msgid ""
|
4024 |
+
"Copy the link for an external start. This option has to be activated to make "
|
4025 |
+
"the link work."
|
4026 |
+
msgstr ""
|
4027 |
+
|
4028 |
+
#: ../inc/class-page-editjob.php:655
|
4029 |
+
msgid "with a link"
|
4030 |
+
msgstr ""
|
4031 |
+
|
4032 |
+
#: ../inc/class-page-editjob.php:661
|
4033 |
+
msgid "Start job with CLI"
|
4034 |
+
msgstr ""
|
4035 |
+
|
4036 |
+
#: ../inc/class-page-editjob.php:662
|
4037 |
+
msgid ""
|
4038 |
+
"Use WP-CLI commands to let the job start with the server’s cron on command "
|
4039 |
+
"line interface."
|
4040 |
+
msgstr ""
|
4041 |
+
|
4042 |
+
#: ../inc/class-page-editjob.php:664
|
4043 |
+
msgid "Use <a href=\"http://wp-cli.org/\">WP-CLI</a> to run jobs from commandline."
|
4044 |
+
msgstr ""
|
4045 |
+
|
4046 |
+
#: ../inc/class-page-editjob.php:669
|
4047 |
+
msgid "Schedule execution time"
|
4048 |
+
msgstr ""
|
4049 |
+
|
4050 |
+
#: ../inc/class-page-editjob.php:673 ../inc/class-page-editjob.php:676
|
4051 |
+
msgid "Scheduler type"
|
4052 |
+
msgstr ""
|
4053 |
+
|
4054 |
+
#: ../inc/class-page-editjob.php:680
|
4055 |
+
msgid "basic"
|
4056 |
+
msgstr ""
|
4057 |
+
|
4058 |
+
#: ../inc/class-page-editjob.php:684
|
4059 |
+
msgid "advanced"
|
4060 |
+
msgstr ""
|
4061 |
+
|
4062 |
+
#: ../inc/class-page-editjob.php:713 ../inc/class-page-editjob.php:781 ..
|
4063 |
+
#: /inc/pro/class-wizard-job.php:298
|
4064 |
+
msgid "Scheduler"
|
4065 |
+
msgstr ""
|
4066 |
+
|
4067 |
+
#: ../inc/class-page-editjob.php:723 ../inc/pro/class-wizard-job.php:308
|
4068 |
+
msgid "Hour"
|
4069 |
+
msgstr ""
|
4070 |
+
|
4071 |
+
#: ../inc/class-page-editjob.php:726 ../inc/pro/class-wizard-job.php:311
|
4072 |
+
msgid "Minute"
|
4073 |
+
msgstr ""
|
4074 |
+
|
4075 |
+
#: ../inc/class-page-editjob.php:730 ../inc/pro/class-wizard-job.php:315
|
4076 |
+
msgid "monthly"
|
4077 |
+
msgstr ""
|
4078 |
+
|
4079 |
+
#: ../inc/class-page-editjob.php:732 ../inc/pro/class-wizard-job.php:317
|
4080 |
+
msgid "on"
|
4081 |
+
msgstr ""
|
4082 |
+
|
4083 |
+
#: ../inc/class-page-editjob.php:742 ../inc/pro/class-wizard-job.php:327
|
4084 |
+
msgid "weekly"
|
4085 |
+
msgstr ""
|
4086 |
+
|
4087 |
+
#: ../inc/class-page-editjob.php:744 ../inc/class-page-editjob.php:851 ..
|
4088 |
+
#: /inc/pro/class-wizard-job.php:329
|
4089 |
+
msgid "Sunday"
|
4090 |
+
msgstr ""
|
4091 |
+
|
4092 |
+
#: ../inc/class-page-editjob.php:745 ../inc/class-page-editjob.php:852 ..
|
4093 |
+
#: /inc/pro/class-wizard-job.php:330
|
4094 |
+
msgid "Monday"
|
4095 |
+
msgstr ""
|
4096 |
+
|
4097 |
+
#: ../inc/class-page-editjob.php:746 ../inc/class-page-editjob.php:853 ..
|
4098 |
+
#: /inc/pro/class-wizard-job.php:331
|
4099 |
+
msgid "Tuesday"
|
4100 |
+
msgstr ""
|
4101 |
+
|
4102 |
+
#: ../inc/class-page-editjob.php:747 ../inc/class-page-editjob.php:854 ..
|
4103 |
+
#: /inc/pro/class-wizard-job.php:332
|
4104 |
+
msgid "Wednesday"
|
4105 |
+
msgstr ""
|
4106 |
+
|
4107 |
+
#: ../inc/class-page-editjob.php:748 ../inc/class-page-editjob.php:855 ..
|
4108 |
+
#: /inc/pro/class-wizard-job.php:333
|
4109 |
+
msgid "Thursday"
|
4110 |
+
msgstr ""
|
4111 |
+
|
4112 |
+
#: ../inc/class-page-editjob.php:749 ../inc/class-page-editjob.php:856 ..
|
4113 |
+
#: /inc/pro/class-wizard-job.php:334
|
4114 |
+
msgid "Friday"
|
4115 |
+
msgstr ""
|
4116 |
+
|
4117 |
+
#: ../inc/class-page-editjob.php:750 ../inc/class-page-editjob.php:857 ..
|
4118 |
+
#: /inc/pro/class-wizard-job.php:335
|
4119 |
+
msgid "Saturday"
|
4120 |
+
msgstr ""
|
4121 |
+
|
4122 |
+
#: ../inc/class-page-editjob.php:760 ../inc/pro/class-wizard-job.php:345
|
4123 |
+
msgid "daily"
|
4124 |
+
msgstr ""
|
4125 |
+
|
4126 |
+
#: ../inc/class-page-editjob.php:770 ../inc/pro/class-wizard-job.php:355
|
4127 |
+
msgid "hourly"
|
4128 |
+
msgstr ""
|
4129 |
+
|
4130 |
+
#: ../inc/class-page-editjob.php:784
|
4131 |
+
msgid "Minutes:"
|
4132 |
+
msgstr ""
|
4133 |
+
|
4134 |
+
#: ../inc/class-page-editjob.php:786 ../inc/class-page-editjob.php:799 ..
|
4135 |
+
#: /inc/class-page-editjob.php:811 ../inc/class-page-editjob.php:825 ../inc/class-
|
4136 |
+
#: page-editjob.php:847
|
4137 |
+
msgid "Any (*)"
|
4138 |
+
msgstr ""
|
4139 |
+
|
4140 |
+
#: ../inc/class-page-editjob.php:796
|
4141 |
+
msgid "Hours:"
|
4142 |
+
msgstr ""
|
4143 |
+
|
4144 |
+
#: ../inc/class-page-editjob.php:809
|
4145 |
+
msgid "Day of Month:"
|
4146 |
+
msgstr ""
|
4147 |
+
|
4148 |
+
#: ../inc/class-page-editjob.php:823
|
4149 |
+
msgid "Month:"
|
4150 |
+
msgstr ""
|
4151 |
+
|
4152 |
+
#: ../inc/class-page-editjob.php:829
|
4153 |
+
msgid "January"
|
4154 |
+
msgstr ""
|
4155 |
+
|
4156 |
+
#: ../inc/class-page-editjob.php:830
|
4157 |
+
msgid "February"
|
4158 |
+
msgstr ""
|
4159 |
+
|
4160 |
+
#: ../inc/class-page-editjob.php:831
|
4161 |
+
msgid "March"
|
4162 |
+
msgstr ""
|
4163 |
+
|
4164 |
+
#: ../inc/class-page-editjob.php:832
|
4165 |
+
msgid "April"
|
4166 |
+
msgstr ""
|
4167 |
+
|
4168 |
+
#: ../inc/class-page-editjob.php:833
|
4169 |
+
msgid "May"
|
4170 |
+
msgstr ""
|
4171 |
+
|
4172 |
+
#: ../inc/class-page-editjob.php:834
|
4173 |
+
msgid "June"
|
4174 |
+
msgstr ""
|
4175 |
+
|
4176 |
+
#: ../inc/class-page-editjob.php:835
|
4177 |
+
msgid "July"
|
4178 |
+
msgstr ""
|
4179 |
+
|
4180 |
+
#: ../inc/class-page-editjob.php:836
|
4181 |
+
msgid "August"
|
4182 |
+
msgstr ""
|
4183 |
+
|
4184 |
+
#: ../inc/class-page-editjob.php:837
|
4185 |
+
msgid "September"
|
4186 |
+
msgstr ""
|
4187 |
+
|
4188 |
+
#: ../inc/class-page-editjob.php:838
|
4189 |
+
msgid "October"
|
4190 |
+
msgstr ""
|
4191 |
+
|
4192 |
+
#: ../inc/class-page-editjob.php:839
|
4193 |
+
msgid "November"
|
4194 |
+
msgstr ""
|
4195 |
+
|
4196 |
+
#: ../inc/class-page-editjob.php:840
|
4197 |
+
msgid "December"
|
4198 |
+
msgstr ""
|
4199 |
+
|
4200 |
+
#: ../inc/class-page-editjob.php:845
|
4201 |
+
msgid "Day of Week:"
|
4202 |
+
msgstr ""
|
4203 |
+
|
4204 |
+
#: ../inc/class-page-editjob.php:881
|
4205 |
+
msgid "Save changes"
|
4206 |
+
msgstr ""
|
4207 |
+
|
4208 |
+
#: ../inc/pro/class-destination-msazure.php:17
|
4209 |
+
msgid "Account Name:"
|
4210 |
+
msgstr ""
|
4211 |
+
|
4212 |
+
#: ../inc/pro/class-destination-msazure.php:19 ../inc/pro/class-destination-s3-v1.
|
4213 |
+
#: php:37 ../inc/pro/class-destination-s3.php:39 ../inc/pro/class-destination-
|
4214 |
+
#: glacier.php:168
|
4215 |
+
msgid "Access Key:"
|
4216 |
+
msgstr ""
|
4217 |
+
|
4218 |
+
#: ../inc/pro/class-destination-msazure.php:21 ../inc/pro/class-destination-rsc.
|
4219 |
+
#: php:38
|
4220 |
+
msgid "Container:"
|
4221 |
+
msgstr ""
|
4222 |
+
|
4223 |
+
#: ../inc/pro/class-destination-msazure.php:28 ../inc/pro/class-destination-rsc.
|
4224 |
+
#: php:47
|
4225 |
+
msgid "Create container:"
|
4226 |
+
msgstr ""
|
4227 |
+
|
4228 |
+
#: ../inc/pro/class-destination-msazure.php:30 ../inc/pro/class-destination-rsc.
|
4229 |
+
#: php:49
|
4230 |
+
msgid "Folder in container:"
|
4231 |
+
msgstr ""
|
4232 |
+
|
4233 |
+
#: ../inc/pro/class-destination-msazure.php:101
|
4234 |
+
#, php-format
|
4235 |
+
msgid "%d. Trying to sync files with Microsoft Azure (Blob) …"
|
4236 |
+
msgstr ""
|
4237 |
+
|
4238 |
+
#: ../inc/pro/class-destination-msazure.php:136
|
4239 |
+
msgid "Retrieving file list from MS Azure."
|
4240 |
+
msgstr ""
|
4241 |
+
|
4242 |
+
#: ../inc/pro/class-destination-msazure.php:152
|
4243 |
+
msgid "Upload changed files to MS Azure."
|
4244 |
+
msgstr ""
|
4245 |
+
|
4246 |
+
#: ../inc/pro/class-destination-msazure.php:164
|
4247 |
+
#, php-format
|
4248 |
+
msgid "File %s uploaded to MS Azure."
|
4249 |
+
msgstr ""
|
4250 |
+
|
4251 |
+
#: ../inc/pro/class-destination-msazure.php:190
|
4252 |
+
#, php-format
|
4253 |
+
msgid "Extra file %s uploaded to MS Azure."
|
4254 |
+
msgstr ""
|
4255 |
+
|
4256 |
+
#: ../inc/pro/class-destination-msazure.php:203
|
4257 |
+
msgid "Delete nonexistent files on MS Azure."
|
4258 |
+
msgstr ""
|
4259 |
+
|
4260 |
+
#: ../inc/pro/class-destination-msazure.php:206
|
4261 |
+
#, php-format
|
4262 |
+
msgid "File %s deleted from MS Azure."
|
4263 |
+
msgstr ""
|
4264 |
+
|
4265 |
+
#: ../inc/pro/class-wizard-systemtest.php:14
|
4266 |
+
msgid "System Test"
|
4267 |
+
msgstr ""
|
4268 |
+
|
4269 |
+
#: ../inc/pro/class-wizard-systemtest.php:15
|
4270 |
+
msgid "Wizard to test if BackWPup can work properly"
|
4271 |
+
msgstr ""
|
4272 |
+
|
4273 |
+
#: ../inc/pro/class-wizard-systemtest.php:32
|
4274 |
+
msgid "Run tests"
|
4275 |
+
msgstr ""
|
4276 |
+
|
4277 |
+
#: ../inc/pro/class-wizard-systemtest.php:45
|
4278 |
+
msgid "Environment"
|
4279 |
+
msgstr ""
|
4280 |
+
|
4281 |
+
#: ../inc/pro/class-wizard-systemtest.php:45
|
4282 |
+
msgid "System Environment"
|
4283 |
+
msgstr ""
|
4284 |
+
|
4285 |
+
#: ../inc/pro/class-wizard-systemtest.php:59
|
4286 |
+
msgid "Test if BackWPup can work without problems."
|
4287 |
+
msgstr ""
|
4288 |
+
|
4289 |
+
#: ../inc/pro/class-wizard-systemtest.php:99
|
4290 |
+
#, php-format
|
4291 |
+
msgid ""
|
4292 |
+
"You must run WordPress version 3.4 or higher to use this plugin. You are "
|
4293 |
+
"using version %s now."
|
4294 |
+
msgstr ""
|
4295 |
+
|
4296 |
+
#: ../inc/pro/class-wizard-systemtest.php:104
|
4297 |
+
#, php-format
|
4298 |
+
msgid ""
|
4299 |
+
"You must run PHP version 5.2.6 or higher to use this plugin. You are using "
|
4300 |
+
"version %s now."
|
4301 |
+
msgstr ""
|
4302 |
+
|
4303 |
+
#: ../inc/pro/class-wizard-systemtest.php:108
|
4304 |
+
#, php-format
|
4305 |
+
msgid ""
|
4306 |
+
"We recommend to run a PHP version above 5.3.2 to get the full plugin "
|
4307 |
+
"functionality. You are using version %s now."
|
4308 |
+
msgstr ""
|
4309 |
+
|
4310 |
+
#: ../inc/pro/class-wizard-systemtest.php:113
|
4311 |
+
#, php-format
|
4312 |
+
msgid ""
|
4313 |
+
"You must have the MySQLi extension installed and a MySQL server version of 5."
|
4314 |
+
"0.7 or higher to use this plugin. You are using version %s now."
|
4315 |
+
msgstr ""
|
4316 |
+
|
4317 |
+
#: ../inc/pro/class-wizard-systemtest.php:118
|
4318 |
+
msgid "PHP cURL extension must be installed to use the full plugin functionality."
|
4319 |
+
msgstr ""
|
4320 |
+
|
4321 |
+
#: ../inc/pro/class-wizard-systemtest.php:122
|
4322 |
+
#, php-format
|
4323 |
+
msgctxt "%1 = extension name, %2 = file suffix"
|
4324 |
+
msgid "We recommend to install the %1$s extension to generate %2$s archives."
|
4325 |
+
msgstr ""
|
4326 |
+
|
4327 |
+
#: ../inc/pro/class-wizard-systemtest.php:146
|
4328 |
+
#, php-format
|
4329 |
+
msgctxt "Link to PHP manual"
|
4330 |
+
msgid "Please disable the deprecated <a href=\"%s\">PHP safe mode</a>."
|
4331 |
+
msgstr ""
|
4332 |
+
|
4333 |
+
#: ../inc/pro/class-wizard-systemtest.php:154
|
4334 |
+
msgid ""
|
4335 |
+
"We recommend to install the PHP FTP extension to use the FTP backup "
|
4336 |
+
"destination."
|
4337 |
+
msgstr ""
|
4338 |
+
|
4339 |
+
#: ../inc/pro/class-wizard-systemtest.php:174
|
4340 |
+
#, php-format
|
4341 |
+
msgid "The HTTP response test result is an error: \"%s\"."
|
4342 |
+
msgstr ""
|
4343 |
+
|
4344 |
+
#: ../inc/pro/class-wizard-systemtest.php:178
|
4345 |
+
#, php-format
|
4346 |
+
msgid ""
|
4347 |
+
"The HTTP response test result is a wrong HTTP status: %s. It should be "
|
4348 |
+
"status 200."
|
4349 |
+
msgstr ""
|
4350 |
+
|
4351 |
+
#: ../inc/pro/class-wizard-systemtest.php:196
|
4352 |
+
msgid "WP-Cron seems to be broken. But it is needed to run scheduled jobs."
|
4353 |
+
msgstr ""
|
4354 |
+
|
4355 |
+
#: ../inc/pro/class-wizard-systemtest.php:201
|
4356 |
+
msgid "All tests passed without errors."
|
4357 |
+
msgstr ""
|
4358 |
+
|
4359 |
+
#: ../inc/pro/class-wizard-systemtest.php:204
|
4360 |
+
msgid ""
|
4361 |
+
"There is no error, but some warnings. BackWPup will work, but with "
|
4362 |
+
"limitations."
|
4363 |
+
msgstr ""
|
4364 |
+
|
4365 |
+
#: ../inc/pro/class-wizard-systemtest.php:207
|
4366 |
+
msgid "There are errors. Please correct them, or BackWPup cannot work."
|
4367 |
+
msgstr ""
|
4368 |
+
|
4369 |
+
#: ../inc/pro/class-jobtype-dbdump.php:89
|
4370 |
+
msgid "Backup only WordPress Database tables"
|
4371 |
+
msgstr ""
|
4372 |
+
|
4373 |
+
#: ../inc/pro/class-jobtype-dbdump.php:109
|
4374 |
+
msgid "Database connection"
|
4375 |
+
msgstr ""
|
4376 |
+
|
4377 |
+
#: ../inc/pro/class-jobtype-dbdump.php:113
|
4378 |
+
msgid "Use WordPress database connection."
|
4379 |
+
msgstr ""
|
4380 |
+
|
4381 |
+
#: ../inc/pro/class-jobtype-dbdump.php:117
|
4382 |
+
msgid "Host:"
|
4383 |
+
msgstr ""
|
4384 |
+
|
4385 |
+
#: ../inc/pro/class-jobtype-dbdump.php:120
|
4386 |
+
msgid "User:"
|
4387 |
+
msgstr ""
|
4388 |
+
|
4389 |
+
#: ../inc/pro/class-jobtype-dbdump.php:127
|
4390 |
+
msgid "Charset:"
|
4391 |
+
msgstr ""
|
4392 |
+
|
4393 |
+
#: ../inc/pro/class-jobtype-dbdump.php:138
|
4394 |
+
msgid "Database:"
|
4395 |
+
msgstr ""
|
4396 |
+
|
4397 |
+
#: ../inc/pro/class-jobtype-dbdump.php:166
|
4398 |
+
msgid "Database Backup type"
|
4399 |
+
msgstr ""
|
4400 |
+
|
4401 |
+
#: ../inc/pro/class-jobtype-dbdump.php:170
|
4402 |
+
msgid "SQL File (with mysqli)"
|
4403 |
+
msgstr ""
|
4404 |
+
|
4405 |
+
#: ../inc/pro/class-jobtype-dbdump.php:171
|
4406 |
+
msgid "SQL File (with mysqldump)"
|
4407 |
+
msgstr ""
|
4408 |
+
|
4409 |
+
#: ../inc/pro/class-jobtype-dbdump.php:172
|
4410 |
+
msgid "XML File (phpMyAdmin schema)"
|
4411 |
+
msgstr ""
|
4412 |
+
|
4413 |
+
#: ../inc/pro/class-jobtype-dbdump.php:178
|
4414 |
+
msgid "Path to <em>mysqldump</em> file"
|
4415 |
+
msgstr ""
|
4416 |
+
|
4417 |
+
#: ../inc/pro/class-jobtype-dbdump.php:180
|
4418 |
+
msgid ""
|
4419 |
+
"Path to mysqldump file, so a backup can be made with it. If it is correct "
|
4420 |
+
"and <em>shell_exec</em> is active, the backup will be generated with a "
|
4421 |
+
"system command. If <em>shell_exec</em> ist not active, this is disabled"
|
4422 |
+
msgstr ""
|
4423 |
+
|
4424 |
+
#: ../inc/pro/class-jobtype-dbdump.php:560
|
4425 |
+
#, php-format
|
4426 |
+
msgid "Added database backup \"%1$s\" with %2$s to backup file list"
|
4427 |
+
msgstr ""
|
4428 |
+
|
4429 |
+
#: ../inc/pro/class-jobtype-dbdump.php:581
|
4430 |
+
#, php-format
|
4431 |
+
msgid "%d. Try to backup MySQL system …"
|
4432 |
+
msgstr ""
|
4433 |
+
|
4434 |
+
#: ../inc/pro/class-jobtype-dbdump.php:588
|
4435 |
+
msgid "Executing of system commands not allowed. Please use backup with mysqli."
|
4436 |
+
msgstr ""
|
4437 |
+
|
4438 |
+
#: ../inc/pro/class-jobtype-dbdump.php:593
|
4439 |
+
#, php-format
|
4440 |
+
msgid "%s file not in open basedir of PHP."
|
4441 |
+
msgstr ""
|
4442 |
+
|
4443 |
+
#: ../inc/pro/class-jobtype-dbdump.php:598
|
4444 |
+
#, php-format
|
4445 |
+
msgid "%s file not found. Please correct the path for the mysqldump file."
|
4446 |
+
msgstr ""
|
4447 |
+
|
4448 |
+
#: ../inc/pro/class-jobtype-dbdump.php:678
|
4449 |
+
#, php-format
|
4450 |
+
msgctxt "Executed exec() command"
|
4451 |
+
msgid "CLI Exec: %s"
|
4452 |
+
msgstr ""
|
4453 |
+
|
4454 |
+
#: ../inc/pro/class-jobtype-dbdump.php:689
|
4455 |
+
msgid "Usage error."
|
4456 |
+
msgstr ""
|
4457 |
+
|
4458 |
+
#: ../inc/pro/class-jobtype-dbdump.php:690
|
4459 |
+
msgid ""
|
4460 |
+
"MySQL Server Error. This could be an issue with permissions. Try using "
|
4461 |
+
"database backup with mysqli."
|
4462 |
+
msgstr ""
|
4463 |
+
|
4464 |
+
#: ../inc/pro/class-jobtype-dbdump.php:691
|
4465 |
+
msgid "Error during consistency checks."
|
4466 |
+
msgstr ""
|
4467 |
+
|
4468 |
+
#: ../inc/pro/class-jobtype-dbdump.php:692
|
4469 |
+
msgid "Not enough memory."
|
4470 |
+
msgstr ""
|
4471 |
+
|
4472 |
+
#: ../inc/pro/class-jobtype-dbdump.php:693
|
4473 |
+
msgid "Error during writing of SQL backup file."
|
4474 |
+
msgstr ""
|
4475 |
+
|
4476 |
+
#: ../inc/pro/class-jobtype-dbdump.php:694
|
4477 |
+
msgid "Illegal table"
|
4478 |
+
msgstr ""
|
4479 |
+
|
4480 |
+
#: ../inc/pro/class-jobtype-dbdump.php:699
|
4481 |
+
#, php-format
|
4482 |
+
msgid "mysqldump returned: (%d) %s"
|
4483 |
+
msgstr ""
|
4484 |
+
|
4485 |
+
#: ../inc/pro/class-jobtype-dbdump.php:712
|
4486 |
+
msgid "Can not create mysql backup with mysqldump command"
|
4487 |
+
msgstr ""
|
4488 |
+
|
4489 |
+
#: ../inc/pro/class-jobtype-dbdump.php:758
|
4490 |
+
#, php-format
|
4491 |
+
msgid "%d. Try to backup database as XML …"
|
4492 |
+
msgstr ""
|
4493 |
+
|
4494 |
+
#: ../inc/pro/class-jobtype-dbdump.php:828
|
4495 |
+
#, php-format
|
4496 |
+
msgctxt "Database Charset"
|
4497 |
+
msgid "Cannot set DB charset to %s"
|
4498 |
+
msgstr ""
|
4499 |
+
|
4500 |
+
#: ../inc/pro/class-jobtype-dbdump.php:857
|
4501 |
+
msgid "No tables for XML backup"
|
4502 |
+
msgstr ""
|
4503 |
+
|
4504 |
+
#: ../inc/pro/class-jobtype-dbdump.php:893
|
4505 |
+
#, php-format
|
4506 |
+
msgid "Dump database create view \"%s\""
|
4507 |
+
msgstr ""
|
4508 |
+
|
4509 |
+
#: ../inc/pro/class-jobtype-dbdump.php:911
|
4510 |
+
#, php-format
|
4511 |
+
msgid "Backup database structure \"%s\" to XML"
|
4512 |
+
msgstr ""
|
4513 |
+
|
4514 |
+
#: ../inc/pro/class-jobtype-dbdump.php:953
|
4515 |
+
#, php-format
|
4516 |
+
msgid "Backup table \"%s\" data to XML"
|
4517 |
+
msgstr ""
|
4518 |
+
|
4519 |
+
#: ../inc/pro/class-jobtype-dbdump.php:1021
|
4520 |
+
#, php-format
|
4521 |
+
msgid "Added database XML dump \"%1$s\" with %2$s to backup file list"
|
4522 |
+
msgstr ""
|
4523 |
+
|
4524 |
+
#: ../inc/pro/class-jobtype-dbdump.php:1024
|
4525 |
+
msgid "Database XML backup done!"
|
4526 |
+
msgstr ""
|
4527 |
+
|
4528 |
+
#: ../inc/pro/class-export-jobs.php:12 ../inc/pro/class-export-jobs.php:23
|
4529 |
+
msgid "Export"
|
4530 |
+
msgstr ""
|
4531 |
+
|
4532 |
+
#: ../inc/pro/class-jobtype-file.php:19
|
4533 |
+
msgid "Backup WordPress main files"
|
4534 |
+
msgstr ""
|
4535 |
+
|
4536 |
+
#: ../inc/pro/class-jobtype-file.php:23
|
4537 |
+
msgid "Backup blog content folder"
|
4538 |
+
msgstr ""
|
4539 |
+
|
4540 |
+
#: ../inc/pro/class-jobtype-file.php:27
|
4541 |
+
msgid "Backup blog plugins"
|
4542 |
+
msgstr ""
|
4543 |
+
|
4544 |
+
#: ../inc/pro/class-jobtype-file.php:31
|
4545 |
+
msgid "Backup blog themes"
|
4546 |
+
msgstr ""
|
4547 |
+
|
4548 |
+
#: ../inc/pro/class-jobtype-file.php:35
|
4549 |
+
msgid "Backup blog uploads folder"
|
4550 |
+
msgstr ""
|
4551 |
+
|
4552 |
+
#: ../inc/pro/class-settings-apikeys.php:42
|
4553 |
+
msgid "Hash key"
|
4554 |
+
msgstr ""
|
4555 |
+
|
4556 |
+
#: ../inc/pro/class-settings-apikeys.php:43
|
4557 |
+
msgid ""
|
4558 |
+
"Hash Key for BackWPup. It will be used to have hashes in folder and file "
|
4559 |
+
"names. It must at least 6 chars long."
|
4560 |
+
msgstr ""
|
4561 |
+
|
4562 |
+
#: ../inc/pro/class-settings-apikeys.php:46
|
4563 |
+
msgid "Hash key:"
|
4564 |
+
msgstr ""
|
4565 |
+
|
4566 |
+
#: ../inc/pro/class-settings-apikeys.php:59
|
4567 |
+
msgid "Dropbox API Keys"
|
4568 |
+
msgstr ""
|
4569 |
+
|
4570 |
+
#: ../inc/pro/class-settings-apikeys.php:60
|
4571 |
+
msgid ""
|
4572 |
+
"If you want to set your own Dropbox API Keys, you can do it here. Leave "
|
4573 |
+
"empty for default."
|
4574 |
+
msgstr ""
|
4575 |
+
|
4576 |
+
#: ../inc/pro/class-settings-apikeys.php:63
|
4577 |
+
msgid "Full Dropbox App key:"
|
4578 |
+
msgstr ""
|
4579 |
+
|
4580 |
+
#: ../inc/pro/class-settings-apikeys.php:71
|
4581 |
+
msgid "Full Dropbox App secret:"
|
4582 |
+
msgstr ""
|
4583 |
+
|
4584 |
+
#: ../inc/pro/class-settings-apikeys.php:79
|
4585 |
+
msgid "Sandbox App key:"
|
4586 |
+
msgstr ""
|
4587 |
+
|
4588 |
+
#: ../inc/pro/class-settings-apikeys.php:87
|
4589 |
+
msgid "Sandbox App secret:"
|
4590 |
+
msgstr ""
|
4591 |
+
|
4592 |
+
#: ../inc/pro/class-settings-apikeys.php:100
|
4593 |
+
msgid "SugarSync API Keys"
|
4594 |
+
msgstr ""
|
4595 |
+
|
4596 |
+
#: ../inc/pro/class-settings-apikeys.php:101
|
4597 |
+
msgid ""
|
4598 |
+
"If you want to set your own SugarSync API keys you can do that here. Leave "
|
4599 |
+
"empty for default."
|
4600 |
+
msgstr ""
|
4601 |
+
|
4602 |
+
#: ../inc/pro/class-settings-apikeys.php:104
|
4603 |
+
msgid "Access Key ID:"
|
4604 |
+
msgstr ""
|
4605 |
+
|
4606 |
+
#: ../inc/pro/class-settings-apikeys.php:112
|
4607 |
+
msgid "Private Access Key:"
|
4608 |
+
msgstr ""
|
4609 |
+
|
4610 |
+
#: ../inc/pro/class-settings-apikeys.php:119
|
4611 |
+
msgid "App ID:"
|
4612 |
+
msgstr ""
|
4613 |
+
|
4614 |
+
#: ../inc/pro/class-settings-apikeys.php:132
|
4615 |
+
msgid "Google API Keys"
|
4616 |
+
msgstr ""
|
4617 |
+
|
4618 |
+
#: ../inc/pro/class-settings-apikeys.php:136
|
4619 |
+
msgid "Client ID:"
|
4620 |
+
msgstr ""
|
4621 |
+
|
4622 |
+
#: ../inc/pro/class-settings-apikeys.php:144
|
4623 |
+
msgid "Client secret:"
|
4624 |
+
msgstr ""
|
4625 |
+
|
4626 |
+
#: ../inc/pro/class-settings-apikeys.php:151
|
4627 |
+
msgid "Redirect URIs:"
|
4628 |
+
msgstr ""
|
4629 |
+
|
4630 |
+
#: ../inc/pro/class-settings-apikeys.php:155
|
4631 |
+
msgid "Add this URI in a new line to the field."
|
4632 |
+
msgstr ""
|
4633 |
+
|
4634 |
+
#: ../inc/pro/class-wizard-jobimport.php:14
|
4635 |
+
msgid "XML job import"
|
4636 |
+
msgstr ""
|
4637 |
+
|
4638 |
+
#: ../inc/pro/class-wizard-jobimport.php:15
|
4639 |
+
msgid "Wizard for importing BackWPup jobs from an XML file"
|
4640 |
+
msgstr ""
|
4641 |
+
|
4642 |
+
#: ../inc/pro/class-wizard-jobimport.php:32 ../inc/pro/class-wizard-jobimport.php:
|
4643 |
+
#: 98
|
4644 |
+
msgid "Import"
|
4645 |
+
msgstr ""
|
4646 |
+
|
4647 |
+
#: ../inc/pro/class-wizard-jobimport.php:45
|
4648 |
+
msgid "Import File"
|
4649 |
+
msgstr ""
|
4650 |
+
|
4651 |
+
#: ../inc/pro/class-wizard-jobimport.php:45
|
4652 |
+
msgid "Upload XML job file for import"
|
4653 |
+
msgstr ""
|
4654 |
+
|
4655 |
+
#: ../inc/pro/class-wizard-jobimport.php:46
|
4656 |
+
msgid "Select items to import"
|
4657 |
+
msgstr ""
|
4658 |
+
|
4659 |
+
#: ../inc/pro/class-wizard-jobimport.php:46
|
4660 |
+
msgid "Select which job should be imported or overwritten."
|
4661 |
+
msgstr ""
|
4662 |
+
|
4663 |
+
#: ../inc/pro/class-wizard-jobimport.php:67
|
4664 |
+
msgid ""
|
4665 |
+
"Please upload your BackWPup job XML export file and we’ll import the "
|
4666 |
+
"jobs into BackWPup."
|
4667 |
+
msgstr ""
|
4668 |
+
|
4669 |
+
#: ../inc/pro/class-wizard-jobimport.php:69
|
4670 |
+
msgid "Choose a file from your computer:"
|
4671 |
+
msgstr ""
|
4672 |
+
|
4673 |
+
#: ../inc/pro/class-wizard-jobimport.php:69
|
4674 |
+
#, php-format
|
4675 |
+
msgid "Maximum size: %s"
|
4676 |
+
msgstr ""
|
4677 |
+
|
4678 |
+
#: ../inc/pro/class-wizard-jobimport.php:91
|
4679 |
+
msgid "Import Jobs"
|
4680 |
+
msgstr ""
|
4681 |
+
|
4682 |
+
#: ../inc/pro/class-wizard-jobimport.php:94
|
4683 |
+
msgid "Import Type"
|
4684 |
+
msgstr ""
|
4685 |
+
|
4686 |
+
#: ../inc/pro/class-wizard-jobimport.php:94
|
4687 |
+
msgid "No Import"
|
4688 |
+
msgstr ""
|
4689 |
+
|
4690 |
+
#: ../inc/pro/class-wizard-jobimport.php:96
|
4691 |
+
msgid "Overwrite"
|
4692 |
+
msgstr ""
|
4693 |
+
|
4694 |
+
#: ../inc/pro/class-wizard-jobimport.php:96
|
4695 |
+
msgid "Append"
|
4696 |
+
msgstr ""
|
4697 |
+
|
4698 |
+
#: ../inc/pro/class-wizard-jobimport.php:110
|
4699 |
+
msgid "Import Config"
|
4700 |
+
msgstr ""
|
4701 |
+
|
4702 |
+
#: ../inc/pro/class-wizard-jobimport.php:113
|
4703 |
+
msgid "Import BackWPup configuration"
|
4704 |
+
msgstr ""
|
4705 |
+
|
4706 |
+
#: ../inc/pro/class-wizard-jobimport.php:138
|
4707 |
+
msgid ""
|
4708 |
+
"File is empty. Please upload something more substantial. This error could "
|
4709 |
+
"also caused by uploads being disabled in your php.ini or by post_max_size "
|
4710 |
+
"being defined as smaller than upload_max_filesize in php.ini."
|
4711 |
+
msgstr ""
|
4712 |
+
|
4713 |
+
#: ../inc/pro/class-wizard-jobimport.php:153
|
4714 |
+
#, php-format
|
4715 |
+
msgid ""
|
4716 |
+
"The export file could not be found at <code>%s</code>. This is likely due to "
|
4717 |
+
"an issue with permissions."
|
4718 |
+
msgstr ""
|
4719 |
+
|
4720 |
+
#: ../inc/pro/class-wizard-jobimport.php:160
|
4721 |
+
msgid "Sorry, there has been a phrase error."
|
4722 |
+
msgstr ""
|
4723 |
+
|
4724 |
+
#: ../inc/pro/class-wizard-jobimport.php:167
|
4725 |
+
#, php-format
|
4726 |
+
msgid ""
|
4727 |
+
"This Export file (version %s) may not be supported by this version of the "
|
4728 |
+
"importer."
|
4729 |
+
msgstr ""
|
4730 |
+
|
4731 |
+
#: ../inc/pro/class-wizard-jobimport.php:173
|
4732 |
+
msgid "This is not a BackWPup XML file"
|
4733 |
+
msgstr ""
|
4734 |
+
|
4735 |
+
#: ../inc/pro/class-wizard-jobimport.php:236
|
4736 |
+
#, php-format
|
4737 |
+
msgid "Job %1$s with id %2$d imported"
|
4738 |
+
msgstr ""
|
4739 |
+
|
4740 |
+
#: ../inc/pro/class-wizard-jobimport.php:244
|
4741 |
+
msgid "BackWPup config imported"
|
4742 |
+
msgstr ""
|
4743 |
+
|
4744 |
+
#: ../inc/pro/class-destination-s3-v1.php:17 ../inc/pro/class-destination-s3.php:17
|
4745 |
+
msgid "Select a S3 service:"
|
4746 |
+
msgstr ""
|
4747 |
+
|
4748 |
+
#: ../inc/pro/class-destination-s3-v1.php:30
|
4749 |
+
msgid "Hosteurope Cloud Storage"
|
4750 |
+
msgstr ""
|
4751 |
+
|
4752 |
+
#: ../inc/pro/class-destination-s3-v1.php:34 ../inc/pro/class-destination-s3.php:36
|
4753 |
+
msgid "or set an S3 Server URL:"
|
4754 |
+
msgstr ""
|
4755 |
+
|
4756 |
+
#: ../inc/pro/class-destination-s3-v1.php:40 ../inc/pro/class-destination-s3.php:
|
4757 |
+
#: 42 ../inc/pro/class-destination-glacier.php:170
|
4758 |
+
msgid "Secret Key:"
|
4759 |
+
msgstr ""
|
4760 |
+
|
4761 |
+
#: ../inc/pro/class-destination-s3-v1.php:43 ../inc/pro/class-destination-s3.php:45
|
4762 |
+
msgid "Bucket:"
|
4763 |
+
msgstr ""
|
4764 |
+
|
4765 |
+
#: ../inc/pro/class-destination-s3-v1.php:53 ../inc/pro/class-destination-s3.php:55
|
4766 |
+
msgid "New Bucket:"
|
4767 |
+
msgstr ""
|
4768 |
+
|
4769 |
+
#: ../inc/pro/class-destination-s3-v1.php:55 ../inc/pro/class-destination-s3.php:57
|
4770 |
+
msgid "Folder in bucket:"
|
4771 |
+
msgstr ""
|
4772 |
+
|
4773 |
+
#: ../inc/pro/class-destination-s3-v1.php:135 ../inc/pro/class-destination-s3.php:
|
4774 |
+
#: 136
|
4775 |
+
#, php-format
|
4776 |
+
msgid "Bucket %1$s created in %2$s."
|
4777 |
+
msgstr ""
|
4778 |
+
|
4779 |
+
#: ../inc/pro/class-destination-s3-v1.php:158 ../inc/pro/class-destination-s3.php:
|
4780 |
+
#: 160
|
4781 |
+
#, php-format
|
4782 |
+
msgid "%d. Trying to sync files to S3 Service …"
|
4783 |
+
msgstr ""
|
4784 |
+
|
4785 |
+
#: ../inc/pro/class-destination-s3-v1.php:197 ../inc/pro/class-destination-s3.php:
|
4786 |
+
#: 194
|
4787 |
+
msgid "Retrieving file list from S3."
|
4788 |
+
msgstr ""
|
4789 |
+
|
4790 |
+
#: ../inc/pro/class-destination-s3-v1.php:253 ../inc/pro/class-destination-s3.php:
|
4791 |
+
#: 256
|
4792 |
+
msgid "Upload changed files to S3."
|
4793 |
+
msgstr ""
|
4794 |
+
|
4795 |
+
#: ../inc/pro/class-destination-s3-v1.php:265 ../inc/pro/class-destination-s3.php:
|
4796 |
+
#: 271
|
4797 |
+
#, php-format
|
4798 |
+
msgid "File %s uploaded to S3."
|
4799 |
+
msgstr ""
|
4800 |
+
|
4801 |
+
#: ../inc/pro/class-destination-s3-v1.php:290 ../inc/pro/class-destination-s3.php:
|
4802 |
+
#: 299
|
4803 |
+
#, php-format
|
4804 |
+
msgid "Extra file %s uploaded to S3."
|
4805 |
+
msgstr ""
|
4806 |
+
|
4807 |
+
#: ../inc/pro/class-destination-s3-v1.php:303 ../inc/pro/class-destination-s3.php:
|
4808 |
+
#: 312
|
4809 |
+
msgid "Delete nonexistent files on S3"
|
4810 |
+
msgstr ""
|
4811 |
+
|
4812 |
+
#: ../inc/pro/class-destination-s3-v1.php:306 ../inc/pro/class-destination-s3.php:
|
4813 |
+
#: 319
|
4814 |
+
#, php-format
|
4815 |
+
msgid "File %s deleted from S3."
|
4816 |
+
msgstr ""
|
4817 |
+
|
4818 |
+
#: ../inc/pro/class-destination-sugarsync.php:25 ../inc/pro/class-destination-
|
4819 |
+
#: sugarsync.php:85
|
4820 |
+
msgid "Sugarsync authenticate!"
|
4821 |
+
msgstr ""
|
4822 |
+
|
4823 |
+
#: ../inc/pro/class-destination-sugarsync.php:31 ../inc/pro/class-destination-
|
4824 |
+
#: dropbox.php:34 ../inc/pro/class-destination-gdrive.php:270 ../inc/pro/class-
|
4825 |
+
#: destination-gdrive.php:276
|
4826 |
+
msgid "Login:"
|
4827 |
+
msgstr ""
|
4828 |
+
|
4829 |
+
#: ../inc/pro/class-destination-sugarsync.php:36
|
4830 |
+
msgid "Root:"
|
4831 |
+
msgstr ""
|
4832 |
+
|
4833 |
+
#: ../inc/pro/class-destination-sugarsync.php:58 ../inc/pro/class-destination-
|
4834 |
+
#: dropbox.php:38 ../inc/pro/class-destination-gdrive.php:281
|
4835 |
+
msgid "Folder:"
|
4836 |
+
msgstr ""
|
4837 |
+
|
4838 |
+
#: ../inc/pro/class-destination-sugarsync.php:61 ../inc/pro/class-destination-ftp.
|
4839 |
+
#: php:39
|
4840 |
+
msgid "Maximum number of backup files to keep in folder:"
|
4841 |
+
msgstr ""
|
4842 |
+
|
4843 |
+
#: ../inc/pro/class-destination-sugarsync.php:63 ../inc/pro/class-destination-ftp.
|
4844 |
+
#: php:42
|
4845 |
+
msgid "(Oldest files will be deleted first.)"
|
4846 |
+
msgstr ""
|
4847 |
+
|
4848 |
+
#: ../inc/pro/class-destination-folder.php:18
|
4849 |
+
msgid "Absolute path to folder for backup files:"
|
4850 |
+
msgstr ""
|
4851 |
+
|
4852 |
+
#: ../inc/pro/class-destination-folder.php:69
|
4853 |
+
#, php-format
|
4854 |
+
msgid "%d. Try to sync files to folder …"
|
4855 |
+
msgstr ""
|
4856 |
+
|
4857 |
+
#: ../inc/pro/class-destination-folder.php:73
|
4858 |
+
msgid "Retrieving file list from folder"
|
4859 |
+
msgstr ""
|
4860 |
+
|
4861 |
+
#: ../inc/pro/class-destination-folder.php:79
|
4862 |
+
msgid "Copy changed files to folder"
|
4863 |
+
msgstr ""
|
4864 |
+
|
4865 |
+
#: ../inc/pro/class-destination-folder.php:92
|
4866 |
+
#, php-format
|
4867 |
+
msgid "File %s copied"
|
4868 |
+
msgstr ""
|
4869 |
+
|
4870 |
+
#: ../inc/pro/class-destination-folder.php:105
|
4871 |
+
msgid "Delete not existing files from folder"
|
4872 |
+
msgstr ""
|
4873 |
+
|
4874 |
+
#: ../inc/pro/class-destination-folder.php:113
|
4875 |
+
#, php-format
|
4876 |
+
msgid "Extra file %s copied"
|
4877 |
+
msgstr ""
|
4878 |
+
|
4879 |
+
#: ../inc/pro/class-destination-folder.php:129
|
4880 |
+
#, php-format
|
4881 |
+
msgid "File %s deleted from folder"
|
4882 |
+
msgstr ""
|
4883 |
+
|
4884 |
+
#: ../inc/pro/class-destination-folder.php:186
|
4885 |
+
#, php-format
|
4886 |
+
msgid "Empty folder %s deleted"
|
4887 |
+
msgstr ""
|
4888 |
+
|
4889 |
+
#: ../inc/pro/class-destination-dropbox.php:24
|
4890 |
+
msgid "Auth Code:"
|
4891 |
+
msgstr ""
|
4892 |
+
|
4893 |
+
#: ../inc/pro/class-destination-dropbox.php:27
|
4894 |
+
msgid "Get auth code"
|
4895 |
+
msgstr ""
|
4896 |
+
|
4897 |
+
#: ../inc/pro/class-destination-dropbox.php:105
|
4898 |
+
#, php-format
|
4899 |
+
msgid "%d. Try to sync files to Dropbox …"
|
4900 |
+
msgstr ""
|
4901 |
+
|
4902 |
+
#: ../inc/pro/class-destination-dropbox.php:145
|
4903 |
+
msgid "Retrieving file list from Dropbox"
|
4904 |
+
msgstr ""
|
4905 |
+
|
4906 |
+
#: ../inc/pro/class-destination-dropbox.php:159
|
4907 |
+
msgid "Upload changed files to Dropbox"
|
4908 |
+
msgstr ""
|
4909 |
+
|
4910 |
+
#: ../inc/pro/class-destination-dropbox.php:181
|
4911 |
+
#, php-format
|
4912 |
+
msgid "File %s uploaded to Dropbox"
|
4913 |
+
msgstr ""
|
4914 |
+
|
4915 |
+
#: ../inc/pro/class-destination-dropbox.php:208
|
4916 |
+
#, php-format
|
4917 |
+
msgid "Extra file %s uploaded to Dropbox"
|
4918 |
+
msgstr ""
|
4919 |
+
|
4920 |
+
#: ../inc/pro/class-destination-dropbox.php:217
|
4921 |
+
msgid "Delete not existing files from Dropbox"
|
4922 |
+
msgstr ""
|
4923 |
+
|
4924 |
+
#: ../inc/pro/class-destination-dropbox.php:224
|
4925 |
+
#, php-format
|
4926 |
+
msgid "Folder %s deleted from Dropbox"
|
4927 |
+
msgstr ""
|
4928 |
+
|
4929 |
+
#: ../inc/pro/class-destination-dropbox.php:242
|
4930 |
+
#, php-format
|
4931 |
+
msgid "File %s deleted from Dropbox"
|
4932 |
+
msgstr ""
|
4933 |
+
|
4934 |
+
#: ../inc/pro/class-page-wizard.php:122
|
4935 |
+
msgid "No BackWPup Wizard Session found!"
|
4936 |
+
msgstr ""
|
4937 |
+
|
4938 |
+
#: ../inc/pro/class-page-wizard.php:134 ../inc/pro/class-page-wizard.php:442
|
4939 |
+
msgid "Cancel"
|
4940 |
+
msgstr ""
|
4941 |
+
|
4942 |
+
#: ../inc/pro/class-page-wizard.php:169 ../inc/pro/class-page-wizard.php:437 ..
|
4943 |
+
#: /inc/pro/class-page-wizard.php:470
|
4944 |
+
msgid "Next ›"
|
4945 |
+
msgstr ""
|
4946 |
+
|
4947 |
+
#: ../inc/pro/class-page-wizard.php:186 ../inc/pro/class-page-wizard.php:433
|
4948 |
+
msgid "‹ Previous"
|
4949 |
+
msgstr ""
|
4950 |
+
|
4951 |
+
#: ../inc/pro/class-page-wizard.php:335
|
4952 |
+
#, php-format
|
4953 |
+
msgctxt "Plugin Name"
|
4954 |
+
msgid "%s Wizards"
|
4955 |
+
msgstr ""
|
4956 |
+
|
4957 |
+
#: ../inc/pro/class-page-wizard.php:373
|
4958 |
+
#, php-format
|
4959 |
+
msgctxt "Plugin Name"
|
4960 |
+
msgid "%s Wizard:"
|
4961 |
+
msgstr ""
|
4962 |
+
|
4963 |
+
#: ../inc/pro/class-page-wizard.php:445
|
4964 |
+
msgid "Back to overview"
|
4965 |
+
msgstr ""
|
4966 |
+
|
4967 |
+
#: ../inc/pro/class-destination-ftp.php:17
|
4968 |
+
msgid "Hostname:"
|
4969 |
+
msgstr ""
|
4970 |
+
|
4971 |
+
#: ../inc/pro/class-destination-ftp.php:25 ../inc/pro/class-destination-rsc.php:23
|
4972 |
+
msgid "Username:"
|
4973 |
+
msgstr ""
|
4974 |
+
|
4975 |
+
#: ../inc/pro/class-destination-ftp.php:33
|
4976 |
+
msgid "Folder on server:"
|
4977 |
+
msgstr ""
|
4978 |
+
|
4979 |
+
#: ../inc/pro/class-destination-rsc.php:26
|
4980 |
+
msgid "API Key:"
|
4981 |
+
msgstr ""
|
4982 |
+
|
4983 |
+
#: ../inc/pro/class-destination-rsc.php:29
|
4984 |
+
msgid "Select region:"
|
4985 |
+
msgstr ""
|
4986 |
+
|
4987 |
+
#: ../inc/pro/class-destination-rsc.php:136
|
4988 |
+
#, php-format
|
4989 |
+
msgid "%d. Trying to sync files to Rackspace cloud …"
|
4990 |
+
msgstr ""
|
4991 |
+
|
4992 |
+
#: ../inc/pro/class-destination-rsc.php:156
|
4993 |
+
#, php-format
|
4994 |
+
msgid "Connected to Rackspace cloud files container %s."
|
4995 |
+
msgstr ""
|
4996 |
+
|
4997 |
+
#: ../inc/pro/class-destination-rsc.php:170
|
4998 |
+
msgid "Retrieving files list from Rackspace Cloud."
|
4999 |
+
msgstr ""
|
5000 |
+
|
5001 |
+
#: ../inc/pro/class-destination-rsc.php:201
|
5002 |
+
msgid "Upload changed files to Rackspace Cloud."
|
5003 |
+
msgstr ""
|
5004 |
+
|
5005 |
+
#: ../inc/pro/class-destination-rsc.php:219
|
5006 |
+
#, php-format
|
5007 |
+
msgid "File %s uploaded to Rackspace Cloud."
|
5008 |
+
msgstr ""
|
5009 |
+
|
5010 |
+
#: ../inc/pro/class-destination-rsc.php:252
|
5011 |
+
#, php-format
|
5012 |
+
msgid "Extra file %s uploaded to Rackspace Cloud."
|
5013 |
+
msgstr ""
|
5014 |
+
|
5015 |
+
#: ../inc/pro/class-destination-rsc.php:265
|
5016 |
+
msgid "Delete nonexistent files on Rackspace Cloud."
|
5017 |
+
msgstr ""
|
5018 |
+
|
5019 |
+
#: ../inc/pro/class-destination-rsc.php:269
|
5020 |
+
#, php-format
|
5021 |
+
msgid "File %s deleted from Rackspace Cloud."
|
5022 |
+
msgstr ""
|
5023 |
+
|
5024 |
+
#: ../inc/pro/class-marketpress-documentation.php:175
|
5025 |
+
msgid "Loading Menu ..."
|
5026 |
+
msgstr ""
|
5027 |
+
|
5028 |
+
#: ../inc/pro/class-marketpress-documentation.php:218 ../inc/pro/class-
|
5029 |
+
#: marketpress-documentation.php:334
|
5030 |
+
#, php-format
|
5031 |
+
msgctxt "%s = Remote Code"
|
5032 |
+
msgid "Could not connect to remote host, code %d. Please try again later."
|
5033 |
+
msgstr ""
|
5034 |
+
|
5035 |
+
#: ../inc/pro/class-marketpress-documentation.php:230 ../inc/pro/class-
|
5036 |
+
#: marketpress-documentation.php:346
|
5037 |
+
msgid "Could not find content for this page. Please try again later."
|
5038 |
+
msgstr ""
|
5039 |
+
|
5040 |
+
#: ../inc/pro/class-marketpress-documentation.php:236 ../inc/pro/class-
|
5041 |
+
#: marketpress-documentation.php:351
|
5042 |
+
msgid "Could not connect to remote host. Please try again later."
|
5043 |
+
msgstr ""
|
5044 |
+
|
5045 |
+
#: ../inc/pro/class-marketpress-documentation.php:282 ../inc/pro/class-
|
5046 |
+
#: marketpress-documentation.php:290
|
5047 |
+
msgid "Loading Content ..."
|
5048 |
+
msgstr ""
|
5049 |
+
|
5050 |
+
#: ../inc/pro/class-jobtype-dbcheck.php:21
|
5051 |
+
msgid "Check only WordPress Database tables"
|
5052 |
+
msgstr ""
|
5053 |
+
|
5054 |
+
#: ../inc/pro/class-jobtype-wpexp.php:17
|
5055 |
+
msgid "Items to export:"
|
5056 |
+
msgstr ""
|
5057 |
+
|
5058 |
+
#: ../inc/pro/class-destination-gdrive.php:35 ../inc/pro/class-destination-gdrive.
|
5059 |
+
#: php:257
|
5060 |
+
#, php-format
|
5061 |
+
msgid ""
|
5062 |
+
"Looks like you haven’t set up any API keys yet. Head over to <a "
|
5063 |
+
"href=\"%s\">Settings | API-Keys</a> and get Google Drive all set up, then come "
|
5064 |
+
"back here."
|
5065 |
+
msgstr ""
|
5066 |
+
|
5067 |
+
#: ../inc/pro/class-destination-gdrive.php:49 ../inc/pro/class-destination-gdrive.
|
5068 |
+
#: php:272
|
5069 |
+
msgid "Authenticate"
|
5070 |
+
msgstr ""
|
5071 |
+
|
5072 |
+
#: ../inc/pro/class-destination-gdrive.php:55 ../inc/pro/class-destination-gdrive.
|
5073 |
+
#: php:278
|
5074 |
+
msgid "Reauthenticate"
|
5075 |
+
msgstr ""
|
5076 |
+
|
5077 |
+
#: ../inc/pro/class-destination-gdrive.php:65
|
5078 |
+
msgid "Folder in Google Drive"
|
5079 |
+
msgstr ""
|
5080 |
+
|
5081 |
+
#: ../inc/pro/class-destination-gdrive.php:85
|
5082 |
+
msgid ""
|
5083 |
+
"Consider using trash to delete files. If trash is not enabled, files will be "
|
5084 |
+
"deleted permanently."
|
5085 |
+
msgstr ""
|
5086 |
+
|
5087 |
+
#: ../inc/pro/class-destination-gdrive.php:142 ../inc/pro/class-destination-
|
5088 |
+
#: gdrive.php:169
|
5089 |
+
msgid "GDrive: Authenticated."
|
5090 |
+
msgstr ""
|
5091 |
+
|
5092 |
+
#: ../inc/pro/class-destination-gdrive.php:146 ../inc/pro/class-destination-
|
5093 |
+
#: gdrive.php:173
|
5094 |
+
msgid "GDrive: No refresh token received. Try to Authenticate again!"
|
5095 |
+
msgstr ""
|
5096 |
+
|
5097 |
+
#: ../inc/pro/class-destination-gdrive.php:153 ../inc/pro/class-destination-
|
5098 |
+
#: gdrive.php:178 ../inc/pro/class-destination-gdrive.php:202 ../inc/pro/class-
|
5099 |
+
#: destination-gdrive.php:224
|
5100 |
+
#, php-format
|
5101 |
+
msgid "GDrive API: %s"
|
5102 |
+
msgstr ""
|
5103 |
+
|
5104 |
+
#: ../inc/pro/class-destination-gdrive.php:389
|
5105 |
+
#, php-format
|
5106 |
+
msgid "%d. Try to send backup file to Google Drive …"
|
5107 |
+
msgstr ""
|
5108 |
+
|
5109 |
+
#: ../inc/pro/class-destination-gdrive.php:415
|
5110 |
+
msgid "Uploading to Google Drive …"
|
5111 |
+
msgstr ""
|
5112 |
+
|
5113 |
+
#: ../inc/pro/class-destination-gdrive.php:475
|
5114 |
+
msgid "Google Drive API: could not create resumable file"
|
5115 |
+
msgstr ""
|
5116 |
+
|
5117 |
+
#: ../inc/pro/class-destination-gdrive.php:521
|
5118 |
+
msgid "Can not resume transfer backup to Google Drive!"
|
5119 |
+
msgstr ""
|
5120 |
+
|
5121 |
+
#: ../inc/pro/class-destination-gdrive.php:590
|
5122 |
+
#, php-format
|
5123 |
+
msgid "Error transfering file chunks to %s."
|
5124 |
+
msgstr ""
|
5125 |
+
|
5126 |
+
#: ../inc/pro/class-destination-gdrive.php:591 ../inc/pro/class-destination-
|
5127 |
+
#: gdrive.php:617
|
5128 |
+
msgid "Google Drive"
|
5129 |
+
msgstr ""
|
5130 |
+
|
5131 |
+
#: ../inc/pro/class-destination-gdrive.php:661
|
5132 |
+
#, php-format
|
5133 |
+
msgid "One file deleted from Google Drive"
|
5134 |
+
msgid_plural "%d files deleted on Google Drive"
|
5135 |
+
msgstr[0] ""
|
5136 |
+
msgstr[1] ""
|
5137 |
+
|
5138 |
+
#: ../inc/pro/class-destination-gdrive.php:667 ../inc/pro/class-destination-
|
5139 |
+
#: gdrive.php:889
|
5140 |
+
#, php-format
|
5141 |
+
msgid "Google Drive API: %s"
|
5142 |
+
msgstr ""
|
5143 |
+
|
5144 |
+
#: ../inc/pro/class-destination-gdrive.php:715
|
5145 |
+
#, php-format
|
5146 |
+
msgid "%d. Try to sync files to Google Drive …"
|
5147 |
+
msgstr ""
|
5148 |
+
|
5149 |
+
#: ../inc/pro/class-destination-gdrive.php:739
|
5150 |
+
msgid "Syncing changed files to Google Drive"
|
5151 |
+
msgstr ""
|
5152 |
+
|
5153 |
+
#: ../inc/pro/class-destination-gdrive.php:768
|
5154 |
+
#, php-format
|
5155 |
+
msgid "File %s updated on Google Drive"
|
5156 |
+
msgstr ""
|
5157 |
+
|
5158 |
+
#: ../inc/pro/class-destination-gdrive.php:788
|
5159 |
+
#, php-format
|
5160 |
+
msgid "File %s uploaded to Google Drive"
|
5161 |
+
msgstr ""
|
5162 |
+
|
5163 |
+
#: ../inc/pro/class-destination-gdrive.php:809
|
5164 |
+
#, php-format
|
5165 |
+
msgid "File %s moved to trash in Google Drive"
|
5166 |
+
msgstr ""
|
5167 |
+
|
5168 |
+
#: ../inc/pro/class-destination-gdrive.php:812
|
5169 |
+
#, php-format
|
5170 |
+
msgid "File %s deleted permanently in Google Drive"
|
5171 |
+
msgstr ""
|
5172 |
+
|
5173 |
+
#: ../inc/pro/class-destination-gdrive.php:857
|
5174 |
+
#, php-format
|
5175 |
+
msgid "Extra file %s updated on Google Drive"
|
5176 |
+
msgstr ""
|
5177 |
+
|
5178 |
+
#: ../inc/pro/class-destination-gdrive.php:878
|
5179 |
+
#, php-format
|
5180 |
+
msgid "Extra file %s uploaded to Google Drive"
|
5181 |
+
msgstr ""
|
5182 |
+
|
5183 |
+
#: ../inc/pro/class-destination-glacier.php:26
|
5184 |
+
msgid "Amazon Glacier"
|
5185 |
+
msgstr ""
|
5186 |
+
|
5187 |
+
#: ../inc/pro/class-destination-glacier.php:30
|
5188 |
+
msgid "Select a region:"
|
5189 |
+
msgstr ""
|
5190 |
+
|
5191 |
+
#: ../inc/pro/class-destination-glacier.php:32 ../inc/pro/class-destination-
|
5192 |
+
#: glacier.php:155
|
5193 |
+
msgid "Amazon Glacier Region"
|
5194 |
+
msgstr ""
|
5195 |
+
|
5196 |
+
#: ../inc/pro/class-destination-glacier.php:33 ../inc/pro/class-destination-
|
5197 |
+
#: glacier.php:156
|
5198 |
+
msgid "US Standard"
|
5199 |
+
msgstr ""
|
5200 |
+
|
5201 |
+
#: ../inc/pro/class-destination-glacier.php:34 ../inc/pro/class-destination-
|
5202 |
+
#: glacier.php:157
|
5203 |
+
msgid "US West (Northern California)"
|
5204 |
+
msgstr ""
|
5205 |
+
|
5206 |
+
#: ../inc/pro/class-destination-glacier.php:35 ../inc/pro/class-destination-
|
5207 |
+
#: glacier.php:158
|
5208 |
+
msgid "US West (Oregon)"
|
5209 |
+
msgstr ""
|
5210 |
+
|
5211 |
+
#: ../inc/pro/class-destination-glacier.php:36 ../inc/pro/class-destination-
|
5212 |
+
#: glacier.php:159
|
5213 |
+
msgid "EU (Ireland)"
|
5214 |
+
msgstr ""
|
5215 |
+
|
5216 |
+
#: ../inc/pro/class-destination-glacier.php:37 ../inc/pro/class-destination-
|
5217 |
+
#: glacier.php:160
|
5218 |
+
msgid "EU (Germany)"
|
5219 |
+
msgstr ""
|
5220 |
+
|
5221 |
+
#: ../inc/pro/class-destination-glacier.php:38 ../inc/pro/class-destination-
|
5222 |
+
#: glacier.php:161
|
5223 |
+
msgid "Asia Pacific (Tokyo)"
|
5224 |
+
msgstr ""
|
5225 |
+
|
5226 |
+
#: ../inc/pro/class-destination-glacier.php:39 ../inc/pro/class-destination-
|
5227 |
+
#: glacier.php:162
|
5228 |
+
msgid "Asia Pacific (Seoul)"
|
5229 |
+
msgstr ""
|
5230 |
+
|
5231 |
+
#: ../inc/pro/class-destination-glacier.php:40 ../inc/pro/class-destination-
|
5232 |
+
#: glacier.php:163
|
5233 |
+
msgid "Asia Pacific (Singapore)"
|
5234 |
+
msgstr ""
|
5235 |
+
|
5236 |
+
#: ../inc/pro/class-destination-glacier.php:41 ../inc/pro/class-destination-
|
5237 |
+
#: glacier.php:164
|
5238 |
+
msgid "Asia Pacific (Sydney)"
|
5239 |
+
msgstr ""
|
5240 |
+
|
5241 |
+
#: ../inc/pro/class-destination-glacier.php:42 ../inc/pro/class-destination-
|
5242 |
+
#: glacier.php:165
|
5243 |
+
msgid "South America (Sao Paulo)"
|
5244 |
+
msgstr ""
|
5245 |
+
|
5246 |
+
#: ../inc/pro/class-destination-glacier.php:43 ../inc/pro/class-destination-
|
5247 |
+
#: glacier.php:166
|
5248 |
+
msgid "China (Beijing)"
|
5249 |
+
msgstr ""
|
5250 |
+
|
5251 |
+
#: ../inc/pro/class-destination-glacier.php:49
|
5252 |
+
msgid "Amazon Access Keys"
|
5253 |
+
msgstr ""
|
5254 |
+
|
5255 |
+
#: ../inc/pro/class-destination-glacier.php:68
|
5256 |
+
msgid "Vault"
|
5257 |
+
msgstr ""
|
5258 |
+
|
5259 |
+
#: ../inc/pro/class-destination-glacier.php:72
|
5260 |
+
msgid "Vault selection"
|
5261 |
+
msgstr ""
|
5262 |
+
|
5263 |
+
#: ../inc/pro/class-destination-glacier.php:84
|
5264 |
+
msgid "Create a new vault"
|
5265 |
+
msgstr ""
|
5266 |
+
|
5267 |
+
#: ../inc/pro/class-destination-glacier.php:91
|
5268 |
+
msgid "Glacier Backup settings"
|
5269 |
+
msgstr ""
|
5270 |
+
|
5271 |
+
#: ../inc/pro/class-destination-glacier.php:98 ../inc/pro/class-destination-
|
5272 |
+
#: glacier.php:184
|
5273 |
+
msgid ""
|
5274 |
+
"Number of files to keep in folder. (Archives deleted before 3 months after "
|
5275 |
+
"they have been stored may cause extra costs when deleted.)"
|
5276 |
+
msgstr ""
|
5277 |
+
|
5278 |
+
#: ../inc/pro/class-destination-glacier.php:131 ../inc/pro/class-destination-
|
5279 |
+
#: glacier.php:219
|
5280 |
+
#, php-format
|
5281 |
+
msgid "Vault %1$s created."
|
5282 |
+
msgstr ""
|
5283 |
+
|
5284 |
+
#: ../inc/pro/class-destination-glacier.php:133 ../inc/pro/class-destination-
|
5285 |
+
#: glacier.php:221
|
5286 |
+
#, php-format
|
5287 |
+
msgid "Vault %s could not be created."
|
5288 |
+
msgstr ""
|
5289 |
+
|
5290 |
+
#: ../inc/pro/class-destination-glacier.php:154
|
5291 |
+
msgid "Select an Amazon Glacier region:"
|
5292 |
+
msgstr ""
|
5293 |
+
|
5294 |
+
#: ../inc/pro/class-destination-glacier.php:172
|
5295 |
+
msgid "Vault:"
|
5296 |
+
msgstr ""
|
5297 |
+
|
5298 |
+
#: ../inc/pro/class-destination-glacier.php:181
|
5299 |
+
msgid "New Vault:"
|
5300 |
+
msgstr ""
|
5301 |
+
|
5302 |
+
#: ../inc/pro/class-destination-glacier.php:262 ../inc/pro/class-destination-
|
5303 |
+
#: glacier.php:378 ../inc/pro/class-destination-glacier.php:397 ../inc/pro/class-
|
5304 |
+
#: destination-glacier.php:437
|
5305 |
+
#, php-format
|
5306 |
+
msgid "AWS API: %s"
|
5307 |
+
msgstr ""
|
5308 |
+
|
5309 |
+
#: ../inc/pro/class-destination-glacier.php:286
|
5310 |
+
#, php-format
|
5311 |
+
msgid "%d. Trying to send backup file to Amazon Glacier …"
|
5312 |
+
msgstr ""
|
5313 |
+
|
5314 |
+
#: ../inc/pro/class-destination-glacier.php:299
|
5315 |
+
#, php-format
|
5316 |
+
msgid "Connected to Glacier vault \"%1$s\" with %2$d archives and size of %3$d"
|
5317 |
+
msgstr ""
|
5318 |
+
|
5319 |
+
#: ../inc/pro/class-destination-glacier.php:301
|
5320 |
+
#, php-format
|
5321 |
+
msgid "Glacier vault \"%s\" does not exist!"
|
5322 |
+
msgstr ""
|
5323 |
+
|
5324 |
+
#: ../inc/pro/class-destination-glacier.php:307
|
5325 |
+
msgid "Starting upload to Amazon Glacier …"
|
5326 |
+
msgstr ""
|
5327 |
+
|
5328 |
+
#: ../inc/pro/class-destination-glacier.php:360
|
5329 |
+
#, php-format
|
5330 |
+
msgid "Archive ID: %s"
|
5331 |
+
msgstr ""
|
5332 |
+
|
5333 |
+
#: ../inc/pro/class-destination-glacier.php:371 ../inc/pro/class-pro.php:111
|
5334 |
+
msgid "Glacier"
|
5335 |
+
msgstr ""
|
5336 |
+
|
5337 |
+
#: ../inc/pro/class-destination-glacier.php:427
|
5338 |
+
#, php-format
|
5339 |
+
msgid "Cannot delete archive from %s."
|
5340 |
+
msgstr ""
|
5341 |
+
|
5342 |
+
#: ../inc/pro/class-destination-glacier.php:431
|
5343 |
+
#, php-format
|
5344 |
+
msgid "One file deleted on vault."
|
5345 |
+
msgid_plural "%d files deleted on vault"
|
5346 |
+
msgstr[0] ""
|
5347 |
+
msgstr[1] ""
|
5348 |
+
|
5349 |
+
#: ../inc/pro/class-destination-glacier.php:545
|
5350 |
+
msgid "No vault found!"
|
5351 |
+
msgstr ""
|
5352 |
+
|
5353 |
+
#: ../inc/pro/class-jobtype-wpplugin.php:13
|
5354 |
+
msgid "Nothing to configure"
|
5355 |
+
msgstr ""
|
5356 |
+
|
5357 |
+
#: ../inc/pro/class-marketpress-autoupdate.php:352 ../inc/pro/class-marketpress-
|
5358 |
+
#: autoupdate.php:587
|
5359 |
+
msgctxt "MarketPress URL part, should be .de for German languages"
|
5360 |
+
msgid "marketpress.com"
|
5361 |
+
msgstr ""
|
5362 |
+
|
5363 |
+
#: ../inc/pro/class-marketpress-autoupdate.php:362
|
5364 |
+
#, php-format
|
5365 |
+
msgid ""
|
5366 |
+
"<strong>Whoops!</strong> The license key you have entered appears not to be "
|
5367 |
+
"valid. You can always get your valid key from your Downloads page at %s. "
|
5368 |
+
"Automatic updates for this plugin have been disabled until you enter a valid "
|
5369 |
+
"key."
|
5370 |
+
msgstr ""
|
5371 |
+
|
5372 |
+
#: ../inc/pro/class-marketpress-autoupdate.php:369
|
5373 |
+
#, php-format
|
5374 |
+
msgid ""
|
5375 |
+
"<strong>All is fine.</strong> You are using a valid license key from %s for "
|
5376 |
+
"this plugin. If you need to enter a new key, just override the current one "
|
5377 |
+
"and save."
|
5378 |
+
msgstr ""
|
5379 |
+
|
5380 |
+
#: ../inc/pro/class-marketpress-autoupdate.php:382
|
5381 |
+
#, php-format
|
5382 |
+
msgid "Enter a valid license key from %s below."
|
5383 |
+
msgstr ""
|
5384 |
+
|
5385 |
+
#: ../inc/pro/class-marketpress-autoupdate.php:387
|
5386 |
+
msgid "Help! I need to retrieve my key."
|
5387 |
+
msgstr ""
|
5388 |
+
|
5389 |
+
#: ../inc/pro/class-marketpress-autoupdate.php:393
|
5390 |
+
msgid ""
|
5391 |
+
"<strong>Whoops!</strong> The license key you have entered appears not to be "
|
5392 |
+
"valid. Automatic updates for this plugin have been disabled until you enter "
|
5393 |
+
"a valid key."
|
5394 |
+
msgstr ""
|
5395 |
+
|
5396 |
+
#: ../inc/pro/class-marketpress-autoupdate.php:398
|
5397 |
+
#, php-format
|
5398 |
+
msgid ""
|
5399 |
+
"<strong>All is fine.</strong> You are using a valid license key from %s for "
|
5400 |
+
"this plugin. If you need to enter a new key, just override the current one "
|
5401 |
+
"and save. Or just <a href=\\\"%s\\\">delete it</a> to make it disappear."
|
5402 |
+
msgstr ""
|
5403 |
+
|
5404 |
+
#: ../inc/pro/class-marketpress-autoupdate.php:408
|
5405 |
+
msgid "Your license status"
|
5406 |
+
msgstr ""
|
5407 |
+
|
5408 |
+
#: ../inc/pro/class-marketpress-autoupdate.php:414
|
5409 |
+
msgid "License Key"
|
5410 |
+
msgstr ""
|
5411 |
+
|
5412 |
+
#: ../inc/pro/class-marketpress-autoupdate.php:416
|
5413 |
+
msgid "Activate"
|
5414 |
+
msgstr ""
|
5415 |
+
|
5416 |
+
#: ../inc/pro/class-marketpress-autoupdate.php:594
|
5417 |
+
msgid "License key has been deleted."
|
5418 |
+
msgstr ""
|
5419 |
+
|
5420 |
+
#: ../inc/pro/class-marketpress-autoupdate.php:600
|
5421 |
+
msgid "License activated successfully."
|
5422 |
+
msgstr ""
|
5423 |
+
|
5424 |
+
#: ../inc/pro/class-marketpress-autoupdate.php:606 ../inc/pro/class-marketpress-
|
5425 |
+
#: autoupdate.php:613 ../inc/pro/class-marketpress-autoupdate.php:622 ..
|
5426 |
+
#: /inc/pro/class-marketpress-autoupdate.php:631
|
5427 |
+
msgid "License cannot be activated."
|
5428 |
+
msgstr ""
|
5429 |
+
|
5430 |
+
#: ../inc/pro/class-marketpress-autoupdate.php:607
|
5431 |
+
msgid "The license key you have entered is not correct."
|
5432 |
+
msgstr ""
|
5433 |
+
|
5434 |
+
#: ../inc/pro/class-marketpress-autoupdate.php:614
|
5435 |
+
#, php-format
|
5436 |
+
msgid ""
|
5437 |
+
"You have reached the limit of URLs included in your license. Please update "
|
5438 |
+
"your license at %s."
|
5439 |
+
msgstr ""
|
5440 |
+
|
5441 |
+
#: ../inc/pro/class-marketpress-autoupdate.php:623
|
5442 |
+
#, php-format
|
5443 |
+
msgid ""
|
5444 |
+
"Something went wrong. Please try again later or contact the support staff at "
|
5445 |
+
"%s."
|
5446 |
+
msgstr ""
|
5447 |
+
|
5448 |
+
#: ../inc/pro/class-marketpress-autoupdate.php:632
|
5449 |
+
#, php-format
|
5450 |
+
msgid ""
|
5451 |
+
"Your license does not appear to be valid for this plugin. Please update your "
|
5452 |
+
"license at %s."
|
5453 |
+
msgstr ""
|
5454 |
+
|
5455 |
+
#: ../inc/pro/class-wizard-job.php:15
|
5456 |
+
msgid "Create a job"
|
5457 |
+
msgstr ""
|
5458 |
+
|
5459 |
+
#: ../inc/pro/class-wizard-job.php:16
|
5460 |
+
msgid "Choose a job"
|
5461 |
+
msgstr ""
|
5462 |
+
|
5463 |
+
#: ../inc/pro/class-wizard-job.php:41
|
5464 |
+
msgid "Job Types"
|
5465 |
+
msgstr ""
|
5466 |
+
|
5467 |
+
#: ../inc/pro/class-wizard-job.php:41
|
5468 |
+
msgid "Select a task for your job."
|
5469 |
+
msgstr ""
|
5470 |
+
|
5471 |
+
#: ../inc/pro/class-wizard-job.php:55
|
5472 |
+
msgid "Archive Settings"
|
5473 |
+
msgstr ""
|
5474 |
+
|
5475 |
+
#: ../inc/pro/class-wizard-job.php:55
|
5476 |
+
msgid "Settings for the Backup Archive"
|
5477 |
+
msgstr ""
|
5478 |
+
|
5479 |
+
#: ../inc/pro/class-wizard-job.php:57
|
5480 |
+
msgid "Where would you like to store the backup file?"
|
5481 |
+
msgstr ""
|
5482 |
+
|
5483 |
+
#: ../inc/pro/class-wizard-job.php:67 ../inc/pro/class-wizard-job.php:292
|
5484 |
+
msgid "Scheduling"
|
5485 |
+
msgstr ""
|
5486 |
+
|
5487 |
+
#: ../inc/pro/class-wizard-job.php:67
|
5488 |
+
msgid "When would you like to start the job?"
|
5489 |
+
msgstr ""
|
5490 |
+
|
5491 |
+
#: ../inc/pro/class-wizard-job.php:236
|
5492 |
+
msgid "Select one or more tasks for your backup job."
|
5493 |
+
msgstr ""
|
5494 |
+
|
5495 |
+
#: ../inc/pro/class-wizard-job.php:293
|
5496 |
+
msgid "Activate scheduling"
|
5497 |
+
msgstr ""
|
5498 |
+
|
5499 |
+
#: ../inc/pro/class-wizard-job.php:387
|
5500 |
+
msgid "Sync file by file to destination"
|
5501 |
+
msgstr ""
|
5502 |
+
|
5503 |
+
#: ../inc/pro/class-wizard-job.php:398
|
5504 |
+
msgid "Select a compression type for the backup archive"
|
5505 |
+
msgstr ""
|
5506 |
+
|
5507 |
+
#: ../inc/pro/class-wizard-job.php:401
|
5508 |
+
msgid "Archive compression type"
|
5509 |
+
msgstr ""
|
5510 |
+
|
5511 |
+
#: ../inc/pro/class-wizard-job.php:404
|
5512 |
+
msgid ""
|
5513 |
+
"PHP Zip functions will be used if available (memory lees). Else PCLZip Class "
|
5514 |
+
"will used."
|
5515 |
+
msgstr ""
|
5516 |
+
|
5517 |
+
#: ../inc/pro/class-wizard-job.php:406 ../inc/pro/class-wizard-job.php:411 ..
|
5518 |
+
#: /inc/pro/class-wizard-job.php:415
|
5519 |
+
msgid "Disabled because missing PHP function."
|
5520 |
+
msgstr ""
|
5521 |
+
|
5522 |
+
#: ../inc/pro/class-wizard-job.php:407
|
5523 |
+
msgid "Tar (fast and memory less) uncompressed"
|
5524 |
+
msgstr ""
|
5525 |
+
|
5526 |
+
#: ../inc/pro/class-wizard-job.php:409
|
5527 |
+
msgid "A tared and GZipped archive (fast and memory less)"
|
5528 |
+
msgstr ""
|
5529 |
+
|
5530 |
+
#: ../inc/pro/class-wizard-job.php:413
|
5531 |
+
msgid "A tared and BZipped archive (fast and memory less)"
|
5532 |
+
msgstr ""
|
5533 |
+
|
5534 |
+
#: ../inc/pro/class-wizard-job.php:435
|
5535 |
+
msgid "Where to store the files"
|
5536 |
+
msgstr ""
|
5537 |
+
|
5538 |
+
#: ../inc/pro/class-wizard-job.php:619
|
5539 |
+
#, php-format
|
5540 |
+
msgid "Wizard: %1$s"
|
5541 |
+
msgstr ""
|
5542 |
+
|
5543 |
+
#: ../inc/pro/class-wizard-job.php:638
|
5544 |
+
#, php-format
|
5545 |
+
msgid "New job %s generated."
|
5546 |
+
msgstr ""
|
5547 |
+
|
5548 |
+
#: ../inc/pro/class-wizard-job.php:650
|
5549 |
+
msgid "Create Job"
|
5550 |
+
msgstr ""
|
5551 |
+
|
5552 |
+
#: ../inc/pro/class-wizard-job.php:675 ../inc/pro/class-wizard-job.php:676
|
5553 |
+
msgid "Database Backup and XML Export (Daily)"
|
5554 |
+
msgstr ""
|
5555 |
+
|
5556 |
+
#: ../inc/pro/class-wizard-job.php:693 ../inc/pro/class-wizard-job.php:694
|
5557 |
+
msgid "Database Check (Weekly)"
|
5558 |
+
msgstr ""
|
5559 |
+
|
5560 |
+
#: ../inc/pro/class-wizard-job.php:718 ../inc/pro/class-wizard-job.php:719
|
5561 |
+
msgid "Backup all files"
|
5562 |
+
msgstr ""
|
5563 |
+
|
5564 |
+
#: ../inc/pro/class-wizard-job.php:733
|
5565 |
+
msgid "Essential files + list of plugins"
|
5566 |
+
msgstr ""
|
5567 |
+
|
5568 |
+
#: ../inc/pro/class-wizard-job.php:734
|
5569 |
+
msgid "Backup essential files and folders, plus a list of installed plugins."
|
5570 |
+
msgstr ""
|
5571 |
+
|
5572 |
+
#: ../inc/pro/class-wizard-job.php:749 ../inc/pro/class-wizard-job.php:750
|
5573 |
+
msgid "Custom configuration"
|
5574 |
+
msgstr ""
|
5575 |
+
|
5576 |
+
#: ../inc/pro/class-pro.php:130
|
5577 |
+
msgid "GDrive"
|
5578 |
+
msgstr ""
|
5579 |
+
|
5580 |
+
#: ../inc/pro/class-pro.php:183 ../inc/pro/class-pro.php:183 ../inc/pro/class-pro.
|
5581 |
+
#: php:219
|
5582 |
+
msgid "Wizards"
|
5583 |
+
msgstr ""
|
readme.txt
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
Contributors: inpsyde, danielhuesken, Bueltge, nullbyte
|
3 |
Tags: Amazon, Amazon S3, back up, backup, chinese, cloud, cloud files, database, db backup, dropbox, dump, file, french, ftp, ftps, german, migrate, multisite, russian, schedule, sftp, storage, S3, time, upload, xml
|
4 |
Requires at least: 3.8
|
5 |
-
Tested up to: 4.4
|
6 |
-
Stable tag: 3.2.
|
7 |
License: GPLv3
|
8 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
9 |
|
@@ -34,7 +34,7 @@ The **backup plugin** **[BackWPup Free](http://marketpress.com/product/backwpup-
|
|
34 |
* Pro version and support available - [BackWPup Pro](http://marketpress.com/product/backwpup-pro/)
|
35 |
|
36 |
= Requirements =
|
37 |
-
* WordPress 3.
|
38 |
* To use the Plugin with full functionality PHP 5.3.3 with mysqli, FTP,gz, bz2, ZipArchive and curl is needed.
|
39 |
* Plugin functions that don't work because of your server settings, will not be displayed in admin area.
|
40 |
|
@@ -170,6 +170,16 @@ Please check all settings after the update:
|
|
170 |
|
171 |
|
172 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
173 |
= Version 3.2.2 =
|
174 |
* Fixed: Setting of S3 storage class STANDARD | STANDARD_IA | REDUCED_REDUNDANCY
|
175 |
* Fixed: Potential security problems on log view and file download
|
2 |
Contributors: inpsyde, danielhuesken, Bueltge, nullbyte
|
3 |
Tags: Amazon, Amazon S3, back up, backup, chinese, cloud, cloud files, database, db backup, dropbox, dump, file, french, ftp, ftps, german, migrate, multisite, russian, schedule, sftp, storage, S3, time, upload, xml
|
4 |
Requires at least: 3.8
|
5 |
+
Tested up to: 4.4.1
|
6 |
+
Stable tag: 3.2.3
|
7 |
License: GPLv3
|
8 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
9 |
|
34 |
* Pro version and support available - [BackWPup Pro](http://marketpress.com/product/backwpup-pro/)
|
35 |
|
36 |
= Requirements =
|
37 |
+
* WordPress 3.8 and PHP 5.2.7 required!
|
38 |
* To use the Plugin with full functionality PHP 5.3.3 with mysqli, FTP,gz, bz2, ZipArchive and curl is needed.
|
39 |
* Plugin functions that don't work because of your server settings, will not be displayed in admin area.
|
40 |
|
170 |
|
171 |
|
172 |
== Changelog ==
|
173 |
+
= Version 3.2.3 =
|
174 |
+
* Added: AWS Region Asien-Pazifik (Seoul)
|
175 |
+
* Improved: open basedir checking
|
176 |
+
* Changed: Minimum WordPress version is now 3.8
|
177 |
+
* Fixed: get_site_option() deprecated cache parameter in WordPress 4.4
|
178 |
+
* Fixed: displaying of inactive on scheduled jobs
|
179 |
+
* Fixed: saving of adding extra user role
|
180 |
+
* Removed: Handling of signal SIGPROF
|
181 |
+
* Removed: Extra role column on user list
|
182 |
+
|
183 |
= Version 3.2.2 =
|
184 |
* Fixed: Setting of S3 storage class STANDARD | STANDARD_IA | REDUCED_REDUNDANCY
|
185 |
* Fixed: Potential security problems on log view and file download
|