$location_of_bar = getPref($data_dir, $username, 'location_of_bar', SMPREF_LOC_LEFT);
$location_of_buttons = getPref($data_dir, $username, 'location_of_buttons', SMPREF_LOC_BETWEEN);
- global $collapse_folders, $show_html_default, $show_xmailer_default, $attachment_common_show_images;
+ global $collapse_folders, $show_html_default, $show_xmailer_default,
+ $attachment_common_show_images, $pf_subtle_link, $pf_cleandisplay;
$collapse_folders = getPref($data_dir, $username, 'collapse_folders', SMPREF_ON);
/* show_html_default is a int value. */
$show_html_default = intval(getPref($data_dir, $username, 'show_html_default', SMPREF_ON));
- $show_xmailer_default = intval(getPref($data_dir, $username, 'show_xmailer_default', SMPREF_OFF ) );
- $attachment_common_show_images = intval(getPref($data_dir, $username, 'attachment_common_show_images', SMPREF_OFF ) );
+
+ $show_xmailer_default = getPref($data_dir, $username, 'show_xmailer_default', SMPREF_OFF );
+ $attachment_common_show_images = getPref($data_dir, $username, 'attachment_common_show_images', SMPREF_OFF );
+ $pf_subtle_link = getPref($data_dir, $username, 'pf_subtle_link', SMPREF_OFF);
+ $pf_cleandisplay = getPref($data_dir, $username, 'pf_cleandisplay', SMPREF_OFF);
global $include_self_reply_all;
$include_self_reply_all = getPref($data_dir, $username, 'include_self_reply_all', SMPREF_ON);
setPref($data_dir, $username, 'page_selector_max', $new_page_selector_max);
setPref($data_dir, $username, 'show_xmailer_default', $new_show_xmailer_default);
setPref($data_dir, $username, 'attachment_common_show_images', $new_attachment_common_show_images);
+ setPref($data_dir, $username, 'pf_subtle_link', $new_pf_subtle_link);
+ setPref($data_dir, $username, 'pf_cleandisplay', $new_pf_cleandisplay);
$js_autodetect_results = (isset($new_js_autodetect_results) ? $new_js_autodetect_results : SMPREF_JS_OFF);
if ($new_javascript_setting == SMPREF_JS_AUTODETECT) {
}
} else {
setPref($data_dir, $username, 'javascript_on', $new_javascript_setting);
- }
+ }
do_hook('options_display_save');
'refresh' => SMOPT_REFRESH_NONE
);
+ $optvals[SMOPT_GRP_MESSAGE][] = array(
+ 'name' => 'pf_subtle_link',
+ 'caption' => _("Printer Friendly: Subtle Link"),
+ 'type' => SMOPT_TYPE_BOOLEAN,
+ 'refresh' => SMOPT_REFRESH_NONE
+ );
+
+ $optvals[SMOPT_GRP_MESSAGE][] = array(
+ 'name' => 'pf_cleandisplay',
+ 'caption' => _("Printer Friendly: Clean Display"),
+ 'type' => SMOPT_TYPE_BOOLEAN,
+ 'refresh' => SMOPT_REFRESH_NONE
+ );
+
/* Build and output the option groups. */
$option_groups = createOptionGroups($optgrps, $optvals);
printOptionGroups($option_groups);
--- /dev/null
+<?php
+
+ /**
+ ** printer_friendly_bottom.php
+ **
+ ** Copyright (c) 1999-2000 The SquirrelMail development team
+ ** Licensed under the GNU GPL. For full terms see the file COPYING.
+ **
+ ** with javascript on, it is the bottom frame of printer_friendly_main.php
+ ** else, it is alone in a new window
+ **
+ ** - this is the page that does all the work, really.
+ **
+ ** $Id$
+ **/
+
+ require_once('../src/validate.php');
+ require_once('../functions/strings.php');
+ require_once('../config/config.php');
+ require_once('../src/load_prefs.php');
+ require_once('../functions/imap.php');
+
+
+ $pf_cleandisplay = getPref($data_dir, $username, 'pf_cleandisplay');
+
+ $imap_stream = sqimap_login($username, $key, $imapServerAddress, $imapPort, 0);
+ sqimap_mailbox_select($imap_stream, $mailbox);
+ $message = sqimap_get_message($imap_stream, $passed_id, $mailbox);
+
+
+// --start display setup--
+
+ // From and Date are usually fine as they are...
+ $from = decodeHeader($message->header->from);
+ $date = getLongDateString($message->header->date);
+
+ // we can clean these up if the list is too long...
+ $cc = decodeHeader(getLineOfAddrs($message->header->cc));
+ $to = decodeHeader(getLineOfAddrs($message->header->to));
+
+ // and Body and Subject could easily stream off the page...
+ $body = mime_fetch_body($imap_stream, $passed_id, $passed_ent_id);
+ $body = str_replace("\n", "\n", trim(decodeBody($body, $message->header->encoding)));
+ $subject = trim(decodeHeader($message->header->subject));
+
+ // now, if they choose to, we clean up the display a bit...
+ if ( empty($pf_cleandisplay) || $pf_cleandisplay != 'no' )
+ {
+
+ $num_leading_spaces = 9; // nine leading spaces for indentation
+
+ // sometimes I see ',,' instead of ',' seperating addresses *shrug*
+ $cc = pf_clean_string(str_replace(',,', ',', $cc), $num_leading_spaces);
+ $to = pf_clean_string(str_replace(',,', ',', $to), $num_leading_spaces);
+
+ // the body should have no leading zeros
+ $body = pf_clean_string($body, 0);
+
+ // clean up everything else...
+ $subject = pf_clean_string($subject, $num_leading_spaces);
+ $from = pf_clean_string($from, $num_leading_spaces);
+ $date = pf_clean_string($date, $num_leading_spaces);
+
+ } // end cleanup
+
+// --end display setup--
+
+
+// --start browser output--
+
+?>
+
+<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">
+<html>
+<head><title>
+ <?php echo _("Printable View"); ?>
+</title></head>
+
+<?php
+
+ if ($theme_css != "")
+ {
+ printf ('<LINK REL="stylesheet" TYPE="text/css" HREF="%s">', $theme_css);
+ echo "\n";
+ }
+
+ printf('<body text="%s" bgcolor="%s" link="%s" vlink="%s" alink="%s">',
+ $color[8], $color[4], $color[7], $color[7], $color[7]);
+
+ echo "\n<pre>";
+
+ // headers
+ echo " " . _("From") . ': ' . htmlentities($from) . "\n";
+ echo " " . _("To") . ': ' . htmlentities($to) . "\n";
+ if ( strlen($cc) > 0 ) // only show CC: if it's there...
+ echo " " . _("CC") . ': ' . htmlentities($cc) . "\n";
+ echo " " . _("Date") . ': ' . htmlentities($date) . "\n";
+ echo _("Subject") . ': ' . htmlentities($subject) . "\n\n";
+
+ // body
+ echo "<hr noshade size=1>\n";
+ echo htmlentities($body);
+
+// --end browser output--
+
+
+?></pre>
+ </body>
+</html>
+
+<?
+
+// --start pf-specific functions--
+
+
+ // $string = pf_clean_string($string, 9);
+function pf_clean_string ( $unclean_string, $num_leading_spaces ) {
+ global $data_dir, $username;
+
+ $wrap_at = getPref($data_dir, $username, 'wrap_at');
+ $wrap_at = $wrap_at - $num_leading_spaces; // header stuff
+
+ $leading_spaces = '';
+ while ( strlen($leading_spaces) < $num_leading_spaces )
+ $leading_spaces .= ' ';
+
+ $clean_string = '';
+ while ( strlen($unclean_string) > $wrap_at )
+ {
+ $this_line = substr($unclean_string, 0, $wrap_at);
+ if ( strrpos( $this_line, "\n" ) ) // this should NEVER happen with anything but the $body
+ {
+ $clean_string .= substr( $this_line, 0, strrpos( $this_line, "\n" ));
+ $clean_string .= $leading_spaces;
+ $unclean_string = substr($unclean_string, strrpos( $this_line, "\n" ));
+ }
+ else
+ {
+ $clean_string .= substr( $this_line, 0, strrpos( $this_line, ' ' ));
+ $clean_string .= "\n" . $leading_spaces;
+ $unclean_string = substr($unclean_string, (1+strrpos( $this_line, ' ' )));
+ }
+ }
+ $clean_string .= $unclean_string;
+
+ return $clean_string;
+} // end pf_clean_string() function
+
+// --end pf-specific functions
+
+?>
--- /dev/null
+<?php
+
+ /**
+ ** printer_friendly_main.php
+ **
+ ** Copyright (c) 1999-2000 The SquirrelMail development team
+ ** Licensed under the GNU GPL. For full terms see the file COPYING.
+ **
+ ** $Id$
+ **/
+
+?><!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">
+<html>
+ <head>
+ <title>Print Email</title>
+ </head>
+ <frameset rows="50, *" noresize border="0">
+ <frame src="printer_friendly_top.php" name="top_frame" scrolling="off">
+ <frame src="printer_friendly_bottom.php?passed_ent_id=<?php
+ echo $passed_ent_id . '&mailbox=' . urlencode($mailbox) .
+ '&passed_id=' . $passed_id;
+?>" name="bottom_frame">
+ </frameset>
+</html>
--- /dev/null
+<?php
+
+ /**
+ ** printer_friendly_top.php
+ **
+ ** Copyright (c) 1999-2000 The SquirrelMail development team
+ ** Licensed under the GNU GPL. For full terms see the file COPYING.
+ **
+ ** top frame of printer_friendly_main.php
+ ** displays some javascript buttons for printing & closing
+ **
+ ** $Id$
+ **/
+
+ require_once('../src/validate.php');
+ require_once('../functions/strings.php');
+ require_once('../config/config.php');
+ require_once('../src/load_prefs.php');
+
+?>
+<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">
+<html>
+ <head>
+ <script language="javascript">
+ <!--
+ function printPopup() {
+ parent.frames[1].focus();
+ parent.frames[1].print();
+ }
+ -->
+ </script>
+ </head>
+<?php
+
+ if ($theme_css != "")
+ {
+ printf ('<LINK REL="stylesheet" TYPE="text/css" HREF="%s">', $theme_css);
+ echo "\n";
+ }
+
+
+ printf('<body text="%s" bgcolor="%s" link="%s" vlink="%s" alink="%s">',
+ $color[8], $color[3], $color[7], $color[7], $color[7]);
+?>
+ <table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0"><tr><td valign="middle" align="center">
+ <b>
+ <form>
+ <input type="button" value="Print" onClick="printPopup()">
+ <input type="button" value="Close Window" onClick="window.parent.close()">
+ </form>
+ </b>
+ </td></tr></table>
+ </body>
+</html>
return -1;
}
+
+ // displays a link to a page where the message is displayed
+ // more "printer friendly"
+
+ function printer_friendly_link($subtle) {
+ global $passed_id, $mailbox, $ent_num, $color;
+ global $pf_subtle_link;
+
+ if ($pf_subtle_link != $subtle) return;
+
+ if (strlen(trim($mailbox)) < 1)
+ $mailbox = 'INBOX';
+
+ $params = '?passed_ent_id=' . $ent_num . '&mailbox=' . urlencode($mailbox) .
+ '&passed_id=' . $passed_id;
+ $text = _("View printable version");
+
+ if (!$subtle) {
+ // the link is large, on the bottom of the header panel
+ echo ' <tr bgcolor="' . $color[0] . '">' . "\n" .
+ ' <td class="medText" align="right" valign="top">' . "\n" .
+ ' ' . "\n" .
+ ' </td><td class="medText" valign="top" colspan="2">'."\n";
+ } else {
+ // the link is subtle, below "view full header"
+ echo ' <br>' . "\n";
+ }
+
+ // javascript
+ echo ' <script language="javascript">' . "\n" .
+ ' <!--' . "\n" .
+ ' function printFormat() {' . "\n" .
+ ' window.open("../src/printer_friendly_main.php' .
+ $params . '","Print","width=800,height=600");' . "\n".
+ ' }' . "\n\n" .
+ ' document.write(' . "'" .
+ ' <a href="javascript:printFormat();">' . $text . '</a>' .
+ "');\n" .
+ ' // -->' . "\n" .
+ ' </script>' . "\n" .
+ // pure html
+ ' <noscript>' . "\n" .
+ ' <a target="_blank" href="../src/printer_friendly_bottom.php' .
+ $params . '">' .
+ $text . "</a>\n" .
+ ' </noscript>' . "\n";
+
+ if (!$subtle) {
+ // the link is large, on the bottom of the header panel
+ echo ' </td>' . "\n" .
+ ' </tr>' . "\n";
+ }
+ }
+
+ // main of read_boby.php
+
if (isset($msgs)) {
$currentArrayIndex = $passed_id;
/*
} else {
echo "<a href=\"read_body.php?mailbox=$urlMailbox&passed_id=$passed_id&startMessage=$startMessage&show_more=$show_more&view_hdr=1\">" . _("View full header") . "</a>\n";
}
+ printer_friendly_link(1); // 1 = subtle link
do_hook("read_body_header_right");
echo '</small></TD>' . "\n" .
' </TR>' ."\n" .
}
}
+ printer_friendly_link(0); // 0 = unsubtle link
do_hook("read_body_header");
echo '</TABLE>' .
' </TD></TR>' .