Browse Source

improved html address book

Luke Ehresman 25 years ago
parent
commit
f05ae3437b
3 changed files with 91 additions and 81 deletions
  1. 4 1
      ChangeLog
  2. 74 64
      src/addrbook_search_html.php
  3. 13 16
      src/compose.php

+ 4 - 1
ChangeLog

@@ -1,9 +1,12 @@
 Version 0.5pre2 -- DEVELOPMENT
 ------------------------------
+- Improved HTML address book
+- Fixed bugs in parsing email addresses in smtp.php
 - Applied fixes for Courier IMAP server (by Andreas Dahl)
 - Fixed some buggy IMAP handling
 - Improved word wrapping
-- Made message highlighting not case sensative
+- Fixed bugs with adding and not adding backslashes
+- Made message highlighting case insensative
 - Added French translation from Ali Nedjimi <lrdfrx@club-internet.fr>
 
 

+ 74 - 64
src/addrbook_search_html.php

@@ -41,15 +41,16 @@
    function addr_insert_hidden() {
       global $body, $subject, $send_to, $send_to_cc, $send_to_bcc;
       printf("<input type=hidden value=\"%s\" name=body>\n", 
-	     htmlspecialchars($body));
+             htmlspecialchars($body));
       printf("<input type=hidden value=\"%s\" name=subject>\n", 
-	     htmlspecialchars($subject));
+             htmlspecialchars($subject));
       printf("<input type=hidden value=\"%s\" name=send_to>\n", 
-	     htmlspecialchars($send_to));
+             htmlspecialchars($send_to));
       printf("<input type=hidden value=\"%s\" name=send_to_cc>\n", 
-	     htmlspecialchars($send_to_cc));
+             htmlspecialchars($send_to_cc));
       printf("<input type=hidden value=\"%s\" name=send_to_bcc>\n", 
-	     htmlspecialchars($send_to_bcc));     
+             htmlspecialchars($send_to_bcc));     
+      printf("<input type=hidden value=\"true\" name=from_htmladdr_search>\n");
    }
 
 
@@ -60,18 +61,18 @@
       if(sizeof($res) <= 0) return;
 
       printf('<FORM METHOD=post ACTION="%s?html_addr_search_done=true">'."\n",
-	     $PHP_SELF);
+             $PHP_SELF);
       addr_insert_hidden();
       $line = 0;
 
       print "<TABLE BORDER=0 WIDTH=\"98%\" ALIGN=center>";
       printf("<TR BGCOLOR=\"$color[9]\"><TH ALIGN=left>&nbsp;".
-	     "<TH ALIGN=left>&nbsp;%s<TH ALIGN=left>&nbsp;%s".
-	     "<TH ALIGN=left>&nbsp;%s",
-	     _("Name"), _("E-mail"), _("Info"));
+             "<TH ALIGN=left>&nbsp;%s<TH ALIGN=left>&nbsp;%s".
+             "<TH ALIGN=left>&nbsp;%s",
+             _("Name"), _("E-mail"), _("Info"));
 
       if($includesource)
-	 printf("<TH ALIGN=left WIDTH=\"10%%\">&nbsp;%s", _("Source"));
+         printf("<TH ALIGN=left WIDTH=\"10%%\">&nbsp;%s", _("Source"));
 
       print "</TR>\n";
       
@@ -83,18 +84,18 @@
                 "%s".
                 "<td nowrap>&nbsp;%s&nbsp;",
                 ($line % 2) ? " bgcolor=\"$color[0]\"" : "", 
-		htmlspecialchars($row["email"]), htmlspecialchars($row["email"]), 
-		$row["name"], $row["email"], $row["label"]);
-	 if($includesource)
-	    printf("<td nowrap>&nbsp;%s", $row["source"]);
-	 
-	 print "</TR>\n";
+                htmlspecialchars($row["email"]), htmlspecialchars($row["email"]), 
+                $row["name"], $row["email"], $row["label"]);
+         if($includesource)
+            printf("<td nowrap>&nbsp;%s", $row["source"]);
+         
+         print "</TR>\n";
          $line++;
       }
       printf('<TR><TD ALIGN=center COLSPAN=%d><INPUT TYPE=submit '.
-	     'NAME="addr_search_done" VALUE="%s"></TD></TR>',
-	     4 + ($includesource ? 1 : 0), 
-	     _("Use Addresses"));
+             'NAME="addr_search_done" VALUE="%s"></TD></TR>',
+             4 + ($includesource ? 1 : 0), 
+             _("Use Addresses"));
       print "</TABLE>";
       print '<INPUT TYPE=hidden VALUE=1 NAME="html_addr_search_done">';
       print "</FORM>";
