Change message/rfc822 save file extension
[squirrelmail.git] / functions / addressbook.php
index 577571859a5b6d57ff470ef0f306c32fe7c61b15..b65f993b667d6a9630a8360957f3433d7536865b 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Functions require SM_PATH and support of forms.php functions
  *
- * @copyright © 1999-2006 The SquirrelMail Project Team
+ * @copyright © 1999-2007 The SquirrelMail Project Team
  * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  * @version $Id$
  * @package squirrelmail
@@ -125,10 +125,13 @@ function addressbook_init($showerr = true, $onlylocal = false) {
      * Since 1.5.2 hook sends third ($onlylocal) argument to address book
      * plugins in order to allow detection of local address book init.
      * @since 1.5.1 and 1.4.5
+     * Since 1.5.2, the plugin arguments are passed inside an array
+     * and by reference, so plugins hooking in here need to accept arguments
+     * in an array and change those values as needed instead of returning
+     * the changed values.
      */
-    $hookReturn = do_hook('abook_init', $abook, $r, $onlylocal);
-    $abook = $hookReturn[1];
-    $r = $hookReturn[2];
+    $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;
@@ -441,7 +444,8 @@ class AddressBook {
               * NB: Because the backend files are included from within this function they DO NOT have access to
               * vars in the global scope. This function is the global scope for the included backend !!!
               */
-            $aBackend = do_hook('abook_add_class');
+            global $null;
+            $aBackend = do_hook('abook_add_class', $null);
             if (isset($aBackend) && is_array($aBackend) && isset($aBackend[$backend])) {
                 require_once($aBackend[$backend]);
             } else {
@@ -482,15 +486,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']);
-        }
     }
 
     /**