This should show the toggle all link into the searchs results.

This commit is contained in:
philippe_mingo 2001-12-21 09:21:33 +00:00
parent 0abc73d4e7
commit d25367056c
3 changed files with 208 additions and 233 deletions

View file

@ -11,165 +11,152 @@
* $Id$
*/
/*****************************************************************/
/*** THIS FILE NEEDS TO HAVE ITS FORMATTING FIXED!!! ***/
/*** PLEASE DO SO AND REMOVE THIS COMMENT SECTION. ***/
/*** + Base level indent should begin at left margin, as ***/
/*** the require_once below. ***/
/*** + All identation should consist of four space blocks ***/
/*** + Tab characters are evil. ***/
/*** + all comments should use "slash-star ... star-slash" ***/
/*** style -- no pound characters, no slash-slash style ***/
/*** + FLOW CONTROL STATEMENTS (if, while, etc) SHOULD ***/
/*** ALWAYS USE { AND } CHARACTERS!!! ***/
/*** + Please use ' instead of ", when possible. Note " ***/
/*** should always be used in _( ) function calls. ***/
/*** Thank you for your help making the SM code more readable. ***/
/*****************************************************************/
require_once('../functions/imap.php');
require_once('../functions/date.php');
require_once('../functions/array.php');
require_once('../functions/mailbox_display.php');
require_once('../functions/mime.php');
function sqimap_search($imapConnection,$search_where,$search_what,$mailbox,$color) {
function sqimap_search($imapConnection,$search_where,$search_what,$mailbox,$color) {
global $msgs, $message_highlight_list, $squirrelmail_language, $languages, $index_order;
global $msgs, $message_highlight_list, $squirrelmail_language, $languages, $index_order;
$urlMailbox = urlencode($mailbox);
$isid = sqimap_session_id();
$urlMailbox = urlencode($mailbox);
$isid = sqimap_session_id();
/* Construct the Search QuERY */
$ss = $isid;
if (isset($languages[$squirrelmail_language]['CHARSET']) &&
$languages[$squirrelmail_language]['CHARSET']) {
$ss .= " SEARCH CHARSET ".$languages[$squirrelmail_language]['CHARSET']." ALL $search_where \"$search_what\"\r\n";
} else {
$ss .= " SEARCH ALL $search_where \"$search_what\"\r\n";
}
fputs($imapConnection,$ss);
/* Construct the Search QuERY */
$ss = $isid;
if (isset($languages[$squirrelmail_language]['CHARSET']) &&
$languages[$squirrelmail_language]['CHARSET']) {
$ss .= " SEARCH CHARSET ".$languages[$squirrelmail_language]['CHARSET']." ALL $search_where \"$search_what\"\r\n";
} else {
$ss .= " SEARCH ALL $search_where \"$search_what\"\r\n";
}
fputs($imapConnection,$ss);
# Read Data Back From IMAP
$readin = sqimap_read_data ($imapConnection, $isid, false, $result, $message);
if (isset($languages[$squirrelmail_language]['CHARSET']) && strtolower($result) == 'no') {
$ss = $isid . " SEARCH CHARSET \"US-ASCII\" ALL $search_where \"$search_what\"\r\n";
fputs ($imapConnection, $ss);
$readin = sqimap_read_data ($imapConnection, $isid, true, $result, $message);
}
unset($messagelist); $msgs=""; $c = 0;
/* Keep going till we find the SEARCH responce */
while ($c < count( $readin )) {
/* Check to see if a SEARCH Responce was recived */
if (substr($readin[$c],0,9) == "* SEARCH ")
$messagelist = explode(" ",substr($readin[$c],9));
else if (isset($errors))
$errors = $errors.$readin[$c];
else
$errors = $readin[$c];
$c++;
}
#If nothing is found * SEARCH should be the first error else echo errors
if (isset($errors) && strstr($errors,"* SEARCH")) {
echo '<br><CENTER>' . _("No Messages Found") . '</CENTER>';
return;
} else if (isset($errors)) {
echo "<!-- ".$errors." -->";
}
# HACKED CODED FROM ANOTHER FUNCTION, Could Probably dump this and mondify
# exsitising code with a search true/false varible.
global $sent_folder;
for ($q = 0; $q < count($messagelist); $q++) {
$id[$q] = trim($messagelist[$q]);
}
$issent = ($mailbox == $sent_folder);
$hdr_list = sqimap_get_small_header_list($imapConnection, $id, $issent);
$flags = sqimap_get_flags_list($imapConnection, $id, $issent);
foreach ($hdr_list as $hdr) {
$from[] = $hdr->from;
$date[] = $hdr->date;
$subject[] = $hdr->subject;
$to[] = $hdr->to;
$priority[] = $hdr->priority;
$cc[] = $hdr->cc;
$size[] = $hdr->size;
$type[] = $hdr->type0;
}
$j = 0;
while ($j < count($messagelist)) {
$date[$j] = ereg_replace(' ', ' ', $date[$j]);
$tmpdate = explode(" ", trim($date[$j]));
$messages[$j]["TIME_STAMP"] = getTimeStamp($tmpdate);
$messages[$j]["DATE_STRING"] = getDateString($messages[$j]["TIME_STAMP"]);
$messages[$j]["ID"] = $id[$j];
$messages[$j]["FROM"] = decodeHeader($from[$j]);
$messages[$j]["FROM-SORT"] = strtolower(sqimap_find_displayable_name(decodeHeader($from[$j])));
$messages[$j]["SUBJECT"] = decodeHeader($subject[$j]);
$messages[$j]["SUBJECT-SORT"] = strtolower(decodeHeader($subject[$j]));
$messages[$j]["TO"] = decodeHeader($to[$j]);
$messages[$j]["PRIORITY"] = $priority[$j];
$messages[$j]["CC"] = $cc[$j];
$messages[$j]["SIZE"] = $size[$j];
$messages[$j]["TYPE0"] = $type[$j];
$num = 0;
while ($num < count($flags[$j])) {
if ($flags[$j][$num] == 'Deleted') {
$messages[$j]['FLAG_DELETED'] = true;
} else if ($flags[$j][$num] == 'Answered') {
$messages[$j]['FLAG_ANSWERED'] = true;
} else if ($flags[$j][$num] == 'Seen') {
$messages[$j]['FLAG_SEEN'] = true;
} else if ($flags[$j][$num] == 'Flagged') {
$messages[$j]['FLAG_FLAGGED'] = true;
}
$num++;
}
$j++;
}
/** Find and remove the ones that are deleted */
$i = 0;
$j = 0;
while ($j < count($messagelist)) {
if (isset($messages[$j]["FLAG_DELETED"]) && $messages[$j]["FLAG_DELETED"] == true) {
$j++;
continue;
}
$msgs[$i] = $messages[$j];
$i++;
$j++;
}
$numMessages = $i;
// There's gotta be messages in the array for it to sort them.
if (count($messagelist) > 0) {
$j=0;
if (!isset ($msg)) { $msg = ""; }
mail_message_listing_beginning($imapConnection,
"move_messages.php?msg=$msg&mailbox=$urlMailbox&where=".urlencode($search_where)."&what=".urlencode($search_what),
$mailbox, -1, '<b>' . _("Found") . ' ' . count($messagelist) . ' ' . _("messages") . '</b>',
'&nbsp;');
while ($j < count($msgs)) {
printMessageInfo($imapConnection, $msgs[$j]["ID"], 0, $j, $mailbox, "", 0, $search_where, $search_what);
$j++;
}
echo '</table></tr></td></table>';
}
/* Read Data Back From IMAP */
$readin = sqimap_read_data ($imapConnection, $isid, false, $result, $message);
if (isset($languages[$squirrelmail_language]['CHARSET']) && strtolower($result) == 'no') {
$ss = $isid . " SEARCH CHARSET \"US-ASCII\" ALL $search_where \"$search_what\"\r\n";
fputs ($imapConnection, $ss);
$readin = sqimap_read_data ($imapConnection, $isid, true, $result, $message);
}
?>
unset($messagelist); $msgs=""; $c = 0;
/* Keep going till we find the SEARCH responce */
while ($c < count( $readin )) {
/* Check to see if a SEARCH Responce was recived */
if (substr($readin[$c],0,9) == "* SEARCH ")
$messagelist = explode(" ",substr($readin[$c],9));
else if (isset($errors))
$errors = $errors.$readin[$c];
else
$errors = $readin[$c];
$c++;
}
/* If nothing is found * SEARCH should be the first error else echo errors */
if (isset($errors) && strstr($errors,"* SEARCH")) {
echo '<br><CENTER>' . _("No Messages Found") . '</CENTER>';
return;
} else if (isset($errors)) {
echo "<!-- ".$errors." -->";
}
/*
HACKED CODED FROM ANOTHER FUNCTION, Could Probably dump this and mondify
exsitising code with a search true/false varible.
*/
global $sent_folder;
for ($q = 0; $q < count($messagelist); $q++) {
$id[$q] = trim($messagelist[$q]);
}
$issent = ($mailbox == $sent_folder);
$hdr_list = sqimap_get_small_header_list($imapConnection, $id, $issent);
$flags = sqimap_get_flags_list($imapConnection, $id, $issent);
foreach ($hdr_list as $hdr) {
$from[] = $hdr->from;
$date[] = $hdr->date;
$subject[] = $hdr->subject;
$to[] = $hdr->to;
$priority[] = $hdr->priority;
$cc[] = $hdr->cc;
$size[] = $hdr->size;
$type[] = $hdr->type0;
}
$j = 0;
while ($j < count($messagelist)) {
$date[$j] = ereg_replace(' ', ' ', $date[$j]);
$tmpdate = explode(" ", trim($date[$j]));
$messages[$j]["TIME_STAMP"] = getTimeStamp($tmpdate);
$messages[$j]["DATE_STRING"] = getDateString($messages[$j]["TIME_STAMP"]);
$messages[$j]["ID"] = $id[$j];
$messages[$j]["FROM"] = decodeHeader($from[$j]);
$messages[$j]["FROM-SORT"] = strtolower(sqimap_find_displayable_name(decodeHeader($from[$j])));
$messages[$j]["SUBJECT"] = decodeHeader($subject[$j]);
$messages[$j]["SUBJECT-SORT"] = strtolower(decodeHeader($subject[$j]));
$messages[$j]["TO"] = decodeHeader($to[$j]);
$messages[$j]["PRIORITY"] = $priority[$j];
$messages[$j]["CC"] = $cc[$j];
$messages[$j]["SIZE"] = $size[$j];
$messages[$j]["TYPE0"] = $type[$j];
$num = 0;
while ($num < count($flags[$j])) {
if ($flags[$j][$num] == 'Deleted') {
$messages[$j]['FLAG_DELETED'] = true;
} else if ($flags[$j][$num] == 'Answered') {
$messages[$j]['FLAG_ANSWERED'] = true;
} else if ($flags[$j][$num] == 'Seen') {
$messages[$j]['FLAG_SEEN'] = true;
} else if ($flags[$j][$num] == 'Flagged') {
$messages[$j]['FLAG_FLAGGED'] = true;
}
$num++;
}
$j++;
}
/* Find and remove the ones that are deleted */
$i = 0;
$j = 0;
while ($j < count($messagelist)) {
if (isset($messages[$j]["FLAG_DELETED"]) && $messages[$j]["FLAG_DELETED"] == true) {
$j++;
continue;
}
$msgs[$i] = $messages[$j];
$i++;
$j++;
}
$numMessages = $i;
/* There's gotta be messages in the array for it to sort them. */
if (count($messagelist) > 0) {
$j=0;
if (!isset ($msg)) { $msg = ""; }
mail_message_listing_beginning( $imapConnection,
"move_messages.php?msg=$msg&mailbox=$urlMailbox&where=" . urlencode($search_where) . "&what=".urlencode($search_what),
$mailbox,
-1,
'<b>' . _("Found") . ' ' . count($messagelist) . ' ' . _("messages") . '</b>',
get_selectall_link($start_msg, $sort) );
while ($j < count($msgs)) {
printMessageInfo($imapConnection, $msgs[$j]["ID"], 0, $j, $mailbox, '', 0, $search_where, $search_what);
$j++;
}
echo '</table></tr></td></table>';
}
}
?>

View file

@ -385,8 +385,7 @@ function displayMessageArray($imapConnection, $num_msgs, $start_msg, &$msgs, $ms
$msg = '';
}
mail_message_listing_beginning
($imapConnection,
mail_message_listing_beginning( $imapConnection,
"move_messages.php?msg=$msg&mailbox=$urlMailbox&startMessage=$start_msg",
$mailbox, $sort, $msg_cnt_str, $paginator_str, $start_msg);

View file

@ -9,98 +9,87 @@
* $Id$
*/
/*****************************************************************/
/*** THIS FILE NEEDS TO HAVE ITS FORMATTING FIXED!!! ***/
/*** PLEASE DO SO AND REMOVE THIS COMMENT SECTION. ***/
/*** + Base level indent should begin at left margin, as ***/
/*** the require_once below looks. ***/
/*** + All identation should consist of four space blocks ***/
/*** + Tab characters are evil. ***/
/*** + all comments should use "slash-star ... star-slash" ***/
/*** style -- no pound characters, no slash-slash style ***/
/*** + FLOW CONTROL STATEMENTS (if, while, etc) SHOULD ***/
/*** ALWAYS USE { AND } CHARACTERS!!! ***/
/*** + Please use ' instead of ", when possible. Note " ***/
/*** should always be used in _( ) function calls. ***/
/*** Thank you for your help making the SM code more readable. ***/
/*****************************************************************/
require_once('../src/validate.php');
require_once('../functions/imap.php');
require_once('../functions/imap_search.php');
require_once('../functions/array.php');
function s_opt( $val, $sel, $tit ) {
echo " <option value=\"$val\"";
if ( $sel )
echo 'selected';
echo ">$tit</option>\n";
function s_opt( $val, $sel, $tit ) {
echo " <option value=\"$val\"";
if ( $sel ) {
echo 'selected';
}
echo ">$tit</option>\n";
}
displayPageHeader($color, $mailbox);
$imapConnection = sqimap_login($username, $key, $imapServerAddress, $imapPort, 0);
displayPageHeader($color, $mailbox);
$imapConnection = sqimap_login($username, $key, $imapServerAddress, $imapPort, 0);
do_hook('search_before_form');
echo "<br>\n".
" <table width=95% align=center cellpadding=2 cellspacing=0 border=0>\n".
" <tr><td bgcolor=\"$color[0]\">\n".
" <center><b>"._("Search")."</b></center>\n".
" </td></tr>\n".
' <tr><td align=center>'.
do_hook('search_before_form');
echo "<br>\n".
" <table width=95% align=center cellpadding=2 cellspacing=0 border=0>\n".
" <tr><td bgcolor=\"$color[0]\">\n".
" <center><b>"._("Search")."</b></center>\n".
" </td></tr>\n".
' <tr><td align=center>'.
"<FORM ACTION=\"search.php\" NAME=s>\n".
" <TABLE WIDTH=\"75%\">\n".
" <TR>\n".
" <TD WIDTH=\"33%\">\n".
' <TT><SMALL><SELECT NAME="mailbox">';
"<FORM ACTION=\"$PHP_SELF\" NAME=s>\n".
" <TABLE WIDTH=\"75%\">\n".
" <TR>\n".
" <TD WIDTH=\"33%\">\n".
' <TT><SMALL><SELECT NAME="mailbox">';
$boxes = sqimap_mailbox_list($imapConnection);
for ($i = 0; $i < count($boxes); $i++) {
if (!in_array('noselect', $boxes[$i]['flags'])) {
$box = $boxes[$i]['unformatted'];
$box2 = str_replace(' ', '&nbsp;', $boxes[$i]['unformatted-disp']);
if ($mailbox == $box)
$boxes = sqimap_mailbox_list($imapConnection);
for ($i = 0; $i < count($boxes); $i++) {
if (!in_array('noselect', $boxes[$i]['flags'])) {
$box = $boxes[$i]['unformatted'];
$box2 = str_replace(' ', '&nbsp;', $boxes[$i]['unformatted-disp']);
if ($mailbox == $box) {
echo " <OPTION VALUE=\"$box\" SELECTED>$box2</OPTION>\n";
else
} else {
echo " <OPTION VALUE=\"$box\">$box2</OPTION>\n";
}
}
echo ' </SELECT></SMALL></TT>'.
" </TD>\n".
" <TD ALIGN=\"CENTER\" WIDTH=\"33%\">\n";
if (!isset($what))
$what = '';
$what_disp = ereg_replace(',', ' ', $what);
$what_disp = str_replace('\\\\', '\\', $what_disp);
$what_disp = str_replace('\\"', '"', $what_disp);
$what_disp = str_replace('"', '&quot;', $what_disp);
echo " <INPUT TYPE=\"TEXT\" SIZE=\"20\" NAME=\"what\" VALUE=\"$what_disp\">\n".
'</TD>'.
"<TD ALIGN=\"RIGHT\" WIDTH=\"33%\">\n".
'<SELECT NAME="where">';
}
}
}
echo ' </SELECT></SMALL></TT>'.
" </TD>\n".
" <TD ALIGN=\"CENTER\" WIDTH=\"33%\">\n";
if (!isset($what)) {
$what = '';
}
$what_disp = ereg_replace(',', ' ', $what);
$what_disp = str_replace('\\\\', '\\', $what_disp);
$what_disp = str_replace('\\"', '"', $what_disp);
$what_disp = str_replace('"', '&quot;', $what_disp);
echo " <INPUT TYPE=\"TEXT\" SIZE=\"20\" NAME=\"what\" VALUE=\"$what_disp\">\n".
'</TD>'.
"<TD ALIGN=\"RIGHT\" WIDTH=\"33%\">\n".
'<SELECT NAME="where">';
s_opt( 'BODY', ($where == 'BODY'), _("Body") );
s_opt( 'TEXT', ($where == 'TEXT'), _("Everywhere") );
s_opt( 'SUBJECT', ($where == 'SUBJECT'), _("Subject") );
s_opt( 'FROM', ($where == 'FROM'), _("From") );
s_opt( 'CC', ($where == 'CC'), _("Cc") );
s_opt( 'TO', ($where == 'TO'), _("To") );
s_opt( 'BODY', ($where == 'BODY'), _("Body") );
s_opt( 'TEXT', ($where == 'TEXT'), _("Everywhere") );
s_opt( 'SUBJECT', ($where == 'SUBJECT'), _("Subject") );
s_opt( 'FROM', ($where == 'FROM'), _("From") );
s_opt( 'CC', ($where == 'CC'), _("Cc") );
s_opt( 'TO', ($where == 'TO'), _("To") );
echo " </SELECT>\n" .
" </TD>\n".
" <TD COLSPAN=\"3\" ALIGN=\"CENTER\">\n".
" <INPUT TYPE=\"submit\" VALUE=\""._("Search")."\">\n".
" </TD>\n".
" </TR>\n".
" </TABLE>\n".
"</FORM>".
"</td></tr></table>";
do_hook("search_after_form");
if (isset($where) && $where && isset($what) && $what) {
sqimap_mailbox_select($imapConnection, $mailbox);
sqimap_search($imapConnection, $where, $what, $mailbox, $color);
}
do_hook("search_bottom");
sqimap_logout ($imapConnection);
?>
</body></html>
echo " </SELECT>\n" .
" </TD>\n".
" <TD COLSPAN=\"3\" ALIGN=\"CENTER\">\n".
" <INPUT TYPE=\"submit\" VALUE=\""._("Search")."\">\n".
" </TD>\n".
" </TR>\n".
" </TABLE>\n".
"</FORM>".
"</td></tr></table>";
do_hook("search_after_form");
if (isset($where) && $where && isset($what) && $what) {
sqimap_mailbox_select($imapConnection, $mailbox);
sqimap_search($imapConnection, $where, $what, $mailbox, $color);
}
do_hook("search_bottom");
sqimap_logout ($imapConnection);
echo '</body></html>';
?>