PageRenderTime 25ms CodeModel.GetById 1ms RepoModel.GetById 0ms app.codeStats 0ms

/184.168.182.1/wp-content/plugins/updraftplus/options.php

https://gitlab.com/endomorphosis/falkenstein
PHP | 137 lines | 104 code | 32 blank | 1 comment | 14 complexity | 039d5aa0ffc75d77aa1a4898f5d03785 MD5 | raw file
  1. <?php
  2. // Options handling
  3. if (!defined('ABSPATH')) die ('No direct access allowed');
  4. class UpdraftPlus_Options {
  5. public static function user_can_manage() {
  6. return current_user_can('manage_options');
  7. }
  8. public static function admin_page_url() {
  9. return admin_url('options-general.php');
  10. }
  11. public static function admin_page() {
  12. return 'options-general.php';
  13. }
  14. public static function get_updraft_option($option, $default = null) {
  15. return get_option($option, $default);
  16. }
  17. public static function update_updraft_option($option, $value, $use_cache = true) {
  18. update_option($option, $value);
  19. }
  20. public static function delete_updraft_option($option) {
  21. delete_option($option);
  22. }
  23. public static function add_admin_pages() {
  24. global $updraftplus_admin;
  25. add_submenu_page('options-general.php', 'UpdraftPlus', __('UpdraftPlus Backups','updraftplus'), "manage_options", "updraftplus", array($updraftplus_admin, "settings_output"));
  26. }
  27. public static function options_form_begin($settings_fields = 'updraft-options-group', $allow_autocomplete = true) {
  28. global $pagenow;
  29. echo '<form method="post" ';
  30. if ($pagenow == 'options-general.php') echo 'action="options.php"';
  31. if (!$allow_autocomplete) echo ' autocomplete="off"';
  32. echo '>';
  33. if ($settings_fields) settings_fields('updraft-options-group');
  34. }
  35. public static function admin_init() {
  36. global $updraftplus, $updraftplus_admin;
  37. register_setting('updraft-options-group', 'updraft_interval', array($updraftplus, 'schedule_backup') );
  38. register_setting('updraft-options-group', 'updraft_interval_database', array($updraftplus, 'schedule_backup_database') );
  39. register_setting('updraft-options-group', 'updraft_retain', array($updraftplus, 'retain_range') );
  40. register_setting('updraft-options-group', 'updraft_retain_db', array($updraftplus, 'retain_range') );
  41. register_setting('updraft-options-group', 'updraft_encryptionphrase');
  42. register_setting('updraft-options-group', 'updraft_service', array($updraftplus, 'just_one'));
  43. register_setting('updraft-options-group', 'updraft_s3');
  44. register_setting('updraft-options-group', 'updraft_dreamobjects');
  45. register_setting('updraft-options-group', 'updraft_s3generic');
  46. register_setting('updraft-options-group', 'updraft_cloudfiles');
  47. register_setting('updraft-options-group', 'updraft_sftp_settings');
  48. register_setting('updraft-options-group', 'updraft_webdav_settings', array($updraftplus, 'replace_http_with_webdav'));
  49. register_setting('updraft-options-group', 'updraft_dropbox_appkey');
  50. register_setting('updraft-options-group', 'updraft_dropbox_secret');
  51. register_setting('updraft-options-group', 'updraft_dropbox_folder');
  52. register_setting('updraft-options-group', 'updraft_ssl_nossl', 'absint');
  53. register_setting('updraft-options-group', 'updraft_log_syslog', 'absint');
  54. register_setting('updraft-options-group', 'updraft_ssl_useservercerts', 'absint');
  55. register_setting('updraft-options-group', 'updraft_ssl_disableverify', 'absint');
  56. register_setting('updraft-options-group', 'updraft_googledrive_clientid', array($updraftplus, 'googledrive_clientid_checkchange') );
  57. register_setting('updraft-options-group', 'updraft_googledrive_secret');
  58. register_setting('updraft-options-group', 'updraft_googledrive_remotepath', array($updraftplus_admin, 'googledrive_remove_folderurlprefix') );
  59. register_setting('updraft-options-group', 'updraft_split_every', array($updraftplus_admin, 'optionfilter_split_every') );
  60. register_setting('updraft-options-group', 'updraft_ftp_login' );
  61. register_setting('updraft-options-group', 'updraft_ftp_pass' );
  62. register_setting('updraft-options-group', 'updraft_ftp_remote_path' );
  63. register_setting('updraft-options-group', 'updraft_server_address' );
  64. register_setting('updraft-options-group', 'updraft_dir', array($updraftplus_admin, 'prune_updraft_dir_prefix') );
  65. register_setting('updraft-options-group', 'updraft_email', array($updraftplus, 'just_one_email'));
  66. register_setting('updraft-options-group', 'updraft_report_warningsonly', array($updraftplus_admin, 'return_array'));
  67. register_setting('updraft-options-group', 'updraft_report_wholebackup', array($updraftplus_admin, 'return_array'));
  68. register_setting('updraft-options-group', 'updraft_delete_local', 'absint' );
  69. register_setting('updraft-options-group', 'updraft_debug_mode', 'absint' );
  70. register_setting('updraft-options-group', 'updraft_include_plugins', 'absint' );
  71. register_setting('updraft-options-group', 'updraft_include_themes', 'absint' );
  72. register_setting('updraft-options-group', 'updraft_include_uploads', 'absint' );
  73. register_setting('updraft-options-group', 'updraft_include_others', 'absint' );
  74. register_setting('updraft-options-group', 'updraft_include_wpcore', 'absint' );
  75. register_setting('updraft-options-group', 'updraft_include_wpcore_exclude', array($updraftplus, 'strip_dirslash'));
  76. register_setting('updraft-options-group', 'updraft_include_more', 'absint' );
  77. register_setting('updraft-options-group', 'updraft_include_more_path', array($updraftplus, 'remove_empties'));
  78. register_setting('updraft-options-group', 'updraft_include_uploads_exclude', array($updraftplus, 'strip_dirslash'));
  79. register_setting('updraft-options-group', 'updraft_include_others_exclude', array($updraftplus, 'strip_dirslash'));
  80. register_setting('updraft-options-group', 'updraft_starttime_files', array('UpdraftPlus_Options', 'hourminute') );
  81. register_setting('updraft-options-group', 'updraft_starttime_db', array('UpdraftPlus_Options', 'hourminute') );
  82. register_setting('updraft-options-group', 'updraft_startday_files', array('UpdraftPlus_Options', 'weekday') );
  83. register_setting('updraft-options-group', 'updraft_startday_db', array('UpdraftPlus_Options', 'weekday') );
  84. global $pagenow;
  85. if (is_multisite() && $pagenow == 'options-general.php' && isset($_REQUEST['page']) && 'updraftplus' == substr($_REQUEST['page'], 0, 11)) {
  86. add_action('all_admin_notices', array('UpdraftPlus_Options', 'show_admin_warning_multisite') );
  87. }
  88. }
  89. public static function hourminute($pot) {
  90. if (preg_match("/^[0-2][0-9]:[0-5][0-9]$/", $pot)) return $pot;
  91. if ('' == $pot) return date('H:i', time()+300);
  92. return '00:00';
  93. }
  94. public static function weekday($pot) {
  95. $pot = absint($pot);
  96. return ($pot>6) ? 0 : $pot;
  97. }
  98. public static function show_admin_warning_multisite() {
  99. global $updraftplus_admin;
  100. $updraftplus_admin->show_admin_warning('<strong>'.__('UpdraftPlus warning:', 'updraftplus').'</strong> '.__('This is a WordPress multi-site (a.k.a. network) installation.', 'updraftplus').' <a href="http://updraftplus.com">'.__('WordPress Multisite is supported, with extra features, by UpdraftPlus Premium, or the Multisite add-on.', 'updraftplus').'</a> '.__('Without upgrading, UpdraftPlus allows <strong>every</strong> blog admin who can modify plugin settings to back up (and hence access the data, including passwords, from) and restore (including with customised modifications, e.g. changed passwords) <strong>the entire network</strong>.', 'updraftplus').' '.__('(This applies to all WordPress backup plugins unless they have been explicitly coded for multisite compatibility).', 'updraftplus'), 'error');
  101. }
  102. }
  103. add_action('admin_init', array('UpdraftPlus_Options', 'admin_init'));
  104. add_action('admin_menu', array('UpdraftPlus_Options', 'add_admin_pages'));
  105. ?>