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
What is in the RoundCube error log?
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, '/') == 0 && substr($user, -1) == '/') {
if (preg_match($user, $_SESSION['username']))
return false;
}
elseif ($user == $_SESSION['username'])
return false;
}
}
return true;
}
}
?>
Best guess is that the plugin was built for a different version of Roundcube than what you are using.
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