added more hooks in options page for inline options
[squirrelmail.git] / src / addressbook.php
index 7b0a215210a6c6bcd5ed7db210b39453579f004d..d269fe5a95f156df3aa17e692bfb85a8b056aa37 100644 (file)
@@ -2,27 +2,23 @@
    /**
     **  addressbook.php
     **
+    **  Copyright (c) 1999-2000 The SquirrelMail development team
+    **  Licensed under the GNU GPL. For full terms see the file COPYING.
+    **
     **  Manage personal address book.
     **
     **/
 
-   if(!isset($logged_in)) {
-      echo _("You must login first.");
-      exit;
-   }
-   if(!isset($username) || !isset($key)) {
-      echo _("You need a valid user and password to access this page!");
-      exit;
-   }
+   session_start();
 
    if (!isset($config_php))
       include("../config/config.php");
    if (!isset($array_php))
       include("../functions/array.php");
+   if (!isset($auth_php))
+      include("../functions/auth.php");
    if (!isset($strings_php))
       include("../functions/strings.php");
-   if (!isset($imap_php))
-      include("../functions/imap.php");
    if (!isset($page_header_php))
       include("../functions/page_header.php");
    if (!isset($display_messages_php))
@@ -30,6 +26,7 @@
    if (!isset($addressbook_php))
       include("../functions/addressbook.php");
 
+   is_logged_in();
 
    // Sort array by the key "name"
    function alistcmp($a,$b) {   
    }
 
 
-   // IMAP Login
-   $imapConnection = sqimap_login ($username, $key, 
-                                  $imapServerAddress, $imapPort, 10);
    include("../src/load_prefs.php");
-   sqimap_logout ($imapConnection);
-
 
    // Open addressbook, with error messages on but without LDAP (the
    // second "true"). Don't need LDAP here anyway
       exit();
    }
 
-   print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n";
-   print "<HTML><HEAD><TITLE>\n";
-   printf("%s: %s\n", $org_title, _("Address Book")); 
-   print "</TITLE></HEAD>\n\n";
-
-   printf('<BODY TEXT="%s" BGCOLOR="%s" LINK="%s" VLINK="%s" ALINK="%s">',
-         $color[8], $color[4], $color[7], $color[7], $color[7]);
    displayPageHeader($color, "None");
 
 
       // ***********************************************
       // Add new address
       // ***********************************************
