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 выбор типа консультанта производится в настройках.

Файлы

  1. modules/consultant/admin/consultant.admin.php – On-line консультант, система JivoSite;

  2. modules/consultant/backend/jivosite/consultant.jivosite.admin.php – настройки капчи «JivoSite»;

  3. modules/consultant/backend/jivosite/consultant.jivosite.model.php – On-line консультант «JivoSite»;

  4. modules/consultant/consultant.php – контроллер;

  5. modules/consultant/consultant.install.php – установка модуля;

  6. modules/consultant/consultant.model.php – модель;

  7. modules/consultant/views/consultant.view.show_block.php – шаблон on-line консультанта.

Ваши комментарии и дополнения
10 июля 2017 г.
А как подключить другой On-line консультант? Меня интересует chatra
10 июля 2017 г.
Вставьте HTML-код, который предоставит сервис on-line консультанта во все шаблоны сайта (в папке themes). Если есть примененная тема, то нужно искать папку themes в папке темы custom/название_темы.

Зарегистрируйтесь или авторизируйтесь для того, чтобы оставить комментарий.