forked from lain-dono/fl-ru-damp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
invite.php
84 lines (69 loc) · 3.32 KB
/
invite.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<?php
/*
*
* Данный файл является частью проекта Веб Мессенджер.
*
* Все права защищены. (c) 2005-2009 ООО "ТОП".
* Данное программное обеспечение и все сопутствующие материалы
* предоставляются на условиях лицензии, доступной по адресу
* http://webim.ru/license.html
*
*/
?>
<?php
require_once 'classes/common.php';
require_once 'classes/class.thread.php';
require_once 'classes/class.visitsession.php';
require_once 'classes/class.visitedpage.php';
require_once 'classes/class.invitation.php';
require_once 'classes/class.operator.php';
require_once 'classes/class.smartyclass.php';
$pageId = verify_param('pageid', '/^[a-z0-9]{32}$/');
$isSecure = verify_param('issecure', "/^\d+$/", 0) == 1;
$visitSession = VisitSession::GetInstance()->GetVisitSessionByPageId($pageId);
$invitation = Invitation::GetInstance()->GetInvitationByVisitedPageId($pageId);
$thread = Thread::getInstance()->GetThreadById($invitation['threadid']);
$message = getInvitationMessage($invitation);
// set invitation parameters
$p_location = get_app_location(true, $isSecure);
$p_theme = Browser::getCurrentTheme();
$p_message = $message." <img src=\"$p_location/themes/$p_theme/images/invite/bullet5.gif\"/>";
$p_sound = $p_location.'/sounds/default_invite.wav';
$p_hideanim = $p_location."/track.php?issecure=$isSecure&";
$p_level = Browser::GetRemoteLevel($visitSession['useragent']);
$p_threadid = $thread['threadid'];
$p_token = $thread['token'];
$p_pageid = $pageId;
$p_lang = WEBIM_CURRENT_LOCALE;
$p_invitation = getInvitationContent(getAvatar($thread['operatorid']), $message, $isSecure);
$p_amination_duration = INVITE_ANIMATION_DURATION;
header('Content-type: text/javascript; charset='.BROWSER_CHARSET);
require 'js/invite/invitation.js';
function getAvatar($operatorId)
{
$operator = Operator::getInstance()->GetOperatorById($operatorId);
$avatar = $operator['avatar'];
return $avatar;
}
function getInvitationMessage($invitation)
{
$search = array("\n", "\r");
$replace = array('<br/>', '');
$messageObj = Invitation::GetInstance()->GetInvitationMessageById($invitation['invitemessageid']);
return str_replace($search, $replace, $messageObj['message']);
}
function getInvitationContent($avatar, $message, $isSecure)
{
$host = ($isSecure ? 'https://' : 'http://').$_SERVER['HTTP_HOST'];
$TML = new SmartyClass();
$TML->assign('message', empty($message) ? Resources::Get('invite.default.message') : $message);
$TML->assign('operatorimage', empty($avatar) ? null : $host.$avatar);
$TML->assign('theme', Browser::getCurrentTheme());
$TML->assign('addressprefix', $host);
$invitation = $TML->fetch('invite.tpl');
$invitation = addslashes($invitation);
$invitation = str_replace("\n", "' + \n'", $invitation);
$invitation = str_replace("\r", '', $invitation);
return $invitation;
}
?>