Ver Fonte

Added basic support for message highlighting. Note that this needs quite
a bit of work yet, because there is no error correction in the data entry
under the options menu. But it works. :)

Luke Ehresman há 25 anos atrás
pai
commit
ed9cd0817d
6 ficheiros alterados com 111 adições e 6 exclusões
  1. 1 0
      ChangeLog
  2. 2 0
      doc/sqimap.php3
  3. 17 6
      functions/mailbox_display.php
  4. 7 0
      src/load_prefs.php
  5. 61 0
      src/msg_highlight.php
  6. 23 0
      src/options.php

+ 1 - 0
ChangeLog

@@ -1,5 +1,6 @@
 Version 0.5pre1 -- DEVELOPMENT
 ------------------------------
+- Added support for message highlighting
 - Moved Address and Send buttons on Compose form for easier access 
 - Added Polish translation from Lukasz Klimek <casa@LO.Pila.PL>
 

+ 2 - 0
doc/sqimap.php3

@@ -1,3 +1,4 @@
+<html><body>
 <a name="top"></a>
 <h1>SquirrelMail IMAP functions</h1>
 <?
@@ -47,3 +48,4 @@
 		<?
 	}
 ?>
+</body></html>

+ 17 - 6
functions/mailbox_display.php

@@ -13,6 +13,7 @@
    function printMessageInfo($imapConnection, $t, $i, $key, $mailbox, $sort, $startMessage) {
       global $color, $msgs, $msort;
 		global $sent_folder;
+      global $message_highlight_list;
 
 		$msg = $msgs[$key];
 
@@ -25,12 +26,21 @@
       if ($msg["FLAG_SEEN"] == false) { $bold = "<b>"; $bold_end = "</b>"; }
 		if ($mailbox == $sent_folder) { $italic = "<i>"; $italic_end = "</i>"; }
       
-      echo "   <td width=1% align=center><input type=checkbox name=\"msg[$t]\" value=".$msg["ID"]."></TD>\n";
-      echo "   <td width=30%>$italic$bold$flag$senderName$flag_end$bold_end$italic_end</td>\n";
-      echo "   <td nowrap width=1%><center>$bold$flag".$msg["DATE_STRING"]."$flag_end$bold_end</center></td>\n";
-		if ($msg["FLAG_ANSWERED"] == true) echo "   <td width=1%><b><small>A</small></b></td>";
-		else	echo "   <td width=1%>&nbsp;</td>";
-      echo "   <td width=%>$bold<a href=\"read_body.php?mailbox=$urlMailbox&passed_id=".$msg["ID"]."&startMessage=$startMessage&show_more=0\">$flag$subject$flag_end</a>$bold_end</td>\n";
+      for ($i=0; $i < count($message_highlight_list); $i++) {
+         if (eregi($message_highlight_list[$i]["value"],$msg["FROM"])) {
+            $hlt_color = $message_highlight_list[$i]["color"];
+            continue;
+         }   
+      }   
+      if (!$hlt_color)
+         $hlt_color = $color[4];
+      
+      echo "   <td width=1% bgcolor=$hlt_color align=center><input type=checkbox name=\"msg[$t]\" value=".$msg["ID"]."></TD>\n";
+      echo "   <td width=30% bgcolor=$hlt_color>$italic$bold$flag$senderName$flag_end$bold_end$italic_end</td>\n";
+      echo "   <td nowrap width=1% bgcolor=$hlt_color><center>$bold$flag".$msg["DATE_STRING"]."$flag_end$bold_end</center></td>\n";
+		if ($msg["FLAG_ANSWERED"] == true) echo "   <td bgcolor=$hlt_color width=1%><b><small>A</small></b></td>";
+		else	echo "   <td bgcolor=$hlt_color width=1%>&nbsp;</td>";
+      echo "   <td bgcolor=$hlt_color width=%>$bold<a href=\"read_body.php?mailbox=$urlMailbox&passed_id=".$msg["ID"]."&startMessage=$startMessage&show_more=0\">$flag$subject$flag_end</a>$bold_end</td>\n";
 
       echo "</tr>\n";
    }
