О плагине
Плагин предназначен привязки процессов к темам форума PHPBB с возможностью изменения статуса процессов по появлению новых сообщений в теме.
Конфигурация
Каждый интегрируемый форум должен быть настроен отдельным типом сообщения. Пример настройки:
messageType.<id>.title=<title> messageType.<id>.class=ru.bgcrm.plugin.phpbb.dao.MessageTypeForumPost messageType.<id>.userNameParamId=<userParamId> messageType.<id>.topicMark=<markText> messageType.<id>.url=<forumUrl> messageType.<id>.db.driver=com.mysql.jdbc.Driver messageType.<id>.db.url=<jdbcUrl> messageType.<id>.db.user=<jdbcUser> messageType.<id>.db.pswd=<jdbcPswd>
Параметры, отличные от прочих типов сообщений:
- userParamId - код параметра пользователя в BGCRM, в котором указан пользователь форума, необходим для определения, кого оповещать о новых сообщениях;
- markText - строка, добавляемая в конце наименований тем форума, для отметки их связи с BGCRM;
- forumUrl - URL форума, необходим для генерации корректной ссылки в сообщении, позволяющей быстро перейти в тему форума из интерфейса BGCRM;
- jdbcUrl, jdbcUser, jdbcPswd - параметры подключения к БД форума с правами SELECT, UPDATE.
Пример конфигурации:
messageType.7.title=Форум BiTel messageType.7.class=ru.bgcrm.plugin.phpbb.dao.MessageTypeForumPost messageType.7.userNameParamId=30 messageType.7.topicMark= (CRM) messageType.7.url=http://forum.bitel.ru messageType.7.db.driver=com.mysql.jdbc.Driver messageType.7.db.url=jdbc:mysql://sql.bgbilling.ru/forum messageType.7.db.user=xxxx messageType.7.db.pswd=xxxx
В конфигурации сервера.
# форум phpbb:linkParamId=<paramId> phpbb:topicMark=<topicMark> phpbb.forum.bitel.url=<url> # дополнительные необязательные параметры phpbb:userNameParamId=<userNameParamId>
Где:
- <paramId> - код текстового параметра процесса, содержащего ссылку на тему форума;
- <topicMark> - строка, помечающая тему форума как отслеживаемую в CRM;
- <url> - URL форума;
- <userNameParamId> - код текстового параметра пользователя, содержащего логин пользователя на форуме.
Возможна интеграция с несколькими форумами, для каждого из них должна быть добавлена запись:
# параметры подключения к БД PHPBB phpbb:forum.<forumId>.db.driver=com.mysql.jdbc.Driver phpbb:forum.<forumId>.db.url=<dbUrl> phpbb:forum.<forumId>.db.user=<dbUser> phpbb:forum.<forumId>.db.pswd=<dbPswd>
Где:
- <forumId> - уникальный строковый идентификатор;
- <dbUrl> - код текстового параметра процесса, содержащего ссылку на тему форума;
- <topicMark> - строка, помечающая тему форума как отслеживаемую в CRM;
- <dbUrl> - URL для подключения к БД форума;
- <dbUser> - пользователь с правами на чтение для подключения к БД форума;
- <dbPswd> - пароль пользователя для подключения к БД форума.
Пример конфигурации:
phpbb:linkParamId=20 phpbb:topicMark= (CRM) phpbb:forum.bitel.url=forum.bitel.ru phpbb:forum.bitel.db.driver=com.mysql.jdbc.Driver phpbb:forum.bitel.db.url=jdbc:mysql://bgbilling.ru:3306/forum phpbb:forum.bitel.db.user=forum phpbb:forum.bitel.db.pswd=******
В конфигурации текстового параметра имеет смысл установить опцию showAsLink=1.
Синхронизация с форумом производится классом ru.bgcrm.plugin.phpbb.Exchange, периодический запуск которого необходимо настроить в планировщике.
При появлении в привязанной к процессу теме сообщения для процесса генерируется событие идентичное добавлению в него сообщения. По данному событию возможно уведомление исполнителя, переключение статуса. Пример.
onProcessEvent.1.events=messageAdded onProcessEvent.1.ifExpression=process.getStatusId() != 1 onProcessEvent.1.commands=setStatus:1 # onProcessEvent.2.events=messageAdded onProcessEvent.2.commands=emailNotifyExecutors:21:Новые сообщения в процессе
Интерфейс пользователя
В необходимых типах процессах параметр "Ссылка на форум" отображается как параметр, в который возможно внести URL темы форума.
Параметр проверяется при правке на корректность. В очереди процессов целесообразно вывести ссылку на тему с опцией showAsLink, что позволит отображать ссылку с возможностью перехода на неё.