Здесь вы можете задать любые вопросы по MyChat, по работе программы, её настройке, лицензированию и т.д.
Аватара пользователя
Staarplaat
Суть
Указать конкретные параметры для отдельных Web-чатов на разных страницах сайта как это было до обновления.
Как минимум необходимо хотя бы указать разные группы. Иначе у нас "встала" web-поддержка.

До обновления
До обновления в коде чата были явно указаны параметры чата, в том числе группа была явно указана в параметре window.mc_uho_opt.group. На разных страницах сайта был свой чат. Например, на главной странице сайта чат соединялся с группой Web-поддержки "веб-менеджеры", на странице личного кабинета чат соединялся с Web-поддержки "тех-поддержка"

После обновления
После обновления код чата одинаковый при любых настройках. Таким образом не указать ни отдельные параметры чата (вид, расположение) В том числе не указать конкретные группы для отдельных Web-чатов на разных страницах сайта. На всех страницах сайта всегда одна и та же группа.
Аватара пользователя
Андрей Раков
Добрый день.

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

Но, возможность настройки никуда не пропала, она просто была убрана с глаз.

Описание параметров чата:

Код: Выделить всё
text  — текст кнопки для открытия чата (ушко);
position  — расположение "ушка" (от 1 (справа, сверху) и до 12, по часовой стрелке);
_type — тип выбора пользователей, true — для групп и false — для конкретных операторов;
uin — UIN с кем открыть чат или список UIN-ов, можно указать в виде: [1,2,3] или "1,2,3", для чата будет выбран один, случайным образом;
group — ID группы операторов;
height — высота окна чата (при открытии в отдельном окне);
width — ширина окна чата (при открытии в отдельном окне);
btnID — список id кнопок или других HTML элементов, детальное описание будет ниже;
select — нужно ли показывать выбор операторов перед началом чата: true/false (да/нет);
inFrame — показывать чат не в отдельном окне, а в середине страницы (во фрейме): true/false (да/нет);
custom — произвольная текстовая строка, передается оператору без изменений в поле Reflink;
url — адрес сервера чата (протокол HTTPS или HTTP в адресе указывать нельзя);
fields — поля, которые должен заполнить пользователь при первом входе в чат, текстовая строка: "email,name" или "name", или "email", или "" — ничего.

Параметр "btnID" может содержать список id HTML элементов, при нажатии на которое будет открыт чат с определенным оператором, также в атрибутах этого элемента нужно указать UIN, с кем открыть чат (uin="3"), например:

Код: Выделить всё
<div id="mcGifer" uin="3" style="cursor:pointer;">
    <img src="img/Live_Chat.png" onmouseout="this.src='/img/Live_Chat.png';" onmouseover="this.src='/img/Live_Chat_2.png';">
</div>

Этот код отображает картинку с текстом "Открыть окно чата":
chrome_2CuDOs3HCV.png
chrome_2CuDOs3HCV.png (20.82 КБ) Просмотров: 136


И пример скрипта:
Код: Выделить всё
<!--== MyChat Web Support ==-->
<script type="text/javascript">
    window.__setMyChatOption = function (opt) {
        try {
            window.mc_uho_opt = Object.prototype.toString.call( opt ) === '[object Object]' ? opt : JSON.parse(opt);

            window.mc_uho_opt.btnID = ["mcGifer", "mcHobit", "mcGlubber", "mcHelen"];

            var run   = document.createElement("script");
            run.type  = "text/javascript";
            run.async = true;
            run.src   = "https://mychat-server.com/chat/uho/supportUho.js";
            var s     = document.getElementsByTagName("script")[0];
            s.parentNode.insertBefore(run, s);
        } catch (e) {
            console.warn(e.message);
        }
    }
</script>
<script src="https://mychat-server.com/getSupportOptions.js" async type="text/javascript"></script>

В строке window.mc_uho_opt.btnID = ["mcGifer", "mcHobit", "mcGlubber", "mcHelen"]; указаны id всех кнопок для открытия чата.

Аналогично этому параметру в window.mc_uho_opt можно указать любое из выше перечисленных полей, пример:
Код: Выделить всё
window.mc_uho_opt.position = 2; // кнопка чата справа в центре
window.mc_uho_opt._type  = true; // пользователи группы 1
window.mc_uho_opt.group = 1; // номер группы 1
window.mc_uho_opt.select = true; // показать выбор операторов, при первом подключении
window.mc_uho_opt.inFrame = true; // отобразить чат в середине окно, во фрейме
window.mc_uho_opt.fields = "name,email"; // требовать от посетителя ввести имя и почту
window.mc_uho_opt.url = "192.168.10.10:8080"; // актуально, когда веб-сервер чата работает на одном порту, а вы его открыли через портмапинг на другом, обратите внимание, адрес без "http(s)://"

Указанные в скрипте поля имеют приоритет над настройками в админке сервера.

Таким образом можно указывать на разных сайтах или страницах window.mc_uho_opt.group, чтобы использовать отдельный группы пользователей.

Отдельно хочу рассказать про параметр custom, его можно использовать для дополнительной идентификации пользователей. Например, когда у вас несколько сайтов и по какой-то причине не определяется Reflink для посетителей. Это поле будет добавлено в логине, в поле Reflink, которое обрабатывается серверным скриптом "OnPrivateRequest" - "WebGuestInfo".
Аватара пользователя
Staarplaat
Отлично!
То, что нужно. Спасибо. Работает.
Тему можно закрывать.