*
* 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
* 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;
/**
* Retrieve a list of writable backends
- *
- * @author Steve Brown
* @since 1.5.2
*/
function getWritableBackends () {
return $write;
}
-/**
- * Provides list of writeable backends. Works only when address is added,
- * e.g. $name='addaddr'.
- *
- * NOTE: This function needs to remain during the templating process to maintain
- * some degree of backwards compatability with plugins.
- *
- * @param string $name name of form
- * @return string html formated backend field (select or hidden)
- */
-function list_writable_backends($name) {
- global $color, $abook;
- if ( $name != 'addaddr' ) { return; }
- $writeable_abook = 1;
- if ( $abook->numbackends > 1 ) {
- $backends = $abook->get_backend_list();
- $writeable_abooks=array();
- while (list($undef,$v) = each($backends)) {
- if ($v->writeable) {
- // add each backend to array
- $writeable_abooks[$v->bnum]=$v->sname;
- // save backend number
- $writeable_abook=$v->bnum;
- }
- }
- if (count($writeable_abooks)>1) {
- // we have more than one writeable backend
- $ret=addSelect('backend',$writeable_abooks,null,true);
- return html_tag( 'tr',
- html_tag( 'td', _("Add to:"),'right', $color[4] ) .
- html_tag( 'td', $ret, 'left', $color[4] )) . "\n";
- }
- }
- // Only one backend exists or is writeable.
- return html_tag( 'tr',
- html_tag( 'td',
- addHidden('backend', $writeable_abook),
- 'center', $color[4], 'colspan="2"')) . "\n";
-}
-
/**
* Sort array by the key "name"
*/
* 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 {
* @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']);
- }
}
/**