diff --git a/program/lib/Roundcube/rcube_config.php b/program/lib/Roundcube/rcube_config.php index 73651f95f..920041da1 100644 --- a/program/lib/Roundcube/rcube_config.php +++ b/program/lib/Roundcube/rcube_config.php @@ -261,6 +261,9 @@ class rcube_config ini_set('error_log', $error_log); } + // set default screen layouts + $this->prop['supported_layouts'] = array('widescreen', 'desktop', 'list'); + // remove deprecated properties unset($this->prop['dst_active']); } @@ -405,6 +408,11 @@ class rcube_config $result = explode(',', $result); } } + else if ($name == 'layout') { + if (!in_array($result, $this->prop['supported_layouts'])) { + $result = $this->prop['supported_layouts'][0]; + } + } $plugin = $rcube->plugins->exec_hook('config_get', array( 'name' => $name, 'default' => $def, 'result' => $result)); diff --git a/program/steps/settings/func.inc b/program/steps/settings/func.inc index 5008cae4e..eb82d3c85 100644 --- a/program/steps/settings/func.inc +++ b/program/steps/settings/func.inc @@ -404,7 +404,7 @@ function rcmail_user_prefs($current = null) 'advanced' => array('name' => rcube::Q($RCMAIL->gettext('advancedoptions'))), ); - if (!isset($no_override['layout'])) { + if (!isset($no_override['layout']) && count($config['supported_layouts']) > 1) { if (!$current) { continue 2; } @@ -412,9 +412,16 @@ function rcmail_user_prefs($current = null) $field_id = 'rcmfd_layout'; $select = new html_select(array('name' => '_layout', 'id' => $field_id)); - $select->add($RCMAIL->gettext('layoutwidescreendesc'), 'widescreen'); - $select->add($RCMAIL->gettext('layoutdesktopdesc'), 'desktop'); - $select->add($RCMAIL->gettext('layoutlistdesc'), 'list'); + $layouts = array( + 'widescreen' => 'layoutwidescreendesc', + 'desktop' => 'layoutdesktopdesc', + 'list' => 'layoutlistdesc' + ); + + $available_layouts = array_intersect_key($layouts, array_flip($config['supported_layouts'])); + foreach ($available_layouts as $val => $label) { + $select->add($RCMAIL->gettext($label), $val); + } $blocks['main']['options']['layout'] = array( 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('layout'))), diff --git a/skins/elastic/meta.json b/skins/elastic/meta.json index 249e22661..bf41c4be5 100644 --- a/skins/elastic/meta.json +++ b/skins/elastic/meta.json @@ -4,7 +4,7 @@ "license": "Creative Commons Attribution-ShareAlike", "license-url": "http://creativecommons.org/licenses/by-sa/3.0/", "config": { - "layout": "widescreen", + "supported_layouts": ["widescreen"], "jquery_ui_colors_theme": "bootstrap", "embed_css_location": "/styles/embed.css", "editor_css_location": "/styles/embed.css",