145 lines
No EOL
4.5 KiB
PHP
Executable file
145 lines
No EOL
4.5 KiB
PHP
Executable file
<?php
|
|
if ( ! defined( 'DUPLICATOR_VERSION' ) ) exit; // Exit if accessed directly
|
|
|
|
|
|
class DUP_Settings
|
|
{
|
|
|
|
const OPT_SETTINGS = 'duplicator_settings';
|
|
|
|
public static $Data;
|
|
public static $Version = DUPLICATOR_VERSION;
|
|
|
|
/**
|
|
* Class used to manage all the settings for the plugin
|
|
*/
|
|
static function init() {
|
|
self::$Data = get_option(self::OPT_SETTINGS);
|
|
|
|
//when the plugin updated, this will be true
|
|
if (empty(self::$Data) || self::$Version > self::$Data['version']){
|
|
self::SetDefaults();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Find the setting value
|
|
* @param string $key The name of the key to find
|
|
* @return The value stored in the key returns null if key does not exist
|
|
*/
|
|
public static function Get($key = '') {
|
|
$result = null;
|
|
if (isset(self::$Data[$key])) {
|
|
$result = self::$Data[$key];
|
|
} else {
|
|
$defaults = self::GetAllDefaults();
|
|
if (isset($defaults[$key])) {
|
|
$result = $defaults[$key];
|
|
}
|
|
}
|
|
return $result;
|
|
}
|
|
|
|
/**
|
|
* Set the settings value in memory only
|
|
* @param string $key The name of the key to find
|
|
* @param string $value The value to set
|
|
* remarks: The Save() method must be called to write the Settings object to the DB
|
|
*/
|
|
public static function Set($key = '', $value) {
|
|
if (isset(self::$Data[$key])) {
|
|
self::$Data[$key] = ($value == null) ? '' : $value;
|
|
} elseif (!empty($key)) {
|
|
self::$Data[$key] = ($value == null) ? '' : $value;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Saves all the setting values to the database
|
|
* @return True if option value has changed, false if not or if update failed.
|
|
*/
|
|
public static function Save() {
|
|
return update_option(self::OPT_SETTINGS, self::$Data);
|
|
}
|
|
|
|
/**
|
|
* Deletes all the setting values to the database
|
|
* @return True if option value has changed, false if not or if update failed.
|
|
*/
|
|
public static function Delete() {
|
|
return delete_option(self::OPT_SETTINGS);
|
|
}
|
|
|
|
/**
|
|
* Sets the defaults if they have not been set
|
|
* @return True if option value has changed, false if not or if update failed.
|
|
*/
|
|
public static function SetDefaults() {
|
|
$defaults = self::GetAllDefaults();
|
|
self::$Data = $defaults;
|
|
return self::Save();
|
|
}
|
|
|
|
/**
|
|
* LegacyClean: Cleans up legacy data
|
|
*/
|
|
public static function LegacyClean() {
|
|
global $wpdb;
|
|
|
|
//PRE 5.0
|
|
$table = $wpdb->prefix."duplicator";
|
|
$wpdb->query("DROP TABLE IF EXISTS $table");
|
|
delete_option('duplicator_pack_passcount');
|
|
delete_option('duplicator_add1_passcount');
|
|
delete_option('duplicator_add1_clicked');
|
|
delete_option('duplicator_options');
|
|
|
|
//PRE 5.n
|
|
//Next version here if needed
|
|
}
|
|
|
|
/**
|
|
* DeleteWPOption: Cleans up legacy data
|
|
*/
|
|
public static function DeleteWPOption($optionName) {
|
|
|
|
if ( in_array($optionName, $GLOBALS['DUPLICATOR_OPTS_DELETE']) ) {
|
|
return delete_option($optionName);
|
|
}
|
|
return false;
|
|
}
|
|
|
|
|
|
public static function GetAllDefaults() {
|
|
$default = array();
|
|
$default['version'] = self::$Version;
|
|
|
|
//Flag used to remove the wp_options value duplicator_settings which are all the settings in this class
|
|
$default['uninstall_settings'] = isset(self::$Data['uninstall_settings']) ? self::$Data['uninstall_settings'] : true;
|
|
//Flag used to remove entire wp-snapshot directory
|
|
$default['uninstall_files'] = isset(self::$Data['uninstall_files']) ? self::$Data['uninstall_files'] : true;
|
|
//Flag used to remove all tables
|
|
$default['uninstall_tables'] = isset(self::$Data['uninstall_tables']) ? self::$Data['uninstall_tables'] : true;
|
|
|
|
//Flag used to show debug info
|
|
$default['package_debug'] = isset(self::$Data['package_debug']) ? self::$Data['package_debug'] : false;
|
|
//Flag used to enable mysqldump
|
|
$default['package_mysqldump'] = isset(self::$Data['package_mysqldump']) ? self::$Data['package_mysqldump'] : false;
|
|
//Optional mysqldump search path
|
|
$default['package_mysqldump_path'] = isset(self::$Data['package_mysqldump_path']) ? self::$Data['package_mysqldump_path'] : '';
|
|
//Optional mysql limit size
|
|
$default['package_phpdump_qrylimit'] = isset(self::$Data['package_phpdump_qrylimit']) ? self::$Data['package_phpdump_qrylimit'] : "100";
|
|
//Optional mysqldump search path
|
|
$default['package_zip_flush'] = isset(self::$Data['package_zip_flush']) ? self::$Data['package_zip_flush'] : false;
|
|
|
|
//Flag for .htaccess file
|
|
$default['storage_htaccess_off'] = isset(self::$Data['storage_htaccess_off']) ? self::$Data['storage_htaccess_off'] : false;
|
|
|
|
return $default;
|
|
}
|
|
}
|
|
|
|
//Init Class
|
|
DUP_Settings::init();
|
|
|
|
?>
|