Only grab comments marked i18n to the template.
[squirrelmail.git] / functions / addressbook.php
index 3408c83ff0e5bb8fb8d446b61b2dc6e360fde12f..36edcb02a9b159e33e74f4223bb4a7d7332bccf3 100644 (file)
@@ -85,7 +85,7 @@ function addressbook_init($showerr = true, $onlylocal = false) {
         }
 
         $r = $abook->add_backend('local_file',array('filename'=>$abook_global_filename,
-                                                    'name' => _("Global address book"),
+                                                    'name' => _("Global Address Book"),
                                                     'detect_writeable' => false,
                                                     'line_length' => $abook_file_line_length,
                                                     'writeable'=> $abook_global_file_writeable,
@@ -107,7 +107,7 @@ function addressbook_init($showerr = true, $onlylocal = false) {
       $r = $abook->add_backend('database',
                                Array('dsn' => $addrbook_global_dsn,
                                      'owner' => 'global',
-                                     'name' => _("Global address book"),
+                                     'name' => _("Global Address Book"),
                                      'writeable' => $addrbook_global_writeable,
                                      'listing' => $addrbook_global_listing,
                                      'table' => $addrbook_global_table));
@@ -130,7 +130,8 @@ function addressbook_init($showerr = true, $onlylocal = false) {
      * in an array and change those values as needed instead of returning
      * the changed values.
      */
-    do_hook('abook_init', $temp=array(&$abook, &$r, &$onlylocal));
+    $temp = array(&$abook, &$r, &$onlylocal);
+    do_hook('abook_init', $temp);
     if (!$r && $showerr) {
         if ($abook_init_error!='') $abook_init_error.="\n";
         $abook_init_error.=_("Error initializing other address books.") . "\n" . $abook->error;
@@ -168,20 +169,29 @@ function addressbook_init($showerr = true, $onlylocal = false) {
 }
 
 /**
- * Display the "new address" form
+ * Constructs the "new address" form
+ *
+ * NOTE!  The form is not closed - the caller
+ *        must add the closing form tag itself.
  *
- * Form is not closed and you must add closing form tag.
  * @since 1.5.1
- * @param string $form_url form action url
- * @param string $name form name
- * @param string $title form title
- * @param string $button form button name
- * @param array $defdata values of form fields
+ *
+ * @param string $form_url Form action url
+ * @param string $name     Form name
+ * @param string $title    Form title
+ * @param string $button   Form button name
+ * @param int    $backend  The current backend being displayed
+ * @param array  $defdata  Values of form fields
+ *
+ * @return string The desired address form display code
+ *
  */
-function abook_create_form($form_url,$name,$title,$button,$defdata=array()) {
+function abook_create_form($form_url, $name, $title, $button,
+                           $backend, $defdata=array()) {
+
     global $oTemplate;
 
-    echo addForm($form_url, 'post', 'f_add');
+    $output = addForm($form_url, 'post', 'f_add');
 
     if ($button == _("Update address")) {
         $edit = true;
@@ -206,8 +216,11 @@ function abook_create_form($form_url,$name,$title,$button,$defdata=array()) {
     $oTemplate->assign('writable_backends', $backends);
     $oTemplate->assign('values', $values);
     $oTemplate->assign('edit', $edit);
+    $oTemplate->assign('current_backend', $backend);
     
-    $oTemplate->display('addrbook_addedit.tpl');
+    $output .= $oTemplate->fetch('addrbook_addedit.tpl');
+
+    return $output;
 }
 
 
@@ -315,13 +328,24 @@ function get_abook_sort() {
 /**
  * This function shows the address book sort button.
  *
- * @param integer $abook_sort_order current sort value
- * @param string $alt_tag alt tag value (string visible to text only browsers)
- * @param integer $Down sort value when list is sorted ascending
- * @param integer $Up sort value when list is sorted descending
+ * @param integer $abook_sort_order Current sort value
+ * @param string  $alt_tag          The alt tag value (string
+ *                                  visible to text only browsers)
+ * @param integer $Down             Sort value when list is sorted
+ *                                  ascending
+ * @param integer $Up               Sort value when list is sorted
+ *                                  descending
+ * @param array   $uri_extra        Any additional parameters to add
+ *                                  to the button's link, as an
+ *                                  associative array of key/value pairs
+ *                                  (OPTIONAL; default none)
+ *
  * @return string html code with sorting images and urls
+ *
  */
-function show_abook_sort_button($abook_sort_order, $alt_tag, $Down, $Up ) {
+function show_abook_sort_button($abook_sort_order, $alt_tag,
+                                $Down, $Up, $uri_extra=array() ) {
+
     global $form_url, $icon_theme_path;
 
      /* Figure out which image we want to use. */
@@ -339,11 +363,17 @@ function show_abook_sort_button($abook_sort_order, $alt_tag, $Down, $Up ) {
         $which = 8;
     }
 
+    $uri = $form_url .'?abook_sort_order=' . $which;
+    foreach ($uri_extra as $key => $value)
+       $uri = set_url_var($uri, $key, $value, FALSE);
+
     /* Now that we have everything figured out, show the actual button. */
-    return '&nbsp;<a href="' . $form_url .'?abook_sort_order=' . $which .
-           '" style="text-decoration:none" title="'.$alt_tag.'">' .
-           getIcon($icon_theme_path, $img, $text_icon, $alt_tag) .
-           '</a>';
+    return create_hyperlink($uri,
+                            getIcon($icon_theme_path, $img, $text_icon, $alt_tag),
+                            '', '', '', '', '',
+                            array('style' => 'text-decoration:none',
+                                  'title' => $alt_tag),
+                            FALSE);
 }
 
 
@@ -398,7 +428,7 @@ class AddressBook {
      * Constructor function.
      */
     function AddressBook() {
-        $this->localbackendname = _("Personal address book");
+        $this->localbackendname = _("Personal Address Book");
     }
 
     /**
@@ -485,15 +515,14 @@ class AddressBook {
      * @return string email address with real name prepended
      */
     function full_address($row) {
-        global $addrsrch_fullname, $data_dir, $username;
-        $prefix = getPref($data_dir, $username, 'addrsrch_fullname');
-        if (($prefix != "" || (isset($addrsrch_fullname) &&
-            $prefix == $addrsrch_fullname)) && $prefix != 'noprefix') {
-            $name = ($prefix == 'nickname' ? $row['nickname'] : $row['name']);
-            return $name . ' <' . trim($row['email']) . '>';
-        } else {
+        global $data_dir, $username;
+        $addrsrch_fullname = getPref($data_dir, $username, 'addrsrch_fullname');
+        if ($addrsrch_fullname == 'fullname')
+            return $row['name'] . ' <' . trim($row['email']) . '>';
+        else if ($addrsrch_fullname == 'nickname')
+            return $row['nickname'] . ' <' . trim($row['email']) . '>';
+        else // "noprefix"
             return trim($row['email']);
-        }
     }
 
     /**
@@ -941,15 +970,13 @@ class addressbook_backend {
      * @since 1.5.2
      */
     function fullname($firstname,$lastname) {
-        /**
-         * i18n: allows to control fullname layout in address book listing
-         * first %s is for first name, second %s is for last name.
-         * Translate it to '%2$s %1$s', if surname must be displayed first in your language.
-         * Please note that variables can be set to empty string and extra formating 
-         * (for example '%2$s, %1$s' as in 'Smith, John') might break. Use it only for 
-         * setting name and surname order. scripts will remove all prepended and appended
-         *  whitespace.
-         */
+        // i18n: allows to control fullname layout in address book listing
+        // first %s is for first name, second %s is for last name.
+        // Translate it to '%2$s %1$s', if surname must be displayed first in your language.
+        // Please note that variables can be set to empty string and extra formating 
+        // (for example '%2$s, %1$s' as in 'Smith, John') might break. Use it only for 
+        // setting name and surname order. scripts will remove all prepended and appended
+        // whitespace.
         return trim(sprintf(dgettext('squirrelmail',"%s %s"),$firstname,$lastname));
     }
 }