Перейти к содержимому
Открыть в приложении

Удобный способ просмотра. Узнать больше.

Дизайн и модификация Invision Community

Полноэкранное приложение на главном экране с push-уведомлениями, медалями и многим другим.

Чтобы установить это приложение на iOS и iPadOS
  1. Нажмите иконку «Поделиться» в Safari
  2. Прокрутите меню и нажмите На экран «Домой».
  3. Нажмите Добавить в правом верхнем углу.
Чтобы установить это приложение на Android
  1. Нажмите меню из трёх точек (⋮) в правом верхнем углу браузера.
  2. Нажмите Добавить на главный экран или Установить приложение.
  3. Подтвердите, нажав Установить.
Русский язык для Invision Community 5

Настройка API SiteHeart (IPB 3.1.2)

Здравствуйте, вот есть сайт siteheart.com(Не реклама) на нем можно настроить APi чат что бы все ники/аватары/Емейлы отображались когда они будут писать мне в чат. Только вот я не могу разобраться что и как куда вставлять нужно. Вот там написано:

Используя это API Вы сможете:

 

  • Отображать ник и фото клиента в чате
  • Передавать любую информацию о клиенте операторам в чат
  • Сохранять историю переписки с клиентом

Что бы передать любую информацию о клиенте, необходимо добавить параметр auth в код виджета

 

Пример кода виджета JavaScript

 

<script  type="text/javascript">

_shcp = []; _shcp.push({widget_id : 5, widget : "Chat", auth : "$auth" });

(function() { var hcc = document.createElement("script"); hcc.type = "text/javascript"; hcc.async = true;
hcc.src = ("https:" == document.location.protocol ? "https" : "http")+"://siteheart.com/apps/js/sh.js";
var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hcc, s.nextSibling); })();
</script>

 

Для формирования параметра auth необходим секретный ключ и массив данных о клиенте

 

Пример массива данных о клиенте (PHP)

 

$user = array(
'nick' => 'Dmitry',
'avatar' => 'http://graph.facebook.com/412831238798731/picture',
'id' => '18', 
'email' => 'usermail@gmail.com',
'data' => {} 
);

 

где:

 

  • nick - ник пользователя
  • avatar - аватар пользователя
  • id - уникальный идентификатор пользователя на вашем сайте
  • email - E-mail пользователя
  • data - дополнительная информация о клиенте для операторов. Например data = {"login" : "demo", "status" : "active", "registred" : "2008/01/01"}

Пример формирования параметра auth (PHP)

 

$time = time();
$secret = "Secret key";
$user_base64 = base64_encode( json_encode($user) );
$sign = md5($secret . $user_base64 . $time);
$auth = $user_base64 . "_" . $time . "_" . $sign;

 

где:

 

  • $time - unixtime время по UTC
  • $secret - секретный ключ
  • $user_base64 - строка base64 от JSON с массивом данных о клиенте
  • $sign - md5 подпись запроса
  • $auth - зашифрованная строка которую необходимо вставить в код виджета (параметр auth)

 

Вот насчет JS Я понял куда его вставлять, а вот PHP коды куда вставлять и как правильно настроять под IPB так и не понял.

Рекомендованные сообщения

Данные пользователя можете получить из массива $this->memberData. При помощью тегов формируете в php нужные параметры для js скрипта.

 

<php>
if( $this->memberData['member_id'] )
{
   $avatar = ($this->memberData['avatar_location'] AND $this->memberData['avatar_type'] == 'upload') ? "{$this->settings['board_url']}/uploads/{$this->memberData['avatar_location']}" : "";
   $user = array('nick'   => $this->memberData['members_display_name'],
                 'avatar' => $avatar,
                 'id'     => $this->memberData['member_id'],
                 'email'  => $this->memberData['email'],
                 'data'   => array()
   );

   $time = time();
   $secret = "Secret key";
   $user_base64 = base64_encode( json_encode($user) );
   $sign = md5($secret . $user_base64 . $time);
   $auth = $user_base64 . "_" . $time . "_" . $sign;
}
</php>

<script  type="text/javascript">

_shcp = []; _shcp.push({widget_id : 5, widget : "Chat", auth : "{$auth}" });

(function() { var hcc = document.createElement("script"); hcc.type = "text/javascript"; hcc.async = true;
hcc.src = ("https:" == document.location.protocol ? "https" : "http")+"://siteheart.com/apps/js/sh.js";
var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hcc, s.nextSibling); })();
</script>

  • Автор

Получается при том когда я помещаю данных код в Стиль > Глобальные > globalTemplate Выходит вот такая ошибка:

 

Fatal error: Cannot use object of type ips_MemberRegistry as array in C:\AppServ\www\cache\skin_cache\cacheid_4\skin_global.php on line 87

Точно, вместо $this->member нужно $this->memberData

  • Автор

А можно ли этот PHP код использовать не в дизайне, а допустим в каком то php файле который использован на всех страницах форума? Если да то можно пожалуйста имя этого php файла и в которой папке он лежит?

А можно ли этот PHP код использовать не в дизайне, а допустим в каком то php файле

Смысл?

  • Автор

Ну так то вроде работает, но аватар отображаться не хочет почему то..

  • Автор

siv1987, Спасибо большое все разобрался во всем.

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.