made it so searched results are bold
[squirrelmail.git] / functions / imap_messages.php
index a2fce07cdfb4a58d6a893ed54510f4f2035f7e38..fe7e7cbcfb7975351f8e02cf79ea9cf5ad85ca7e 100755 (executable)
    /******************************************************************************
     **  Returns some general header information -- FROM, DATE, and SUBJECT
     ******************************************************************************/
-       class small_header {
-               var $from, $subject, $date, $to;
-       }
+   class small_header {
+      var $from, $subject, $date, $to, $priority, $message_id;
+   }
         
    function sqimap_get_small_header ($imap_stream, $id, $sent) {
-      fputs ($imap_stream, "a001 FETCH $id BODY.PEEK[HEADER.FIELDS (Date To From Subject)]\r\n");
+      global $where, $what;
+
+      fputs ($imap_stream, "a001 FETCH $id BODY.PEEK[HEADER.FIELDS (Date To From Cc Subject Message-Id X-Priority)]\r\n");
       $read = sqimap_read_data ($imap_stream, "a001", true, $response, $message);
 
       $subject = _("(no subject)");
       $from = _("Unknown Sender");
-               $g = 0;
+      $priority = "0";
+      $messageid = "<>";
+
+      $g = 0;
       for ($i = 0; $i < count($read); $i++) {
          if (eregi ("^to:", $read[$i])) {
-            $to = sqimap_find_displayable_name(substr($read[$i], 3));
-                       }       
-         if (eregi ("^from:", $read[$i])) {
-            $from = sqimap_find_displayable_name(substr($read[$i], 5));
-                       }       
-         if (eregi ("^date:", $read[$i])) {
+            //$to = sqimap_find_displayable_name(substr($read[$i], 3));
+            $to = substr($read[$i], 3);
+             } else if (eregi ("^from:", $read[$i])) {
+            //$from = sqimap_find_displayable_name(substr($read[$i], 5));
+            $from = substr($read[$i], 5);
+             } else if (eregi ("^x-priority:", $read[$i])) {
+            $priority = trim(substr($read[$i], 11));
+         } else if (eregi ("^message-id:", $read[$i])) {
+            $messageid = trim(substr($read[$i], 11));
+         } else if (eregi ("^cc:", $read[$i])) {
+            $cc = substr($read[$i], 3);
+         } else if (eregi ("^date:", $read[$i])) {
             $date = substr($read[$i], 5);
          } else if (eregi ("^subject:", $read[$i])) {
             $subject = htmlspecialchars(eregi_replace ("^subject: ", "", $read[$i]));
             if (trim($subject) == "")
                $subject = _("(no subject)");
          }
-               }       
+      }
 
-               $header = new small_header;
+      if ($where == "SUBJECT") {
+         $subject = eregi_replace($what, "<b>\\0</b>", $subject);
+      }
+      
+      $header = new small_header;
       if ($sent == true)
          $header->from = $to;
       else   
-                  $header->from = $from;
-               $header->date = $date;
-               $header->subject = $subject;
+         $header->from = $from;
+
+      $header->date = $date;
+      $header->subject = $subject;
       $header->to = $to;
+      $header->priority = $priority;
+      $header->message_id = $messageid;
+      $header->cc = $cc;
 
-               return $header;
+      return $header;
    }
 
    /******************************************************************************
     **  the documentation folder for more information about this array.
     ******************************************************************************/
    function sqimap_get_message ($imap_stream, $id, $mailbox) {
-      
       $header = sqimap_get_message_header($imap_stream, $id, $mailbox);
       $msg = sqimap_get_message_body($imap_stream, &$header);
       return $msg;
     **  Queries the IMAP server and gets all header information.
     ******************************************************************************/
    function sqimap_get_header ($imap_stream, $read) {
+      global $where, $what;
+
       $hdr = new msg_header();
       $i = 0;
       // Set up some defaults
             $hdr->subject = trim(substr($read[$i], 8, strlen($read[$i]) - 9));
             if (strlen(Chop($hdr->subject)) == 0)
                $hdr->subject = _("(no subject)");
+
+            if ($where == "SUBJECT") {
+               $hdr->subject = eregi_replace($what, "<b>\\0</b>", $hdr->subject);
+            }
             $i++;
          }
          /** CC **/
     ******************************************************************************/
    function sqimap_get_message_body ($imap_stream, &$header) {
       $id = $header->id;
-      //fputs ($imap_stream, "a001 FETCH $id:$id BODY[TEXT]\r\n");
-      //$read = sqimap_read_data ($imap_stream, "a001", true, $response, $message);
-       
-      $i = 0;
-      $j = 0;
-      while ($i < count($read)-1) {
-         if ( ($i != 0) ) {
-            $body[$j] = $read[$i];
-            $j++;
-         }
-         $i++;
-      }
-      return decodeMime($body, &$header);
+      return decodeMime($imap_stream, $body, &$header);
    }