diff --git a/preferences/inc/class.preferences_settings.inc.php b/preferences/inc/class.preferences_settings.inc.php index c54eff52bd..0f47441a06 100644 --- a/preferences/inc/class.preferences_settings.inc.php +++ b/preferences/inc/class.preferences_settings.inc.php @@ -192,7 +192,7 @@ class preferences_settings } } break; - case 'Array': // notifies + case 'Array': // notify $value = $GLOBALS['egw']->preferences->lang_notify($value, $types[$var], True); break; } @@ -291,9 +291,23 @@ class preferences_settings continue 2; case 'notify': - // ToDo: implementation ... - error_log(__METHOD__."('$appname', '$type') NOT implemented settings type '$old_type'!"); - // handle as textarea for now + $vars = $GLOBALS['egw']->preferences->vars; + if (is_array($setting['values'])) $vars += $setting['values']; + $GLOBALS['egw']->preferences->{$attribute}[$appname][$setting['name']] = + $GLOBALS['egw']->preferences->lang_notify($GLOBALS['egw']->preferences->{$attribute}[$appname][$setting['name']], $vars); + $types[$setting['name']] = $vars; // store vars for re-translation, instead type "notify" + if ($setting['help'] && !$setting['no_lang']) + { + $setting['help'] = lang($setting['help']); + } + $setting['help'] .= '
'.lang('Substitutions and their meanings:').'';
+ foreach($vars as $var => $var_help)
+ {
+ $lname = ($lname = lang($var)) == $var.'*' ? $var : $lname;
+ $setting['help'] .= "
\n".'$$'.$lname.'$$: '.$var_help;
+ }
+ $setting['help'] .= "