Модуль Help-Chat

Модуль Help-Chat в SugarCRM.

Модуль предназначен для двухсторонней связи клиента с технической поддержкой по всем видам вопросов, касающихся SugarCRM. После установки модуля со стороны клиента, в правом верхнем углу возле кнопки «Поиск» появится красная кнопка «Тех.Поддержка». При нажатии на эту кнопку, в окне браузера появится перетаскиваемое окно чата, состоящее из поля, отображающего переписку с тех. поддержкой, вводного поля нового сообщения и кнопки отправления сообщения.

Если рассматривать модуль Help-Chat в комплексе, то его можно разделить на 4 части:
— Модуль Help-Chat в SugarCRM клиента.
— Серверная часть
— Админская часть (браузерная версия)
— Админская часть (десктопная версия)


Рассмотрим все эти части более подробно
После установки в SugarCRM в правом верхнем углу возле кнопки «Поиск» появляется красная кнопка «Тех.Поддержка» (1), при нажатии на которую появляется диалоговое окно «Чат»(2). В этом окне отражаются следующие элементы управления:
— текст-бокс, в котором отображается переписка. Он занимает большую часть диалога , для него доступна функция прокрутки, если количество сообщений превысило количество, которое помещается в нём (3);
— текст-бокс строка для ввода сообщений(4);
— кнопка «Отправить» для отправления текста, набранного в предыдущем текст-боксе. При этом, пустые строки не отправляются (5).

Также данный модуль вносит некоторые изменения в SugarCRM, например, удаляет из правого верхнего угла некоторые глобальные кнопки, вроде «О нас» и «Помощь», оставляя только «Сотрудники» и «Администрирование»(6)

Рисунок 1 — Чат тех. поддержки.

Есть один ОЧЕНЬ ВАЖНЫЙ МОМЕНТ! Дя того,чтобы кнопка «Тех. поддержка» отображалась, после установки модуля необходимо в файле: «/themes/Sugar5/tpls/_headerSearch.tpl» после строки 47 (« <input type=»submit" value="{$APP.LBL_SEARCH}"> «) добавить следующий код:

<input style=»background-color: red; background-image: none" type="button" class="chat" value="{$APP.LBL_CHAT}" onclick="javascript:void (ShowChatDialog ())" >
Модуль написан на PHP и Javascript (в том числе и Jquery).
Логика работы модуля следующая:
После запуска (первого нажатия на кнопку «Тех. Поддержка») каждые несколько секунд на серверную часть начинают отправляться POST-запросы, в ответ на которые приходит текст переписки (он хранится в серверной части). При нажатии на кнопку «Отправить» текст сообщения передается в виде запроса на сервер, где он добавляется к переписке.

Серверная часть
Серверная часть представляется собой:
— набор файлов, содержащих методы и функции для работы всей системы, а также для взаимодействия с остальными тремя частями системы;
— класс PHPMailer, позволяющий отправлять письма на электронную почту;
— класс tree, позволяющий отображать историю сообщений в иерархическом древовидном виде;
— папку logs, содержащую в себе историю переписки (logs/хост клиента/дата переписки) в формате html. Каждая подпапка также содержит 2 служебных файла, один отвечает за правильность работы админских частей, другой хранит адрес электронной почты клиента;
— файл index.php который и является браузерной версией админской части.

Админская часть (браузерная версия)
Админская часть загружается через браузер, по адресу help-chat.crmprof-service.com/index.php . В левой части окна браузера располагается кнопка «Просмотр журнала сообщений» (1), при нажатии на которую ниже появляется дерево-список(2), содержащее имена хостов клиента, список дат переписок во вложении. При нажатии на дату открывается окно «Журнал»(3)(очень похожее на окно чата в клиентской части). В этом окне отображается переписка с клиентом на соответствующую дату.
Страница каждые 5 секунд обращается к функции из файла adminchat.js. В случае, если клиент написал новое сообщение, на данной странице откроется диалог для переписки (такой же как у клиента)(4). Если одновременно пишет несколько клиентов, то для каждого из них будет создаваться свой диалог.

Рисунок 2 — Окно переписки с клиентом

Весь функционал написан на PHP и Javascript (в том числе и Jquery).

Админская часть (десктопная версия)
Десктопная версия админской части состоит из одного файла Help-Chat.exe. При запуске этого файла открывается стандартная форма Windows. На данной форме присутствуют следующие элементы управления (см. рисунок 3 — Элементы управления):

  1. Надпись «Журнал сообщений» и кнопка с двумя зелёными стрелочками. При нажатии на эту кнопку происходит обновление элемента управления 1.2.
  2. Иерархический список всех клиентов, с файлами-логами во вложении (наподобии того, что было в браузерной версии админской части). При нажатии на имя хоста клиента открывается новый чат (1.3) с клиентом, а при нажатии на файл-лог открывается окно, содержащее в себе текст переписки за выбранную дату (1.4).
  3. Представляет из себя вкладку, содержащую несколько элементов управления : окно, содержащее текст переписки(1.3.1), строка для ввода новых сообщений (1.3.2), кнопка «Отправить»(1.3.3) и кнопка «Закрыть»(1.3.4). В принципе, чат повторяет аналогичный функционал браузерной версии админской части. При большом количестве строк появляется прокрутка, строка ввода теперь «многострочная».
  4. Аналогичное пункту 1.3 окно, но только с возможностью просмотра переписки.
  5. Кнопка «Настройка и отправка почты», при нажатии на которую открывается новая форма, о ней немного ниже.

Рисунок 3 — Элементы управления.

После нажатия на кнопку «Настройка и отправка почты», открывается форма для работы с почтой. Она содержит следующие элементы:

2.1 Кнопка «Разослать». При нажатии на эту кнопку система собирает все файлы с перепиской для каждого клиента в один файл и рассылает этот файл на почту клиента и на почту менеджера. После этого история сообщений обнуляется. Предполагается, что эта кнопка должна нажиматься раз в месяц.

2.2 Кнопка «Сохранить». При нажатии на эту кнопку все измененные адреса электронной почты сохраняются в файл email.txt для каждого клиента в папке logs, после чего закрывается форма для работы с почтой.

2.3 Кнопка «Отменить» — закрывает форму не внося никакие изменения.

2.4 Поле состоящее из двух частей: слева имя хоста клиента, справа поле для редактирования электронного адреса соответствующего клиента.

Рисунок 4 — Окно проверки и рассылки почты.

Весь функционал, реализованный в браузерной версии, реализован и значительно расширен в десктопной. Логика работы данного приложения сводится к следующему, общему для всех методов, принципу: десктопное приложение посылает POST-запрос в серверную часть, передавая или получая необходимые данные.
Заметный минус : из-за разницы во времени между отправкой запроса и получением ответа может пройти некоторый промежуток времени,на протяжении которого программа будет «висеть». После получения ответа от сервера программа «отвиснет» или же выдаст сообщение об ошибке, но продолжит работать.
Подобные «зависания» чаще всего возникают:
— при первом нажатии на кнопку 1.1;
— после нажатия на кнопку 2.1;
— после нажатия на кнопку 2.2.
В качестве рекомендации: кнопку 1.1 нужно нажимать только один раз после запуска приложения, а кнопки 2.1 и 2.2 только в необходимых случаях.

Весь функционал написан на С#.

Написать комментарий

Вы должны войти чтобы комментировать.