X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=include%2Foptions%2Fdisplay.php;h=cf860380c7f8cd01956cb049a32a29fdd37e95a0;hb=5faed2dca4e471e09282dc1bb5194231029b3849;hp=49be36c03a0542d039a9f704e12c909b0c1b27cc;hpb=46dfa56e23503cad38273097794fb75979fa61a5;p=squirrelmail.git diff --git a/include/options/display.php b/include/options/display.php index 49be36c0..cf860380 100644 --- a/include/options/display.php +++ b/include/options/display.php @@ -9,18 +9,45 @@ * Displays all optinos about display preferences * * $Id$ + * @package squirrelmail */ -/* Define the group constants for the display options page. */ +/** Define the group constants for the display options page. */ define('SMOPT_GRP_GENERAL', 0); define('SMOPT_GRP_MAILBOX', 1); define('SMOPT_GRP_MESSAGE', 2); -/* Define the optpage load function for the display options page. */ +// load icon themes if in use +global $use_icons; +if ($use_icons) { + global $icon_themes; + $dirName = SM_PATH . 'images/themes'; + $d = dir($dirName); + while($dir = $d->read()) { + if ($dir != "." && $dir != "..") { + if (is_dir($dirName."/".$dir) && file_exists("$dirName/$dir/theme.php")) + include("$dirName/$dir/theme.php"); + } + } +} + +/** + * This function builds an array with all the information about + * the options available to the user, and returns it. The options + * are grouped by the groups in which they are displayed. + * For each option, the following information is stored: + * - name: the internal (variable) name + * - caption: the description of the option in the UI + * - type: one of SMOPT_TYPE_* + * - refresh: one of SMOPT_REFRESH_* + * - size: one of SMOPT_SIZE_* + * - save: the name of a function to call when saving this option + * @return array all option information + */ function load_optpage_data_display() { global $theme, $language, $languages, $js_autodetect_results, $compose_new_win, $default_use_mdn, $squirrelmail_language, $allow_thread_sort, - $optmode; + $optmode, $show_alternative_names, $available_languages, $use_icons; /* Build a simple array into which we will build options. */ $optgrps = array(); @@ -70,24 +97,51 @@ function load_optpage_data_display() { ); } + + // config.php can be unupdated. + if (! isset($available_languages) || $available_languages=="" ) { + $available_languages="ALL"; } $language_values = array(); - foreach ($languages as $lang_key => $lang_attributes) { - if (isset($lang_attributes['NAME'])) { - $language_values[$lang_key] = $lang_attributes['NAME']; - } + if ( strtoupper($available_languages)=='ALL') { + foreach ($languages as $lang_key => $lang_attributes) { + if (isset($lang_attributes['NAME'])) { + $language_values[$lang_key] = $lang_attributes['NAME']; + if ( isset($show_alternative_names) && + $show_alternative_names && + isset($lang_attributes['ALTNAME']) ) { + $language_values[$lang_key] .= " / " . $lang_attributes['ALTNAME']; + } + } + } + } else if (strtoupper($available_languages)!='NONE') { + // admin can set list of available languages in config + $available_languages_array=explode (" ",$available_languages); + foreach ($available_languages_array as $lang_key ) { + if (isset($languages[$lang_key]['NAME'])) { + $language_values[$lang_key] = $languages[$lang_key]['NAME']; + if ( isset($show_alternative_names) && + $show_alternative_names && + isset($languages[$lang_key]['ALTNAME']) ) { + $language_values[$lang_key] .= " / " . $languages[$lang_key]['ALTNAME']; + } + } + } } asort($language_values); $language_values = array_merge(array('' => _("Default")), $language_values); $language = $squirrelmail_language; - $optvals[SMOPT_GRP_GENERAL][] = array( - 'name' => 'language', - 'caption' => _("Language"), - 'type' => SMOPT_TYPE_STRLIST, - 'refresh' => SMOPT_REFRESH_ALL, - 'posvals' => $language_values - ); + if (strtoupper($available_languages)!='NONE') { + // if set to 'none', interface will use only default language + $optvals[SMOPT_GRP_GENERAL][] = array( + 'name' => 'language', + 'caption' => _("Language"), + 'type' => SMOPT_TYPE_STRLIST, + 'refresh' => SMOPT_REFRESH_ALL, + 'posvals' => $language_values + ); + } /* Set values for the "use javascript" option. */ $optvals[SMOPT_GRP_GENERAL][] = array( @@ -134,6 +188,25 @@ function load_optpage_data_display() { 'refresh' => SMOPT_REFRESH_NONE ); + if ($use_icons) { + global $icon_themes, $icon_theme; + $temp = array(); + for ($count = 0; $count < sizeof($icon_themes); $count++) { + $temp[$count] = $icon_themes[$count]['NAME']; + if ($icon_theme == $icon_themes[$count]['PATH']) + $value = $count; + } + $optvals[SMOPT_GRP_MAILBOX][] = array( + 'name' => 'icon_theme', + 'caption' => _("Message Flags Icon Theme"), + 'type' => SMOPT_TYPE_STRLIST, + 'refresh' => SMOPT_REFRESH_NONE, + 'posvals' => $temp, + 'initial_value' => $value, + 'save' => 'icon_theme_save' + ); + } + $optvals[SMOPT_GRP_MAILBOX][] = array( 'name' => 'page_selector', 'caption' => _("Enable Page Selector"), @@ -172,6 +245,14 @@ function load_optpage_data_display() { 'size' => SMOPT_SIZE_TINY ); + $optvals[SMOPT_GRP_MAILBOX][] = array( + 'name' => 'show_recipient_instead', + 'caption' => _("Show recipient name if the message is from your default identity"), + 'type' => SMOPT_TYPE_BOOLEAN, + 'refresh' => SMOPT_REFRESH_NONE, + 'size' => SMOPT_SIZE_TINY + ); + /*** Load the General Options into the array ***/ $optgrps[SMOPT_GRP_MESSAGE] = _("Message Display and Composition"); @@ -187,7 +268,15 @@ function load_optpage_data_display() { $optvals[SMOPT_GRP_MESSAGE][] = array( 'name' => 'editor_size', - 'caption' => _("Size of Editor Window"), + 'caption' => _("Width of Editor Window"), + 'type' => SMOPT_TYPE_INTEGER, + 'refresh' => SMOPT_REFRESH_NONE, + 'size' => SMOPT_SIZE_TINY + ); + + $optvals[SMOPT_GRP_MESSAGE][] = array( + 'name' => 'editor_height', + 'caption' => _("Height of Editor Window"), 'type' => SMOPT_TYPE_INTEGER, 'refresh' => SMOPT_REFRESH_NONE, 'size' => SMOPT_SIZE_TINY @@ -301,6 +390,16 @@ function load_optpage_data_display() { 'refresh' => SMOPT_REFRESH_NONE ); + $optvals[SMOPT_GRP_MESSAGE][] = array( + 'name' => 'reply_focus', + 'caption' => _("Cursor Position when Replying"), + 'type' => SMOPT_TYPE_STRLIST, + 'refresh' => SMOPT_REFRESH_NONE, + 'posvals' => array('' => _("To: field"), + 'focus' => _("Focus in body"), + 'select' => _("Select body")) + ); + $optvals[SMOPT_GRP_MESSAGE][] = array( 'name' => 'strip_sigs', 'caption' => _("Strip signature when replying"), @@ -321,6 +420,13 @@ function load_optpage_data_display() { 'type' => SMOPT_TYPE_BOOLEAN, 'refresh' => SMOPT_REFRESH_ALL ); + $optvals[SMOPT_GRP_MESSAGE][] = array( + 'name' => 'delete_prev_next_display', + 'caption' => _("Show 'Delete & Prev/Next' Links"), + 'type' => SMOPT_TYPE_BOOLEAN, + 'refresh' => SMOPT_REFRESH_ALL + ); + } /* Assemble all this together and return it as our result. */ $result = array( @@ -335,6 +441,10 @@ function load_optpage_data_display() { /** Define any specialized save functions for this option page. ***/ /******************************************************************/ +/** + * This function saves a new theme setting. + * It updates the theme array. + */ function save_option_theme($option) { global $theme; @@ -355,6 +465,9 @@ function save_option_theme($option) { save_option($option); } +/** + * This function saves the javascript detection option. + */ function save_option_javascript_autodetect($option) { global $data_dir, $username, $new_javascript_setting; @@ -370,4 +483,22 @@ function save_option_javascript_autodetect($option) { } } +/** + * This function saves the user's icon theme setting + */ +function icon_theme_save($option) { + + global $icon_themes, $data_dir, $username; + + + // Don't assume the new value is there, double check + // and only save if found + // + if (isset($icon_themes[$option->new_value]['PATH'])) + setPref($data_dir, $username, 'icon_theme', $icon_themes[$option->new_value]['PATH']); + else + setPref($data_dir, $username, 'icon_theme', 'none'); + +} + ?>