Improve naming in SettingsController
[MAILPOET-1757]
This commit is contained in:
@ -105,7 +105,7 @@ class Mailer {
|
|||||||
if(!$mailer || !isset($mailer['method'])) throw new \Exception(__('Mailer is not configured.', 'mailpoet'));
|
if(!$mailer || !isset($mailer['method'])) throw new \Exception(__('Mailer is not configured.', 'mailpoet'));
|
||||||
}
|
}
|
||||||
if(empty($mailer['frequency'])) {
|
if(empty($mailer['frequency'])) {
|
||||||
$default_settings = $settings->getDefaults();
|
$default_settings = $settings->getAllDefaults();
|
||||||
$mailer['frequency'] = $default_settings['mta']['frequency'];
|
$mailer['frequency'] = $default_settings['mta']['frequency'];
|
||||||
}
|
}
|
||||||
// add additional variables to the mailer object
|
// add additional variables to the mailer object
|
||||||
|
@ -1,24 +1,32 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace MailPoet\Settings;
|
namespace MailPoet\Settings;
|
||||||
|
|
||||||
use Composer\Package\Package;
|
use MailPoet\Cron\CronTrigger;
|
||||||
use MailPoet\Models\Setting;
|
use MailPoet\Models\Setting;
|
||||||
|
|
||||||
class SettingsController {
|
class SettingsController {
|
||||||
|
|
||||||
|
const DEFAULT_SENDING_METHOD_GROUP = 'website';
|
||||||
|
const DEFAULT_SENDING_METHOD = 'PHPMail';
|
||||||
|
const DEFAULT_SENDING_FREQUENCY_EMAILS = 25;
|
||||||
|
const DEFAULT_SENDING_FREQUENCY_INTERVAL = 5; // in minutes
|
||||||
|
|
||||||
private static $loaded = false;
|
private static $loaded = false;
|
||||||
|
|
||||||
private static $settings = [];
|
private static $settings = [];
|
||||||
|
|
||||||
|
private $defaults = null;
|
||||||
|
|
||||||
function get($key, $default = null) {
|
function get($key, $default = null) {
|
||||||
$this->ensureLoaded();
|
$this->ensureLoaded();
|
||||||
$keys = explode('.', $key);
|
$key_parts = explode('.', $key);
|
||||||
$setting = self::$settings;
|
$setting = self::$settings;
|
||||||
if($default === null) {
|
if($default === null) {
|
||||||
$default = $this->getDefault($keys);
|
$default = $this->getDefaultValue($key_parts);
|
||||||
}
|
}
|
||||||
foreach($keys as $key) {
|
foreach($key_parts as $key_part) {
|
||||||
if(array_key_exists($key, $setting)) {
|
if(array_key_exists($key_part, $setting)) {
|
||||||
$setting = $setting[$key];
|
$setting = $setting[$key_part];
|
||||||
} else {
|
} else {
|
||||||
return $default;
|
return $default;
|
||||||
}
|
}
|
||||||
@ -29,8 +37,38 @@ class SettingsController {
|
|||||||
return $setting;
|
return $setting;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getDefaults() {
|
function getAllDefaults() {
|
||||||
return Setting::getDefaults();
|
if($this->defaults === null) {
|
||||||
|
$this->defaults = [
|
||||||
|
'mta_group' => self::DEFAULT_SENDING_METHOD_GROUP,
|
||||||
|
'mta' => array(
|
||||||
|
'method' => self::DEFAULT_SENDING_METHOD,
|
||||||
|
'frequency' => array(
|
||||||
|
'emails' => self::DEFAULT_SENDING_FREQUENCY_EMAILS,
|
||||||
|
'interval' => self::DEFAULT_SENDING_FREQUENCY_INTERVAL
|
||||||
|
)
|
||||||
|
),
|
||||||
|
CronTrigger::SETTING_NAME => [
|
||||||
|
'method' => CronTrigger::DEFAULT_METHOD
|
||||||
|
],
|
||||||
|
'signup_confirmation' => [
|
||||||
|
'enabled' => true,
|
||||||
|
'subject' => sprintf(__('Confirm your subscription to %1$s', 'mailpoet'), get_option('blogname')),
|
||||||
|
'body' => __("Hello,\n\nWelcome to our newsletter!\n\nPlease confirm your subscription to the list(s): [lists_to_confirm] by clicking the link below: \n\n[activation_link]Click here to confirm your subscription.[/activation_link]\n\nThank you,\n\nThe Team", 'mailpoet')
|
||||||
|
],
|
||||||
|
'tracking' => [
|
||||||
|
'enabled' => true
|
||||||
|
],
|
||||||
|
'analytics' => [
|
||||||
|
'enabled' => false,
|
||||||
|
],
|
||||||
|
'in_app_announcements' => [
|
||||||
|
'displayed' => []
|
||||||
|
],
|
||||||
|
'display_nps_poll' => true,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
return $this->defaults;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -46,25 +84,23 @@ class SettingsController {
|
|||||||
|
|
||||||
function getAll() {
|
function getAll() {
|
||||||
$this->ensureLoaded();
|
$this->ensureLoaded();
|
||||||
return self::$settings;
|
return array_replace_recursive($this->getAllDefaults(), self::$settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
function set($key, $value) {
|
function set($key, $value) {
|
||||||
$this->ensureLoaded();
|
$this->ensureLoaded();
|
||||||
$keys = explode('.', $key);
|
$key_parts = explode('.', $key);
|
||||||
$main_key = $keys[0];
|
$main_key = $key_parts[0];
|
||||||
$last_key = array_pop($keys);
|
$last_key = array_pop($key_parts);
|
||||||
$settings = self::$settings;
|
$setting =& self::$settings;
|
||||||
$setting =& $settings;
|
foreach($key_parts as $key_part) {
|
||||||
foreach($keys as $key) {
|
$setting =& $setting[$key_part];
|
||||||
$setting =& $setting[$key];
|
|
||||||
if(!is_array($setting)) {
|
if(!is_array($setting)) {
|
||||||
$setting = [];
|
$setting = [];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$setting[$last_key] = $value;
|
$setting[$last_key] = $value;
|
||||||
Setting::setValue($main_key, $settings[$main_key]);
|
Setting::setValue($main_key, self::$settings[$main_key]);
|
||||||
self::$settings = $settings;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function delete($key) {
|
function delete($key) {
|
||||||
@ -80,8 +116,8 @@ class SettingsController {
|
|||||||
self::$loaded = true;
|
self::$loaded = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function getDefault($keys) {
|
private function getDefaultValue($keys) {
|
||||||
$default = $this->getDefaults();
|
$default = $this->getAllDefaults();
|
||||||
foreach($keys as $key) {
|
foreach($keys as $key) {
|
||||||
if(array_key_exists($key, $default)) {
|
if(array_key_exists($key, $default)) {
|
||||||
$default = $default[$key];
|
$default = $default[$key];
|
||||||
|
Reference in New Issue
Block a user