function get_setting($key) { $settings = $this->get_settings(); // If legacy setting set, migrate settings if (isset($settings['wp-uploads']) && $settings['wp-uploads'] && in_array($key, array('copy-to-s3', 'serve-from-s3'))) { return '1'; } // Default object prefix if ('object-prefix' == $key && !isset($settings['object-prefix'])) { $uploads = wp_upload_dir(); $parts = parse_url($uploads['baseurl']); return substr($parts['path'], 1) . '/'; } return parent::get_setting($key); }
function get_setting($key) { $settings = $this->get_settings(); // If legacy setting set, migrate settings if (isset($settings['wp-uploads']) && $settings['wp-uploads'] && in_array($key, array('copy-to-s3', 'serve-from-s3'))) { return '1'; } // Default object prefix if ('object-prefix' == $key && !isset($settings['object-prefix'])) { $uploads = wp_upload_dir(); $parts = parse_url($uploads['baseurl']); return substr($parts['path'], 1) . '/'; } if ('bucket' == $key && defined('AS3CF_BUCKET')) { $value = AS3CF_BUCKET; } else { $value = parent::get_setting($key); } return apply_filters('as3cf_setting_' . $key, $value); }
/** * Accessor for a plugin setting with conditions to defaults and upgrades * * @param string $key * @param mixed $default * * @return int|mixed|string|WP_Error */ function get_setting($key, $default = '') { // use settings from $_POST when generating URL preview via AJAX if (isset($_POST['action']) && 'as3cf-get-url-preview' == sanitize_key($_POST['action'])) { // input var okay $value = 0; if (isset($_POST[$key])) { // input var okay $value = $_POST[$key]; // input var okay if (is_array($value)) { // checkbox is checked $value = 1; } } return $value; } $settings = $this->get_settings(); // If legacy setting set, migrate settings if (isset($settings['wp-uploads']) && $settings['wp-uploads'] && in_array($key, array('copy-to-s3', 'serve-from-s3'))) { return '1'; } // Turn on object versioning by default if ('object-versioning' == $key && !isset($settings['object-versioning'])) { return '1'; } // Default object prefix if ('object-prefix' == $key && !isset($settings['object-prefix'])) { return $this->get_default_object_prefix(); } // Default use year and month folders if ('use-yearmonth-folders' == $key && !isset($settings['use-yearmonth-folders'])) { return get_option('uploads_use_yearmonth_folders'); } // Default enable object prefix - enabled unless path is empty if ('enable-object-prefix' == $key) { if (isset($settings['enable-object-prefix']) && '0' == $settings['enable-object-prefix']) { return 0; } if (isset($settings['object-prefix']) && '' == trim($settings['object-prefix'])) { return 0; } else { return 1; } } // Region of bucket if not already retrieved if ('region' == $key && !isset($settings['region'])) { $bucket = $this->get_setting('bucket'); $region = $default; if ($bucket) { $region = $this->get_bucket_region($bucket); } // Store the region for future use parent::set_setting('region', $region); $this->save_settings(); return $region; } // Region of bucket translation if ('region' == $key && isset($settings['region'])) { return $this->translate_region($settings['region']); } // Domain setting since 0.8 if ('domain' == $key && !isset($settings['domain'])) { if ($this->get_setting('cloudfront')) { $domain = 'cloudfront'; } elseif ($this->get_setting('virtual-host')) { $domain = 'virtual-host'; } elseif ($this->use_ssl()) { $domain = 'path'; } else { $domain = 'subdomain'; } return $domain; } // SSL radio buttons since 0.8 if ('ssl' == $key && !isset($settings['ssl'])) { if ($this->get_setting('force-ssl', false)) { $ssl = 'https'; } else { $ssl = 'request'; } return $ssl; } $value = parent::get_setting($key, $default); if ('bucket' == $key && defined('AS3CF_BUCKET')) { $bucket = AS3CF_BUCKET; if ($bucket !== $value) { // Save the defined bucket parent::set_setting('bucket', $bucket); // Clear region $this->remove_setting('region'); $this->save_settings(); } return $bucket; } return apply_filters('as3cf_setting_' . $key, $value); }
/** * Accessor for a plugin setting with conditions to defaults and upgrades * * @param string $key * @param mixed $default * * @return int|mixed|string|WP_Error */ function get_setting($key, $default = '') { // use settings from $_POST when generating URL preview via AJAX if (isset($_POST['action']) && 'as3cf-get-url-preview' == sanitize_key($_POST['action'])) { // input var okay $value = 0; if (isset($_POST[$key])) { // input var okay $value = $_POST[$key]; // input var okay if (is_array($value)) { // checkbox is checked $value = $value[1]; } } return $value; } $settings = $this->get_settings(); // If legacy setting set, migrate settings if (isset($settings['wp-uploads']) && $settings['wp-uploads'] && in_array($key, array('copy-to-s3', 'serve-from-s3'))) { return '1'; } // Turn on object versioning by default if ('object-versioning' == $key && !isset($settings['object-versioning'])) { return '1'; } // Default object prefix if ('object-prefix' == $key && !isset($settings['object-prefix'])) { return $this->get_default_object_prefix(); } // Default use year and month folders if ('use-yearmonth-folders' == $key && !isset($settings['use-yearmonth-folders'])) { return get_option('uploads_use_yearmonth_folders'); } // Default enable object prefix - enabled unless path is empty if ('enable-object-prefix' == $key) { if (isset($settings['enable-object-prefix']) && '0' == $settings['enable-object-prefix']) { return 0; } if (isset($settings['object-prefix']) && '' == trim($settings['object-prefix'])) { if (false === $this->get_defined_setting('object-prefix', false)) { return 0; } } else { return 1; } } // Region if (false !== ($region = $this->get_setting_region($settings, $key, $default))) { return $region; } // Domain setting since 0.8 if ('domain' === $key && !isset($settings['domain'])) { if ($this->get_setting('cloudfront')) { $domain = 'cloudfront'; } elseif ($this->get_setting('virtual-host')) { $domain = $this->upgrade_virtual_host(); } else { $domain = 'path'; } return $domain; } // 1.1 Update 'Bucket as Domain' to new CloudFront/Domain UI if ('domain' === $key && 'virtual-host' === $settings[$key]) { return $this->upgrade_virtual_host(); } // SSL radio buttons since 0.8 if ('ssl' == $key && !isset($settings['ssl'])) { if ($this->get_setting('force-ssl', false)) { $ssl = 'https'; } else { $ssl = 'request'; } $this->set_setting('ssl', $ssl); $this->remove_setting('force-ssl'); $this->save_settings(); return $ssl; } // Force HTTPS since 1.3 if ('force-https' === $key && !isset($settings['force-https'])) { $ssl = $this->get_setting('ssl', 'request'); $force_https = false; if ('https' === $ssl) { $force_https = true; } elseif ('http' === $ssl) { $this->maybe_display_deprecated_http_notice(); } $this->set_setting('force-https', $force_https); $this->remove_setting('ssl'); $this->save_settings(); return $force_https; } $value = parent::get_setting($key, $default); // Bucket if (false !== ($bucket = $this->get_setting_bucket($key, $value))) { return $bucket; } return apply_filters('as3cf_setting_' . $key, $value); }