From 1d80c108a1d741b7dcb562ea1cf6d2214322b192 Mon Sep 17 00:00:00 2001 From: cigamit Date: Mon, 1 Dec 2003 18:51:07 +0000 Subject: [PATCH] Added support for using Squirrelmail without frames (With many thanks to Jason Wickers (jwickers at scs.wsu.edu)) ---- There are still a few minor things to iron out, but overall it works fairly well at this point. Any plugin that calls DisplayPageHeader() will now have to replace their with a simple call to noframes_bottom() to be compatible... (Possibly rename that function to DisplayPageFooter in the future) git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@6225 7612ce4b-ef26-0410-bec9-ea0150e637f0 --- AUTHORS | 1 + ChangeLog | 1 + config/conf.pl | 57 +++++++- functions/global.php | 4 +- functions/mailbox_display.php | 21 ++- functions/page_header.php | 16 ++- include/validate.php | 1 + plugins/abook_take/take.php | 5 +- plugins/administrator/options.php | 4 +- plugins/bug_report/bug_report.php | 3 +- plugins/calendar/calendar.php | 2 +- plugins/calendar/day.php | 3 +- plugins/calendar/event_create.php | 3 +- plugins/calendar/event_delete.php | 3 +- plugins/calendar/event_edit.php | 3 +- plugins/filters/options.php | 3 +- plugins/filters/spamoptions.php | 5 +- plugins/info/options.php | 4 +- plugins/listcommands/mailout.php | 6 +- plugins/mail_fetch/fetch.php | 5 +- plugins/mail_fetch/options.php | 5 +- .../message_details/message_details_top.php | 2 +- plugins/message_details/setup.php | 2 +- plugins/newmail/newmail_opt.php | 6 +- plugins/newmail/sounds/FanFair.wav | Bin 5814 -> 595 bytes plugins/newmail/sounds/Friends.wav | Bin 3190 -> 603 bytes plugins/newmail/sounds/MontyPython.wav | Bin 6570 -> 233 bytes plugins/newmail/sounds/Notify.wav | Bin 4522 -> 99 bytes plugins/spamcop/options.php | 4 +- plugins/spamcop/spamcop.php | 3 +- plugins/squirrelspell/sqspell_functions.php | 2 +- plugins/translate/options.php | 4 +- src/addrbook_search_html.php | 12 +- src/addressbook.php | 7 +- src/compose.php | 3 +- src/empty_trash.php | 5 +- src/folders.php | 33 +++-- src/help.php | 5 +- src/image.php | 4 +- src/left_main.php | 135 +++++++++++------- src/login.php | 35 ++++- src/move_messages.php | 4 +- src/options.php | 13 +- src/options_highlight.php | 3 +- src/options_identities.php | 5 +- src/options_order.php | 2 +- src/read_body.php | 5 +- src/redirect.php | 22 +++ src/right_main.php | 5 +- src/search.php | 4 +- src/vcard.php | 6 +- src/view_header.php | 2 +- src/view_text.php | 6 +- src/webmail.php | 39 ++++- 54 files changed, 376 insertions(+), 157 deletions(-) diff --git a/AUTHORS b/AUTHORS index 849a704e..4d54627a 100644 --- a/AUTHORS +++ b/AUTHORS @@ -17,6 +17,7 @@ THE SQUIRRELMAIL TEAM Seth E. Randall Thijs Kinkhorst Tomas Kuliavas http://www.topolis.lt + Jimmy Conner http://sqmail.org Past Developers, now retired: ----------------------------- diff --git a/ChangeLog b/ChangeLog index a1d2a08e..4c27bbe4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -110,6 +110,7 @@ Version 1.5.0 -- CVS accidentally disappeared in the past. - Disabled Quick-email-reporting feature in spamcop plugin. Bug.809452. Admin can enable it by setting variable in plugins/spamcop/setup.php + - Added support for using Squirrelmail without frames ************************************** *** SquirrelMail Stable Series 1.4 *** diff --git a/config/conf.pl b/config/conf.pl index f2cd4071..ed78e042 100755 --- a/config/conf.pl +++ b/config/conf.pl @@ -354,6 +354,9 @@ if (!$session_name ) { if (!$show_alternative_names ) { $show_alternative_names = 'false'; } +if ( !$allow_frames ) { + $allow_frames = 1; +} if (!$available_languages ) { $available_languages = 'all'; @@ -539,11 +542,25 @@ while ( ( $command ne "q" ) && ( $command ne "Q" ) ) { print "6. Allow use of priority : $WHT$default_use_priority$NRM\n"; print "7. Hide SM attributions : $WHT$hide_sm_attributions$NRM\n"; print "8. Allow use of receipts : $WHT$default_use_mdn$NRM\n"; - print "9. Allow editing of identity : $WHT$edit_identity$NRM/$WHT$edit_name$NRM\n"; + print "9. Allow editing of identity : $WHT$edit_identity$NRM/$WHT$edit_name$NRM\n"; print "10. Allow server thread sort : $WHT$allow_thread_sort$NRM\n"; print "11. Allow server-side sorting : $WHT$allow_server_sort$NRM\n"; print "12. Allow server charset search : $WHT$allow_charset_search$NRM\n"; print "13. PHP session name : $WHT$session_name$NRM\n"; + print "14. HTML Frame Settings : $WHT"; + if ( $allow_frames == 1) { + print "Force Frames Only"; + } + if ( $allow_frames == 2) { + print "Force No Frames Only"; + } + if ( $allow_frames == 3) { + print "User Select, Default to Frames"; + } + if ( $allow_frames == 4) { + print "User Select, Default to No Frames"; + } + print "$NRM\n"; print "\n"; print "R Return to Main Menu\n"; } elsif ( $menu == 5 ) { @@ -758,7 +775,8 @@ while ( ( $command ne "q" ) && ( $command ne "Q" ) ) { elsif ( $command == 10 ) { $allow_thread_sort = command312(); } elsif ( $command == 11 ) { $allow_server_sort = command313(); } elsif ( $command == 12 ) { $allow_charset_search = command314(); } - elsif ( $command == 13 ) { $session_name = command316(); } + elsif ( $command == 13 ) { $session_name = command316(); } + elsif ( $command == 14 ) { $allow_frames = command317(); } } elsif ( $menu == 5 ) { if ( $command == 1 ) { command41(); } elsif ( $command == 2 ) { $theme_css = command42(); } @@ -2208,7 +2226,28 @@ sub command316 { return $new_session_name; } - +sub command317 { + print "This option allows you to select whether to allow or disallow frames\n"; + print "or no frames usage, and what to default to on the login screen.\n"; + print "Note: When a user selects to use Frames or No Frames, it is stored\n"; + print " in a cookie, which will override the site default when they\n"; + print " next visit the login page.\n"; + if ($allow_frames == 1) { print "--> "; }else{print " ";} + print "1. Force Frames Only\n"; + if ($allow_frames == 2) { print "--> "; }else{print " ";} + print "2. Force No Frames Only\n"; + if ($allow_frames == 3) { print "--> "; }else{print " ";} + print "3. User Select, Default to Frames\n"; + if ($allow_frames == 4) { print "--> "; }else{print " ";} + print "4. User Select, Default to No Frames\n"; + print "(1-4): "; + $new_allow_frames = ; + $new_allow_frames =~ tr/1-4//cd; # only want digits! + if ( $new_allow_frames < 1 || $new_allow_frames > 4 ) { + $new_allow_frames = $allow_frames; + } + return $new_allow_frames; +} sub command41 { print "\nDefine the themes that you wish to use. If you have added "; @@ -3096,12 +3135,16 @@ sub save_data { print CF "\$smtp_auth_mech = '$smtp_auth_mech';\n"; print CF "\$imap_auth_mech = '$imap_auth_mech';\n"; # boolean - print CF "\$use_imap_tls = $use_imap_tls;\n"; - print CF "\$use_smtp_tls = $use_smtp_tls;\n"; + print CF "\$use_imap_tls = $use_imap_tls;\n"; + print CF "\$use_smtp_tls = $use_smtp_tls;\n"; + + print CF "\$session_name = '$session_name';\n"; - print CF "\$session_name = '$session_name';\n"; + print CF "\n"; + + print CF "\$allow_frames = $allow_frames;\n"; - print CF "\n"; + print CF "\n"; # boolean print CF "\$advanced_tree = $advanced_tree;\n"; diff --git a/functions/global.php b/functions/global.php index 3b06a8e3..8ef497c8 100644 --- a/functions/global.php +++ b/functions/global.php @@ -155,7 +155,7 @@ function sqsession_register ($var, $name) { else { $_SESSION["$name"] = $var; } - session_register("$name"); + @session_register("$name"); } /** @@ -174,7 +174,7 @@ function sqsession_unregister ($name) { else { unset($_SESSION[$name]); } - session_unregister("$name"); + @session_unregister("$name"); } /** diff --git a/functions/mailbox_display.php b/functions/mailbox_display.php index aa15493b..e7b4c39c 100644 --- a/functions/mailbox_display.php +++ b/functions/mailbox_display.php @@ -1001,11 +1001,15 @@ function get_msgcnt_str($start_msg, $end_msg, $num_msgs) { * Generate a paginator link. */ function get_paginator_link($box, $start_msg, $use, $text) { - global $PHP_SELF; + global $PHP_SELF, $use_frames; + if ($use_frames) + $target = 'right'; + else + $target = ''; $result = "$text"; + . "TARGET=\"$target\">$text"; return ($result); /* if (preg_match('/^(.+)\?.+$/',$PHP_SELF,$regs)) { @@ -1016,7 +1020,7 @@ function get_paginator_link($box, $start_msg, $use, $text) { $result = '$text"; + . "TARGET=\"$target\">$text"; return ($result); */ } @@ -1026,7 +1030,7 @@ function get_paginator_link($box, $start_msg, $use, $text) { */ function get_paginator_str($box, $start_msg, $end_msg, $num_msgs, $show_num, $sort) { - global $username, $data_dir, $use_mailbox_cache, $color, $PG_SHOWNUM; + global $username, $data_dir, $use_mailbox_cache, $color, $PG_SHOWNUM, $use_frames; /* Initialize paginator string chunks. */ $prv_str = ''; @@ -1035,6 +1039,11 @@ function get_paginator_str($box, $start_msg, $end_msg, $num_msgs, $all_str = ''; $tgl_str = ''; + if ($use_frames) + $target = 'right'; + else + $target = ''; + $box = urlencode($box); /* Create simple strings that will be creating the paginator. */ @@ -1188,14 +1197,14 @@ function get_paginator_str($box, $start_msg, $end_msg, $num_msgs, } else if ($PG_SHOWNUM == 999999) { $pg_str = "" ._("Paginate") . '' . $spc; + . "TARGET=\"$target\">" ._("Paginate") . '' . $spc; } /* If necessary, compute the 'show all' string. */ if (($prv_str != '') || ($nxt_str != '')) { $all_str = "" . _("Show All") . ''; + . "TARGET=\"$target\">" . _("Show All") . ''; } /* Last but not least, get the value for the toggle all link. */ diff --git a/functions/page_header.php b/functions/page_header.php index 5aca335a..9999df71 100644 --- a/functions/page_header.php +++ b/functions/page_header.php @@ -87,10 +87,14 @@ ECHO; * @param string target the target frame for this link */ function makeInternalLink($path, $text, $target='') { + global $use_frames; sqgetGlobalVar('base_uri', $base_uri, SQ_SESSION); - if ($target != '') { - $target = " target=\"$target\""; - } + if (isset($use_frames) && $use_frames) { + if ($target != '') + $target = " target=\"$target\""; + } else + $target=''; + $hooktext = do_hook_function('internal_link',$text); if ($hooktext != '') $text = $hooktext; @@ -275,6 +279,8 @@ function displayPageHeader($color, $mailbox, $xtra='', $session=false) { } echo "\n\n"; + noframes_top(); + /** Here is the header and wrapping table **/ $shortBoxName = imap_utf7_decode_local( readShortMailboxName($mailbox, $delimiter)); @@ -398,6 +404,8 @@ function compose_Header($color, $mailbox) { } echo "\n\n"; + + } -?> +?> \ No newline at end of file diff --git a/include/validate.php b/include/validate.php index 8738cc35..00fbb9cd 100644 --- a/include/validate.php +++ b/include/validate.php @@ -43,6 +43,7 @@ require_once(SM_PATH . 'class/mime.class.php'); require_once(SM_PATH . 'functions/global.php'); require_once(SM_PATH . 'functions/strings.php'); require_once(SM_PATH . 'config/config.php'); +require_once(SM_PATH . 'functions/noframes.php'); /* set the name of the session cookie */ if(isset($session_name) && $session_name) { diff --git a/plugins/abook_take/take.php b/plugins/abook_take/take.php index 8e5e5a88..ed18e8f6 100644 --- a/plugins/abook_take/take.php +++ b/plugins/abook_take/take.php @@ -113,5 +113,6 @@ echo '
' ."\n ''; } ?> -
- + + + diff --git a/plugins/administrator/options.php b/plugins/administrator/options.php index 7f95e5b6..f5ba00d1 100644 --- a/plugins/administrator/options.php +++ b/plugins/administrator/options.php @@ -606,4 +606,6 @@ if( $fp = @fopen( $cfgfile, 'w' ) ) { _("Config file can't be opened. Please check config.php."). ''; } -?> +noframes_bottom(); + +?> \ No newline at end of file diff --git a/plugins/bug_report/bug_report.php b/plugins/bug_report/bug_report.php index ad8fb3bb..344b093b 100644 --- a/plugins/bug_report/bug_report.php +++ b/plugins/bug_report/bug_report.php @@ -196,4 +196,5 @@ $body = htmlspecialchars($body_top . $body); - + + diff --git a/plugins/calendar/calendar.php b/plugins/calendar/calendar.php index 8091cf9e..659738c3 100644 --- a/plugins/calendar/calendar.php +++ b/plugins/calendar/calendar.php @@ -176,5 +176,5 @@ startcalendar(); drawmonthview(); endcalendar(); +noframes_bottom(); ?> - diff --git a/plugins/calendar/day.php b/plugins/calendar/day.php index 3eff1df7..e3a9a732 100644 --- a/plugins/calendar/day.php +++ b/plugins/calendar/day.php @@ -179,4 +179,5 @@ initialize_events(); display_events(); ?> - + + diff --git a/plugins/calendar/event_create.php b/plugins/calendar/event_create.php index c10aaed7..a439ffc1 100644 --- a/plugins/calendar/event_create.php +++ b/plugins/calendar/event_create.php @@ -208,4 +208,5 @@ if(!isset($event_text)){ ?> - + + diff --git a/plugins/calendar/event_delete.php b/plugins/calendar/event_delete.php index eee5ab0f..b45863e9 100644 --- a/plugins/calendar/event_delete.php +++ b/plugins/calendar/event_delete.php @@ -177,4 +177,5 @@ if (isset($dyear) && isset($dmonth) && isset($dday) && isset($dhour) && isset($d ?> - + + diff --git a/plugins/calendar/event_edit.php b/plugins/calendar/event_edit.php index 9331262c..a5e6be16 100644 --- a/plugins/calendar/event_edit.php +++ b/plugins/calendar/event_edit.php @@ -327,4 +327,5 @@ if (!isset($updated)){ ?> - + + diff --git a/plugins/filters/options.php b/plugins/filters/options.php index 3d2f60ae..74eb85f5 100644 --- a/plugins/filters/options.php +++ b/plugins/filters/options.php @@ -239,5 +239,6 @@ sqgetGlobalVar('action', $action, SQ_GET); html_tag( 'td', ' ', 'left' ) ) , 'center', '', 'width="80%" border="0" cellpadding="2" cellspacing="0"' ); - echo ''; + noframes_bottom(); + ?> \ No newline at end of file diff --git a/plugins/filters/spamoptions.php b/plugins/filters/spamoptions.php index 7f6491c7..52c255bc 100644 --- a/plugins/filters/spamoptions.php +++ b/plugins/filters/spamoptions.php @@ -178,7 +178,8 @@ if (isset($action) && $action == 'spam') { ''. ''. ''; - echo ''; + noframes_bottom(); + } if (! isset($_GET['action']) || $_GET['action'] != 'spam') { @@ -221,7 +222,7 @@ if (! isset($_GET['action']) || $_GET['action'] != 'spam') { echo "\n"; } echo ''; - echo ''; + noframes_bottom(); } ?> \ No newline at end of file diff --git a/plugins/info/options.php b/plugins/info/options.php index 9eb2ce69..c5f2a352 100644 --- a/plugins/info/options.php +++ b/plugins/info/options.php @@ -157,7 +157,9 @@ if ($submit == 'submit') { print "
\n"; } } - print ""; + print ""; + noframes_bottom(); + sqimap_logout($imap_stream); do_hook('info_bottom'); ?> diff --git a/plugins/listcommands/mailout.php b/plugins/listcommands/mailout.php index 5d08b20b..4af179fb 100644 --- a/plugins/listcommands/mailout.php +++ b/plugins/listcommands/mailout.php @@ -76,5 +76,7 @@ echo '
' . '' . '' . '

' -. '

'; -?> +. '

'; +noframes_bottom(); + +?> \ No newline at end of file diff --git a/plugins/mail_fetch/fetch.php b/plugins/mail_fetch/fetch.php index 26260ed5..0a7c73ba 100644 --- a/plugins/mail_fetch/fetch.php +++ b/plugins/mail_fetch/fetch.php @@ -127,7 +127,7 @@ sqgetGlobalVar('delimiter', $delimiter, SQ_SESSION); echo '

' . _("No POP3 servers configured yet.") . '

'; displayInternalLink('plugins/mail_fetch/options.php', _("Click here to go to the options page.") ); - echo ''; + noframes_bottom(); exit(); } @@ -321,5 +321,4 @@ sqgetGlobalVar('delimiter', $delimiter, SQ_SESSION); ?> - - + diff --git a/plugins/mail_fetch/options.php b/plugins/mail_fetch/options.php index 5ac6ae26..58e036c8 100644 --- a/plugins/mail_fetch/options.php +++ b/plugins/mail_fetch/options.php @@ -384,6 +384,5 @@ sqgetGlobalVar('submit_mailfetch', $submit_mailfetch, SQ_POST); ) , 'center', '', 'width="70%"' ); } - - ?> - + noframes_bottom(); +?> \ No newline at end of file diff --git a/plugins/message_details/message_details_top.php b/plugins/message_details/message_details_top.php index e2808f0e..a9e4b2c1 100644 --- a/plugins/message_details/message_details_top.php +++ b/plugins/message_details/message_details_top.php @@ -47,4 +47,4 @@ echo "'. ''. "\n"; -?> +?> \ No newline at end of file diff --git a/plugins/message_details/setup.php b/plugins/message_details/setup.php index 7977da8c..d0999e23 100644 --- a/plugins/message_details/setup.php +++ b/plugins/message_details/setup.php @@ -52,4 +52,4 @@ function show_message_details() { echo $result; } -?> +?> \ No newline at end of file diff --git a/plugins/newmail/newmail_opt.php b/plugins/newmail/newmail_opt.php index edf59b1e..01197b4f 100644 --- a/plugins/newmail/newmail_opt.php +++ b/plugins/newmail/newmail_opt.php @@ -158,7 +158,7 @@ if ($allowsound == "true") { ) . "\n" . ''. "\n" . ''. "\n" . - ''. "\n" . -''; + ''. "\n"; + noframes_bottom(); -?> +?> \ No newline at end of file diff --git a/plugins/newmail/sounds/FanFair.wav b/plugins/newmail/sounds/FanFair.wav index 697371e21732d80ecf6dba0a813e1e9bb78bb724..c178c9663f183ab933ab9ceca8c7b10116d01c4e 100644 GIT binary patch delta 7 Ocmdm{dzocJFcSa__5#2F delta 5268 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 QhNBAu_ZwdBL7uRG0RX#FmH+?% diff --git a/plugins/newmail/sounds/Friends.wav b/plugins/newmail/sounds/Friends.wav index b9397de08956c56a515ffd02f1f766f5a219ff11..b1d9bd21f8f3803b3fc24ac9c3c7848aecbc4c9d 100644 GIT binary patch delta 7 Ocmew+ahqjBG!p<0a02@P delta 2615 zcmb7_c{tSj7stoGge1e5EHmh)(Y1uG?b>E6se3JhE4s8GWogk+iEp9|sfOmtGOm~~ zQwa&tGGvJnl2N*{(~MEph?y~;pSgeD=XdY(^v~z>oaels&pGGyIp;Zpk}HVHKye5u zE+%nZcSlLD)Pua<%=YmkC*!8@awMvhl0gR;lEoH2(h`R`7AH68E>gL8* z_1<9Hlw^jT1mFY1=jgDnI`U^n1x;j_RZjdC77+FmVy&YmNc-RLDX%B-7~l3QR#M6s z1PrFQYlN$StHCd+1k!TJ^7tu89Gz;@|GYss;t|{r&@A8V`DG|JY1952ESqnLT8EFwiBN*8Sr; z)Ui#a0i`yik*-%;T1inbA1RV~Z|w|IPZ=d!EF(|=OqjH2BPAj2afw&qVwPXlrFmh$ z@Q#<}@m`(39L-0Cb5JEew5xkVfYxNe>m!s3^ZWn+!WxJ>OV2YTpdR-HPFvH>ETEYW z#$d&n5jC_|_ta_y9@V&K_^OrMh?V%0I-a(?;9V6HT~hO#@T#Tq%}+cs_0mt#>+YV| zO=CFnZW$XW$3&T$t|ARFg!dEn>~wF7@w~nfMnu6GA+dXE65k2~>(-L@>{`8xl5XfX z%f$640hTrvWU0YJPO2aEN9AMFLt>*FjMjr6Fnhf&y8_8VM! zOp!ht@(Q}hwc>AKss5Fgmac03DU?h!0ni2p2Ms6grOz=h) zg680BxyZMn9@|%-K0#$b5}N?vE^a8FBn0gcIyCbR?kEX*T6{KN>a@87F?08c61BE^ zgRG#eG(TthIjXP}KFD&zm2<>l#Yvw`3y7r<%g&^H(HMN8crpDJ%>aPt04&Fv78b$( z%>W^p4Og>gm7^S%Bt~+o*c$JLPi_=p$(;asPsL~(e)%&D;O+0Q4<+c$L#^&aE(0J zKHS6GQTb!NP^$g9t+l8b4kD86hDH_AFM1}euE^TkM7Vv(b-^|SCtIPS6Bx_>+XYjh zF^`9-p0+vP)*wRC zC&@8kO5s+oghRyPwc+UD(@&t{*U9SzG>$f{~587SfrdbbWOf#Vd z)rW^2%M?WviZz;zhEZ7ekC!IWZ_K_NC3?EpF0gN3lWRHb3Ezm`waI{#7Lt*rW^kZv z2N3wNqz-PP9UnKa*wZczyZr2n_n2MCp{g#mr0h_N%Jq$$usBoL;Kt@oDj935?pONj@vq%&wLk1qCZG?dZepum2~NVh(h1C zCT7p-xs25o@e|Ldu~9*p*shs~>dkiF%8vNc1MF`PwN>S%d@j^kxvP`b9*S$$Yg~?0 zjxBH5vo+o(fZ+RVHamge&Zns{>nqWyx-fkUz z|8VcE=awHr$C=|k5(g&Mev6RGYOomy?Vo#jam2Djw&}0H`Z*5t$3fEl%)(~9_gHLj z2|LPk`> z?MyskdS|e>8>pLHz#?^IFWax}wnER>iy1*{<_=Jbw82#-Of?k}nmL=YJV@TtXVXa| zKydJG8nN23UN>uV&h1+`|5qE!s8X9$?Gp0DN}u>j*Gt1Y{F-`N;oqBb02%)7uGn6L z7yz#&&+5=_{vzXc#W^b^H#5yTg1()yF{A*P8vT9!TD& g_qm|&lmDxFqZc~m8pQ+AmtfzOobkWD`2QXM1OH;x5dZ)H diff --git a/plugins/newmail/sounds/MontyPython.wav b/plugins/newmail/sounds/MontyPython.wav index 0dc3655808e91801cf27cfd97a96eaf116e5cbe8..b2a2b6d85fa6cef2861296e0ef802fa2defd9061 100644 GIT binary patch delta 6 NcmZ2w{E~6PO8^S713>@) literal 6570 zcmb{1Ra8{p+XwK&(2YY#H_{;?Edve>N)4@uq;xk@(jX<>NF&nVfYQxS!hi^fNF#!j zH0O1Gm+$reT%5Dd#eUXapY>hq*=uh-brqEoIshu(H%hg$|g$iu#3 zg&h}BU{S^3zW!+kQq%F_D(vQ@q=QmX_cty<0C53T6$JvKsOOs`VFX;1kRF0- zB08zk^C4(@MYN*-OZQ0JPvtr2A9V?IZl6-8@I7?Dg=yhC(VH~pi7cq zGE6c5DU)J$&}<5N!qK;|y4~L~hvTt-Ay{x(fH7dEhm0=$8h`;dY3>=*wtbWk>9R;> z-od76{4)!XdKnzDPj5FV`V;z&GnLVOJN;xRE1bnfGSo@uqpcN8H~Z5yO1wCFbZAxvo5f@QY@X9SI#dD*{%yLP(LSw#!K$YgUwddqore+ATT*4$wm=nhk*2VzKR81;0!O_>67Z^7%%#d~6v zPKzH{DS97>M6;uBLsq&Dy4JPeJQxG`U8TVjfM>k4;FFLkM>~aOdnhCQb%bJfw}D-E zGW-5@bVz1Odp*P|(IhOqvX9X!Zlr$YkQWtncIl%SS^toh#+&R>82yrEOUuk+HVc@- zUm`ap#c2rz>Q5177Kj87Is=S>5voZC*NAK)eK=?)f_bsI-XlLusvkA!9I|NwVsU?XyZ6huW=B?}~>%QOGObXG}5~t!xpyNWL`cR~g zYbSN94WiL-iS+3wO*a-8gO~J59wz{iid^C5DPSn)UL{E=s3#Y zM&0l(Oy@>!cME|{*E~RUpC7((7)?W}q^MhAqn*wPZ~9tN#FfG6w@)9C0bwS}KgECa zBwdD-S}xRS$2Riue>pIt>w#_q0V?lf8lof2+f<_+wmwNfLb0rWA77s}L5otjm4i*s z8ekmVGD#0>V{JFAF)~P+IvH0c8Ng}yu3}@)}rL zq&eVUKAIbE;d6{EQ~nirdbV$;_~ra^IE!BY9+Xul_AA-bBls{S$3wU2!)l#L5Ik^u zs=yzLrJ@dEa^S&$wL132|!2uF(-NG$kGMwFJDpB$kG z$57B6j6pg*)-HOp7oInx8D+jG=EK4NE{3*lHgl~a-U7Ms)XILbpKYB)v9?j6snwvc z^e~)C7a|FQ;H)4d6!M^O>nzkf0wyTgb*e3B>wl~y3v(r$;{CS3{Kf5c*xlurJ+Ge< zp%{ahyWys2Sioprb25vM^K9i6sLL1$j`cviSz@gPcq_yuJ8#&v%}Qgb;xi-4T~M#$`PZbxB;UJXL~1=bNJ`=J z1ykT@W4HWl!EAFnODL!0L~X|GMIi!vY|%lzrS0~EkteaKxa_qU?NKqob?%fXW8g5x z07>7oKfNA^mnSj8$776ep<&*QMxGLWGJVi{p%T(j5aQ37fH-OSt#)7!0Gtf#6MKp& z(bVep{qF6ro5|2f1OsRnnjATViWZ55utqp`;$xAR4D#8E3k9i+;P`qHi3$2*45}D< zc2VV)(P|+hryp$XvM+ZMCdSEywPow9cGlv_Dg$ zFgJ>kHl3@%yW+Uo=(Vfk2S2OeA|d@FWQN@aYPGk={P&eSoo1%0>XY9t&k`{PBlNw7 zGe?S1d*$o%72kG(DUvgaaoWn>@-t);1K7o%*2I*MJ#xB33SFDO5F7^b>NOJqJLTha zZd1jasl|;?%$lv930ZDMsK{qeD0_D7zE_n;>3Q+X4#zwtO=BliO3(GE!x$hLv7=_r zVFSt2#>;8m8qxuC2jCb@6z$;WJP*OZ9S--j^`*W&&F=7O4S|R2A=sg0s%s=y*_?KH zgEG3*8bM8FwT0_hamjxCzo%ZC;G-z(^R|4(`>DHq%-mB-|8}*vvg*91c*lRPRE(HM zu&H^she*s$ez%LWY!dQ}_~jUzY+s^5%k@QjNylVh`5w+2{V$PQ66DSpgRcy|g9Ga? zaPl&ncWa6@J086qdiMkZKokl?JTFCRDJX^?S#T#=OgL3J$(uCLzrSGVoJfzC?u^)6 zNTf5tVcKJeJoX(<&BNbqJo-7~{!q*WX=B&>WWm9c4PR1DYGbw&Y{tQsb z6L7oY=V!KN ztIMV;&*T3!_#i3ugu!7bu5whoRL6s$p0^CCX~Lv#*hD^BwfNCG3;j*CCYW079(ioS zi^e(&uH(-%mj^9zrcjzg2sHYmWi#W8@QNMp;;7x{&v&X2oPp$27=!N&VI>250V+ZE zO~x$}j>URT@f-cb8bUN&Kq!EfmZ}aOIHne>3T-jDognk6O=75ElsRh4rL1V%;xLMz zij_iVzQTy|$A6Uim7)bJ#vN2qr6D<2OA}OWkqHE-BVq7F2xBnDsyK&SAJy{n-?Dk0 ztJ6>XT4k8^aI2}ff*$y=(US1xFCZX|APvkWyFc<^yABdcR&l21)5EJ)jypQBpAj(V5KT>5aQ zu91U%i5mIuT@o`2g`j&T^Do_6@Wy<$+_$})VdwT0g7zy0LgA}|;bLmFj8&s+C0b+o z@gPOw(IvyuZWFIm**NgZ_VZc4s)qV3SuaXn-FDvAD=*EY_JNmS$>7aZypJ^}z|CB|TuVSB%4T_44Dz9Co%tL^>zdn}OQ z!&|jXQwNPD3u*{J-S9N6`BSNb=$&y(mE`;!1g;`a$`kKU*l1OdRagWi#J>5juW;m4 z%*XoIB)_P$XRNJ7{JQ0EoxiGleRq3T8suQY7<4g*HMach)$(#nPzcCWXt_NM*{h$x zekOVLd#zLD>|ER5eCT#y%Jr9AaaGX6Bgu?0?QjcL+`0(p$4@+z%B_;0^f%7th7xc6 z|Ft~dm-%zPD5pEBOY1D*?eXO42!ocZg91 zROsoa14yuI@`f^|ka83*P4eOn9WBP7lWEtbYu`WW^YPUIvha_>?P6BF`Ep*DQz2f~ z_l4Q6$9rJN!O|_i{$oV=9cXR{)LOq<#A&P6sD4#2W?>$K)S;ceOzLMAH_=5Zgr z?=g^T?t8{~D0W?;^SjKbDdG`Srhx7qTWx;@z!>Z-_UFc+j}umW<|*^1rO%Ta!g1nj znqqj*q^HM>z^z6HO2JA56%vod7@(PYI=9aKP*+1lDei+)ChzP25GYfWD(5G7Fg@K= z@X7D}amI z`{gM(t5i_!q$(;s5G)4w9k$3*ah{pugW%R2AO5|kWxU|Kvzt}eY8uvSr>M4#Q{ER$ z)J(L7`s>x|)W#yeTJ&&sk~M zqX4l190!YFO0C4#mZ3b>gti+CZ`Xt`^43K2qf$TIS|gR~{{|=Nm&29GMf*gkD|3w( zjGcI+Biq)9(PS8d_l%Gi=U8#}Kp+3bpDWtc%Sayk4EV~}(bXpF>R>Skyxi4IMhN>= zZ%nDd(c=7gj@4W8!r~qh<6L^F)+f#i_yB%)Qfp3GrV|yG z%In#b6^&k4jo7P;CtJs^W24n6cW%o_5k}50ruyp39j9Pgy;joLlnf+8MmLF{Gv^px z#Kgqz@?s2H7_ntGp=wbdC&v^vzC0!Vl9obqHayZ}-iqW+*oHO^lWI`AA;Le|3iJN# ziVx1OJ%@<^5w{6G^bmF|goLZdRprv1>ru~|>?nQy7nGE}%e*NX$N-PDSvkh?+LCn1 zFy>JUvjEuga%Z%&J1((|C-10?6`>8^t_6OI6)NtdJkiI|xp{<7Ms)!4PloOoTIql@ z7n=894j3Gvn?z6*-j8IRE~hBaR^kf0jBCG6j2T)PWs2+kw>#9q?Z4K1%oZJ5F9+B7 z-R=k181CqY`*y7xp^oLQ$4L*i`qT7YXq4wG2z^eIJimbgXj6hm)l}V;ay(kAmP$<+ zgB}){xvwY@)N()!S6wt(fQxVbV?0zUZeVJS{bwr7k*XGrh@T$g+LLc!u~2ZF;E-R` zenwWQF^WUE_e^iFAqD1uL!?$;vPBcnxEe(BZdCUpM|lSQP=qLNyFki}uVm2%`t$6s z+6iV~!>t+oI4lE~g{n6Sfh+2%VU?`Ct@>#uiVbk#HD{ZnTY(8dW#D8t z+T$)WS52Av+t_rkA^!^FQwe!1vYd?8%J26!(Xh}7KZ79_ zY@$7^czeKpnL%La?@e%Uuq%&&Z4`9f|+q4bxao zzJ#kFPQ#Ln%2vl4=@5~zu3N{0gPW+d>)&9Um+bAU)ei{kRPQI8P2*%0xfp|Q^x<Hg)vhMK~#{?4r@PdAs&Wnt=@X|!azv*TXeN$uz(_BYlh zjRC1hoP0P#V#?wl)~~d@?c@(RPt_hh8zyijYEv0;)gn%fmjXvf$6Gkr2I9+@u*n|9 zQosz9GvYrB8@DEMXNK377wA3E%admu({}PD;shv^gWe;)Ynr{Zoq5n=IsU}lOSkvS zoX$X$cXjoz*tK&cm=p6C8N23c^PuEs;F>X6BH``NBk#*H}Plx~tLg6#ny*bl9Yg8E1E9Z%PZq0OY>{S?^nCuE;)qo8G&cjM28$3Dh zxfBEthG7$YJ52vBKVHOu(`Ok$xp&0UyfrhC?m={?#(H#*1;URpm|<1AoQ3dD=@fbB z{s8_Y-#z1cK~h+`wtCXYtbqvJQ_ck6#11GB(Xe>u8OO#{yRQ|&yyjics3NARAdj3? zF2`Z!LV!*XXMonk>IkQz1k-C3_M4HyfqCf!MRt{2oc7E=vvh1u)@O2qHx@vZYC^S`wzKA_Gs2ko1%O{?tmGy zOHMzVX|EIMpV+%~w@;V9$CG!9-2`wMh3vN*^%Bv>j$sT?EJ{KfKV(Vmvm+m^Q}O(` zObqd_Tdg}RN6oHcyX(w1xpJ$tyXu~?e~`FwJ}R|8Y2SfUEBb{h%9L&NE#l2P zr`CJ^--1gsWVB6*Qr=f0w^Ggby)@|Y#^`JG-?yXlF$Ujh!&|q3m%80m#|@P01sT%J z?BT`S5f)T{2>^NIZfKpdq$X!);GD2=KaoG6?7c*Xc~dF9#aN+9b~Yj`=hUdCy6=M9 zGgthfn4%_`7_Sg&S+7W3&1%OE9i>WrW3=G!g2oukv-kEcKj$-YyNCOXfh)X$hf3V| zSS|hbWoe2r0TILN-yeA`1+V^~`#>hs;JfwK*2Vl>k11_wVy85wbE_XXgk>(OBaVmP z$(S*wL+v#!`fI%6Q#~Zaqz%+BlxMV{O;$+tAztYS^H~XWX`*Km`;2CsMQlD1?}yh% ze!)vb9fYnGSrbNU3>m&;(u-_|e)BhNL}9+I7=uLyrHuJ=o^eK{pNlR+Y+$M_ne4r| z{M*^@gv40SakQtYag?pcL!;^@q8G2~$gV7t)>NviBM}Ib?B{g} zJwD9UZ*)x%=>Xb-8V7OQZn_-#vM$Kx;tBP__yJRm@e^yRY#D%zcpiw#}H$V>*~ zwHG zl_Hb1)$iazO)@4Xbjz}GQsK!dFx9@6rabp;L8_PtLTr)qk4yWD65RAW?|vTJ7GD3G z^#$c6YLhx9P!uLZCmMxED$tZM#9^p|F<4-_-yRClP$AVD6SnpcwR!%$N9^7!-dkbx utT6iD!u}`EKZ7o2$Q%`LKkE8_Qt*FRVyJTl(Y-69rmJ->r<}*lAjAiUQ5t5ihNU~?L@7Z@D zOJsy3*&@tiK0iHw!1KMX@A=`J_kFJG+~>Yu=Y8Jybq+>fSC_~E0G4nI9cNEpL4E)L z%mEsJ;~D_8GXkd(0I;0yL8nJr8W4b^bH3}~OG|Ab0KoCC?_KTFt0_w|?EoYMT~}vh z2Rg~0Nr3@h?cTAr`+uSf>4QSKT4eeD2^Lbh%rAPrwYo)+*P4}?4#$!+lq6(^L}eQ? zje-DK7j^-r1tUF|%S_xLy3h|7IHnna#bm)PrF1-vU`BUR?hixJD&%>-^PHlzv~-|k z)Hh#onqUCIA{6}j3fRdZp1x&4f@^`ERu+77vIQ0lz@Awdk*@^jZr9+d+w$hNLO+;QUMHfQ&Fs0Qp1Pz^aaxK~M>lww(Wi@2i9 zyzQDYH>CH}S$8bUqb2f!>gA=LW8+eR6L6L8+t%Lr0oon6;x(s?nJ(LTRL7SCkr3b z=^1!vNpX`SNvd;uBQd+W>l#waxUysDy99@50jhx}tWb7yT1?K>z3x?0C9`K=;E5&1x!BHyfFl~@|Pby4vIW+EH2D+ z&Un*}fREQ~>^xGvn3G7Jh}W2Fsx~YVg%(o{6uA*U$yMNUgcFC6yFI?MB=n|VvJ9`; zjE|W64L7jYs$bIBnrRXIb!e|OiOV{^LU2y~tr?a^D_98lHfG=V3z?YO{7;tX_h|C- zhvaF?226LQSfhA^&i$8_!X>(znp*Px`GXZfKV>^p_&=#us@6F_jgrh`df?=(l4gd= zmFx{5Os23G{YfU4pf)j)uf-{OC1M}{&4at#q4&uWJUxUbe`z-*cS0RGmhbR5nn=;=|R-`l;h>T{y?_Lbwi;`Ei7wgQwk637<|+B zuyx%Wty%9L5n0~Lx{|NXNAcKz=?AF>77&pAvY&iA;XTSC9CPf6iNI@?6N0UqTfiLm zqLQs)pK?(wN`b5Rt|P@R@2u8JqZCiCI43cr8i_J2!rxKn>~oX8M4eA@s!Fb=4M4-f z(PiKIi{vsvoaId=;S5SRzkDQTPz5wrh_Vbrs;EzVzqcH7EaIYTN6QXmWQIK1QVsCM zTxJiYOG0fIu2T*-wUob%@>264oIBL{t1n#7!z%x&KKuM`F*Iu1uohF>IPpC*F2=6; z%|-EbS>9h*V=)5jJ5N{3@XNvA3(@gG(o?SPL6XMzrhQ4_CX^=z504-3X1KpbEf#^e z5;%d|3J^tT>HMs77>p*EY7hVgktY9GB^?dzW}GOG5;w2pOlS#N;kq9vgH5_;IDLeMYVBrDA=T*LX zppA{Kr};XsrH_CN%7Bk*kjD+WKLUp7_Q6J_92#!!I@dkCXOcs_mS^X2eQ4(`?E@2Q z%<^?w^OLj-5?{B!^-9Fu7~ZeD;gUU#E& zK3OxHRRl_b6(V5V3FXU}pzsXC=0flSizqAe&xRem1?K)cb0;&UZ0(h+1BTy@C*_%P zmfg@69VJwQJf72cjy44KC9Q7%XAjSXd(xhU$Z}RT*3q-^CZCRRoJfX`oHGb#@icek z)%pB~XLEo1y7C>m9<13!iP0pt0uuQbl9OMmIuqdRtXe!8rPAxuBhLe~JWBF%pE`!?ikoP$Yf38qKo=MHX+pOz1rSe%6@@zJ}sAr`fg zSyhFl8nkk^u8~<>b&uXMd523foQ2$9BD{Rv(u>y5XQ7pc&;@({W5UI(4)-M*De=l7 zEKV@hM08-XRP{%(w^<;JW}g0ly0)ViQllL5WUpR#eL&rdb0?c?B^L6 zP%;ZYrl;NK)a16$pDj=cXQ1LszPoe?tW@-ppH-Rq2Decydim9Kiz zfaI}iKf>fZlBj|)s}IE*oQz%HCf0OSO6@#-;Qsi|Ggq~cZpP_=>LM+(EIsj~0%{&~ z3Ls9Vi8t5@YgxThXXw-#T(RHA0vSrjw!54rS0(E@hQb>++qw}EKj2=1$)MLX`L>DY zw>*~<)^p8XoC6=MEpBc`ryd1%b*v*dQ!gkmSZfaIPOO(5tPKB2aO3oqbX~0xF9@O( zTkEH&E9HJHw!{?GNu@5+o9~(q)z?gfKSLMfns^#E1UaepDtbgqIs{fPL#wY)4L{NI0-{iS3p-c10g*IW7%Y)n4i`ci^K~;VlQEv`*yK$Ox%h`Jk_8}5cG3u z@dlWnfo6Xm+BWbYz=Ghmik;O|>*)SGQuaf~DLXl*xxb@1z^*)m-B5TP1O@Pz&(kDcZy z@y_*fx}y@t#_*4BDV?CNqhvDnwQZtc5_7)Txk^fH2d-3GlPjN~D$ib#W-%bD`uq+( z%{dJ7j&{N$%298XE%n3P-GEzQA#jK-OZSME;!$iW0yLY7TXLTN+V7$kULC zC>oXUjI^~qp4qU)Wh>ez@M+4b?XBi)nJSVMEdICuiGbaYk#ds zI<;Hv^U8p=i{8^TbZ=l!C3KHC&9`JZ4I3Qvy`#> zOUel*on?R&;p-?jcXb$lysKkDtSL^IFDv_EWLw!xW`{-h8Y{Lv;mc2e!u#1Aq{Ui6T`fu6SGklU9N+A-n)5_ykey)ji(yS@rsk0{dQ6^e!gOw|`vL%@ z1?DjYtqNqCosj3b;jwF}*M5mlL}lX@-1&h=HaL2=Dw$!|aejY1fm9Qtvp11|*$aBo z7;af9brX9uoi>(b#T{48WM*I-g*B!cbo1k;Gk}(ej`%QRo3qcZRF5o@uIHV>*Eg2- zHtk$B#10CIRM?lcc)sn)rc!6Mec3+9}>{wROgJf@SofiZr z3q7=SwuoS3eRl0k)_Mg`SyhP;)nJy#E#TFjzwY=(Lr8AlOpC!5d6+UQU-q#{>P;lp zpYG}#Acf;SNUzya%9M+xo(=@JyNc6)DRkj7GR;TFIOb+dKen|Dan(-j0}@QOsy;vG zt&KkVM#y)oxrO&D>qp5QpVl3j_MS`PK~I3Tvo>w8k;sqYjMtNJaFm&<(1Q){91(Fw zgHC8qGNamhG`~1qoWId0;V\n"; echo "

"; echo _("For more information about SpamCop, it's services, spam in general, and many related topics, try reading through SpamCop's Help and Feedback section."); echo "

\n"; -?> - +noframes_bottom(); +?> \ No newline at end of file diff --git a/plugins/spamcop/spamcop.php b/plugins/spamcop/spamcop.php index c7b1397c..0fb65efa 100644 --- a/plugins/spamcop/spamcop.php +++ b/plugins/spamcop/spamcop.php @@ -189,5 +189,4 @@ echo "

"; - - + diff --git a/plugins/squirrelspell/sqspell_functions.php b/plugins/squirrelspell/sqspell_functions.php index 43a03133..ffda1b3d 100644 --- a/plugins/squirrelspell/sqspell_functions.php +++ b/plugins/squirrelspell/sqspell_functions.php @@ -76,7 +76,7 @@ function sqspell_makePage($title, $scriptsrc, $body){ . html_tag( 'tr', html_tag( 'td', 'SquirrelSpell ' . $SQSPELL_VERSION, 'center', $color[9] ) ) . "\n\n"; - echo ''; + noframes_bottom(); } /** diff --git a/plugins/translate/options.php b/plugins/translate/options.php index ed6170b7..1636bfb3 100644 --- a/plugins/translate/options.php +++ b/plugins/translate/options.php @@ -185,7 +185,7 @@ require_once(SM_PATH . 'include/load_prefs.php'); ''. ''. ''. - ''. -"\n"; + ''; + noframes_bottom(); ?> diff --git a/src/addrbook_search_html.php b/src/addrbook_search_html.php index 887c9370..e9702ac5 100644 --- a/src/addrbook_search_html.php +++ b/src/addrbook_search_html.php @@ -276,14 +276,14 @@ else { echo html_tag( 'p', '
' . _("Your search failed with the following error(s)") . ':
' . $abook->error . "
\n" , - 'center' ) . - "\n\n"; + 'center' ); + noframes_bottom(); } else { if (sizeof($res) == 0) { echo html_tag( 'p', '
' . _("No persons matching your search was found") . "\n" , - 'center' ) . - "\n\n"; + 'center' ); + noframes_bottom(); } else { addr_display_result($res); } @@ -299,5 +299,5 @@ if ($addrquery == '' || sizeof($res) == 0) { ''; } -?> - +noframes_bottom(); +?> \ No newline at end of file diff --git a/src/addressbook.php b/src/addressbook.php index a01466db..d8d53bf1 100644 --- a/src/addressbook.php +++ b/src/addressbook.php @@ -282,7 +282,7 @@ if(sqgetGlobalVar('REQUEST_METHOD', $req_method, SQ_SERVER) && $req_method == 'P // Some times we end output before forms are printed if($abortform) { - echo "\n"; + noframes_bottom(); exit(); } } @@ -436,6 +436,5 @@ echo ''; /* Add hook for anything that wants on the bottom */ do_hook('addressbook_bottom'); -?> - - +noframes_bottom(); +?> \ No newline at end of file diff --git a/src/compose.php b/src/compose.php index 2bdacca4..36a1fb86 100644 --- a/src/compose.php +++ b/src/compose.php @@ -1166,7 +1166,8 @@ function showInputForm ($session, $values=false) { } do_hook('compose_bottom'); - echo '' . "\n"; + if ($compose_new_win != '1') + noframes_bottom(); } diff --git a/src/empty_trash.php b/src/empty_trash.php index b34af88c..8f2c322f 100644 --- a/src/empty_trash.php +++ b/src/empty_trash.php @@ -67,7 +67,10 @@ for ($i = 0; $i < $numboxes; $i++) { walkTreeInPreOrderEmptyTrash(0, $imap_stream, $foldersTree); $location = get_location(); -header ("Location: $location/left_main.php"); +if (isset($use_frames) && !$use_frames) + header ("Location: $location/right_main.php"); +else + header ("Location: $location/left_main.php"); sqimap_logout($imap_stream); ?> diff --git a/src/folders.php b/src/folders.php index 7e4966ee..866f9d42 100644 --- a/src/folders.php +++ b/src/folders.php @@ -72,15 +72,25 @@ if ( isset($success) && $success ) { $td_str .= '
'; - - echo html_tag( 'table', - html_tag( 'tr', - html_tag( 'td', $td_str . - '' . - _("refresh folder list") . '' , - 'center' ) - ) , - 'center', '', 'width="100%" cellpadding="4" cellspacing="0" border="0"' ); + if (isset($use_frames) && $use_frames) { + echo html_tag( 'table', + html_tag( 'tr', + html_tag( 'td', $td_str . + '' . + _("refresh folder list") . '' , + 'center' ) + ) , + 'center', '', 'width="100%" cellpadding="4" cellspacing="0" border="0"' ); + } else { + echo html_tag( 'table', + html_tag( 'tr', + html_tag( 'td', $td_str . + '' . + _("refresh folder list") . '' , + 'center' ) + ) , + 'center', '', 'width="100%" cellpadding="4" cellspacing="0" border="0"' ); + } } echo "\n
"; @@ -336,6 +346,5 @@ do_hook('folders_bottom'); - - + noframes_bottom(); +?> \ No newline at end of file diff --git a/src/help.php b/src/help.php index 3d9fec9c..d37b1704 100644 --- a/src/help.php +++ b/src/help.php @@ -208,5 +208,6 @@ do_hook('help_bottom'); echo html_tag( 'tr', html_tag( 'td', ' ', 'left', $color[0] ) ). - ''; -?> + ''; + noframes_bottom(); +?> \ No newline at end of file diff --git a/src/image.php b/src/image.php index a91f96a4..11d26624 100644 --- a/src/image.php +++ b/src/image.php @@ -61,6 +61,6 @@ echo '' . "\n" . '' . '' . "\n"; - '' . "\n"; + noframes_bottom(); -?> +?> \ No newline at end of file diff --git a/src/left_main.php b/src/left_main.php index 4282f5d8..5a11258f 100644 --- a/src/left_main.php +++ b/src/left_main.php @@ -14,7 +14,9 @@ */ /** Path for SquirrelMail required files. */ -define('SM_PATH','../'); +if (!defined('SM_PATH')) + define('SM_PATH','../'); + /* SquirrelMail required files. */ require_once(SM_PATH . 'include/validate.php'); @@ -36,11 +38,14 @@ function formatMailboxName($imapConnection, $box_array) { $color, $move_to_sent, $move_to_trash, $unseen_notify, $unseen_type, $collapse_folders, $draft_folder, $save_as_draft, - $use_special_folder_color; + $use_special_folder_color, $use_frames; $real_box = $box_array['unformatted']; $mailbox = str_replace(' ','',$box_array['formatted']); $mailboxURL = urlencode($real_box); - + if ($use_frames) + $target = 'right'; + else + $target = ''; /* Strip down the mailbox name. */ if (ereg("^( *)([^ ]*)$", $mailbox, $regs)) { $mailbox = $regs[2]; @@ -65,8 +70,8 @@ function formatMailboxName($imapConnection, $box_array) { /* Create the link for this folder. */ if ($status !== false) { - $line .= ''; + $line .= ''; } if ($special_color) { $line .= ""; @@ -99,7 +104,7 @@ function formatMailboxName($imapConnection, $box_array) { if (($numMessages > 0) or ($box_array['parent'] == 1)) { $urlMailbox = urlencode($real_box); $line .= "\n\n" . - "  ("._("purge").")" . + "  ("._("purge").")" . ""; } else { $line .= concat_hook_function('left_main_after_each_folder', @@ -170,9 +175,12 @@ function create_collapse_link($boxnum) { global $boxes, $imapConnection, $unseen_notify, $color; $mailbox = urlencode($boxes[$boxnum]['unformatted']); + /* Create the link for this collapse link. */ + $link = '+"; } else { @@ -287,7 +295,7 @@ function is_parent_box($curbox_name, $parbox_name) { function ListBoxes ($boxes, $j=0 ) { global $data_dir, $username, $startmessage, $color, $unseen_notify, $unseen_type, - $move_to_trash, $trash_folder, $collapse_folders, $imapConnection; + $move_to_trash, $trash_folder, $collapse_folders, $imapConnection, $use_frames; $pre = ''; $end = ''; @@ -343,8 +351,10 @@ function ListBoxes ($boxes, $j=0 ) { if (isset($boxes->mbxs[0]) && $collapse_folders) { $collapse = getPref($data_dir, $username, 'collapse_folder_' . $mailbox); $collapse = ($collapse == '' ? SM_BOX_UNCOLLAPSED : $collapse); - - $link = '$leader+ "; } else { @@ -356,6 +366,11 @@ function ListBoxes ($boxes, $j=0 ) { $pre.= $leader . '  '; } + if ($use_frames) + $target = 'right'; + else + $target = ''; + /* If there are unseen message, bold the line. */ if (($move_to_trash) && ($mailbox == $trash_folder)) { if (! isset($boxes->total)) { @@ -364,7 +379,7 @@ function ListBoxes ($boxes, $j=0 ) { if ($unseen > 0) { $pre .= ''; } - $pre .= ""; + $pre .= ""; if ($unseen > 0) { $end .= ''; } @@ -373,7 +388,7 @@ function ListBoxes ($boxes, $j=0 ) { if ($unseen > 0) { $pre .= ''; } - $pre .= ""; + $pre .= ""; if ($unseen > 0) { $end .= ''; } @@ -382,7 +397,7 @@ function ListBoxes ($boxes, $j=0 ) { $end .= " $unseen_string"; } $end .= "\n\n" . - "  ("._("purge").")" . + "  ("._("purge").")" . ""; } } else { @@ -390,7 +405,7 @@ function ListBoxes ($boxes, $j=0 ) { if ($unseen > 0) { $pre .= ''; } - $pre .= ""; + $pre .= ""; if ($unseen > 0) { $end .= ''; } @@ -426,11 +441,16 @@ function ListBoxes ($boxes, $j=0 ) { function ListAdvancedBoxes ($boxes, $mbx, $j='ID.0000' ) { global $data_dir, $username, $startmessage, $color, $unseen_notify, $unseen_type, - $move_to_trash, $trash_folder, $collapse_folders; + $move_to_trash, $trash_folder, $collapse_folders, $use_frames; if (!$boxes) return; + if ($use_frames) + $target = 'right'; + else + $target = ''; + /* use_folder_images only works if the images exist in ../images */ $use_folder_images = true; @@ -497,17 +517,17 @@ function ListAdvancedBoxes ($boxes, $mbx, $j='ID.0000' ) { if (! isset($numMessages)) { $numMessages = $boxes->total; } - $pre = "" . $pre; + $pre = "" . $pre; $end .= ''; if ($numMessages > 0) { $urlMailbox = urlencode($mailbox); $end .= "\n\n" . - "  ("._("purge").")" . + "  ("._("purge").")" . ""; } } else { if (!$boxes->is_noselect) { /* \Noselect boxes can't be selected */ - $pre = "" . $pre; + $pre = "" . $pre; $end .= ''; } } @@ -587,6 +607,9 @@ sqgetGlobalVar('unfold', $unfold, SQ_GET); /* end globals */ // open a connection on the imap port (143) + + +if (!$imapConnection) $imapConnection = sqimap_login($username, $key, $imapServerAddress, $imapPort, 10); // the 10 is to hide the output /** @@ -596,7 +619,7 @@ if (isset($left_refresh) && ($left_refresh != '') && !stristr($left_refresh, 'none')){ $xtra = "\n\n" . "\n". - "\n"; + "\n"; } else { $xtra = ''; } @@ -892,10 +915,10 @@ ECHO; } - - +if ($use_frames) displayHtmlHeader( 'SquirrelMail', $xtra ); + /* If requested and not yet complete, attempt to autocreate folders. */ if ($auto_create_special && !isset($auto_create_done)) { $autocreate = array($sent_folder, $trash_folder, $draft_folder); @@ -913,29 +936,30 @@ if ($auto_create_special && !isset($auto_create_done)) { $auto_create_done = TRUE; sqsession_register($auto_create_done, 'auto_create_done'); } - -if ($advanced_tree) - echo "\n\n"; -else - echo "\n\n"; - -do_hook('left_main_before'); -if ($advanced_tree) { - /* nice future feature, needs layout !! volunteers? */ - $right_pos = $left_size - 20; -/* echo '
'; - echo ''; - echo ''; - echo '
'; - echo '


';*/ + " bgcolor=\"$color[3]\" text=\"$color[6]\" link=\"$color[6]\" vlink=\"$color[6]\" alink=\"$color[6]\">\n"; + else + echo "\n\n"; + + do_hook('left_main_before'); + if ($advanced_tree) { + /* nice future feature, needs layout !! volunteers? */ + $right_pos = $left_size - 20; + /* echo '
'; + echo ''; + echo ''; + echo '
'; + echo '


';*/ + } } - echo "\n\n" . html_tag( 'table', '', 'left', '', 'border="0" cellspacing="0" cellpadding="0" width="99%"' ) . html_tag( 'tr' ) . - html_tag( 'td', '', 'left' ) . - '
'. _("Folders") . "
\n\n"; + html_tag( 'td', '', 'left' ); + if ($use_frames != 1) + '
'. _("Folders") . "
\n\n"; if ($date_format != 6) { /* First, display the clock. */ @@ -973,9 +997,17 @@ if ($date_format != 6) { } /* Next, display the refresh button. */ -echo '('. - _("refresh folder list") . ')

'; +if ($use_frames) { + echo '('. + _("refresh folder list") . ')

'; +} else { +// echo '('. +// _("refresh folder list") . ')
'; + echo '
'; + $collapse_folders = 0; +} +global $data_dir; /* Lastly, display the folder list. */ if ( $collapse_folders ) { /* If directed, collapse or uncollapse a folder. */ @@ -1065,7 +1097,7 @@ for ($i = 0; $i < count($boxes); $i++) { } else { /* expiremental code */ $boxes = sqimap_mailbox_tree($imapConnection); if (isset($advanced_tree) && $advanced_tree) { - echo '
'; echo '

'; @@ -1081,10 +1113,15 @@ for ($i = 0; $i < count($boxes); $i++) { ListBoxes($boxes); } } /* if ($oldway) else ... */ -do_hook('left_main_after'); -sqimap_logout($imapConnection); - -echo '' . "\n". - "
\n"; +if ($use_frames) + do_hook('left_main_after'); +if ($location_of_bar == right && !$use_frames) + sqimap_logout($imapConnection); + +echo '
' . "\n"; +if ($use_frames) + echo "
\n"; +else + echo "\n"; -?> +?> \ No newline at end of file diff --git a/src/login.php b/src/login.php index 10584e20..fd41eafe 100644 --- a/src/login.php +++ b/src/login.php @@ -175,10 +175,43 @@ echo html_tag( 'table', 'center' ) ) , '', $color[4], 'border="0" cellspacing="0" cellpadding="0" width="100%"' ); + +switch ($allow_frames) { + case 4: // if $use_frames unset, fall through to case 2 + if (isset($_COOKIE['set_use_frames'])) { + $use_frames = $_COOKIE['set_use_frames']; + break; + } + case 2: // Do not use frames + $use_frames = 0; + break; + case 3: // if $use_frames unset, fall through to case 1 + if (isset($_COOKIE['set_use_frames'])) { + $use_frames = $_COOKIE['set_use_frames']; + break; + } + default: // default is also to use frames + case 1: // use frames + $use_frames = 1; + break; +} + +if ($allow_frames > 2) { + echo "
\n"; + echo " ' . _("Frames") . "\n"; + echo "\n"; + echo " ' . _("No Frames") . "\n"; + echo "
\n"; +} + do_hook('login_form'); echo '' . "\n"; do_hook('login_bottom'); echo "\n". "\n"; -?> +?> \ No newline at end of file diff --git a/src/move_messages.php b/src/move_messages.php index 7a2ba7e1..2cd0f307 100644 --- a/src/move_messages.php +++ b/src/move_messages.php @@ -238,5 +238,5 @@ if ($exception) { header("Location: $location"); exit; } -?> - +noframes_bottom(); +?> \ No newline at end of file diff --git a/src/options.php b/src/options.php index 1bf50510..9d9c45a1 100644 --- a/src/options.php +++ b/src/options.php @@ -291,7 +291,10 @@ if ($optpage == SMOPT_PAGE_MAIN) { /* If $max_refresh != SMOPT_REFRESH_NONE, provide a refresh link. */ if ( !isset( $max_refresh ) ) { } else if ($max_refresh == SMOPT_REFRESH_FOLDERLIST) { - echo '' . _("Refresh Folder List") . '
'; + if ($use_frames) + echo '' . _("Refresh Folder List") . '
'; + else + echo '' . _("Refresh Folder List") . '
'; } else if ($max_refresh) { echo '' . _("Refresh Page") . '
'; } @@ -451,7 +454,9 @@ if ($optpage == SMOPT_PAGE_MAIN) { echo '' . ''. ''. - '' . - ''; + ''; -?> +noframes_bottom(); + + +?> \ No newline at end of file diff --git a/src/options_highlight.php b/src/options_highlight.php index 79e2d2ae..37d9b28e 100644 --- a/src/options_highlight.php +++ b/src/options_highlight.php @@ -469,4 +469,5 @@ if ($action == 'edit' || $action == 'add') { } do_hook('options_highlight_bottom'); ?> - + + diff --git a/src/options_identities.php b/src/options_identities.php index 91744c79..bad3b3af 100644 --- a/src/options_identities.php +++ b/src/options_identities.php @@ -88,9 +88,8 @@ if (!empty($_POST)) { '', '', 'width="100%" border="0" cellpadding="1" cellspacing="1"' ) , 'center', $color[0] ) ) , - 'center', '', 'width="95%" border="0" cellpadding="2" cellspacing="0"' ) . - - ''; + 'center', '', 'width="95%" border="0" cellpadding="2" cellspacing="0"' ); + noframes_bottom(); function SaveUpdateFunction() { global $username, $data_dir, $full_name, $email_address, $reply_to, $signature; diff --git a/src/options_order.php b/src/options_order.php index 20805e3d..32198397 100644 --- a/src/options_order.php +++ b/src/options_order.php @@ -149,4 +149,4 @@ displayPageHeader($color, 'None'); - + diff --git a/src/read_body.php b/src/read_body.php index bc267c6b..84144d6b 100644 --- a/src/read_body.php +++ b/src/read_body.php @@ -846,6 +846,5 @@ sqimap_logout($imapConnection); them at the end so we avoid double session_register calls */ sqsession_register($messages,'messages'); -?> - - +noframes_bottom(); +?> \ No newline at end of file diff --git a/src/redirect.php b/src/redirect.php index 4ffa1bae..93d61fc6 100644 --- a/src/redirect.php +++ b/src/redirect.php @@ -94,6 +94,28 @@ if (!sqsession_is_registered('user_is_logged_in')) { $username = $login_username; sqsession_register ($username, 'username'); setcookie('key', $key, 0, $base_uri); + + switch ($allow_frames) { + case 4: // if $use_frames unset, fall through to case 2 + if (isset($_POST['set_use_frames'])) { + $use_frames = $_POST['set_use_frames']; + break; + } + case 2: // Do not use frames + $use_frames = 0; + break; + case 3: // if $use_frames unset, fall through to case 1 + if (isset($_POST['set_use_frames'])) { + $use_frames = $_POST['set_use_frames']; + break; + } + default: // default is also to use frames + case 1: // use frames + $use_frames = 1; + break; + } + + setcookie('use_frames', $use_frames, time()+2592000, $base_uri); do_hook ('login_verified'); } diff --git a/src/right_main.php b/src/right_main.php index 1d3ef5e5..9558cdba 100644 --- a/src/right_main.php +++ b/src/right_main.php @@ -237,7 +237,6 @@ if ($use_mailbox_cache && sqsession_is_registered('msgs')) { } do_hook('right_main_bottom'); sqimap_logout ($imapConnection); +noframes_bottom(); -echo ''; - -?> +?> \ No newline at end of file diff --git a/src/search.php b/src/search.php index 11538d92..e3805a32 100644 --- a/src/search.php +++ b/src/search.php @@ -1082,6 +1082,6 @@ if ($submit == $search_button_text) { do_hook('search_bottom'); sqimap_logout($imapConnection); -echo ''; +noframes_bottom(); -?> +?> \ No newline at end of file diff --git a/src/vcard.php b/src/vcard.php index c6f3d112..1d669d10 100644 --- a/src/vcard.php +++ b/src/vcard.php @@ -218,7 +218,7 @@ echo '' . '' . '
' . - '
' . - ''; + ''; + noframes_bottom(); -?> +?> \ No newline at end of file diff --git a/src/view_header.php b/src/view_header.php index 4f86662d..29055934 100644 --- a/src/view_header.php +++ b/src/view_header.php @@ -103,7 +103,7 @@ function view_header($header, $mailbox, $color) { '
', ''."\n" ) ); - echo ''; + noframes_bottom(); } /* get global vars */ diff --git a/src/view_text.php b/src/view_text.php index 88210f1c..e15000ad 100644 --- a/src/view_text.php +++ b/src/view_text.php @@ -86,6 +86,6 @@ echo '
'
' . '
' . '
' . - $body . '
' . - ''; -?> + $body . ''; + noframes_bottom(); +?> \ No newline at end of file diff --git a/src/webmail.php b/src/webmail.php index 9825da3d..c4ef5b8c 100644 --- a/src/webmail.php +++ b/src/webmail.php @@ -37,12 +37,30 @@ sqsession_is_active(); sqgetGlobalVar('username', $username, SQ_SESSION); sqgetGlobalVar('delimiter', $delimiter, SQ_SESSION); sqgetGlobalVar('onetimepad', $onetimepad, SQ_SESSION); - +sqgetGlobalVar('use_frames', $use_frames, SQ_COOKIE); sqgetGlobalVar('right_frame', $right_frame, SQ_GET); if ( isset($_SESSION['session_expired_post']) ) { sqsession_unregister('session_expired_post'); } +global $plugins; + +switch ($allow_frames) { + case 4: // if $use_frames unset, fall through to case 2 + if (isset($use_frames)) + break; + case 2: // Do not use frames + $use_frames = 0; + break; + case 3: // if $use_frames unset, fall through to case 1 + if (isset($use_frames)) + break; + default: // default is also to use frames + case 1: // use frames + $use_frames = 1; + break; +} + if(!sqgetGlobalVar('mailto', $mailto)) { $mailto = ''; } @@ -65,6 +83,25 @@ if ($my_language != $squirrelmail_language) { set_up_language(getPref($data_dir, $username, 'language')); +if (isset($use_frames) && !$use_frames) { + if (!isset($right_frame)) + $right_frame = ''; + if ($right_frame == 'right_main.php') { + $urlMailbox = urlencode($mailbox); + $right_frame_url = "right_main.php?mailbox=$urlMailbox&sort=$sort&startMessage=$startMessage"; + } elseif ($right_frame == 'options.php') { + $right_frame_url = 'options.php'; + } elseif ($right_frame == 'folders.php') { + $right_frame_url = 'folders.php'; + } else if ($right_frame == '') { + $right_frame_url = 'right_main.php'; + } else { + $right_frame_url = $right_frame; + } + header("Location: $right_frame_url"); +} + + echo "\n". "\n" . "$org_title\n". -- 2.25.1