X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=src%2Faddressbook.php;h=50b16a9229865842540c6ddc9bc152add5dce65b;hp=753cd2ca054ac9655f62a37b938ec2aec498eb40;hb=eb7bd9b7b01e0cf97a14e81ca6b0f1725873699c;hpb=f8a1ed5aa365d515e4e2ac3602f900bfb9447fce diff --git a/src/addressbook.php b/src/addressbook.php index 753cd2ca..50b16a92 100644 --- a/src/addressbook.php +++ b/src/addressbook.php @@ -3,11 +3,10 @@ /** * addressbook.php * - * Copyright (c) 1999-2005 The SquirrelMail Project Team - * Licensed under the GNU GPL. For full terms see the file COPYING. - * * Manage personal address book. * + * @copyright © 1999-2006 The SquirrelMail Project Team + * @license http://opensource.org/licenses/gpl-license.php GNU Public License * @version $Id$ * @package squirrelmail * @subpackage addressbook @@ -20,7 +19,7 @@ define('SM_PATH','../'); /** SquirrelMail required files. */ -require_once(SM_PATH . 'include/validate.php'); +include_once(SM_PATH . 'include/validate.php'); require_once(SM_PATH . 'functions/display_messages.php'); require_once(SM_PATH . 'functions/addressbook.php'); require_once(SM_PATH . 'functions/forms.php'); @@ -61,7 +60,6 @@ if($abook->localbackend == 0) { exit(); } - $defdata = array(); $formerror = ''; $abortform = false; @@ -158,6 +156,7 @@ if(sqgetGlobalVar('REQUEST_METHOD', $req_method, SQ_SERVER) && $req_method == 'P $abortform = true; list($ebackend, $enick) = explode(':', $sel[0]); $olddata = $abook->lookup($enick, $ebackend); + // FIXME: Test if $olddata really contains anything and return an error message if it doesn't /* Display the "new address" form */ abook_create_form($form_url,'editaddr',_("Update address"),_("Update address"),$olddata); @@ -175,13 +174,13 @@ if(sqgetGlobalVar('REQUEST_METHOD', $req_method, SQ_SERVER) && $req_method == 'P if (!$r) { /* Display error */ echo html_tag( 'table', - html_tag( 'tr', - html_tag( 'td', - "\n". '' . _("ERROR") . ': ' . $abook->error . '' ."\n", - 'center' ) - ), - 'center', '', 'width="100%"' ); + html_tag( 'tr', + html_tag( 'td', + "\n". '' . _("ERROR") . ': ' . $abook->error . '' ."\n", + 'center' ) + ), + 'center', '', 'width="100%"' ); /* Display the "new address" form again */ abook_create_form($form_url,'editaddr',_("Update address"),_("Update address"),$newdata); @@ -248,6 +247,11 @@ if ($showaddrlist) { /* List addresses */ if (count($alist) > 0) { echo addForm($form_url, 'post'); + if ($abook->add_extra_field) { + $abook_fields = 6; + } else { + $abook_fields = 5; + } while(list($undef,$row) = each($alist)) { /* New table header for each backend */ @@ -258,10 +262,10 @@ if ($showaddrlist) { html_tag( 'td', addSubmit(_("Edit selected"), 'editaddr'). addSubmit(_("Delete selected"), 'deladdr'), - 'center', '', 'colspan="5"' ) + 'center', '', "colspan=\"$abook_fields\"" ) ) . html_tag( 'tr', - html_tag( 'td', ' 
', 'center', '', 'colspan="5"' ) + html_tag( 'td', ' 
', 'center', '', "colspan=\"$abook_fields\"" ) ), 'center' ); echo "\n\n" . @@ -279,20 +283,22 @@ if ($showaddrlist) { 'left', '', 'width="1%"' ) . "\n" . html_tag( 'th', _("Info") . show_abook_sort_button($abook_sort_order, _("sort by info"), 6, 7), - 'left', '', 'width="1%"' ) . "\n", + 'left', '', 'width="1%"' ) . + ($abook->add_extra_field ? html_tag( 'th', ' ','left', '', 'width="1%"'): '') . + "\n", '', $color[9] ) . "\n"; } // Separate different backends with
if($prevbackend > 0) { echo html_tag( 'tr', - html_tag( 'td', "
", 'center', '' ,'colspan="5"' ) + html_tag( 'td', "
", 'center', '' ,"colspan=\"$abook_fields\"" ) ); } // Print backend name - echo html_tag( 'tr', - html_tag( 'td', "\n" . '' . $row['source'] . '' . "\n", 'center', $color[0] ,'colspan="5"' ) + echo html_tag( 'tr', + html_tag( 'td', "\n" . '' . $row['source'] . '' . "\n", 'center', $color[0] ,"colspan=\"$abook_fields\"" ) ); $line = 0; @@ -310,45 +316,54 @@ if ($showaddrlist) { } else { $tr_bgcolor = $color[4]; } + echo html_tag( 'tr', '', '', $tr_bgcolor); + if ($abook->backends[$row['backend']]->writeable) { + echo html_tag( 'td', + '' . + addCheckBox('sel[]', $selected, $row['backend'].':'.$row['nickname']). + '' , + 'center', '', 'valign="top" width="1%"' ); + } else { + echo html_tag( 'td', + ' ' , + 'center', '', 'valign="top" width="1%"' ); + } + echo html_tag( 'td', + ' ' . htmlspecialchars($row['nickname']) . ' ', + 'left', '', 'valign="top" width="1%" style="white-space: nowrap;"' ); + + // different full name display formating for Japanese translation if ($squirrelmail_language == 'ja_JP') { - echo html_tag( 'tr', '', '', $tr_bgcolor); - if ($abook->backends[$row['backend']]->writeable) { - echo html_tag( 'td', - '' . - addCheckBox('sel[]', $selected, $row['backend'].':'.$row['nickname']). - '' , - 'center', '', 'valign="top" width="1%"' ); - } else { - echo html_tag( 'td', - ' ' , - 'center', '', 'valign="top" width="1%"' ); - } - echo html_tag( 'td', ' ' . $row['nickname'] . ' ', 'left', '', 'valign="top" width="1%" style="white-space: nowrap;"' ) . - html_tag( 'td', ' ' . $row['lastname'] . ' ' . $row['firstname'] . ' ', 'left', '', 'valign="top" width="1%" style="white-space: nowrap;"' ) . - html_tag( 'td', '', 'left', '', 'valign="top" width="1%" style="white-space: nowrap;"' ) . ' '; + /* + * translation uses euc-jp character set internally. + * htmlspecialchars() should not break any characters. + */ + echo html_tag( 'td', + ' ' . htmlspecialchars($row['lastname']) . ' ' . htmlspecialchars($row['firstname']) . ' ', + 'left', '', 'valign="top" width="1%" style="white-space: nowrap;"' ); } else { - echo html_tag( 'tr', '', '', $tr_bgcolor); - if ($abook->backends[$row['backend']]->writeable) { - echo html_tag( 'td', - '' . - addCheckBox('sel[]', $selected, $row['backend'] . ':' . $row['nickname']). - '' , - 'center', '', 'valign="top" width="1%"' ); - } else { - echo html_tag( 'td', - ' ' , - 'center', '', 'valign="top" width="1%"' ); - } - echo html_tag( 'td', ' ' . $row['nickname'] . ' ', 'left', '', 'valign="top" width="1%" style="white-space: nowrap;"' ) . - html_tag( 'td', ' ' . $row['name'] . ' ', 'left', '', 'valign="top" width="1%" style="white-space: nowrap;"' ) . - html_tag( 'td', '', 'left', '', 'valign="top" width="1%" style="white-space: nowrap;"' ) . ' '; + echo html_tag( 'td', + ' ' . htmlspecialchars($row['name']) . ' ', + 'left', '', 'valign="top" width="1%" style="white-space: nowrap;"' ); } + + // email address column + echo html_tag( 'td', '', 'left', '', 'valign="top" width="1%" style="white-space: nowrap;"' ) . ' '; $email = $abook->full_address($row); echo makeComposeLink('src/compose.php?send_to='.rawurlencode($email), htmlspecialchars($row['email'])). - ' '."\n". - html_tag( 'td', ' ' . htmlspecialchars($row['label']) . ' ', 'left', '', 'valign="top" width="1%"' ) . - "\n"; + ' '."\n"; + + // info column + echo html_tag( 'td', ' ' . htmlspecialchars($row['label']) . ' ', 'left', '', 'valign="top" width="1%"' ); + + // add extra column if third party backend needs it + if ($abook->add_extra_field) { + echo html_tag( 'td', + ' ' . (isset($row['extra']) ? $row['extra'] : '') . ' ', + 'left', '', 'valign="top" width="1%"' ); + } + echo "\n"; $line++; } echo "" . @@ -361,7 +376,7 @@ if ($showaddrlist) { html_tag( 'td', addSubmit(_("Edit selected"), 'editaddr') . addSubmit(_("Delete selected"), 'deladdr'), - 'center', '', 'colspan="5"' ) + 'center', '', "colspan=\"$abook_fields\"" ) ), 'center' ); } @@ -379,5 +394,5 @@ echo "\n"; echo "\n"; do_hook('addressbook_bottom'); echo "\n\n"; -?> - \ No newline at end of file +$oTemplate->display('footer.tpl'); +?> \ No newline at end of file