-if ($showaddrlist) {
- /* Get and sort address list */
- $alist = $abook->list_addr();
- if(!is_array($alist)) {
- plain_error_message($abook->error, $color);
- exit;
- }
-
- usort($alist,'alistcmp');
- $prevbackend = -1;
- $headerprinted = false;
-
- echo '<p align=center><a href="#AddAddress">' .
- _("Add address") . "</a></p>\n";
-
- /* List addresses */
- echo '<FORM ACTION="' . $PHP_SELF . '" METHOD="POST">' . "\n";
- while(list($undef,$row) = each($alist)) {
-
- /* New table header for each backend */
- if($prevbackend != $row['backend']) {
- if($prevbackend >= 0) {
- echo '<TR><TD COLSPAN=5 ALIGN=center>' . "\n" .
- '<INPUT TYPE=submit NAME=editaddr VALUE="' .
- _("Edit selected") . "\">\n" .
- '<INPUT TYPE=submit NAME=deladdr VALUE="' .
- _("Delete selected") . "\">\n</tr>\n" .
- '<TR><TD COLSPAN="5" ALIGN=center>' .
- ' <BR></TD></TR></TABLE>' . "\n";
- }
-
- echo '<TABLE WIDTH="95%" COLS=1 ALIGN=CENTER>' . "\n" .
- '<TR><TD BGCOLOR="' . $color[0] . '" ALIGN=CENTER>' . "\n" .
- '<STRONG>' . $row['source'] .
- "</STRONG>\n</TD></TR>\n</TABLE>\n" .
- '<TABLE COLS="5" BORDER="0" CELLPADDING="1" CELLSPACING="0"' .
- ' WIDTH="90%" ALIGN="center">' .
- '<TR BGCOLOR="' . $color[9] .
- '"><TH ALIGN=left WIDTH="1%"> <TH ALIGN=left WIDTH="1%">' .
- _("Nickname") . '<TH ALIGN=left WIDTH="1%">' . _("Name") .
- '<TH ALIGN=left WIDTH="1%">' . _("E-mail") .
- '<TH ALIGN=left WIDTH="%">' . _("Info") . "</TR>\n";
-
- $line = 0;
- $headerprinted = true;
- } /* End of header */
-
- $prevbackend = $row['backend'];
-
- /* Check if this user is selected */
- if(in_array($row['backend'] . ':' . $row['nickname'], $defselected)) {
- $selected = 'CHECKED';
- } else {
- $selected = '';
- }
-
- /* Print one row */
- echo '<TR';
- if ($line % 2) { echo ' bgcolor="' . $color[0]. '"'; }
- echo '><TD VALIGN=top ALIGN=center WIDTH="1%"><SMALL>' .
- '<INPUT TYPE=checkbox ' . $selected . ' NAME="sel[]" VALUE="' .
- $row['backend'] . ':' . $row['nickname'] . '"></SMALL></TD>' .
- '<TD VALIGN=top NOWRAP WIDTH="1%"> ' . $row['nickname'] .
- ' </TD>' .
- '<TD VALIGN=top NOWRAP WIDTH="1%"> ' . $row['name'] .
- ' </TD>',
- '<TD VALIGN=top NOWRAP WIDTH="1%"> ' .
- '<A HREF="compose.php?send_to=' . rawurlencode($row['email']) .
- '">' . $row['email'] . '</A> </TD>'."\n",
- '<TD VALIGN=top WIDTH="1%"> ' . $row['label'] . ' </TD>' .
- "</TR>\n";
- $line++;
+$addresses = array();
+while (list($k, $backend) = each ($abook->backends)) {
+ $a = array();
+ $a['BackendID'] = $backend->bnum;
+ $a['BackendSource'] = $backend->sname;
+ $a['BackendWritable'] = $backend->writeable;
+ $a['Addresses'] = array();
+
+ $alist = $abook->list_addr($backend->bnum);
+
+ /* check return (array with data or boolean false) */
+ if (is_array($alist)) {
+ usort($alist,'alistcmp');
+
+ $a['Addresses'] = formatAddressList($alist);
+
+ $addresses[$backend->bnum] = $a;
+ } else {
+ // list_addr() returns boolean
+ plain_error_message(nl2br(htmlspecialchars($abook->error)));