From 1f4a73412e359187bcd0ad71ffe2e6298738ab10 Mon Sep 17 00:00:00 2001 From: Gina Haeussge Date: Sun, 8 Nov 2009 12:52:37 +0100 Subject: 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 --- lib/plugins/config/settings/config.class.php | 17 +++++++++++++---- lib/plugins/config/settings/config.metadata.php | 2 +- 2 files changed, 14 insertions(+), 5 deletions(-) (limited to 'lib/plugins') 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'); -- cgit v1.2.3