' . $add . ''; return html_tag( 'tr' , html_tag( 'td', $label . ':', 'right', $color[4]) . html_tag( 'td', $td_str, 'left', $color[4]) ) . "\n"; } /* Output form to add and modify address data */ function address_form($name, $submittext, $values = array()) { global $color, $squirrelmail_language; if ($squirrelmail_language == 'ja_JP') { echo html_tag( 'table', adressbook_inp_field(_("Nickname"), 'nickname', $name, 15, $values, ' ' . _("Must be unique") . '') . adressbook_inp_field(_("E-mail address"), 'email', $name, 45, $values, '') . 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, '') . html_tag( 'tr', html_tag( 'td', '', 'center', $color[4], 'colspan="2"') ) , 'center', '', 'border="0" cellpadding="1" width="90%"') ."\n"; } else { echo html_tag( 'table', adressbook_inp_field(_("Nickname"), 'nickname', $name, 15, $values, ' ' . _("Must be unique") . '') . adressbook_inp_field(_("E-mail address"), 'email', $name, 45, $values, '') . 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, '') . html_tag( 'tr', html_tag( 'td', '', 'center', $color[4], 'colspan="2"') ) , 'center', '', 'border="0" cellpadding="1" width="90%"') ."\n"; } } /* Open addressbook, with error messages on but without LDAP (the * * second "true"). Don't need LDAP here anyway */ $abook = addressbook_init(true, true); if($abook->localbackend == 0) { plain_error_message( _("No personal address book is defined. Contact administrator."), $color); exit(); } displayPageHeader($color, 'None'); $defdata = array(); $formerror = ''; $abortform = false; $showaddrlist = true; $defselected = array(); $form_url = 'addressbook.php'; /* Handle user's actions */ if(sqgetGlobalVar('REQUEST_METHOD', $req_method, SQ_SERVER) && $req_method == 'POST') { /************************************************** * Add new address * **************************************************/ if (!empty($addaddr['nickname'])) { foreach( $addaddr as $k => $adr ) { $addaddr[$k] = strip_tags( $adr ); } $r = $abook->add($addaddr, $abook->localbackend); /* Handle error messages */ if (!$r) { /* Remove backend name from error string */ $errstr = $abook->error; $errstr = ereg_replace('^\[.*\] *', '', $errstr); $formerror = $errstr; $showaddrlist = false; $defdata = $addaddr; } } else { /************************************************ * Delete address(es) * ************************************************/ if ((!empty($deladdr)) && sizeof($sel) > 0) { $orig_sel = $sel; sort($sel); /* The selected addresses are identidied by "backend:nickname". * * Sort the list and process one backend at the time */ $prevback = -1; $subsel = array(); $delfailed = false; for ($i = 0 ; (($i < sizeof($sel)) && !$delfailed) ; $i++) { list($sbackend, $snick) = explode(':', $sel[$i]); /* When we get to a new backend, process addresses in * * previous one. */ if ($prevback != $sbackend && $prevback != -1) { $r = $abook->remove($subsel, $prevback); if (!$r) { $formerror = $abook->error; $i = sizeof($sel); $delfailed = true; break; } $subsel = array(); } /* Queue for processing */ array_push($subsel, $snick); $prevback = $sbackend; } if (!$delfailed) { $r = $abook->remove($subsel, $prevback); if (!$r) { /* Handle errors */ $formerror = $abook->error; $delfailed = true; } } if ($delfailed) { $showaddrlist = true; $defselected = $orig_sel; } } else { /*********************************************** * Update/modify address * ***********************************************/ if (!empty($editaddr)) { /* Stage one: Copy data into form */ if (isset($sel) && sizeof($sel) > 0) { if(sizeof($sel) > 1) { $formerror = _("You can only edit one address at the time"); $showaddrlist = true; $defselected = $sel; } else { $abortform = true; list($ebackend, $enick) = explode(':', $sel[0]); $olddata = $abook->lookup($enick, $ebackend); /* Display the "new address" form */ echo '
'; } } else { /* Stage two: Write new data */ if ($doedit = 1) { $newdata = $editaddr; $r = $abook->modify($oldnick, $newdata, $backend); /* Handle error messages */ if (!$r) { /* Display error */ echo html_tag( 'table', html_tag( 'tr', html_tag( 'td', "\n". '