diff options
-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'); |