<?php

/* 
 * 
 * Данный файл является частью проекта Веб Мессенджер.
 * 
 * Все права защищены. (c) 2005-2009 ООО "ТОП".
 * Данное программное обеспечение и все сопутствующие материалы
 * предоставляются на условиях лицензии, доступной по адресу
 * http://webim.ru/license.html
 * 
 */
EventController::getInstance()->addEventListener(EventController::EVENT_OPERATOR_STATUS, array(Operator::getInstance(), "UpdateOperatorStatus"));
EventController::getInstance()->addEventListener(EventController::EVENT_OPERATOR_STATUS, array(Operator::getInstance(), "updateOperatorOnlineStats"));
EventController::getInstance()->addEventListener(EventController::EVENT_OPERATOR_PING, array(Operator::getInstance(), "updateOperatorOnlineStatsForThread"));
EventController::getInstance()->addEventListener(EventController::EVENT_OPERATOR_PING, array(ThreadProcessor::getInstance(), "ProcessThread"));
Beispiel #2
0
 * 
 * Данный файл является частью проекта Веб Мессенджер.
 * 
 * Все права защищены. (c) 2005-2009 ООО "ТОП".
 * Данное программное обеспечение и все сопутствующие материалы
 * предоставляются на условиях лицензии, доступной по адресу
 * http://webim.ru/license.html
 * 
 */
require_once '../classes/functions.php';
require_once '../classes/class.operator.php';
require_once '../classes/class.thread.php';
require_once '../classes/class.threadprocessor.php';
require_once '../classes/class.eventcontroller.php';
require_once '../classes/events_register.php';
ThreadProcessor::getInstance()->ProcessOpenThreads();
$o = Operator::getInstance();
$operator = $o->GetLoggedOperator(false);
$f = "i" . "s" . "Op" . "er" . "a" . "to" . "rsL" . "im" . "it" . "E" . "x" . "ce" . "ed" . "ed";
if ($o->{$f}()) {
    die;
}
$status = verify_param("status", "/^\\d{1,9}\$/", OPERATOR_STATUS_ONLINE);
EventController::getInstance()->dispatchEvent(EventController::EVENT_OPERATOR_STATUS, array($operator));
if ($status != 0) {
    $since = verify_param("since", "/^\\d{1,9}\$/", 0);
    $xml = Thread::getInstance()->buildPendingThreadsXml($since, $operator);
    Browser::SendXmlHeaders();
    echo $xml;
}
exit;
Beispiel #3
0
    if ($o->{$f}()) {
        die;
    }
}
$thread = Thread::getInstance()->GetThreadById($threadid);
if (empty($thread) || !isset($thread['token']) || $token != $thread['token']) {
    die("wrong thread in thread.php");
}
if ($isvisitor && !visitorHasAccess($thread)) {
    show_error("server: visitor has no access to the thread");
}
if ($isvisitor) {
    ThreadProcessor::getInstance()->ProcessThread($threadid, 'visitor_ping', array('istyping' => !empty($istyping)));
}
if (!$isvisitor && !$viewonly) {
    EventController::getInstance()->dispatchEvent(EventController::EVENT_OPERATOR_PING, array($threadid, 'operator_ping', array('istyping' => !empty($istyping), 'operatorid' => $operator['operatorid'])));
}
$operator = null;
if (!$isvisitor && !$viewonly) {
    $operator = Operator::getInstance()->GetLoggedOperator();
    $viewonly = $thread['operatorid'] != $operator['operatorid'] && !empty($thread['operatorid']);
}
//$visitSession = VisitSession::GetInstance()->GetVisitSessionById($thread['visitsessionid']);
$v = GetVisitorFromRequestAndSetCookie();
if ($act == "refresh") {
    $lastid = verify_param("lastid", "/^\\d{1,9}\$/", -1);
    if ($isvisitor && !empty($thread['operatorid'])) {
        setcookie('WEBIM_LAST_OPERATOR_ID', $thread['operatorid'], time() + 60 * 60 * 24 * 365, '/');
    }
    Thread::getInstance()->PrintThreadMessages($thread, $token, $lastid, $isvisitor, $outformat, $viewonly);
    exit;