summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Bruederli <thomas@roundcube.net>2013-11-08 10:57:00 +0100
committerThomas Bruederli <thomas@roundcube.net>2013-11-08 10:57:00 +0100
commit4a05e8a7e8a39aee331a1d5bc45fbc1710ac6a15 (patch)
tree9f98cf34d2be44fd53c02f6488426002ec680263
parent29b2937f7bc16ed3312eaacc204ede8f19083e82 (diff)
Finish advanced prefs feature (#1488829)
-rw-r--r--config/defaults.inc.php4
-rw-r--r--program/steps/settings/func.inc14
2 files changed, 16 insertions, 2 deletions
diff --git a/config/defaults.inc.php b/config/defaults.inc.php
index ab0e188bd..fc7e92fd7 100644
--- a/config/defaults.inc.php
+++ b/config/defaults.inc.php
@@ -252,6 +252,10 @@ $config['enable_installer'] = false;
// don't allow these settings to be overriden by the user
$config['dont_override'] = array();
+// define which settings should be listed under the 'advanced' block
+// which is hidden by default
+$config['advanced_prefs'] = array();
+
// provide an URL where a user can get support for this Roundcube installation
// PLEASE DO NOT LINK TO THE ROUNDCUBE.NET WEBSITE HERE!
$config['support_url'] = '';
diff --git a/program/steps/settings/func.inc b/program/steps/settings/func.inc
index c922aca08..016264128 100644
--- a/program/steps/settings/func.inc
+++ b/program/steps/settings/func.inc
@@ -1180,11 +1180,21 @@ function rcmail_user_prefs($current = null)
$data = $RCMAIL->plugins->exec_hook('preferences_list',
array('section' => $sect['id'], 'blocks' => $blocks, 'current' => $current));
+ $advanced_prefs = $config['advanced_prefs'];
+
// create output
- foreach ($data['blocks'] as $block) {
+ foreach ($data['blocks'] as $key => $block) {
if (!empty($block['content']) || !empty($block['options'])) {
$found = true;
- break;
+ }
+ // move some options to the 'advanced' block as configured by admin
+ if ($key != 'advanced') {
+ foreach ($advanced_prefs as $opt) {
+ if ($block['options'][$opt]) {
+ $data['blocks']['advanced']['options'][$opt] = $block['options'][$opt];
+ unset($data['blocks'][$key]['options'][$opt]);
+ }
+ }
}
}