@@ -113,47 +114,51 @@
    $send_to_bcc = sqStripSlashes($send_to_bcc);
    $subject = sqStripSlashes($subject);
 
+?>
 
-   // Header
-   print  "<TABLE BORDER=0 WIDTH=100% COLS=1 ALIGN=CENTER>\n";
-   printf('<TR><TD BGCOLOR="%s" ALIGN=CENTER><STRONG>%s</STRONG></TD></TR>', 
-	  $color[0], _("Address Book Search"));
-   print  "</TABLE>\n";
+<br>
+<table width=95% align=center cellpadding=2 cellspacing=2 border=0>
+<tr><td bgcolor="<?php echo $color[0] ?>">
+   <center><b><?php echo _("Address Book Search") ?></b></center>
+</td></tr></table>
 
+<?php
    // Search form
    print "<CENTER>\n";
-   printf('<FORM METHOD=post NAME=f ACTION="%s?html_addr_search=true">'."\n",
-	  $PHP_SELF);
    print "<TABLE BORDER=0>\n";
    printf("<TR><TD NOWRAP VALIGN=middle>\n");
-   printf("  <STRONG>%s</STRONG>\n", _("Search for"));
+   printf('<FORM METHOD=post NAME=f ACTION="%s?html_addr_search=true">'."\n", $PHP_SELF);
+   print "<CENTER>\n";
+   printf("  <nobr><STRONG>%s</STRONG>\n", _("Search for"));
+   addr_insert_hidden();
    printf("  <INPUT TYPE=text NAME=addrquery VALUE=\"%s\" SIZE=26>\n",
-	  htmlspecialchars($addrquery));
+          htmlspecialchars($addrquery));
 
    // List all backends to allow the user to choose where to search
    if($abook->numbackends > 1) {
       printf("<STRONG>%s</STRONG>&nbsp;<SELECT NAME=backend>\n", 
-	     _("in"));
+             _("in"));
       printf("<OPTION VALUE=-1 %s>%s\n", 
-	     ($backend == -1) ? "SELECTED" : "",
-	     _("All address books"));
+             ($backend == -1) ? "SELECTED" : "",
+             _("All address books"));
       $ret = $abook->get_backend_list();
       while(list($undef,$v) = each($ret)) 
-	 printf("<OPTION VALUE=%d %s>%s\n", 
-		$v->bnum, 
-		($backend == $v->bnum) ? "SELECTED" : "",
-		$v->sname);
+         printf("<OPTION VALUE=%d %s>%s\n", 
+                $v->bnum, 
+                ($backend == $v->bnum) ? "SELECTED" : "",
+                $v->sname);
       printf("</SELECT>\n");
    } else {
       printf("<INPUT TYPE=hidden NAME=backend VALUE=-1>\n");
    }
    printf("<INPUT TYPE=submit VALUE=\"%s\">",
-	  _("Search"));
+          _("Search"));
    printf("&nbsp;|&nbsp;<INPUT TYPE=submit VALUE=\"%s\" NAME=listall>\n",
-	  _("List all"));
+          _("List all"));
+   print "</FORM></center>";
+
    printf("</TD></TR></TABLE>\n");
    addr_insert_hidden();
-   print "</FORM>";
    print "</CENTER>";
    do_hook("addrbook_html_search_below");
    // End search form
