From 81132de8170e2f2676f94584e3a04cc1e8816036 Mon Sep 17 00:00:00 2001 From: tokul Date: Mon, 23 Jan 2006 17:29:10 +0000 Subject: [PATCH 1/1] moving main color tags to css git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@10558 7612ce4b-ef26-0410-bec9-ea0150e637f0 --- config/conf.pl | 293 +++++++++++++++++++++++++----------- config/config_default.php | 26 ++++ functions/page_header.php | 34 +++-- include/load_prefs.php | 5 + include/options/display.php | 33 +++- src/left_main.php | 31 ++-- 6 files changed, 306 insertions(+), 116 deletions(-) diff --git a/config/conf.pl b/config/conf.pl index e4391c47..0c31be01 100755 --- a/config/conf.pl +++ b/config/conf.pl @@ -197,6 +197,12 @@ while ( $line = ) { } else { $plugins[$sub] = $options[1]; } + } elsif ($options[0] =~ /^fontsets\[\'[a-z]*\'\]/) { + # parse associative $fontsets array + $sub = $options[0]; + $sub =~ s/\'\]//; + $sub =~ s/^fontsets\[\'//; + $fontsets{$sub} = $options[1]; } elsif ( $options[0] =~ /^ldap_server\[[0-9]+\]/ ) { $sub = $options[0]; $sub =~ s/\]//; @@ -337,6 +343,7 @@ $imap_auth_mech = 'login' if ( !$imap_auth_mech ); $session_name = 'SQMSESSID' if ( !$session_name ); $skip_SM_header = 'false' if ( !$skip_SM_header ); $default_use_javascript_addr_book = 'false' if (! $default_use_javascript_addr_book); + # since 1.5.0 $show_alternative_names = 'false' if ( !$show_alternative_names ); # $available_languages option available only in 1.5.0. removed due to $languages @@ -346,6 +353,7 @@ $aggressive_decoding = 'false' if ( !$aggressive_decoding ); $advanced_tree = 'false' if ( !$advanced_tree ); $use_php_recode = 'false' if ( !$use_php_recode ); $use_php_iconv = 'false' if ( !$use_php_iconv ); + # since 1.5.1 $use_icons = 'false' if ( !$use_icons ); $use_iframe = 'false' if ( !$use_iframe ); @@ -363,6 +371,7 @@ $time_zone_type = '0' if ( !$time_zone_type ); $prefs_user_size = 128 if ( !$prefs_user_size ); $prefs_key_size = 64 if ( !$prefs_key_size ); $prefs_val_size = 65536 if ( !$prefs_val_size ); + # add qmail-inject test here for backwards compatibility if ( !$sendmail_args && $sendmail_path =~ /qmail-inject/ ) { $sendmail_args = ''; @@ -370,6 +379,17 @@ if ( !$sendmail_args && $sendmail_path =~ /qmail-inject/ ) { $sendmail_args = '-i -t'; } +$default_fontsize = '' if ( !$default_fontsize); +$default_fontset = '' if ( !$default_fontset); +if ( !%fontsets) { + %fontsets = ('serif', 'serif', + 'sans', 'helvetica,arial,sans-serif', + 'comicsans', 'comic sans ms,sans-serif', + 'tahoma', 'tahoma,sans-serif', + 'verasans', 'bitstream vera sans,verdana,sans-serif'); +} + + if ( $ARGV[0] eq '--install-plugin' ) { print "Activating plugin " . $ARGV[1] . "\n"; push @plugins, $ARGV[1]; @@ -554,6 +574,8 @@ while ( ( $command ne "q" ) && ( $command ne "Q" ) && ( $command ne ":q" ) ) { $theme_name[($count*2)+1]; } print "2. CSS File : $WHT$theme_css$NRM\n"; + print "3. Default font size: $WHT$default_fontsize$NRM\n"; + print "4. Change available font sets\n"; print "\n"; print "R Return to Main Menu\n"; } elsif ( $menu == 6 ) { @@ -776,6 +798,8 @@ while ( ( $command ne "q" ) && ( $command ne "Q" ) && ( $command ne ":q" ) ) { } elsif ( $menu == 5 ) { if ( $command == 1 ) { command41(); } elsif ( $command == 2 ) { $theme_css = command42(); } + elsif ( $command == 3 ) { $default_fontsize = command_default_fontsize(); } + elsif ( $command == 4 ) { command_fontsets(); } } elsif ( $menu == 6 ) { if ( $command == 1 ) { command61(); } elsif ( $command == 2 ) { command62(); } @@ -1051,10 +1075,6 @@ sub command14 { # sendmail_path sub command15 { - # TODO: fix check - if ( $sendmail_path[0] !~ /./ ) { - $sendmail_path = "/usr/sbin/sendmail"; - } print "Specify where the sendmail executable is located. Usually /usr/sbin/sendmail\n"; print "[$WHT$sendmail_path$NRM]: $WHT"; $new_sendmail_path = ; @@ -2520,6 +2540,89 @@ sub command42 { return $new_theme_css; } +# sets default font size option +sub command_default_fontsize { + print "Enter default font size [$WHT$$default_fontsize$NRM]: $WHT"; + $new_size = ; + if ( $new_size eq "\n" ) { + $new_size = $size; + } else { + $new_size =~ s/[\r\n]//g; + } + return $new_size; +} + +# controls available fontsets +sub command_fontsets { + # Greeting + print "You can control fontsets available to end users here.\n"; + # set initial $input value + $input = 'l'; + while ( $input ne "x" ) { + if ( $input =~ /^\s*a\s*/i ) { + # add new fontset + print "\nFontset name: "; + $name = ; + if (! $fontsets{trim($name)}) { + print "Fontset string: "; + $value = ; + $fontsets{trim($name)} = trim($value); + } else { + print "\nERROR: Such fontset already exists.\n"; + } + } elsif ( $input =~ /^\s*e\s*/i ) { + # edit existing fontset + print "\nFontset name: "; + $name = ; + if (! $fontsets{trim($name)}) { + print "\nERROR: No such fontset.\n"; + } else { + print "Fontset string [$fontsets{trim($name)}]: "; + $value = ; + $fontsets{trim($name)} = trim($value); + } + } elsif ( $input =~ /^\s*d\s*/ ) { + # delete existing fontset + print "\nFontset name: "; + $name = ; + if (! $fontsets{trim($name)}) { + print "\nERROR: No such fontset.\n"; + } else { + delete $fontsets{trim($name)}; + } + } elsif ( $input =~ /^\s*l\s*/ ) { + # list fontsets + print "\nConfigured fontsets:\n"; + while (($fontset_name, $fontset_string) = each(%fontsets)) { + print " $fontset_name = $fontset_string\n"; + } + print "Default fontset: $default_fontset\n"; + } elsif ( $input =~ /^\s*m\s*/ ) { + # set default fontset + print "\nSet default fontset [$default_fontset]: "; + $name = ; + if (trim($name) ne '' and ! $fontsets{trim($name)}) { + print "\nERROR: No such fontset.\n"; + } else { + $default_fontset = trim($name); + } + } else { + # print available commands on any other input + print "\nAvailable commands:\n"; + print " a - Adds new fontset.\n"; + print " d - Deletes existing fontset.\n"; + print " e - Edits existing fontset.\n"; + print " h or ? - Shows this help screen.\n"; + print " l - Lists available fontsets.\n"; + print " m - Sets default fontset.\n"; + print " x - Exits fontset editor mode.\n"; + } + print "\nCommand [fontsets] (a,d,e,h,?=help,l,m,x)> "; + $input = ; + $input =~ s/[\r\n]//g; + } +} + sub command61 { print "You can now define different LDAP servers.\n"; print "[ldap] command (?=help) > "; @@ -3466,89 +3569,89 @@ sub save_data { print CF "\$encode_header_key = '$encode_header_key';\n"; print CF "\n"; - # string + # string print CF "\$default_folder_prefix = '$default_folder_prefix';\n"; - # string + # string print CF "\$trash_folder = '$trash_folder';\n"; - # string + # string print CF "\$sent_folder = '$sent_folder';\n"; - # string + # string print CF "\$draft_folder = '$draft_folder';\n"; - # boolean + # boolean print CF "\$default_move_to_trash = $default_move_to_trash;\n"; - # boolean + # boolean print CF "\$default_move_to_sent = $default_move_to_sent;\n"; - # boolean + # boolean print CF "\$default_save_as_draft = $default_save_as_draft;\n"; - # boolean + # boolean print CF "\$show_prefix_option = $show_prefix_option;\n"; - # boolean + # boolean print CF "\$list_special_folders_first = $list_special_folders_first;\n"; - # boolean + # boolean print CF "\$use_special_folder_color = $use_special_folder_color;\n"; - # boolean + # boolean print CF "\$auto_expunge = $auto_expunge;\n"; - # boolean + # boolean print CF "\$default_sub_of_inbox = $default_sub_of_inbox;\n"; - # boolean + # boolean print CF "\$show_contain_subfolders_option = $show_contain_subfolders_option;\n"; - # integer + # integer print CF "\$default_unseen_notify = $default_unseen_notify;\n"; - # integer + # integer print CF "\$default_unseen_type = $default_unseen_type;\n"; - # boolean + # boolean print CF "\$auto_create_special = $auto_create_special;\n"; - # boolean + # boolean print CF "\$delete_folder = $delete_folder;\n"; - # boolean + # boolean print CF "\$noselect_fix_enable = $noselect_fix_enable;\n"; print CF "\n"; - # string + # string print CF "\$data_dir = " . &change_to_SM_path($data_dir) . ";\n"; - # string that can contain a variable + # string that can contain a variable print CF "\$attachment_dir = " . &change_to_SM_path($attachment_dir) . ";\n"; - # integer + # integer print CF "\$dir_hash_level = $dir_hash_level;\n"; - # string + # string print CF "\$default_left_size = '$default_left_size';\n"; - # boolean + # boolean print CF "\$force_username_lowercase = $force_username_lowercase;\n"; - # boolean + # boolean print CF "\$default_use_priority = $default_use_priority;\n"; - # boolean + # boolean print CF "\$hide_sm_attributions = $hide_sm_attributions;\n"; - # boolean + # boolean print CF "\$default_use_mdn = $default_use_mdn;\n"; - # boolean + # boolean print CF "\$edit_identity = $edit_identity;\n"; - # boolean + # boolean print CF "\$edit_name = $edit_name;\n"; - # boolean + # boolean print CF "\$hide_auth_header = $hide_auth_header;\n"; - # boolean + # boolean print CF "\$allow_thread_sort = $allow_thread_sort;\n"; - # boolean + # boolean print CF "\$allow_server_sort = $allow_server_sort;\n"; - # boolean + # boolean print CF "\$allow_charset_search = $allow_charset_search;\n"; - # integer + # integer print CF "\$allow_advanced_search = $allow_advanced_search;\n"; print CF "\n"; # integer print CF "\$time_zone_type = $time_zone_type;\n"; print CF "\n"; - # all plugins are strings + # all plugins are strings for ( $ct = 0 ; $ct <= $#plugins ; $ct++ ) { print CF "\$plugins[] = '$plugins[$ct]';\n"; } print CF "\n"; - # strings + # strings print CF "\$theme_css = " . &change_to_SM_path($theme_css) . ";\n"; - if ( $theme_default eq '' ) { $theme_default = '0'; } + if ( $theme_default eq '' ) { $theme_default = '0'; } print CF "\$theme_default = $theme_default;\n"; for ( $count = 0 ; $count <= $#theme_name ; $count++ ) { @@ -3561,33 +3664,45 @@ sub save_data { } print CF "\n"; + # integer + print CF "\$default_fontsize = '$default_fontsize';\n"; + # string + print CF "\$default_fontset = '$default_fontset';\n"; + print CF "\n"; + # assoc. array (maybe initial value should be set somewhere else) + print CF '$fontsets = array();'."\n"; + while (($fontset_name, $fontset_value) = each(%fontsets)) { + print CF "\$fontsets\['$fontset_name'\] = '$fontset_value';\n"; + } + print CF "\n"; + ## Address books # boolean print CF "\$default_use_javascript_addr_book = $default_use_javascript_addr_book;\n"; for ( $count = 0 ; $count <= $#ldap_host ; $count++ ) { print CF "\$ldap_server[$count] = array(\n"; - # string + # string print CF " 'host' => '$ldap_host[$count]',\n"; - # string + # string print CF " 'base' => '$ldap_base[$count]'"; if ( $ldap_name[$count] ) { print CF ",\n"; - # string + # string print CF " 'name' => '$ldap_name[$count]'"; } if ( $ldap_port[$count] ) { print CF ",\n"; - # integer + # integer print CF " 'port' => $ldap_port[$count]"; } if ( $ldap_charset[$count] ) { print CF ",\n"; - # string + # string print CF " 'charset' => '$ldap_charset[$count]'"; } if ( $ldap_maxrows[$count] ) { print CF ",\n"; - # integer + # integer print CF " 'maxrows' => $ldap_maxrows[$count]"; } # string @@ -3635,75 +3750,75 @@ sub save_data { print CF "\n"; } - # string + # string print CF "\$addrbook_dsn = '$addrbook_dsn';\n"; - # string + # string print CF "\$addrbook_table = '$addrbook_table';\n\n"; - # string + # string print CF "\$prefs_dsn = '$prefs_dsn';\n"; - # string + # string print CF "\$prefs_table = '$prefs_table';\n"; - # string + # string print CF "\$prefs_user_field = '$prefs_user_field';\n"; - # integer + # integer print CF "\$prefs_user_size = $prefs_user_size;\n"; - # string + # string print CF "\$prefs_key_field = '$prefs_key_field';\n"; - # integer + # integer print CF "\$prefs_key_size = $prefs_key_size;\n"; - # string + # string print CF "\$prefs_val_field = '$prefs_val_field';\n"; - # integer + # integer print CF "\$prefs_val_size = $prefs_val_size;\n\n"; - # string + # string print CF "\$addrbook_global_dsn = '$addrbook_global_dsn';\n"; - # string + # string print CF "\$addrbook_global_table = '$addrbook_global_table';\n"; - # boolean + # boolean print CF "\$addrbook_global_writeable = $addrbook_global_writeable;\n"; - # boolean + # boolean print CF "\$addrbook_global_listing = $addrbook_global_listing;\n\n"; - # string + # string print CF "\$abook_global_file = '$abook_global_file';\n"; - # boolean + # boolean print CF "\$abook_global_file_writeable = $abook_global_file_writeable;\n\n"; - # boolean + # boolean print CF "\$abook_global_file_listing = $abook_global_file_listing;\n\n"; - # boolean + # boolean print CF "\$no_list_for_subscribe = $no_list_for_subscribe;\n"; - # string + # string print CF "\$smtp_auth_mech = '$smtp_auth_mech';\n"; - # string + # string print CF "\$imap_auth_mech = '$imap_auth_mech';\n"; - # boolean + # boolean print CF "\$use_imap_tls = $use_imap_tls;\n"; - # boolean + # boolean print CF "\$use_smtp_tls = $use_smtp_tls;\n"; - # string + # string print CF "\$session_name = '$session_name';\n"; - print CF "\n"; - - # boolean - print CF "\$advanced_tree = $advanced_tree;\n"; - print CF "\n"; - # boolean - print CF "\$use_iframe = $use_iframe;\n"; - print CF "\n"; - # boolean - print CF "\$use_icons = $use_icons;\n"; - print CF "\n"; - # boolean - print CF "\$use_php_recode = $use_php_recode;\n"; - print CF "\n"; - # boolean - print CF "\$use_php_iconv = $use_php_iconv;\n"; - print CF "\n"; - # boolean - print CF "\$allow_remote_configtest = $allow_remote_configtest;\n"; - print CF "\n"; + print CF "\n"; + # boolean + print CF "\$advanced_tree = $advanced_tree;\n"; + print CF "\n"; + # boolean + print CF "\$use_iframe = $use_iframe;\n"; + print CF "\n"; + # boolean + print CF "\$use_icons = $use_icons;\n"; + print CF "\n"; + # boolean + print CF "\$use_php_recode = $use_php_recode;\n"; + print CF "\n"; + # boolean + print CF "\$use_php_iconv = $use_php_iconv;\n"; + print CF "\n"; + # boolean + print CF "\$allow_remote_configtest = $allow_remote_configtest;\n"; + print CF "\n"; + print CF "\@include SM_PATH . 'config/config_local.php';\n"; print CF "\n/**\n"; diff --git a/config/config_default.php b/config/config_default.php index a53d7e03..af168fbf 100644 --- a/config/config_default.php +++ b/config/config_default.php @@ -774,6 +774,32 @@ $theme[42]['NAME'] = 'Simple Green 2'; $theme[43]['PATH'] = SM_PATH . 'themes/simple_purple.php'; $theme[43]['NAME'] = 'Simple Purple'; +/** + * Default interface font size. + * @global string $default_fontsize + * @since 1.5.1 + */ +$default_fontsize = ''; + +/** + * Default font set + * @global string $default_fontset + * @since 1.5.1 + */ +$default_fontset = ''; + +/** + * List of available fontsets. + * @global array $fontsets + * @since 1.5.1 + */ +$fontsets = array(); +$fontsets['serif'] = 'serif'; +$fontsets['sans'] = 'helvetica,arial,sans-serif'; +$fontsets['comicsans'] = 'comic sans ms,sans-serif'; +$fontsets['verasans'] = 'bitstream vera sans,verdana,sans-serif'; +$fontsets['tahoma'] = 'tahoma,sans-serif'; + /** * LDAP server(s) * Array of arrays with LDAP server parameters. See diff --git a/functions/page_header.php b/functions/page_header.php index a7812b52..c84544ef 100644 --- a/functions/page_header.php +++ b/functions/page_header.php @@ -11,6 +11,9 @@ * @package squirrelmail */ +/** @ignore */ +if (! defined('SM_PATH')) define('SM_PATH','../'); + /** Include required files from SM */ require_once(SM_PATH . 'functions/strings.php'); require_once(SM_PATH . 'functions/html.php'); @@ -21,6 +24,8 @@ require_once(SM_PATH . 'functions/global.php'); * Output a SquirrelMail page header, from to * Always set up the language before calling these functions. * + * Since 1.5.1 function sends http headers. Function should be called + * before any output is started. * @param string title the page title, default SquirrelMail. * @param string xtra extra HTML to insert into the header * @param bool do_hook whether to execute hooks, default true @@ -33,7 +38,12 @@ function displayHtmlHeader( $title = 'SquirrelMail', $xtra = '', $do_hook = true if ( !sqgetGlobalVar('base_uri', $base_uri, SQ_SESSION) ) { global $base_uri; } - global $theme_css, $custom_css, $pageheader_sent; + global $theme_css, $custom_css, $pageheader_sent, + $chosen_fontset, $chosen_fontsize, $chosen_theme; + + /* add no cache headers here */ + header('Pragma: no-cache'); // http 1.0 (rfc1945) + header('Cache-Control: private, no-cache, no-store'); // http 1.1 (rfc2616) if ($frames) { echo ''; @@ -43,21 +53,23 @@ function displayHtmlHeader( $title = 'SquirrelMail', $xtra = '', $do_hook = true echo "\n" . html_tag( 'html' ,'' , '', '', 'lang="'.$squirrelmail_language.'"' ) . "\n\n"; + + $used_theme = basename($chosen_theme,'.php'); + /* * Add closing / to link and meta elements only after switching to xhtml 1.0 Transitional. * It is not compatible with html 4.01 Transitional */ - if ( !isset( $custom_css ) || $custom_css == 'none' ) { - if ($theme_css != '') { - echo ""; - } - } else { - echo ''; + echo '\n"; + + // load custom style sheet (deprecated) + if ( !isset( $theme_css ) || empty($theme_css) ) { + echo ""; } - echo ''; - if ($squirrelmail_language == 'ja_JP') { /* * force correct detection of charset, when browser does not follow @@ -182,7 +194,7 @@ function displayPageHeader($color, $mailbox, $sHeaderJs='', $sBodyTagJs = '') { $sBodyTagJs = ''; } - echo "\n\n"; + echo "\n\n"; /** Here is the header and wrapping table **/ $shortBoxName = htmlspecialchars(imap_utf7_decode_local( diff --git a/include/load_prefs.php b/include/load_prefs.php index dd110ef7..d1a80730 100644 --- a/include/load_prefs.php +++ b/include/load_prefs.php @@ -359,6 +359,11 @@ $delete_prev_next_display = getPref($data_dir, $username, 'delete_prev_next_disp */ $iframe_height = getPref($data_dir, $username, 'iframe_height', '300'); +if (! isset($default_fontset)) $default_fontset=SMPREF_NONE; +$chosen_fontset = getPref($data_dir, $username, 'chosen_fontset', $default_fontset); +if (! isset($default_fontsize)) $default_fontsize=SMPREF_NONE; +$chosen_fontsize = getPref($data_dir, $username, 'chosen_fontsize', $default_fontsize); + do_hook('loading_prefs'); ?> \ No newline at end of file diff --git a/include/options/display.php b/include/options/display.php index 21f731a6..904339d1 100644 --- a/include/options/display.php +++ b/include/options/display.php @@ -49,7 +49,7 @@ if (! isset($use_iframe)) $use_iframe=false; * @return array all option information */ function load_optpage_data_display() { - global $theme, $language, $languages, + global $theme, $fontsets, $language, $languages, $default_use_mdn, $squirrelmail_language, $allow_thread_sort, $show_alternative_names, $use_icons, $use_iframe; @@ -93,6 +93,7 @@ function load_optpage_data_display() { closedir($handle); } + /* if ( count( $css_values ) > 1 ) { $optvals[SMOPT_GRP_GENERAL][] = array( @@ -104,6 +105,36 @@ function load_optpage_data_display() { ); } + */ + + $fontset_values = array(); + foreach (array_keys($fontsets) as $fontset_key) { + $fontset_list[$fontset_key]=$fontset_key; + } + ksort($fontset_list); + + if (count($fontset_list) > 1) { + $fontset_list = array_merge(array('' => _("Default font style")), $fontset_list); + $optvals[SMOPT_GRP_GENERAL][] = array( + 'name' => 'chosen_fontset', + 'caption' => _("Font style"), + 'type' => SMOPT_TYPE_STRLIST, + 'refresh' => SMOPT_REFRESH_ALL, + 'posvals' => $fontset_list + ); + } + + $optvals[SMOPT_GRP_GENERAL][] = array( + 'name' => 'chosen_fontsize', + 'caption' => _("Font size"), + 'type' => SMOPT_TYPE_STRLIST, + 'refresh' => SMOPT_REFRESH_ALL, + 'posvals' => array('' => _("Default font size"), + '8' => '8 px', + '10' => '10 px', + '12' => '12 px', + '14' => '14 px') + ); $language_values = array(); foreach ($languages as $lang_key => $lang_attributes) { diff --git a/src/left_main.php b/src/left_main.php index d823d312..63e06848 100644 --- a/src/left_main.php +++ b/src/left_main.php @@ -80,7 +80,7 @@ function ListBoxes ($boxes, $j=0 ) { $unseen_string .= '/' . $boxes->total; } - $unseen_string = "($unseen_string)"; + $unseen_string = "($unseen_string)"; /* Finally allow the script to display the values by setting a boolean. @@ -157,16 +157,17 @@ function ListBoxes ($boxes, $j=0 ) { } - $font = ''; - $fontend = ''; + $span = ''; + $spanend = ''; if ($use_special_folder_color && $boxes->is_special) { - $font = ""; - $fontend = ""; + $span = ""; + $spanend = ""; } elseif ( $boxes->is_noselect ) { - $font = ""; - $fontend = ''; + $span = ""; + $spanend = ''; } + // let plugins fiddle with end of line $end .= concat_hook_function('left_main_after_each_folder', array(isset($numMessages) ? $numMessages : '', @@ -175,12 +176,12 @@ function ListBoxes ($boxes, $j=0 ) { $end .= ''; if (!$boxes->is_root) { - echo "" . $pre .$font. + echo "" . $span . $pre . str_replace( array(' ','<','>'), array(' ','<','>'), $boxes->mailboxname_sub) . - $fontend . $end. '
' . "\n"; + $end. $spanend .'
' . "\n"; $j++; } @@ -232,7 +233,7 @@ function ListAdvancedBoxes ($boxes, $mbx, $j='ID.0000' ) { $unseen_string .= '/' . $boxes->total; } - $unseen_string = "($unseen_string)"; + $unseen_string = "($unseen_string)"; /* Finally allow the script to display the values by setting a boolean. @@ -250,8 +251,8 @@ function ListAdvancedBoxes ($boxes, $mbx, $j='ID.0000' ) { /* color special boxes */ if ($use_special_folder_color && $boxes->is_special) { - $pre .= ""; - $end .= ''; + $pre .= ""; + $end .= ''; } /* If there are unseen message, close bolding. */ @@ -671,9 +672,9 @@ if ($auto_create_special && !isset($auto_create_done)) { if ($advanced_tree) { echo "\n\n"; + " class=\"leftmain\">\n
\n"; } else { - echo "\n\n"; + echo "\n\n
\n"; } do_hook('left_main_before'); @@ -793,4 +794,4 @@ sqimap_logout($imapConnection); ?> - \ No newline at end of file +
\ No newline at end of file -- 2.25.1