X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=functions%2Fmailbox_display.php;h=5caf500bc9bbff470ac8589228875c1893084940;hb=c0d04f9753371080831e9e79f41d7b4756df83ab;hp=f9002381b41af88aaacd5974aa7715b497abe6fc;hpb=ac208bbad957bf0e01c2626b652680ffc44e745c;p=squirrelmail.git
diff --git a/functions/mailbox_display.php b/functions/mailbox_display.php
index f9002381..5caf500b 100644
--- a/functions/mailbox_display.php
+++ b/functions/mailbox_display.php
@@ -12,43 +12,76 @@
* $Id$
*/
-define('PG_SEL_MAX', 10); /* Default value for page_selector_max. */
-
-function printMessageInfo($imapConnection, $t, $i, $key, $mailbox, $sort, $start_msg, $where, $what) {
- global $checkall;
- global $color, $msgs, $msort;
- global $sent_folder, $draft_folder;
- global $default_use_priority;
- global $message_highlight_list;
- global $index_order;
-
+require_once(SM_PATH . 'functions/strings.php');
+require_once(SM_PATH . 'functions/html.php');
+require_once(SM_PATH . 'class/html.class.php');
+require_once(SM_PATH . 'functions/imap_mailbox.php');
+
+/* Default value for page_selector_max. */
+define('PG_SEL_MAX', 10);
+
+function printMessageInfo($imapConnection, $t, $i, $key, $mailbox,
+ $start_msg, $where, $what) {
+ global $checkall,
+ $color, $msgs, $msort,
+ $default_use_priority,
+ $message_highlight_list,
+ $index_order,
+ $indent_array, /* indent subject by */
+ $pos, /* Search postion (if any) */
+ $thread_sort_messages, /* thread sorting on/off */
+ $server_sort_order, /* sort value when using server-sorting */
+ $row_count,
+ $allow_server_sort; /* enable/disable server-side sorting */
$color_string = $color[4];
+
if ($GLOBALS['alt_index_colors']) {
- if (!isset($GLOBALS["row_count"])) {
- $GLOBALS["row_count"] = 0;
+ if (!isset($row_count)) {
+ $row_count = 0;
}
- $GLOBALS["row_count"]++;
- if ($GLOBALS["row_count"] % 2) {
- if (!isset($color[12])) $color[12] = '#EAEAEA';
+ $row_count++;
+ if ($row_count % 2) {
+ if (!isset($color[12])) {
+ $color[12] = '#EAEAEA';
+ }
$color_string = $color[12];
}
}
$msg = $msgs[$key];
- $senderName = htmlspecialchars(sqimap_find_displayable_name($msg['FROM']));
- if( $mailbox == 'None' ) {
- // $imapConnection = sqimap_login($username, $key, $imapServerAddress, $imapPort, 0);
- $boxes = sqimap_mailbox_list($imapConnection);
- // sqimap_logout($imapConnection);
+ if($mailbox == 'None') {
+ $boxes = sqimap_mailbox_list($imapConnection);
$mailbox = $boxes[0]['unformatted'];
- unset( $boxes );
+ unset($boxes);
}
$urlMailbox = urlencode($mailbox);
+
+ if (handleAsSent($mailbox)) {
+ $msg['FROM'] = $msg['TO'];
+ /*
+ * This is done in case you're looking into Sent folders,
+ * because you can have multiple receivers.
+ */
+ $senderNames = explode(',', $msg['FROM']);
+ $senderName = '';
+ if (sizeof($senderNames)){
+ foreach ($senderNames as $senderNames_part) {
+ if ($senderName != '') {
+ $senderName .= ', ';
+ }
+ $senderName .= sqimap_find_displayable_name($senderNames_part);
+ }
+ }
+ } else {
+ $senderName = sqimap_find_displayable_name($msg['FROM']);
+ }
+
$subject = processSubject($msg['SUBJECT']);
- echo "
".
- "'
+ . html_tag( 'tr' )
+ . html_tag( 'td' ,'' , '', $color[0], '' );
+
+ /* if using server sort we highjack the
+ * the $sort var and use $server_sort_order
+ * instead. but here we reset sort for a bit
+ * since its easy
+ */
+ if ($allow_server_sort == TRUE) {
+ $sort = $server_sort_order;
+ }
+}
+
+function mail_message_listing_end($num_msgs, $paginator_str, $msg_cnt_str, $color) {
+ if ($num_msgs) {
+ echo html_tag( 'table',
+ html_tag( 'tr',
+ html_tag( 'td',
+ html_tag( 'table',
+ html_tag( 'tr',
+ html_tag( 'td', $paginator_str ) .
+ html_tag( 'td', $msg_cnt_str, 'right' )
+ )
+ , '', $color[4], 'width="100%" cellpadding="1" cellspacing="1"' )
+ )
+ , '', $color[4] )
+ , '', $color[9], 'width="100%" cellpadding="1" cellspacing="1"' );
+
}
- echo " BGCOLOR=\"$color[0]\">".
- "";
+ /* End of message-list table */
- /* Print the headers. */
- for ($i=1; $i <= count($index_order); $i++) {
+ do_hook('mailbox_index_after');
+ echo "\n";
+}
+
+function printHeader($mailbox, $sort, $color, $showsort=true) {
+ global $index_order;
+ echo html_tag( 'table' ,'' , '', $color[4], 'border="0" width="100%" cellpadding="1" cellspacing="0"' );
+ echo html_tag( 'tr' ,'' , 'center', $color[5] );
+ for ($i = 1; $i <= count($index_order); $i++) {
switch ($index_order[$i]) {
case 1: /* checkbox */
case 5: /* flags */
- echo ' | ';
+ echo html_tag( 'td' ,' ' , '', '', 'width="1%"' );
break;
-
case 2: /* from */
if (handleAsSent($mailbox)) {
- echo ' '. _("To") .'';
+ echo html_tag( 'td' ,'' , 'left', '', 'width="25%"' )
+ . '' . _("To") . '';
} else {
- echo ' | '. _("From") .'';
+ echo html_tag( 'td' ,'' , 'left', '', 'width="25%"' )
+ . '' . _("From") . '';
}
-
- ShowSortButton($sort, $mailbox, 2, 3);
- echo " | \n";
+ if ($showsort) {
+ ShowSortButton($sort, $mailbox, 2, 3);
+ }
+ echo "\n";
break;
-
case 3: /* date */
- echo ' '. _("Date") .'';
- ShowSortButton($sort, $mailbox, 0, 1);
- echo " | \n";
+ echo html_tag( 'td' ,'' , 'left', '', 'width="5%" nowrap' )
+ . '' . _("Date") . '';
+ if ($showsort) {
+ ShowSortButton($sort, $mailbox, 0, 1);
+ }
+ echo "\n";
break;
-
case 4: /* subject */
- echo ' '. _("Subject") .' ';
- ShowSortButton($sort, $mailbox, 4, 5);
- echo " | \n";
+ echo html_tag( 'td' ,'' , 'left', '', '' )
+ . '' . _("Subject") . '';
+ if ($showsort) {
+ ShowSortButton($sort, $mailbox, 4, 5);
+ }
+ echo "\n";
break;
-
case 6: /* size */
- echo ' ' . _("Size")." | \n";
+ echo html_tag( 'td', '' . _("Size") . '', 'center', '', 'width="5%"' );
break;
}
}
- echo " \n";
+ echo "\n";
}
+
/*
* This function shows the sort button. Isn't this a good comment?
*/
-function ShowSortButton($sort, $mailbox, $Up, $Down) {
+function ShowSortButton($sort, $mailbox, $Up, $Down ) {
+ global $PHP_SELF;
/* Figure out which image we want to use. */
if ($sort != $Up && $sort != $Down) {
$img = 'sort_none.png';
@@ -589,32 +857,46 @@ function ShowSortButton($sort, $mailbox, $Up, $Down) {
$which = 6;
}
+ if (preg_match('/^(.+)\?.+$/',$PHP_SELF,$regs)) {
+ $source_url = $regs[1];
+ } else {
+ $source_url = $PHP_SELF;
+ }
+
/* Now that we have everything figured out, show the actual button. */
- echo ' ';
+ echo ' ';
}
function get_selectall_link($start_msg, $sort) {
- global $checkall, $PHP_SELF, $what, $where, $mailbox, $javascript_on;
+ global $checkall, $what, $where, $mailbox, $javascript_on;
+ global $PHP_SELF, $PG_SHOWNUM;
+ $result = '';
if ($javascript_on) {
- $result =
- '' . _("Toggle All") . "\n";
+ $result = '' . _("Toggle All")
+ . "\n";
} else {
- $result .= "";
if (isset($checkall) && ($checkall == '1')) {
@@ -633,7 +914,6 @@ function get_selectall_link($start_msg, $sort) {
} else {
$result .= _("Select All");
}
-
$result .= "\n";
}
@@ -641,49 +921,64 @@ function get_selectall_link($start_msg, $sort) {
return ($result);
}
-/**
-* This function computes the "Viewing Messages..." string.
-*/
+/*
+ * This function computes the "Viewing Messages..." string.
+ */
function get_msgcnt_str($start_msg, $end_msg, $num_msgs) {
/* Compute the $msg_cnt_str. */
$result = '';
if ($start_msg < $end_msg) {
- $result = sprintf(_("Viewing Messages: %s to %s (%s total)"), $start_msg, $end_msg, $num_msgs);
+ $result = sprintf(_("Viewing Messages: %s to %s (%s total)"),
+ $start_msg, $end_msg, $num_msgs);
} else if ($start_msg == $end_msg) {
$result = sprintf(_("Viewing Message: %s (1 total)"), $start_msg);
} else {
$result = ' ';
}
-
/* Return our result string. */
return ($result);
}
-/**
+/*
* Generate a paginator link.
*/
-function get_paginator_link
-($box, $start_msg, $use, $text) {
+function get_paginator_link($box, $start_msg, $use, $text) {
+ global $PHP_SELF;
+
$result = "$text";
+ return ($result);
+/*
+ if (preg_match('/^(.+)\?.+$/',$PHP_SELF,$regs)) {
+ $source_url = $regs[1];
+ } else {
+ $source_url = $PHP_SELF;
+ }
+
+ $result = '$text";
return ($result);
+*/
}
-/**
+/*
* This function computes the paginator string.
*/
-function get_paginator_str
-($box, $start_msg, $end_msg, $num_msgs, $show_num, $sort) {
- global $username, $data_dir, $use_mailbox_cache, $color;
+function get_paginator_str($box, $start_msg, $end_msg, $num_msgs,
+ $show_num, $sort) {
+ global $username, $data_dir, $use_mailbox_cache, $color, $PG_SHOWNUM;
/* Initialize paginator string chunks. */
$prv_str = '';
$nxt_str = '';
- $pg_str = '';
+ $pg_str = '';
$all_str = '';
$tgl_str = '';
+ $box = urlencode($box);
+
/* Create simple strings that will be creating the paginator. */
$spc = ' '; /* This will be used as a space. */
$sep = '|'; /* This will be used as a seperator. */
@@ -725,30 +1020,30 @@ function get_paginator_str
$cur_pg = intval($start_msg / $show_num) + 1;
/* Compute total # of pages and # of paginator page links. */
- $tot_pgs = ceil($num_msgs / $show_num); /* Total # of Pages */
+ $tot_pgs = ceil($num_msgs / $show_num); /* Total number of Pages */
$vis_pgs = min($pg_max, $tot_pgs - 1); /* Visible Pages */
- /************************************************************/
/* Compute the size of the four quarters of the page links. */
- /************************************************************/
/* If we can, just show all the pages. */
if (($tot_pgs - 1) <= $pg_max) {
$q1_pgs = $cur_pg - 1;
$q2_pgs = $q3_pgs = 0;
$q4_pgs = $tot_pgs - $cur_pg;
-
+
/* Otherwise, compute some magic to choose the four quarters. */
} else {
- /* Compute the magic base values. Added together, */
- /* these values will always equal to the $pag_pgs. */
- /* NOTE: These are DEFAULT values and do not take */
- /* the current page into account. That is below. */
+ /*
+ * Compute the magic base values. Added together,
+ * these values will always equal to the $pag_pgs.
+ * NOTE: These are DEFAULT values and do not take
+ * the current page into account. That is below.
+ */
$q1_pgs = floor($vis_pgs/4);
$q2_pgs = round($vis_pgs/4, 0);
$q3_pgs = ceil($vis_pgs/4);
$q4_pgs = round(($vis_pgs - $q2_pgs)/3, 0);
-
+
/* Adjust if the first quarter contains the current page. */
if (($cur_pg - $q1_pgs) < 1) {
$extra_pgs = ($q1_pgs - ($cur_pg - 1)) + $q2_pgs;
@@ -783,14 +1078,14 @@ function get_paginator_str
}
}
- /* I am leaving this debug code here, commented out, because */
- /* it is a really nice way to see what the above code is doing. */
- /* echo "qts = $q1_pgs/$q2_pgs/$q3_pgs/$q4_pgs = " */
- /* . ($q1_pgs + $q2_pgs + $q3_pgs + $q4_pgs) . ' '; */
+ /*
+ * I am leaving this debug code here, commented out, because
+ * it is a really nice way to see what the above code is doing.
+ * echo "qts = $q1_pgs/$q2_pgs/$q3_pgs/$q4_pgs = "
+ * . ($q1_pgs + $q2_pgs + $q3_pgs + $q4_pgs) . ' ';
+ */
- /************************************************************/
/* Print out the page links from the compute page quarters. */
- /************************************************************/
/* Start with the first quarter. */
if (($q1_pgs == 0) && ($cur_pg > 1)) {
@@ -832,12 +1127,16 @@ function get_paginator_str
$pg_str .= get_paginator_link($box, $start, $use, $pg) . $spc;
}
}
+ } else if ($PG_SHOWNUM == 999999) {
+ $pg_str = "" ._("Paginate") . '' . $spc;
}
/* If necessary, compute the 'show all' string. */
if (($prv_str != '') || ($nxt_str != '')) {
- $all_str = "" . _("Show All") . '';
}
@@ -845,12 +1144,16 @@ function get_paginator_str
$tgl_str = get_selectall_link($start_msg, $sort);
/* Put all the pieces of the paginator string together. */
+ /**
+ * Hairy code... But let's leave it like it is since I am not certain
+ * a different approach would be any easier to read. ;)
+ */
$result = '';
- $result .= ($all_str != '' ? $all_str . $spc . $sep . $spc: '');
$result .= ($prv_str != '' ? $prv_str . $spc . $sep . $spc : '');
$result .= ($nxt_str != '' ? $nxt_str . $spc . $sep . $spc : '');
- $result .= ($pg_str != '' ? $pg_str : '');
- $result .= ($result != '' ? $sep . $spc . $tgl_str: $tgl_str);
+ $result .= ($pg_str != '' ? $pg_str : '');
+ $result .= ($all_str != '' ? $sep . $spc . $all_str . $spc : '');
+ $result .= ($result != '' ? $sep . $spc . $tgl_str: $tgl_str);
/* If the resulting string is blank, return a non-breaking space. */
if ($result == '') {
@@ -862,41 +1165,97 @@ function get_paginator_str
}
function processSubject($subject) {
- // Shouldn't ever happen -- caught too many times in the IMAP functions
+ global $languages, $squirrelmail_language;
+ /* Shouldn't ever happen -- caught too many times in the IMAP functions */
if ($subject == '')
return _("(no subject)");
if (strlen($subject) <= 55)
return $subject;
- $ent_strlen=strlen($subject);
+ $ent_strlen = strlen($subject);
$trim_val=50;
$ent_offset=0;
- // see if this is entities-encoded string
- // If so, Iterate through the whole string, find out
- // the real number of characters, and if more
- // than 55, substr with an updated trim value.
- while (($ent_loc = strpos($subject, '&', $ent_offset)) !== false &&
- ($ent_loc_end = strpos($subject, ';', $ent_loc)) !== false)
- {
- $trim_val += ($ent_loc_end-$ent_loc)+1;
- $ent_strlen -= $ent_loc_end-$ent_loc;
- $ent_offset = $ent_loc_end+1;
- }
-
- if ($ent_strlen <= 55)
+ /*
+ * see if this is entities-encoded string
+ * If so, Iterate through the whole string, find out
+ * the real number of characters, and if more
+ * than 55, substr with an updated trim value.
+ */
+ while ( (($ent_loc = strpos($subject, '&', $ent_offset)) !== false) &&
+ (($ent_loc_end = strpos($subject, ';', $ent_loc)) !== false) ) {
+ $trim_val += ($ent_loc_end-$ent_loc)+1;
+ $ent_strlen -= $ent_loc_end-$ent_loc;
+ $ent_offset = $ent_loc_end+1;
+ }
+
+ if ($ent_strlen <= 55){
return $subject;
+ }
+
+ if (isset($languages[$squirrelmail_language]['XTRA_CODE']) &&
+ function_exists($languages[$squirrelmail_language]['XTRA_CODE'])) {
+ return $languages[$squirrelmail_language]['XTRA_CODE']('strimwidth', $subject, $trim_val);
+ }
return substr($subject, 0, $trim_val) . '...';
}
+function getMbxList($imapConnection) {
+ global $lastTargetMailbox;
+ echo ' ';
+}
+
+function getButton($type, $name, $value) {
+ return '';
+}
+
+function getSmallStringCell($string, $align) {
+ return html_tag('td',
+ '' . $string . ': ',
+ $align,
+ '',
+ 'nowrap' );
+}
+
+function getEndMessage($start_msg, $show_num, $num_msgs) {
+ if ($start_msg + ($show_num - 1) < $num_msgs){
+ $end_msg = $start_msg + ($show_num - 1);
+ } else {
+ $end_msg = $num_msgs;
+ }
+
+ if ($end_msg < $start_msg) {
+ $start_msg = $start_msg - $show_num;
+ if ($start_msg < 1) {
+ $start_msg = 1;
+ }
+ }
+ return (array($start_msg,$end_msg));
+}
+
function handleAsSent($mailbox) {
- global $sent_folder, $draft_folder;
- global $handleAsSent_result;
+ global $sent_folder, $draft_folder, $handleAsSent_result;
/* First check if this is the sent or draft folder. */
$handleAsSent_result = (($mailbox == $sent_folder)
- || ($mailbox == $draft_folder));
+ || ($mailbox == $draft_folder));
/* Then check the result of the handleAsSent hook. */
do_hook('check_handleAsSent_result', $mailbox);
@@ -904,5 +1263,4 @@ function handleAsSent($mailbox) {
/* And return the result. */
return ($handleAsSent_result);
}
-
?>
|