Support of multiple writeable address book backends
authortokul <tokul@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Fri, 26 Dec 2003 08:40:49 +0000 (08:40 +0000)
committertokul <tokul@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Fri, 26 Dec 2003 08:40:49 +0000 (08:40 +0000)
git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@6321 7612ce4b-ef26-0410-bec9-ea0150e637f0

src/addressbook.php

index a01466dbc451c6843377ab65ec8cc5e5027ac2ba..acb88d80cdc8c379d27b0071d303d17790c4953a 100644 (file)
@@ -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) {
@@ -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]
             )
         )