@@ -162,24 +167,25 @@
    if(!isset($addrquery) || !empty($listall)) {
 
       if($backend != -1 || !isset($addrquery)) {
-	 if(!isset($addrquery)) 
-	    $backend = $abook->localbackend;
+         if(!isset($addrquery)) 
+            $backend = $abook->localbackend;
 
-	 //printf("<H3 ALIGN=center>%s</H3>\n", $abook->backends[$backend]->sname);
+         //printf("<H3 ALIGN=center>%s</H3>\n", $abook->backends[$backend]->sname);
 
-	 $res = $abook->list_addr($backend);
+         $res = $abook->list_addr($backend);
 
-	 if(is_array($res)) {
-	    addr_display_result($res, false);
-	 } else {
-	    printf("<P ALIGN=center><STRONG>"._("Unable to list addresses from %s").
-		   "</STRONG></P>\n", $abook->backends[$backend]->sname);
-	 }
+         if(is_array($res)) {
+            addr_display_result($res, false);
+         } else {
+            printf("<P ALIGN=center><STRONG>"._("Unable to list addresses from %s").
+                   "</STRONG></P>\n", $abook->backends[$backend]->sname);
+         }
 
       } else {
-	 $res = $abook->list_addr();
-	 addr_display_result($res, true);
+         $res = $abook->list_addr();
+         addr_display_result($res, true);
       }
+      exit;
 
    } else
 
@@ -187,26 +193,30 @@
    if(!empty($addrquery) && empty($listall)) {
 
       if($backend == -1) {
-	 $res = $abook->s_search($addrquery);
+         $res = $abook->s_search($addrquery);
       } else {
-	 $res = $abook->s_search($addrquery, $backend);
+         $res = $abook->s_search($addrquery, $backend);
       }
 
       if(!is_array($res)) {
-	 printf("<P ALIGN=center><B><BR>%s:<br>%s</B></P>\n</BODY></HTML>\n",
-		_("Your search failed with the following error(s)"),
-		$abook->error);
-	 exit;
-      }
-
-      if(sizeof($res) == 0) {
-	 printf("<P ALIGN=center><BR><B>%s.</B></P>\n</BODY></HTML>\n",
-		_("No persons matching your search was found"));
-	 exit;
+         printf("<P ALIGN=center><B><BR>%s:<br>%s</B></P>\n</BODY></HTML>\n",
+                _("Your search failed with the following error(s)"),
+                $abook->error);
+      } else if(sizeof($res) == 0) {
+         printf("<P ALIGN=center><BR><B>%s.</B></P>\n</BODY></HTML>\n",
+                _("No persons matching your search was found"));
+      } else {
+         addr_display_result($res);
       }
-
-      addr_display_result($res);
    }
 
+   if (!$addrquery || sizeof($res) == 0) {  
+      printf('<center><FORM METHOD=post NAME=k ACTION="compose.php">'."\n", $PHP_SELF);
+      addr_insert_hidden();
+      printf("<INPUT TYPE=submit VALUE=\"%s\" NAME=return>\n", _("Return"));
+      printf('</form>');
+      printf("</center></nobr>");
+   }   
+
 ?>
 </body></html>

+ 13 - 16
src/compose.php

@@ -45,6 +45,7 @@
 
       $send_to = sqStripSlashes(decodeHeader($send_to));
       $send_to_cc = sqStripSlashes(decodeHeader($send_to_cc));
+      $send_to_bcc = sqStripSlashes(decodeHeader($send_to_bcc));
 
       if ($forward_id)
          $id = $forward_id;
@@ -97,8 +98,6 @@
          return $body;   
       }
 
-      $send_to = sqStripSlashes($send_to);
-      
       if (!$send_to) {
          $send_to = sqimap_find_email($send_to);
       }
@@ -136,7 +135,7 @@
       global $send_to, $send_to_cc, $reply_subj, $forward_subj, $body,
          $passed_body, $color, $use_signature, $signature, $editor_size,
          $attachments, $subject, $newmail, $use_javascript_addr_book,
-         $send_to_bcc, $reply_id, $mailbox;
+         $send_to_bcc, $reply_id, $mailbox, $from_htmladdr_search;
 
       $subject = sqStripSlashes(decodeHeader($subject));
       $reply_subj = decodeHeader($reply_subj);
@@ -157,7 +156,7 @@
       //echo "\n<FORM name=compose action=\"compose.php\" METHOD=POST>\n";
       if ($reply_id) {
          echo "<input type=hidden name=reply_id value=$reply_id>\n";
-      }		 
+      }                 
       printf("<INPUT TYPE=hidden NAME=mailbox VALUE=\"%s\">\n", htmlspecialchars($mailbox));
       echo "<TABLE WIDTH=\"100%\" ALIGN=center CELLSPACING=0 BORDER=0>\n";
       echo "   <TR>\n";
