We're living in 2004 now... perl is your friend for these kinds of things :)
[squirrelmail.git] / src / addressbook.php
index d8d53bf12dddb134a3a9c50da67b1a4c9713ab16..fc43758dd871336900f4e8db38e21a8aebcefac0 100644 (file)
@@ -3,7 +3,7 @@
 /**
  * addressbook.php
  *
- * Copyright (c) 1999-2003 The SquirrelMail Project Team
+ * Copyright (c) 1999-2004 The SquirrelMail Project Team
  * Licensed under the GNU GPL. For full terms see the file COPYING.
  *
  * Manage personal address book.
@@ -78,6 +78,7 @@ function address_form($name, $submittext, $values = array()) {
                        adressbook_inp_field(_("Last name"),    'lastname', $name, 45, $values, '') .
                        adressbook_inp_field(_("First name"),  'firstname', $name, 45, $values, '') .
                        adressbook_inp_field(_("Additional info"), 'label', $name, 45, $values, '') .
+                      list_writable_backends($name) .
                        html_tag( 'tr',
                            html_tag( 'td',
                                        '<INPUT TYPE=submit NAME="' . $name . '[SUBMIT]" VALUE="' .
@@ -93,6 +94,7 @@ function address_form($name, $submittext, $values = array()) {
                        adressbook_inp_field(_("First name"),  'firstname', $name, 45, $values, '') .
                        adressbook_inp_field(_("Last name"),    'lastname', $name, 45, $values, '') .
                        adressbook_inp_field(_("Additional info"), 'label', $name, 45, $values, '') .
+                      list_writable_backends($name) .
                        html_tag( 'tr',
                            html_tag( 'td',
                                        '<INPUT TYPE=submit NAME="' . $name . '[SUBMIT]" VALUE="' .
@@ -103,6 +105,30 @@ function address_form($name, $submittext, $values = array()) {
 }
 }
 
+function list_writable_backends($name) {
+  global $color, $abook;
+  if ( $name != 'addaddr' ) { return; }
+  if ( $abook->numbackends > 1 ) {
+    $ret = "<select name=backend>";
+    $backends = $abook->get_backend_list();
+    while (list($undef,$v) = each($backends)) {
+      if ($v->writeable) {
+       $ret .= '<OPTION VALUE=' . $v->bnum;
+       $ret .= '>' . $v->sname . "\n";
+      }
+    }
+    $ret .= "</select>";
+    return html_tag( 'tr',
+                    html_tag( 'td', _("Add to:"),'right', $color[4] ) .
+                    html_tag( 'td', $ret, 'left', $color[4] )) . "\n";
+  } else {
+  return html_tag( 'tr',
+                  html_tag( 'td',
+                            '<input type=hidden name=backend value=1>',
+                             'center', $color[4], 'colspan="2"')) . "\n";
+  }
+}
+
 /* Open addressbook, with error messages on but without LDAP (the *
  * second "true"). Don't need LDAP here anyway                    */
 $abook = addressbook_init(true, true);
@@ -133,7 +159,11 @@ if(sqgetGlobalVar('REQUEST_METHOD', $req_method, SQ_SERVER) && $req_method == 'P
         foreach( $addaddr as $k => $adr ) {
             $addaddr[$k] = strip_tags( $adr );
         }
-        $r = $abook->add($addaddr, $abook->localbackend);
+       if (isset($backend)) {
+         $r = $abook->add($addaddr, $backend);
+       } else {
+         $r = $abook->add($addaddr, $abook->localbackend);
+       }
 
         /* Handle error messages */
         if (!$r) {
@@ -282,7 +312,7 @@ if(sqgetGlobalVar('REQUEST_METHOD', $req_method, SQ_SERVER) && $req_method == 'P
 
     // Some times we end output before forms are printed
     if($abortform) {
-       noframes_bottom();
+       echo "</BODY></HTML>\n";
        exit();
     }
 }
@@ -426,7 +456,7 @@ echo '<a name="AddAddress"></a>' . "\n" .
     '<FORM ACTION="' . $form_url . '" NAME=f_add METHOD="POST">' . "\n" .
     html_tag( 'table',  
         html_tag( 'tr',
-            html_tag( 'td', "\n". '<strong>' . sprintf(_("Add to %s"), $abook->localbackendname) . '</strong>' . "\n",
+            html_tag( 'td', "\n". '<strong>' . _("Add to address book") . '</strong>' . "\n",
                 'center', $color[0]
             )
         )
@@ -436,5 +466,6 @@ echo '</FORM>';
 
 /* Add hook for anything that wants on the bottom */
 do_hook('addressbook_bottom');
-noframes_bottom();
-?>
\ No newline at end of file
+?>
+
+</BODY></HTML>