Roundcube Community Forum

 

installing Global address list

Started by iPenguin02, December 29, 2012, 02:07:49 AM

Previous topic - Next topic

iPenguin02

I'm trying to install a global address list. when i do everything the read me says it gives me a Server Error! (Internal Server Error)

Heres how i have everything set up tell me if i'm doing something wrong.

In my config/main.inc.php
$rcmail_config['plugins'] = array('globaladdressbook');

In plugins/globaladdressbook/config.ini.php
<?php

/**
 * GlobalAddressbook configuration file
 */

// the name of the dummy which holds the global address book, if the user does not exist it will be created
// the name can contain the following macros that will be expanded as follows:
//      %d is replaced with the domain part of the username (if the username is an email address or default mail domain if not)
//      %h is replaced with the imap host (from the session info)
// eg. to create one global address book per domain: global_addressbook@%d
$rcmail_config['globaladdressbook_user'] = '[global_addressbook_user]';

// make global address book read only
$rcmail_config['globaladdressbook_readonly'] = true;

// allow groups in global address book
$rcmail_config['globaladdressbook_groups'] = true;

// global address book admin user
// admin user(s) can always add/edit/delete entries, overrides readonly
// either a single username, an array of usernames, or a regular expression, see README for more info
$rcmail_config['globaladdressbook_admin'] = '[email protected]';

// show addresses from the global address book in the auto complete menu when composing an email
$rcmail_config['globaladdressbook_autocomplete'] = true;

?>


I didn't touch the globaladdressbook.php
I did as told plugged in globaladdressbook into the first config then edited the main.ini.php in the globaladdressbook folder located inside plugins

please help me

SKaero


iPenguin02

logs/error
[29-Dec-2012 19:52:25 America/New_York] PHP Fatal error:  Class 'rcube' not found in /home/ipenguin/The-Exiles.net/Mail/plugins/globaladdressbook/globaladdressbook.php on line 24
[29-Dec-2012 19:52:27 America/New_York] PHP Fatal error:  Class 'rcube' not found in /home/ipenguin/The-Exiles.net/Mail/plugins/globaladdressbook/globaladdressbook.php on line 24
[29-Dec-2012 19:52:27 America/New_York] PHP Fatal error:  Class 'rcube' not found in /home/ipenguin/The-Exiles.net/Mail/plugins/globaladdressbook/globaladdressbook.php on line 24



This is line 24
$rcmail = rcube::get_instance();

Heres all of globaladdressbook.php
<?php

/**
 * GlobalAddressbook
 *
 * Plugin to add a global address book
 *
 * @version @package_version@
 * @author Philip Weir
 */
class globaladdressbook extends rcube_plugin
{
public $task 'mail|addressbook|settings|dummy';
private $abook_id 'global';
private $readonly;
private $groups;
private $name;
private $user_id;
private $user_name;
private $host 'localhost';

public function init()
{
$rcmail rcube::get_instance();
$this->load_config();
$this->add_texts('localization/');

$this->user_name $rcmail->config->get('globaladdressbook_user');
$this->user_name str_replace('%d'$rcmail->user->get_username('domain'), $this->user_name);
$this->user_name str_replace('%h'$_SESSION['storage_host'], $this->user_name);
$this->readonly $this->_is_readonly();
$this->groups $rcmail->config->get('globaladdressbook_groups'false);
$this->name $this->gettext('globaladdressbook');

// check if the global address book user exists
if (!($user rcube_user::query($this->user_name$this->host))) {
// this action overrides the current user information so make a copy and then restore it
$cur_user $rcmail->user;
$user rcube_user::create($this->user_name$this->host);
$rcmail->user $cur_user;

// prevent new_user_dialog plugin from triggering
$_SESSION['plugin.newuserdialog'] = false;
}

$this->user_id $user->ID;

// use this address book for autocompletion queries
if ($rcmail->config->get('globaladdressbook_autocomplete')) {
$sources $rcmail->config->get('autocomplete_addressbooks', array('sql'));
if (!in_array($this->abook_id$sources)) {
$sources[] = $this->abook_id;
$rcmail->config->set('autocomplete_addressbooks'$sources);
}
}

$this->add_hook('addressbooks_list', array($this'address_sources'));
$this->add_hook('addressbook_get', array($this'get_address_book'));
}

public function address_sources($args)
{
$args['sources'][$this->abook_id] = array('id' => $this->abook_id'name' => $this->name'readonly' => $this->readonly'groups' => $this->groups);
return $args;
}

public function get_address_book($args)
{
if ($args['id'] === $this->abook_id) {
$args['instance'] = new rcube_contacts(rcube::get_instance()->db$this->user_id);
$args['instance']->readonly $this->readonly;
$args['instance']->groups $this->groups;
$args['instance']->name $this->name;
}

return $args;
}

private function _is_readonly()
{
$rcmail rcube::get_instance();

if (!$rcmail->config->get('globaladdressbook_readonly'))
return false;

if ($admin $rcmail->config->get('globaladdressbook_admin')) {
if (!is_array($admin)) $admin = array($admin);

foreach ($admin as $user) {
if (strpos($user'/') == && substr($user, -1) == '/') {
if (preg_match($user$_SESSION['username']))
return false;
}
elseif ($user == $_SESSION['username'])
return false;
}
}

return true;
}
}

?>



ABerglund

Best guess is that the plugin was built for a different version of Roundcube than what you are using.
Arne Berglund
SysAdmin, Internet Services
Lane Education Service District
Eugene, OR, USA

JohnDoh

ABerglund is right, you need to download the right version. You can find it here https://github.com/JohnDoh/Roundcube-Plugin-Global-Address-Book/tags
Roundcube Plugins: Contextmenu, SpamAssassin Prefs, and more...