PHPGroupWare (далее "PGW") - сравнительно новое приложение, предназначенное для совместной работы над проектами (в том числе, когда разработчики географически удалены друг от друга). По-английски это называется "multi-user groupware suite". Основная идея заключается в том, что несколько человек по ходу работы над проектом иногда заходят на сайт типа www.youroffice.ru/pgw и отмечают что уже сделано, что еще планируется сделать, в какие сроки, насколько важна та или иная часть проекта, обмениваются сообщениями в форуме, читают новости. При этом руководитель проекта получает возможность контролировать процесс. Также в системе предусмотрены некие общие сервисы (email, news, файловый архив).
Особенностью PGW по сравнению с другими продуктами этой категории (обычно упоминают MS Exchange) является тот факт, что он полностью реализован на PHP (+ MySql либо Postgres), имеет web интерфейс, возможность написания собственных дополнительных модулей (используя документированный API), свободно доступен под GNU лицензией.
Различные варианты web интерфейса PGW (default, verdilak, id_society, justweb).
Каждый модуль представлен иконкой (строчкой) общего меню системы. Например Calendar, ToDoList, Manual, Notes, AddressBook.
На данный момент в PGW входят следующие модули (любой из них можно сделать "главным" - он будет запускаться при входе в систему):
Позволяет отмечать события, включая название, описание, приоритет, начальную и конечную дату/время, категорию, участников (Participants) - из числа пользователей системы.
Участники события могут подтвердить свое участие - для этого предусмотрены состояния:
"Подтверждаю" (Accepted), "Отказываюсь" (Rejected),
"Пробую" (Tentative), "Нет ответа" (No response).
События можно пометить повторяющимися (ежедневно, еженедельно, ежемесячно, ежегодно).
Если событие по времени пересекается с уже введенным - выдается предупреждение (которое можно игнорировать).
Введенные события отображаются в виде календаря на требуемый промежуток времени: день, неделю, месяц, год.
Взависимости от выбранного промежутка - по-разному (текстом, цветом, рамкой вокруг даты).
Есть возможность показать только личные события (фильтр), вывести календарь в пригодном для печати на принтере виде. Предусмотрен поиск.
Через модуль Admin можно ввести даты праздников которые будут автоматически отмечаться в календаре.
С практической точки зрения Календарь позволяет планировать события (указывая
описание, промежуток времени) с поименным или групповым указанием
их участников. События могут пересекаться по времени. События видны всем, кто отмечен как участник данного события.
События можно редактировать и удалять, но не всем, а по некоей логике суть которой
мне постичь не удалось.
Позволяет планировать дела (todo) составляя их список и помечая для каждого срочность (Urgency), начальную и конечную дату, завершенность (в процентах), категорию. Список может быть отсортирован по одному из признаков.
Внутри дело может разбиваться на дела второго уровня (sub) -
"этапы".
Также есть поиск.
Можно посмотреть "View Matrix of actual Month" - как распределяются все дела по дням текущего месяца (срочность выделяется цветом, видны пересечения дел по времени).
Серьезным недостатком являются затруднения с передачей дел от одного пользователя к другому. Хотя через Preferences можно сделать список своих дел доступным другому пользователю (или группе), однако, к примеру, "View Matrix of actual Month" будет работать только у пользователя который создал список.
Печально, что между Календарем и Списком дел нет связи. Изменения в Списке дел не отражаются в Календаре (равно как и наоборот). Это сильно ограничивает возможности по общей оценке использования времени, состояния работ.
Адресная книга. В числе прочего (множество полей для каждого человека) позволяет экспорт и импорт записей
(в форматах Netscape, Outlook, Palm Desktop). Каждая запись может быть привязана к выбранной категории.
Есть также поиск и фильтры.
Простая записная книжка. Записки могут быть привязаны к выбранной категории. Дата записки проставляется автоматически. Есть поиск.
Общими для перечисленных приложений (Calendar, ToDo List, Notes, Address Book) являются понятия:
Категория (Category) - список категорий, определяется через модуль Admin. Поддерживаются вложенные категории (для каждой можно указать предка и потомка). Существуют глобальные категории и категории локальные для каждого модуля.
На практике можно использовать категории для разделения данных и записей при работе по нескольким проектам.
Приоритет (Priority, Urgency) - обычный, низкий, высокий (Normal, Low, High).
Private (Личное) - если заметка/событие отмечено как Личное, оно не показывается другим пользователям. Обычно предоставляется возможность фильтровать выводимые события/дела по этому признаку (например - показывать только личные).
Организует "файловую систему" с разграничением доступа пользователей PGW к файлам. Операции: Upload, Download, Create, Edit, Copy, Delete, Rename.
Предназначен для установки глобальных параметров и для настройки конкретных модулей. Доступен только администратору.
Сюда, в частности, входит:
Добавление/редактирование пользователей (перечисление доступных им модулей, принадлежность к группе, дата после которой пользователь становится неактивным).
Добавление/редактирование групп (перечисление модулей доступных пользователям в данной группе, помещение пользователей в выбранную группу).
Добавление/редактирование модулей (имя, заголовок, статус, где должна находится иконка, возможен ли анонимный доступ к модулю).
Добавление/редактирование категорий.
Список текущих пользователей, статистика по работе пользователей в системе (когда, кто и сколько пользовался системой).
и другое..
Предназначены для изменения настроек интерфейса и настройки модулей под текущего пользователя.
В частности позволяет: изменить пароль, формат даты, язык, вид интерфейса.
Показывать меню в виде иконок и/или текста.
Выбрать интерфейс/шаблон из предлагаемых (default, justweb, verdilak, idsociety), цвета и шрифты.
Ограничение/разрешение доступа к своим данным других пользователей.
Кроме того, есть еще два-три десятка модулей из которых можно упомянуть:
Bookmarks, BookKeeping, Chat, Forum, Headlines, EMail, NNTP, Polls, Wap, Weather.
Большинство из них требует дополнительной установки (помимо установки самого PGW).
Об этом следует сказать особо. PGW является многоязычным.
Текстовые сообщения, меню и т.п. вынесены в отдельные файлы, которые при необходимости можно перевести на русский язык.
Можно также установить нужный формат отображения
даты/времени, национальную денежную единицу, часовой пояс.
По умолчанию в PGW включена поддержка English/American. Чтобы добавить поддержку русского языка, нужно произвести как минимум следующие действия:
До создания таблиц (то есть, до шага N1 установки PGW) необходимо в файле setup/sql/common_default_records.inc.php заменить:
@$phpgw_setup->db->query("INSERT INTO languages (lang_id, lang_name, available) values ('ru','Russian','No')");
на:
@$phpgw_setup->db->query("INSERT INTO languages (lang_id, lang_name, available) values ('ru','Russian','Yes')");
и создать файл /setup/phpgw_ru.lang из одной строчки:
charset#common#ru#windows-1251
(# - табуляция)
Затем, после создания таблиц, на шаге N3 (language management) нажать "Manage Languages", пометить "Russian", нажать "Install".
И уже в Preferences для данного пользователя выбрать язык "Russian".
Такие действия позволят использовать русские буквы в формах, однако интерфейс останется английским. В перспективе кто-нибудь, вероятно, его переведет (для этого в файле /setup/phpgw_ru.lang нужно перечислить соответствие русских слов английским ключевым словам (см. /setup/phpgw_en.lang и другие *.lang файлы).
Если перевод для какого-либо ключевого слова отсутствует, то на экране отображается само это слово (английское) с символом '*' в конце.
В PGW существует документированная возможность написания собственных модулей. Насколько можно понять из API, обмен данными между приложениями не предусмотрен. Однако модулю доступны ряд функций и переменных которые, к примеру, позволяют:
- Вывести стандартное меню PGW;
- Узнать права доступа и другую информацию о текущем пользователе, и/или группе;
- Разместить в Preferences и Admin блок относящийся к собственному модулю;
- Осуществлять доступ к базе данных, файловой системе, управление сессиями;
Можно отметить, что в PGW поддерживается шифрование через библиотеку mcrypt;
Появились первые сторонние разработки модулей к PGW. Например SkyBoard - http://www.tms-px.co.jp/
Перечислю недостатки, поскольку плюсы достаточно очевидны. Итак:
1.Слабая логическая связь модулей между собой - они больше напоминают независимые приложения вокруг ядра, предоставляющего некий набор сервисов. В результате, руководителю/администратору затруднительно получить общую информацию о ходе работ. По-видимому, система создавалась в первую очередь для удобства отдельных разработчиков, а не для контроля над их работой.
2.Почти полное отсутствие документации.
3.Периодически возникают ситуации обработка которых не предусмотрена (выдаются PHP ошибки).
Учитывая, что это лишь версия 0.9.12, можно надеяться, что проблемы (2) и (3) будут решены. Однако (1) - скорее идея, нежели недоработка. Конечно, кое-то можно сделать написав собственные модули.
Кстати, на www.hotscripts.com PGW оценивают как 4.3 из 5 баллов.