-      $add_data = $HTTP_POST_VARS["addaddr"];
-      if(!empty($add_data["nickname"])) {
+      if(!empty($addaddr["nickname"])) {
         
-        $r = $abook->add($add_data, $abook->localbackend);
+        $r = $abook->add($addaddr, $abook->localbackend);
 
         // Handle error messages
         if(!$r) {
 
            $formerror = $errstr;
            $showaddrlist = false;
-           $defdata = $add_data;
+           $defdata = $addaddr;
         }
    
       } 
       // ***********************************************
       // Delete address(es)
       // ***********************************************
-      else if((!empty($HTTP_POST_VARS["deladdr"])) &&
-         sizeof($HTTP_POST_VARS["sel"]) > 0) {
-
-        $sel = $HTTP_POST_VARS["sel"];
+      else if((!empty($deladdr)) &&
+         sizeof($sel) > 0) {
+        $orig_sel = $sel;
         sort($sel);
 
         // The selected addresses are identidied by "backend:nickname".
 
         if($delfailed) {
            $showaddrlist = true;
-           $defselected = $HTTP_POST_VARS["sel"];
+           $defselected  = $orig_sel;
         }
       }
 
       // ***********************************************
       // Update/modify address
       // ***********************************************
-      else if(!empty($HTTP_POST_VARS["editaddr"])) {
+      else if(!empty($editaddr)) {
 
         // Stage one: Copy data into form
-         if(sizeof($HTTP_POST_VARS["sel"]) > 0) {
-           if(sizeof($HTTP_POST_VARS["sel"]) > 1) {
+         if(sizeof($sel) > 0) {
+           if(sizeof($sel) > 1) {
               $formerror = _("You can only edit one address at the time");
               $showaddrlist = true;
-              $defselected = $HTTP_POST_VARS["sel"];
+              $defselected = $sel;
            } else {
               $abortform = true;
-              list($ebackend, $enick) = split(":", $HTTP_POST_VARS["sel"][0]);
+              list($ebackend, $enick) = split(":", $sel[0]);
               $olddata = $abook->lookup($enick, $ebackend);
 
               // Display the "new address" form
         }
 
         // Stage two: Write new data
-        else if($HTTP_POST_VARS["doedit"] = 1) {
-           $newdata = $HTTP_POST_VARS["editaddr"];
-           $r = $abook->modify($HTTP_POST_VARS["oldnick"],
-                               $newdata,
-                               $HTTP_POST_VARS["backend"]);
+        else if($doedit = 1) {
+           $newdata = $editaddr;
+           $r = $abook->modify($oldnick, $newdata, $backend);
 
            // Handle error messages
            if(!$r) {
       $alist = $abook->list_addr();
       usort($alist,'alistcmp');
       $prevbackend = -1;
+      $headerprinted = false;
 
       // List addresses
-      while(list($key,$row) = each($alist)) {
+      while(list($undef,$row) = each($alist)) {
 
         // New table header for each backend
         if($prevbackend != $row["backend"]) {
            print "<STRONG>\n</TD></TR>\n";
            print "</TABLE>\n";
 
-           print "<TABLE COLS=5 BORDER=0 CELLPADDING=1 CELLSPACING=0 ".
-                 "WIDTH=\"90%\" ALIGN=center>";
-           printf("<tr bgcolor=\"$color[9]\"><TH align=left width=\"3%%\">".
-                  "&nbsp;<TH align=left width=\"10%%\">%s<TH align=left>%s".
-                  "<TH align=left>%s<TH align=left>%s</TR>\n",
-                  _("Nickname"), _("Name"), _("E-mail"), _("Info"));
+           print '<TABLE COLS=5 BORDER=0 CELLPADDING=1 CELLSPACING=0 WIDTH="90%" ALIGN=center>';
+           printf('<TR BGCOLOR="%s"><TH ALIGN=left WIDTH="%s">&nbsp;'.
+                  '<TH ALIGN=left WIDTH="%s">%s<TH ALIGN=left WIDTH="%s">%s'.
+                  '<TH ALIGN=left WIDTH="%s">%s<TH ALIGN=left WIDTH="%s">%s'.
+                  "</TR>\n", $color[9], "1%", 
+                  "1%", _("Nickname"), 
+                  "1%", _("Name"), 
+                  "1%", _("E-mail"), 
+                  "%",  _("Info"));
            $line = 0;
+           $headerprinted = true;
         } // End of header
 
         $prevbackend = $row["backend"];
            $selected = "";
       
         // Print one row
-        printf("<TR%s NOWRAP>\n <TD align=center><SMALL>".
-               "<INPUT TYPE=checkbox %s NAME=\"sel[]\" VALUE=\"%d:%s\">".
-               "</SMALL><TD NOWRAP>&nbsp;%s&nbsp;<TD NOWRAP>&nbsp;%s&nbsp;".
-               "<TD NOWRAP>&nbsp;<A HREF=\"compose.php?send_to=%s\">%s</A>".
-               "&nbsp;<TD NOWRAP>&nbsp;%s</TR>\n", 
-               ($line % 2) ? " bgcolor=\"$color[0]\"" : "", 
-               $selected, $row["backend"], $row["nickname"], 
-               $row["nickname"], $row["name"], 
-               rawurlencode($row["email"]), $row["email"], $row["label"]);
+        printf("<TR%s>",
+               (($line % 2) ? " bgcolor=\"$color[0]\"" : ""));
+        print  '<TD VALIGN=top ALIGN=center WIDTH="1%"><SMALL>';
+        printf('<INPUT TYPE=checkbox %s NAME="sel[]" VALUE="%s:%s"></SMALL></TD>', 
+               $selected, $row["backend"], $row["nickname"]);
+        printf('<TD VALIGN=top NOWRAP WIDTH="%s">&nbsp;%s&nbsp;</TD>'.
+               '<TD VALIGN=top NOWRAP WIDTH="%s">&nbsp;%s&nbsp;</TD>',
+               "1%", $row["nickname"],
+               "1%", $row["name"]);
+        printf('<TD VALIGN=top NOWRAP WIDTH="%s">&nbsp;<A HREF="compose.php?send_to=%s">%s</A>&nbsp;</TD>'."\n", 
+               "1%", rawurlencode($row["email"]), $row["email"]);
+        printf('<TD VALIGN=top WIDTH="%s">&nbsp;%s&nbsp;</TD>', 
+               "%", $row["label"]);
+        print "</TR>\n";
         $line++;
       } 
 
       // End of list. Close table.
-      print "<TR><TD COLSPAN=5 ALIGN=center>\n";
-      printf("<INPUT TYPE=submit NAME=editaddr VALUE=\"%s\">\n",
-            _("Edit selected"));
-      printf("<INPUT TYPE=submit NAME=deladdr VALUE=\"%s\">\n",
-            _("Delete selected"));
-      print "</TR></TABLE></FORM>";
+      if($headerprinted) {
+       print "<TR><TD COLSPAN=5 ALIGN=center>\n";
+       printf("<INPUT TYPE=submit NAME=editaddr VALUE=\"%s\">\n",
+              _("Edit selected"));
+       printf("<INPUT TYPE=submit NAME=deladdr VALUE=\"%s\">\n",
+              _("Delete selected"));
+       print "</TR></TABLE></FORM>";
+      }
    } // end of addresslist
 
 
    // Display the "new address" form
-   printf("<FORM ACTION=\"%s\" METHOD=\"POST\">\n", $PHP_SELF);
+   printf("<FORM ACTION=\"%s\" NAME=f_add METHOD=\"POST\">\n", $PHP_SELF);
    print "<TABLE WIDTH=100% COLS=1 ALIGN=CENTER>\n";
    print "<TR><TD BGCOLOR=\"$color[0]\" ALIGN=CENTER>\n<STRONG>";
    printf(_("Add to %s"), $abook->localbackendname);
    address_form("addaddr", _("Add address"), $defdata);
    print "</FORM>";
 
+   // Add hook for anything that wants on the bottom
+   do_hook("addressbook_bottom");
 ?>
 
 </BODY></HTML>