*
* Manage personal address book.
*
- * @copyright © 1999-2005 The SquirrelMail Project Team
+ * @copyright © 1999-2006 The SquirrelMail Project Team
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @version $Id$
* @package squirrelmail
*/
/**
- * Path for SquirrelMail required files.
- * @ignore
+ * Include the SquirrelMail initialization file.
*/
-define('SM_PATH','../');
+include('../include/init.php');
/** SquirrelMail required files. */
-require_once(SM_PATH . 'include/validate.php');
-require_once(SM_PATH . 'functions/display_messages.php');
+/* address book functions */
require_once(SM_PATH . 'functions/addressbook.php');
+/* form functions */
require_once(SM_PATH . 'functions/forms.php');
/** lets get the global vars we may need */
-sqgetGlobalVar('key', $key, SQ_COOKIE);
-
-sqgetGlobalVar('username', $username, SQ_SESSION);
-sqgetGlobalVar('onetimepad',$onetimepad, SQ_SESSION);
-sqgetGlobalVar('base_uri', $base_uri, SQ_SESSION);
-sqgetGlobalVar('delimiter', $delimiter, SQ_SESSION);
/* From the address form */
sqgetGlobalVar('addaddr', $addaddr, SQ_POST);
$defselected = $sel;
} else {
$abortform = true;
- list($ebackend, $enick) = explode(':', $sel[0]);
+ list($ebackend, $enick) = explode(':', current($sel));
$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);
- echo addHidden('oldnick', $olddata['nickname']).
- addHidden('backend', $olddata['backend']).
- addHidden('doedit', '1').
- '</form>';
+ // Test if $olddata really contains anything and return an error message if it doesn't
+ if (!$olddata) {
+ error_box(nl2br(htmlspecialchars($abook->error)));
+ } else {
+ /* Display the "new address" form */
+ abook_create_form($form_url,'editaddr',_("Update address"),_("Update address"),$olddata);
+ echo addHidden('oldnick', $olddata['nickname']).
+ addHidden('backend', $olddata['backend']).
+ addHidden('doedit', '1').
+ '</form>';
+ }
}
} elseif ($doedit == 1) {
/* Stage two: Write new data */
html_tag( 'tr',
html_tag( 'td',
"\n". '<br /><strong><font color="' . $color[2] .
- '">' . _("ERROR") . ': ' . $formerror . '</font></strong>' ."\n",
+ '">' . _("ERROR") . ': ' . nl2br(htmlspecialchars($formerror)) . '</font></strong>' ."\n",
'center' )
),
'center', '', 'width="100%"' );
/* Get and sort address list */
$alist = $abook->list_addr();
if(!is_array($alist)) {
- plain_error_message($abook->error, $color);
+ plain_error_message(nl2br(htmlspecialchars($abook->error)), $color);
exit;
}
html_tag( 'th', _("Info") .
show_abook_sort_button($abook_sort_order, _("sort by info"), 6, 7),
'left', '', 'width="1%"' ) .
- ($abook->add_extra_field ? html_tag( 'th', ' ','left', '', 'width="1%"'): '') .
+ ($abook->add_extra_field ? html_tag( 'th', ' ','left', '', 'width="1%"'): '') .
"\n",
'', $color[9] ) . "\n";
}
}
echo html_tag( 'tr', '', '', $tr_bgcolor);
if ($abook->backends[$row['backend']]->writeable) {
+ $id = $row['backend'].':'.$row['nickname'];
echo html_tag( 'td',
'<small>' .
- addCheckBox('sel[]', $selected, $row['backend'].':'.$row['nickname']).
+ addCheckBox("sel[$id]", $selected, $id).
'</small>' ,
'center', '', 'valign="top" width="1%"' );
+ $label1 = '<label for="sel_'.$id.'_">'; $label2='</label>';
} else {
echo html_tag( 'td',
' ' ,
'center', '', 'valign="top" width="1%"' );
+ $label1 = $label2 = '';
}
- echo html_tag( 'td',
- ' ' . htmlspecialchars($row['nickname']) . ' ',
+ echo html_tag( 'td',
+ ' ' . $label1 . htmlspecialchars($row['nickname']) . $label2 . ' ',
'left', '', 'valign="top" width="1%" style="white-space: nowrap;"' );
- // different full name display formating for Japanese translation
- if ($squirrelmail_language == 'ja_JP') {
- /*
- * 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( 'td',
- ' ' . htmlspecialchars($row['name']) . ' ',
- 'left', '', 'valign="top" width="1%" style="white-space: nowrap;"' );
- }
+ echo html_tag( 'td',
+ ' ' . $label1 . htmlspecialchars($row['name']) . $label2 . ' ',
+ '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;"' ) . ' ';
// add extra column if third party backend needs it
if ($abook->add_extra_field) {
- echo html_tag( 'td',
+ echo html_tag( 'td',
' ' . (isset($row['extra']) ? $row['extra'] : '') . ' ',
'left', '', 'valign="top" width="1%"' );
}
abook_create_form($form_url,'addaddr',_("Add to address book"),_("Add address"),$defdata);
echo "</form>\n";
-/* Add hook for anything that wants on the bottom */
+/* Hook for extra address book blocks */
echo "<!-- start of addressbook_bottom hook-->\n";
do_hook('addressbook_bottom');
echo "\n<!-- end of addressbook_bottom hook-->\n";
-
+$oTemplate->display('footer.tpl');
?>
-</body></html>
\ No newline at end of file