From 085733faa1cd8a0a37bd21bba2824833bb7c97e3 Mon Sep 17 00:00:00 2001 From: Nathan Gray Date: Tue, 26 Nov 2013 18:23:14 +0000 Subject: [PATCH] Better handling of defaults - options can be more than key => value maps --- .../inc/class.preferences_settings.inc.php | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/preferences/inc/class.preferences_settings.inc.php b/preferences/inc/class.preferences_settings.inc.php index 79088e6d4f..fc3dd20283 100644 --- a/preferences/inc/class.preferences_settings.inc.php +++ b/preferences/inc/class.preferences_settings.inc.php @@ -372,11 +372,25 @@ class preferences_settings $GLOBALS['egw']->preferences->group[$appname][$setting['name']] : $GLOBALS['egw']->preferences->default[$appname][$setting['name']]; - if (isset($setting['values']) && !is_array($setting['values'][$default]) && (string)$setting['values'][$default] !== '') + if (isset($setting['values']) && !is_array($default) && (string)$setting['values'][$default] !== '') { - $default = $setting['values'][$default]; + if(is_array($setting['values'][$default])) + { + foreach($setting['values'] as $key => $value) + { + if($value['value'] == $default && $value['label']) + { + $default = $value['label']; + break; + } + } + } + else + { + $default = $setting['values'][$default]; + } } - elseif (strpos($default, ',') !== false) + else if (strpos($default, ',') !== false) { $default = explode(',',$default); }