-/*****************************************************************/
-/*** THIS FILE NEEDS TO HAVE ITS FORMATTING FIXED!!! ***/
-/*** PLEASE DO SO AND REMOVE THIS COMMENT SECTION. ***/
-/*** + Base level indent should begin at left margin, as ***/
-/*** the require_once below looks. ***/
-/*** + All identation should consist of four space blocks ***/
-/*** + Tab characters are evil. ***/
-/*** + all comments should use "slash-star ... star-slash" ***/
-/*** style -- no pound characters, no slash-slash style ***/
-/*** + FLOW CONTROL STATEMENTS (if, while, etc) SHOULD ***/
-/*** ALWAYS USE { AND } CHARACTERS!!! ***/
-/*** + Please use ' instead of ", when possible. Note " ***/
-/*** should always be used in _( ) function calls. ***/
-/*** Thank you for your help making the SM code more readable. ***/
-/*****************************************************************/
-
-require_once('../src/validate.php');
-require_once('../functions/array.php');
-require_once('../functions/display_messages.php');
-require_once('../functions/addressbook.php');
-
- // Sort array by the key "name"
- function alistcmp($a,$b) {
- if($a['backend'] > $b['backend'])
- return 1;
- else if($a['backend'] < $b['backend'])
- return -1;
-
- return (strtolower($a['name']) > strtolower($b['name'])) ? 1 : -1;
- }
-
- // Output form to add and modify address data
- function address_form($name, $submittext, $values = array()) {
- global $color;
- echo "<TABLE BORDER=0 CELLPADDING=1 COLS=2 WIDTH=\"90%\" ALIGN=center>\n" .
- "<TR><TD BGCOLOR=\"$color[4]\" ALIGN=RIGHT>" .
- _("Nickname") . ' : </TD>'.
- "<TD BGCOLOR=\"$color[4]\" ALIGN=left>".
- "<INPUT NAME=\"$name[nickname]\" SIZE=15 VALUE=\"";
- if (isset($values['nickname']))
- echo htmlspecialchars($values['nickname']);
- echo '">'.
- " <SMALL>" . _("Must be unique") . "</SMALL></TD></TR>\n";
- printf("<TR><TD BGCOLOR=\"$color[4]\" ALIGN=RIGHT>%s:</TD>",
- _("E-mail address"));
- printf("<TD BGCOLOR=\"%s\" ALIGN=left>".
- "<INPUT NAME=\"%s[email]\" SIZE=45 VALUE=\"%s\"></TD></TR>\n",
- $color[4], $name,
- (isset($values["email"]))?
- htmlspecialchars($values["email"]):"");
- printf("<TR><TD BGCOLOR=\"$color[4]\" ALIGN=RIGHT>%s:</TD>",
- _("First name"));
- printf("<TD BGCOLOR=\"%s\" ALIGN=left>".
- "<INPUT NAME=\"%s[firstname]\" SIZE=45 VALUE=\"%s\"></TD></TR>\n",
- $color[4], $name,
- (isset($values["firstname"]))?
- htmlspecialchars($values["firstname"]):"");
- printf("<TR><TD BGCOLOR=\"$color[4]\" ALIGN=RIGHT>%s:</TD>",
- _("Last name"));
- printf("<TD BGCOLOR=\"%s\" ALIGN=left>".
- "<INPUT NAME=\"%s[lastname]\" SIZE=45 VALUE=\"%s\"></TD></TR>\n",
- $color[4], $name,
- (isset($values["lastname"]))?
- htmlspecialchars($values["lastname"]):"");
- printf("<TR><TD BGCOLOR=\"$color[4]\" ALIGN=RIGHT>%s:</TD>",
- _("Additional info"));
- printf("<TD BGCOLOR=\"%s\" ALIGN=left>".
- "<INPUT NAME=\"%s[label]\" SIZE=45 VALUE=\"%s\"></TD></TR>\n",
- $color[4], $name,
- (isset($values["label"]))?
- htmlspecialchars($values["label"]):"");
-
- printf("<TR><TD COLSPAN=2 BGCOLOR=\"%s\" ALIGN=center>\n".
- "<INPUT TYPE=submit NAME=\"%s[SUBMIT]\" VALUE=\"%s\"></TD></TR>\n",
- $color[4], $name, $submittext);
-
- print "</TABLE>\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();
-
-
- // Handle user's actions
- if($REQUEST_METHOD == 'POST') {
-
- // ***********************************************
- // Add new address
- // ***********************************************
- if(!empty($addaddr['nickname'])) {
-
- $r = $abook->add($addaddr, $abook->localbackend);
+/**
+ * Path for SquirrelMail required files.
+ * @ignore
+ */
+define('SM_PATH','../');
+
+/** SquirrelMail required files. */
+require_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');
+
+/** 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);
+sqgetGlobalVar('editaddr', $editaddr, SQ_POST);
+sqgetGlobalVar('deladdr', $deladdr, SQ_POST);
+sqgetGlobalVar('sel', $sel, SQ_POST);
+sqgetGlobalVar('oldnick', $oldnick, SQ_POST);
+sqgetGlobalVar('backend', $backend, SQ_POST);
+sqgetGlobalVar('doedit', $doedit, SQ_POST);
+
+/* Get sorting order */
+$abook_sort_order = get_abook_sort();
+
+/* Create page header before addressbook_init in order to display error messages correctly. */
+displayPageHeader($color, 'None');
+
+/* Open addressbook with error messages on.
+ remote backends (LDAP) are enabled because they can be used. (list_addr function)
+*/
+$abook = addressbook_init(true, false);
+
+// FIXME: do we have to stop use of address book, when localbackend is not present.
+if($abook->localbackend == 0) {
+ plain_error_message(
+ _("No personal address book is defined. Contact administrator."),
+ $color);
+ exit();
+}
+
+
+$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 (isset($addaddr)) {
+ if (isset($backend)) {
+ $r = $abook->add($addaddr, $backend);
+ } else {
+ $r = $abook->add($addaddr, $abook->localbackend);
+ }