@@ -41,6 +51,7 @@
    function showMessagesForMailbox($imapConnection, $mailbox, $numMessages, $startMessage, $sort, $color,$show_num, $use_cache) {
       global $msgs, $msort;
 		global $sent_folder;
+      global $message_highlight_list;
 
       if (!$use_cache) {
          if ($numMessages >= 1) {

+ 7 - 0
src/load_prefs.php

@@ -101,4 +101,11 @@
          $user_language = en;
    }      
 
+   //  highlightX comes in with the form: name,color,header,value
+   for ($i=0; $hlt = getPref($data_dir, $username, "highlight$i"); $i++) {
+      $ary = explode(",", $hlt);
+      $message_highlight_list[$i]["name"] = $ary[0]; 
+      $message_highlight_list[$i]["color"] = $ary[1];
+      $message_highlight_list[$i]["value"] = $ary[2];
+   }
 ?>

+ 61 - 0
src/msg_highlight.php

@@ -0,0 +1,61 @@
+<?php
+   session_start();
+
+   if (!isset($config_php))
+      include("../config/config.php");
+   if (!isset($strings_php))
+      include("../functions/strings.php");
+   if (!isset($page_header_php))
+      include("../functions/page_header.php");
+   if (!isset($i18n_php))
+      include("../functions/i18n.php");
+   include("../src/load_prefs.php");
+
+   displayPageHeader($color, "None");
+
+   // MESSAGE HIGHLIGHTING
+   echo "<br>\n";
+   echo "<center><b>" . _("Message Highlighting") . "</b></center><br>\n";
+
+
+   if ($action == "save") {
+      if (!$id) $id = 0;
+      setPref($data_dir, $username, "highlight$id", $name.",".$newcolor.",".$value);
+      echo "<a href=\"options.php\">saved</a>";
+   } else {
+      if (!isset($id)) $id = count($message_highlight_list);
+      
+      echo "<form action=\"msg_highlight.php\">\n";
+      echo "<input type=\"hidden\" value=\"save\" name=\"action\">\n";
+      echo "<input type=\"hidden\" value=\"$id\" name=\"id\">\n";
+      echo "<table width=75% cellpadding=2 cellspacing=0 border=0>\n";
+      echo "   <tr>\n";
+      echo "      <td>\n";
+      echo _("Identifying name") . ":";
+      echo "      </td>\n";
+      echo "      <td>\n";
+      echo "         <input type=\"text\" value=\"".$message_highlight_list[$id]["name"]."\" name=\"name\">";
+      echo "      </td>\n";
+      echo "   </tr>\n";
+      echo "   <tr>\n";
+      echo "      <td>\n";
+      echo _("Color") . ":";
+      echo "      </td>\n";
+      echo "      <td>\n";
+      echo "         <input type=\"text\" value=\"".$message_highlight_list[$id]["color"]."\" name=\"newcolor\">";
+      echo "      </td>\n";
+      echo "   </tr>\n";
+      echo "   <tr>\n";
+      echo "      <td>\n";
+      echo _("Match") . ":";
+      echo "      </td>\n";
+      echo "      <td>\n";
+      echo "         <input type=\"text\" value=\"".$message_highlight_list[$id]["value"]."\" name=\"value\">";
+      echo "      </td>\n";
+      echo "   </tr>\n";
+      echo "</table>\n";
+      echo "<center><input type=\"submit\" value=\"" . _("Submit") . "\"></center>\n";
+      echo "</form>\n";
+   }   
+   echo "</BODY></HTML>";
+?>

+ 23 - 0
src/options.php

@@ -403,6 +403,29 @@
    echo "<BR>Signature:<BR><TEXTAREA NAME=signature_edit ROWS=5 COLS=\"$sig_size\">$signature</TEXTAREA><BR>";
    echo "</CENTER>";
 
+   // MESSAGE HIGHLIGHTING
+   echo "<br>\n";
+   echo "<center><b>" . _("Message Highlighting") . "</b> - [<a href=\"msg_highlight.php?method=add\">" . _("New") . "</a>]</center><br>\n";
+   if (count($message_highlight_list) >= 1) {
+      echo "<table border=0 cellpadding=2 cellspacing=0 align=center width=100%>\n";
+      for ($i=0; $i < count($message_highlight_list); $i++) {
+         echo "<tr>\n";
+         echo "   <td width=1% bgcolor=" . $color[4] . ">\n";
+         echo "<small>[<a href=\"msg_highlight.php?method=edit&id=$i\">" . _("Edit") . "</a>]&nbsp;["._("Delete")."]</small>\n";
+         echo "   </td>";
+         echo "   <td bgcolor=" . $message_highlight_list[$i]["color"] . ">\n";
+         echo "      " . $message_highlight_list[$i]["name"];
+         echo "   </td>\n";
+         echo "   <td bgcolor=" . $message_highlight_list[$i]["color"] . ">\n";
+         echo "      " . $message_highlight_list[$i]["value"];
+         echo "   </td>\n";
+         echo "</tr>\n";
+      }
+      echo "</table>\n";
+   } else {
+      echo "<center>" . _("No highlighting is defined") . "</center><br>\n";
+   }
+   echo "<br>\n";
 
    // SUBMIT BUTTON
    echo "<BR><CENTER><INPUT TYPE=SUBMIT VALUE=\"";