make a start with adding labels for html form elements. this aids disabled
[squirrelmail.git] / src / addressbook.php
index 419b73b920d1fe4ffb6616f4e8b83fe2c192930f..f3fb8b1afbdb7bd6366389f70a6e19f008d88883 100644 (file)
@@ -5,7 +5,7 @@
  *
  * 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);
@@ -222,7 +215,7 @@ if (!empty($formerror)) {
             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%"' );
@@ -234,7 +227,7 @@ if ($showaddrlist) {
     /* 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;
     }
 
@@ -284,7 +277,7 @@ if ($showaddrlist) {
                                 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', '&nbsp;','left', '', 'width="1%"'): '') . 
+                                  ($abook->add_extra_field ? html_tag( 'th', '&nbsp;','left', '', 'width="1%"'): '') .
                                 "\n",
                                 '', $color[9] ) . "\n";
                 }
@@ -318,34 +311,26 @@ if ($showaddrlist) {
             }
             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',
                                '&nbsp;' ,
                                'center', '', 'valign="top" width="1%"' );
+                $label1 = $label2 = '';
             }
-            echo html_tag( 'td', 
-                           '&nbsp;' . htmlspecialchars($row['nickname']) . '&nbsp;', 
+            echo html_tag( 'td',
+                           '&nbsp;' . $label1 . htmlspecialchars($row['nickname']) . $label2 . '&nbsp;',
                            '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', 
-                               '&nbsp;' . htmlspecialchars($row['lastname']) . ' ' . htmlspecialchars($row['firstname']) . '&nbsp;',
-                               'left', '', 'valign="top" width="1%" style="white-space: nowrap;"' );
-            } else {
-                echo html_tag( 'td',
-                               '&nbsp;' . htmlspecialchars($row['name']) . '&nbsp;',
-                               'left', '', 'valign="top" width="1%" style="white-space: nowrap;"' );
-            }
+            echo html_tag( 'td',
+                           '&nbsp;' . $label1 . htmlspecialchars($row['name']) . $label2 . '&nbsp;',
+                           '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;"' ) . '&nbsp;';
@@ -359,7 +344,7 @@ if ($showaddrlist) {
 
             // add extra column if third party backend needs it
             if ($abook->add_extra_field) {
-                echo html_tag( 'td', 
+                echo html_tag( 'td',
                                '&nbsp;' . (isset($row['extra']) ? $row['extra'] : '') . '&nbsp;',
                                'left', '', 'valign="top" width="1%"' );
             }
@@ -390,10 +375,9 @@ echo '<a name="AddAddress"></a>' . "\n";
 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