Перейти к публикации
View in the app

A better way to browse. Learn more.

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

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Настройка 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, Спасибо большое все разобрался во всем.

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

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.