@@ -165,7 +164,7 @@
       echo _("To:");
       echo "      </TD><TD BGCOLOR=\"$color[4]\">\n";
       printf("         <INPUT TYPE=text NAME=\"send_to\" VALUE=\"%s\" SIZE=60><BR>\n",
-	     htmlspecialchars($send_to));
+             htmlspecialchars($send_to));
       echo "      </TD>\n";
       echo "   </TR>\n";
       echo "   <TR>\n";
@@ -173,7 +172,7 @@
       echo _("CC:");
       echo "      </TD><TD BGCOLOR=\"$color[4]\" ALIGN=LEFT>\n";
       printf("         <INPUT TYPE=text NAME=\"send_to_cc\" SIZE=60 VALUE=\"%s\"><BR>\n",
-	     htmlspecialchars($send_to_cc));
+             htmlspecialchars($send_to_cc));
       echo "      </TD>\n";
       echo "   </TR>\n";
       echo "   <TR>\n";
@@ -181,7 +180,7 @@
       echo _("BCC:");
       echo "      </TD><TD BGCOLOR=\"$color[4]\" ALIGN=LEFT>\n";
       printf("         <INPUT TYPE=text NAME=\"send_to_bcc\" VALUE=\"%s\" SIZE=60><BR>\n",
-	     htmlspecialchars($send_to_bcc));
+             htmlspecialchars($send_to_bcc));
       echo "</TD></TR>\n";
 
       echo "   <TR>\n";
@@ -195,7 +194,7 @@
          if (substr(strtolower($reply_subj), 0, 3) != "re:")
             $reply_subj = "Re: $reply_subj";
          printf("         <INPUT TYPE=text NAME=subject SIZE=60 VALUE=\"%s\">",
-		htmlspecialchars($reply_subj));
+                htmlspecialchars($reply_subj));
       } else if ($forward_subj) {
          $forward_subj = str_replace("\"", "'", $forward_subj);
          $forward_subj = sqStripSlashes($forward_subj);
@@ -205,10 +204,10 @@
              (substr(strtolower($forward_subj), 0, 6) != "[ fwd:"))
             $forward_subj = "[Fwd: $forward_subj]";
          printf("         <INPUT TYPE=text NAME=subject SIZE=60 VALUE=\"%s\">",
-		htmlspecialchars($forward_subj));
+                htmlspecialchars($forward_subj));
       } else {
- 	 printf("         <INPUT TYPE=text NAME=subject SIZE=60 VALUE=\"%s\">",
-		htmlspecialchars($subject));
+          printf("         <INPUT TYPE=text NAME=subject SIZE=60 VALUE=\"%s\">",
+                htmlspecialchars($subject));
       }
       echo "</td></tr>\n\n";
 
@@ -233,10 +232,10 @@
       echo "   <TR>\n";
       echo "      <TD BGCOLOR=\"$color[4]\" COLSPAN=2>\n";
       echo "         &nbsp;&nbsp;<TEXTAREA NAME=body ROWS=20 COLS=\"$editor_size\" WRAP=HARD>";
-      if ($use_signature == true && $newmail == true) {
-	 echo sqStripSlashes(htmlspecialchars($body)) . "\n\n-- \n" . htmlspecialchars($signature);
+      if ($use_signature == true && $newmail == true && !isset($from_htmladdr_search)) {
+         echo sqStripSlashes(htmlspecialchars($body)) . "\n\n-- \n" . htmlspecialchars($signature);
       } else {
-	 echo sqStripSlashes(htmlspecialchars($body));
+         echo sqStripSlashes(htmlspecialchars($body));
       }
       echo "</TEXTAREA><BR>\n";
       echo "      </TD>\n";
@@ -318,11 +317,9 @@
       is_logged_in();
       displayPageHeader($color, $mailbox);
 
-      $body = sqStripSlashes($body);
       $send_to = sqStripSlashes($send_to);
       $send_to_cc = sqStripSlashes($send_to_cc);
       $send_to_bcc = sqStripSlashes($send_to_bcc);
-      $subject = sqStripSlashes($subject);
       
       for ($i=0; $i < count($send_to_search); $i++) {
          if ($send_to)