diff options
author | Gina Haeussge <osd@foosel.net> | 2009-11-08 12:52:37 +0100 |
---|---|---|
committer | Gina Haeussge <osd@foosel.net> | 2009-11-08 12:52:37 +0100 |
commit | 1f4a73412e359187bcd0ad71ffe2e6298738ab10 (patch) | |
tree | d42340c1b044bcb480cd3c14128e0bda7df51c67 /lib/plugins | |
parent | 8c2ca0fab31436075c7c348460be5c237074261a (diff) | |
download | rpg-1f4a73412e359187bcd0ad71ffe2e6298738ab10.tar.gz rpg-1f4a73412e359187bcd0ad71ffe2e6298738ab10.tar.bz2 |
Allow multiple mail addresses in $conf['notify']
Ignore-this: cb12d98437bc7bd4e3fb641a39b277c5
According to the documentation, $conf['notify'] may be a comma-separated list
of email addresses. However, the config admin did not allow this yet.
darcs-hash:20091108115237-2b4f5-67e43dc767bd3aa18222cbb8272efaaf0ba0f4d3.gz
Diffstat (limited to 'lib/plugins')
-rw-r--r-- | lib/plugins/config/settings/config.class.php | 17 | ||||
-rw-r--r-- | lib/plugins/config/settings/config.metadata.php | 2 |
2 files changed, 14 insertions, 5 deletions
diff --git a/lib/plugins/config/settings/config.class.php b/lib/plugins/config/settings/config.class.php index ce9409438..d995e8a30 100644 --- a/lib/plugins/config/settings/config.class.php +++ b/lib/plugins/config/settings/config.class.php @@ -534,6 +534,7 @@ if (!class_exists('setting_email')) { class setting_email extends setting_string { var $_pattern = SETTING_EMAIL_PATTERN; // no longer required, retained for backward compatibility - FIXME, may not be necessary + var $_multiple = false; /** * update setting with user provided value $input @@ -548,10 +549,18 @@ if (!class_exists('setting_email')) { $value = is_null($this->_local) ? $this->_default : $this->_local; if ($value == $input) return false; - if (!mail_isvalid($input)) { - $this->_error = true; - $this->_input = $input; - return false; + if ($this->_multiple) { + $mails = array_filter(array_map('trim', split(',', $input))); + } else { + $mails = array($input); + } + + foreach ($mails as $mail) { + if (!mail_isvalid($mail)) { + $this->_error = true; + $this->_input = $input; + return false; + } } $this->_local = $input; diff --git a/lib/plugins/config/settings/config.metadata.php b/lib/plugins/config/settings/config.metadata.php index 41f8497bf..742faf387 100644 --- a/lib/plugins/config/settings/config.metadata.php +++ b/lib/plugins/config/settings/config.metadata.php @@ -146,7 +146,7 @@ $meta['_editing'] = array('fieldset'); $meta['usedraft'] = array('onoff'); $meta['htmlok'] = array('onoff'); $meta['phpok'] = array('onoff'); -$meta['notify'] = array('email'); +$meta['notify'] = array('email', '_multiple' => true); $meta['subscribers'] = array('onoff'); $meta['locktime'] = array('numeric'); $meta['cachetime'] = array('numeric'); |