On-line консультанты
Модуль «On-line консультант» позволяет установить на сайте форму для связи пользователя с консультантом в режиме реального времени.
Модуль относится к части CMS «Сервис» и может быть установлен опционально.
На сайте on-line консультант подключается с помощью тега show_block.
Для работы нужно скачать и установить приложение оператора с сайта выбранной системы. Это независимая программа, устанавливаемая на компьютер (Windows+Mac), позволяет наблюдать за посетителями, отвечать на их вопросы и многое другое.
Бэкенды
К модулю можно подключить бэкенды для работы с различными сервисами. Добавлено в версии 6.0.9.10.
Для этого нужно разработать несколько файлов стандартной структуры и разместить папку с этими файлами в папку consultant/backend. После этого в настройках модуля появиться новый сервис консультанта.
Бэкенд должен иметь уникальное название латинскими буквами (по примеру jivosite, livetex и др.). Для примера будем использовать название myservice.
В папке consultant/backend/myservice могут находиться следующий файлы:
- consultant.myservice.admin.php
- consultant.myservice.admin.js
- consultant.myservice.model.php
Это не обязательная структура расширения. Нужно использовать только необходимые файлы. Кроме того, в бэкенд можно добавлять свои файлы любой другой структуры.
Рассмотрим структуру стандартных файлов
consultant.myservice.admin.php
Файл содержит настройки бэкенда, подгружаемые при выборе сервиса.
Структура файла:
Пример:
// ошибка 404 при прямом вызове файлов
if (! defined('DIAFAN'))
{
$path = __FILE__;
while(! file_exists($path.'/includes/404.php'))
{
$parent = dirname($path);
if($parent == $path) exit;
$path = $parent;
}
include $path.'/includes/404.php';
}
// наследуем класс Diafan, чтобы был доступен объект $this->diafan
class Consultant_myservice_admin extends Diafan
{
public $config = array(
"name" => 'Название бэкенда, выводимое администратору',
// настройки расширения
// ключи этого массива - название настроек латинскими буквами
"params" => array(
// можно указать просто текстовое описание настройки
// тогда она будет редактироваться как строка
'param1' => 'Название первой настройки',
// можно указать массив данных, тогда есть возможность
// задать тип данных и подсказку
'param2' => array(
// название второй настройки
'name' => 'Ключ к API',
// доступны следующие типы:
// text - строка, по умолчанию
// checkbox - галочка
// select - список
// info - название выводиться текстом без редактирования
// none - не отображается, но сохраняется
'type' => 'text',
// значение списка, если указан тип select
'select' => array(
'ключ1' => 'значение1',
'ключ2' => 'значение2',
'ключ3' => 'значение3',
),
// подсказка
'help' => 'Ключ запросите у поставщика услуги.',
),
// можно определить свою функцию для вывода поля и его сохранения
'param3' => 'Название третьей настройки',
)
);
/**
* Своя функция на редактирования настройки param3
*
* @param string $value значение для param3
* @param array $values значение всех полей настроек, ключ - название поля
* @return void
*/
public function edit_variable_param3($value, $values)
{
echo '<div class="unit">
<div class="infofield">Название поля</div>
Значение поля
</div>';
}
/**
* Своя функция на сохранение настройки param3
* функция возвращает значение, которое нужно сохранить (не обязательно)
*
* @return mixed значение
*/
public function save_variable_param3()
{
// сохраняет данные
return $value;
}
}
consultant.myservice.admin.js
При наличии этот JS-файл автоматически подключается в интерфейс настроек.
consultant.myservice.admin.model.php
Вывод кода консультанта на сайте.
Пример:
// ошибка 404 при прямом вызове файлов
if (! defined('DIAFAN'))
{
$path = __FILE__;
while(! file_exists($path.'/includes/404.php'))
{
$parent = dirname($path);
if($parent == $path) exit;
$path = $parent;
}
include $path.'/includes/404.php';
}
// наследуем класс Diafan, чтобы был доступен объект $this->diafan
class Captcha_myservice_admin_model extends Diafan
{
/**
* Получает код консультанта
*
* @return string
*/
public function get()
{
// функция выдает HTML-код консультанта
// настройки бэкенда доступны через настройки модуля:
// $this->diafan->configmodules("названиеБэкенда_названиеНастройки", 'consultant');
// при необходимости здесь можно подключить файл шаблона
ob_start();
include(Custom::path('modules/consultant/backend/myservice/consultant.myservice.view.php'));
$text = ob_get_contents();
ob_end_clean();
return $text;
}
}
Шаблонные теги
Для работы с модулем «On-line консультант» служат следующие шаблонные теги:
show_block – подключает on-line консультант.
Атрибуты:
— defer – маркер отложенной загрузки шаблонного тега: event – загрузка контента только по желанию пользователя при нажатии кнопки "Загрузить", emergence – загрузка контента только при появлении в окне браузера клиента, async – асинхронная (одновременная) загрузка контента совместно с контентом шаблонных тегов с тем же маркером, sync – синхронная (последовательная) загрузка контента совместно с контентом шаблонных тегов с тем же маркером, по умолчанию отложенная загрузка не используется, обычный вывод шаблонных тегов в коде страницы;
— defer_title – текстовая строка, выводимая на месте появления загружаемого контента с помощью отложенной загрузки шаблонного тега;
— template – шаблон тега (файл modules/consultant/views/consultant.view.show_block_template.php; по умолчанию шаблон modules/consultant/views/consultant.view.show_block.php).
Пример:
<insert name="show_block" module="consultant">
выведет код для подключения on-line консультанта
В шаблоне тега можно получить значение любого атрибута через переменную $result["attributes"]["название атрибута"]
.
До версии 6.0.9.10 тип консультанта определялся атрибутом system.
<insert name="show_block" module="consultant" system="jivosite">
Начиная с версии 6.0.9.10 выбор типа консультанта производится в настройках.
Файлы
modules/consultant/admin/consultant.admin.php – On-line консультант, система JivoSite;
modules/consultant/backend/jivosite/consultant.jivosite.admin.php – настройки капчи «JivoSite»;
modules/consultant/backend/jivosite/consultant.jivosite.model.php – On-line консультант «JivoSite»;
modules/consultant/consultant.php – контроллер;
modules/consultant/consultant.install.php – установка модуля;
modules/consultant/consultant.model.php – модель;
modules/consultant/views/consultant.view.show_block.php – шаблон on-line консультанта.
Зарегистрируйтесь или авторизируйтесь для того, чтобы оставить комментарий.