Детальная настройка Roundcube-Plugin-Global-Address-Book Globaladdressbook plugin во FreeBSD

Ну что же встала вот такая задача по организации , надо заметить, абсолютно общей адресной книги для самой нормальной, бесплатной и модной WEB-морды ROUNDCUBE.

Для полного понимания, ROUNDCUBE  валяется сверху над POSTFIX+COURIERIMAP+SPAMASSASSIN. И нюхает он это через 143 и 25 порты на lo0 (127.0.0.1)

Ну как бы выбирать, то особо и не из чего. Есть тока вот ето:

— ботва с LDAP;
— GlobalAddressBook плагин.

LDAP вещь великая, но пользаков научить вбивать контакты через phpldapAdmin — проще здохнуть, т.к. контакты почтовые и их кажный день может быть много-много. Для каталога пользователей LDAP подходит, там такой текучки нет, а вот для контактов почты, увы нет. Хотя с другой стороны, все настраивается просто без шаманства, но надо еще LDAP подымать или AD в венде засерать ‘этими контактами. Короче неудобно енто.

Второй вариант как-то больше приглянулси в плане удобств разных. Ну например: у всех одын книга, все ее могут править в группе «Глобальные», да еще и персональные контакты никто не запрещает заводить. Причем все просто делается прямо в WEB-морде. И главное, што поддерживается мегаимпорт в бодром формате VCARD из любых подлых WEB-морд gmail’ов, mail.ru, ya.ru и т.п. Это обстоятельство крайне категорично упрощает задачу, главное чтоб формат VCARDa снюхался и там и там.

Задача, думаю, ястна, приступим к воплощению задуманного.

Первым делом нуна оттопырить плаген де-нить. Он поддерживается на сорс-форже чем-то навроде порта во FreeBSD, так что лезем туды и скачиваем его как угодно, мне проще архивом было слить. Там для этого кнопка ZIP имеется.
https://github.com/JohnDoh/Roundcube-Plugin-Global-Address-Book/
Распаковываем и заливаем содержимое плагина на сервер, предварительно создав папку /usr/local/www/roundcube/plugins/globaladdressbook
Залить просто, бесплатно и, ну очень удобно можно при помощи утилы WinSCP по протоколу sftp (22 порт).

Плагин распаковали, теперь дайте нужные разрешения внутри папки, обычно root’у все, остальным токо читкать да пускать. Этого должно хватить.

Переходим к настройке. В основном файле /usr/local/www/roundcube/config/main.inc.php надобно объявить, что плагин в теме и его надо юзать
Примерно так:
$rcmail_config[‘plugins’] = array(globaladdressbook);
Бежим по конфигу вниз, ищем секцию PLUGINS и изменяем нужное значение.

// Enable DNS checking for e-mail address validation
$rcmail_config['email_dns_check'] = false;

// ----------------------------------
// PLUGINS
// ----------------------------------

// List of active plugins (in plugins/ directory)
$rcmail_config['plugins'] = array(globaladdressbook);

// ----------------------------------
// USER INTERFACE
// ----------------------------------

// default messages sort column. Use empty value for default server's sorting,
// or 'arrival', 'date', 'subject', 'from', 'to', 'fromto', 'size', 'cc'
$rcmail_config['message_sort_col'] = '';

Кстати, если у Вас другие плагины надобно задействовать, то они тупо перечисляются в скобках через запятую и пробел, а имена плагинов берутся одинокими кавычками, например так:
$rcmail_config[‘plugins’] = array(‘additional_message_headers’, ‘archive’);
Теперь чешем в папку с плагином и там превращаем файл config.inc.php.dist в config.inc.php

cd /usr/local/www/roundcube/plugins/globaladdressbook/
cp ./config.inc.php.dist ./config.inc.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@%d]';

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

// 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'] = null;

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

?>

Чтобы пользователи могли менять контакты и добивать все как один их в общей список ставим $rcmail_config[‘globaladdressbook_readonly’] = false;
Для кого будет отображаться список глобальных контактов $rcmail_config[‘globaladdressbook_user’] = ‘[global_addressbook@%d]’;
В нашем случае весь домен, а точнее любой почтовый ящик домена будет видеть этот глобальный список.
Остальное не принципиально, кому надо разберутся.

Все вроде сделано и должно работать, быстро бежим и рестартуем apache

apachectl restart

и открываем Roundcube, а там, что там, да там и именно там одно большое НИ-ЧЕ-ГО. Тупо белый экран, если дебуг и вывал его на страницу включен, то будет сыпать ошибками. Если не сыплет ошибастыми, чешем сюды и открываем следующий файл, куда складываются обшибки: /usr/local/www/roundcube/logs/errors
И что же мы тама видим:

[17-May-2013 22:43:53 Asia/Vladivostok] PHP Fatal error:  Class 'rcube' not found in /usr/local/www/roundcube/plugins/globaladdressbook/globaladdressbook.php on line 24
[17-May-2013 22:44:21 Asia/Vladivostok] PHP Fatal error:  Class 'rcube' not found in /usr/local/www/roundcube/plugins/globaladdressbook/globaladdressbook.php on line 24

Странно, но ругается на значение «rcube». Обрыл кучу инета по этому поводу и самый внятный ответ был такой:
идем в файл /usr/local/www/roundcube/plugins/globaladdressbook/globaladdressbook.php И там, тупо, везде, где встречается выражение «rcube::get_instance», надобно заменить словечко «rcube» на «rcmail». В итоге файл примет вот примерно такой вид, лишнее опущено:

...................................
 $rcmail = rcmail::get_instance();
                $this->load_config();
                $this->add_texts('localization/');

            $this->user_name = $rcmail->config->get('globaladdressbook_user');
....................................          
        {
                if ($args['id'] === $this->abook_id) {
                      $args['instance'] = new rcube_contacts(rcmail::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 = rcmail::get_instance();

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

 ....................................

И вот теперь, наконец-та, плагин заработал как ему, собстна, и подобает.
Для чистоты эксперимента, можно еще разок апача рестартнуть указанным выше способом. Но должно и так работать.

Дальше идем в WEB-морду RoundCube, логонимся любой учеткой в этом почтовом домене и в контактах видим «Глобальные адреса».
Дальше кнопкой «импорт» тянем файл *.vcard с контактами откуда-нить и наслаждаемся одной общей книгою для всех пользователей этого почтового домена.

Вроде ничего сверхъестественного, если разобраться. За сим откланяюсь.

Детальная настройка Roundcube-Plugin-Global-Address-Book Globaladdressbook plugin во FreeBSD: 1 комментарий

  1. Уведомление: tamoxifen

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

CAPTCHA изображение

*