Exemple #1
0
 * Данный файл является частью проекта Веб Мессенджер.
 * 
 * Все права защищены. (c) 2005-2009 ООО "ТОП".
 * Данное программное обеспечение и все сопутствующие материалы
 * предоставляются на условиях лицензии, доступной по адресу
 * http://webim.ru/license.html
 * 
 */
$TITLE_KEY = 'topMenu.visitors';
require_once dirname(__FILE__) . '/inc/admin_prolog.php';
require_once '../classes/functions.php';
require_once '../classes/class.operator.php';
require_once '../classes/class.smartyclass.php';
$TML = new SmartyClass($TITLE_KEY);
$o = Operator::getInstance();
$operator = $o->GetLoggedOperator();
if ($o->isOperatorsLimitExceeded()) {
    $TML->display('operators_limit.tpl');
    require_once dirname(__FILE__) . '/inc/admin_epilog.php';
    die;
}
$o->UpdateOperatorStatus($operator);
$lang = verify_param('lang', "/^[\\w-]{2,5}\$/", '');
if (!empty($lang)) {
    $TML->assign('lang_param', "?lang={$lang}");
    $TML->assign('lang_and_is_operator_param', "?isoperator=true&lang={$lang}");
} else {
    $TML->assign('lang_and_is_operator_param', '?isoperator=true');
}
$TML->display('pending_visitors.tpl');
require_once dirname(__FILE__) . '/inc/admin_epilog.php';
Exemple #2
0
        }
        header("Location: " . WEBIM_ROOT . "/operator/settings.php");
        exit;
    } else {
        foreach ($fields as $f) {
            $TML->assign($f, $params[$f]);
        }
        //    $TML->assign('logo', get_mandatory_param('logo'));
        $TML->assign('answers_value', $params[$answersKey]);
    }
} else {
    // not submitted
    $TML->assign('answers_value', Settings::Get($answersKey));
    $TML->assign(Settings::getInstance()->GetAll());
}
$TML->assign('answers_key', $answersKey);
$TML->assign('availableLocales', Resources::GetAvailableLocales());
$TML->assign('errors', $errors);
$TML->display('settings.tpl');
require_once dirname(__FILE__) . '/inc/admin_epilog.php';
function notEmpty($string)
{
    return !empty($string);
}
function remove_empty_strings($strings)
{
    $strings = str_replace("\r", "", $strings);
    $strarray = explode("\n", $strings);
    $strarray = array_filter($strarray, "notEmpty");
    return implode("\n", $strarray);
}
Exemple #3
0
<?php

/* 
 * 
 * Данный файл является частью проекта Веб Мессенджер.
 * 
 * Все права защищены. (c) 2005-2009 ООО "ТОП".
 * Данное программное обеспечение и все сопутствующие материалы
 * предоставляются на условиях лицензии, доступной по адресу
 * http://webim.ru/license.html
 * 
 */
$TITLE_KEY = 'leftMenu.departments';
require_once dirname(__FILE__) . '/inc/admin_prolog.php';
require_once '../classes/functions.php';
require_once '../classes/class.operator.php';
require_once '../classes/class.smartyclass.php';
require_once '../classes/models/generic/class.mapperfactory.php';
Operator::getInstance()->IsCurrentUserAdminOrRedirect();
$TML = new SmartyClass($TITLE_KEY);
$departments = MapperFactory::getMapper("Department")->enumDepartments(Resources::getCurrentLocale());
$TML->assign('departments', $departments);
$TML->display('departments.tpl');
require_once dirname(__FILE__) . '/inc/admin_epilog.php';
require_once '../classes/class.smartyclass.php';
$TML = new SmartyClass();
$operator = Operator::getInstance()->GetLoggedOperator();
$threadid = verify_param("thread", "/^\\d{1,8}\$/");
$token = verify_param("token", "/^\\d{1,8}\$/");
$thread = Thread::getInstance()->GetThreadById($threadid);
$visitSession = VisitSession::GetInstance()->GetVisitSessionById($thread['visitsessionid']);
$TML->assign('visit_session', $visitSession);
if (!$thread || !isset($thread['token']) || $token != $thread['token']) {
    die("wrong thread");
}
$nextid = verify_param("nextoperatorid", "/^\\d{1,8}\$/");
$nextdepartmentid = verify_param("nextdepartmentid", "/^\\d{1,8}\$/");
$page = array();
if (!empty($nextid)) {
    $nextOperator = Operator::getInstance()->GetOperatorById($nextid);
    $TML->assign('nextoperator', $nextOperator);
}
if (!empty($nextdepartmentid)) {
    $nextdepartment = Department::getInstance()->getById($nextdepartmentid, Resources::getCurrentLocale());
    $TML->assign('nextdepartment', $nextdepartment);
}
$errors = array();
ThreadProcessor::getInstance()->ProcessThread($threadid, 'redirect', array('nextoperatorid' => $nextid, 'nextdepartmentid' => $nextdepartmentid, 'operator' => Operator::getInstance()->GetLoggedOperator()));
$TML->assign('page_settings', $page);
if (count($errors) > 0) {
    $TML->assign('errors', $errors);
    $TML->display('chat_error.tpl');
} else {
    $TML->display('redirected.tpl');
}
Exemple #5
0
<?php

/* 
 * 
 * Данный файл является частью проекта Веб Мессенджер.
 * 
 * Все права защищены. (c) 2005-2009 ООО "ТОП".
 * Данное программное обеспечение и все сопутствующие материалы
 * предоставляются на условиях лицензии, доступной по адресу
 * http://webim.ru/license.html
 * 
 */
$TITLE_KEY = 'active.visits.queue';
require_once dirname(__FILE__) . '/inc/admin_prolog.php';
require_once '../classes/functions.php';
require_once '../classes/class.thread.php';
require_once '../classes/class.smartyclass.php';
$TML = new SmartyClass($TITLE_KEY);
$o = Operator::getInstance();
$operator = $o->GetLoggedOperator();
if ($o->isOperatorsLimitExceeded()) {
    $TML->display('operators_limit.tpl');
    require_once dirname(__FILE__) . '/inc/admin_epilog.php';
    die;
}
$TML->assign('visit_details', get_app_location(true, false) . '/operator/visit.php?pageid=');
$TML->display('../templates/active_visitors.tpl');
require_once dirname(__FILE__) . '/inc/admin_epilog.php';
Exemple #6
0
function showLeaveMessageSentPage()
{
    $TML = new SmartyClass();
    $TML->assignCompanyInfoAndTheme();
    $TML->assign('theme', Browser::getCurrentTheme());
    $TML->display('leave-message-sent.tpl');
    exit;
}
 * 
 * Все права защищены. (c) 2005-2009 ООО "ТОП".
 * Данное программное обеспечение и все сопутствующие материалы
 * предоставляются на условиях лицензии, доступной по адресу
 * http://webim.ru/license.html
 * 
 */
$TITLE_KEY = 'topMenu.admin';
require_once dirname(__FILE__) . '/inc/admin_prolog.php';
require_once '../classes/common.php';
require_once '../classes/functions.php';
require_once '../classes/class.adminurl.php';
require_once '../classes/class.operator.php';
require_once '../classes/class.settings.php';
require_once '../classes/class.smartyclass.php';
$operator = Operator::getInstance()->GetLoggedOperator();
$TML = new SmartyClass($TITLE_KEY);
$count = 0;
foreach (AdminURL::$ADMIN_MENU as $i) {
    if ($i['role'] == 'operator' || $i['role'] == $operator['role']) {
        $prepared[$count] = $i;
        $prepared[$count]['link'] = AdminURL::getInstance()->getURL($i['link_name']);
        $count++;
    }
}
if (sizeof($prepared) % 2 == 1) {
    $prepared[] = array();
}
$TML->assign('items', $prepared);
$TML->display('menu.tpl');
require_once dirname(__FILE__) . '/inc/admin_epilog.php';
Exemple #8
0
$TML = new SmartyClass($TITLE_KEY);
$errors = array();
if (isset($_REQUEST['login']) && isset($_REQUEST['password'])) {
    $login = get_mandatory_param('login');
    $password = get_mandatory_param('password');
    $remember = isset($_REQUEST['isRemember']) && $_REQUEST['isRemember'] == "on";
    $e = Operator::getInstance()->DoLogin($login, $password, $remember);
    if (isset($e)) {
        $errors[] = $e;
    }
    if (empty($errors)) {
        if (!empty($_REQUEST['redir'])) {
            header("Location: " . $_REQUEST['redir']);
        } else {
            header("Location: " . WEBIM_ROOT . "/");
        }
        exit;
    }
}
$TML->assign('errors', $errors);
$TML->assign('isRemember', true);
if (!empty($_REQUEST['redir'])) {
    $TML->assign('redir', htmlspecialchars($_REQUEST['redir']));
}
$status = verify_param("status", "/^(new)\$/", "");
if ($status == "new") {
    $introduction = "true";
    $TML->assign('introduction', $introduction);
}
$TML->display('../templates/login.tpl');
function inviteSubmitted()
{
    global $TITLE_KEY;
    $TML = new SmartyClass($TITLE_KEY);
    $isNew = empty($_REQUEST['autoinviteid']);
    $toCheck = array('text' => 'form.field.text');
    foreach ($toCheck as $field => $res) {
        if (empty($_REQUEST[$field])) {
            $errors[] = Resources::Get("errors.required", array(Resources::Get($res)));
        }
    }
    if (!isset($_REQUEST['number_of_pages']) || !empty($_REQUEST['number_of_pages']) && !is_numeric($_REQUEST['number_of_pages'])) {
        $errors[] = Resources::Get("errors.not_numeric.number_of_pages");
    }
    if (!isset($_REQUEST['time_on_site']) || !is_numeric($_REQUEST['time_on_site'])) {
        $errors[] = Resources::Get("errors.not_numeric.time_on_site");
    }
    $visited_pages = array();
    if (isset($_REQUEST['visited_page']) && is_array($_REQUEST['visited_page']) && isset($_REQUEST['visited_page_time']) && is_array($_REQUEST['visited_page_time'])) {
        foreach ($_REQUEST['visited_page'] as $k => $v) {
            if (!empty($v)) {
                if (!isset($_REQUEST['visited_page_time'][$k]) || !is_numeric($_REQUEST['visited_page_time'][$k])) {
                    $errors[] = Resources::Get("errors.not_numeric.visited_page_time");
                } else {
                    array_push($visited_pages, array("url" => $v, "time" => $_REQUEST['visited_page_time'][$k]));
                }
            }
        }
    }
    $hash = array();
    if (empty($errors)) {
        $hash['text'] = $_REQUEST['text'];
        $hash['conditions'] = array();
        if (isset($_REQUEST['came_from']) && !empty($_REQUEST['came_from'])) {
            $hash['conditions']['came_from'] = $_REQUEST['came_from'];
        }
        if (isset($_REQUEST['number_of_pages']) && !empty($_REQUEST['number_of_pages'])) {
            $hash['conditions']['number_of_pages'] = $_REQUEST['number_of_pages'];
        }
        if (isset($_REQUEST['time_on_site']) && !empty($_REQUEST['time_on_site'])) {
            $hash['conditions']['time_on_site'] = $_REQUEST['time_on_site'];
        }
        if (isset($_REQUEST['order_matters']) && !empty($_REQUEST['order_matters'])) {
            $hash['conditions']['order_matters'] = 1;
        }
        if (count($visited_pages) > 0) {
            $hash['conditions']['visited_pages'] = $visited_pages;
        }
        $json = new Json();
        $hash['conditions'] = $json->encode($hash['conditions']);
        if ($isNew) {
            $autoinviteToUpdateId = MapperFactory::getMapper("AutoInvite")->save($hash);
        } else {
            $autoinviteToUpdateId = $_REQUEST['autoinviteid'];
            $hash['autoinviteid'] = $autoinviteToUpdateId;
            MapperFactory::getMapper("AutoInvite")->save($hash);
        }
        header("Location: " . AdminURL::getInstance()->getURL('auto_invites'));
        exit;
    }
    foreach (array('order_matters', 'text', 'came_from', 'visited_page', 'visited_page_time', 'time_on_site', 'number_of_pages') as $f) {
        if (isset($_REQUEST[$f]) && !empty($_REQUEST[$f])) {
            $TML->assign($f, $_REQUEST[$f]);
        }
    }
    $TML->assign('errors', $errors);
    $TML->display('auto_invite.tpl');
}
Exemple #10
0
function handleWithoutToken($threadid, $viewonly)
{
    $TML = new SmartyClass();
    $operator = Operator::getInstance()->GetLoggedOperator();
    $remote_level = Browser::GetRemoteLevel($_SERVER['HTTP_USER_AGENT']);
    if ($remote_level != "ajaxed") {
        die("old browser is used, please update it");
    }
    $thread = Thread::getInstance()->GetThreadById($threadid);
    if (!$thread || !isset($thread['token'])) {
        die("wrong thread");
    }
    if ($viewonly && $operator['operatorid'] != $thread['operatorid']) {
        redirectToPageWithToken($thread, $viewonly, $remote_level);
    }
    $forcetake = verify_param("force", "/^true\$/", false);
    if ($forcetake) {
        ThreadProcessor::getInstance()->ProcessThread($thread['threadid'], 'operator_force_join', array("operatorid" => $operator["operatorid"]));
        redirectToPageWithToken($thread, null, $remote_level);
    } else {
        // is taken by another
        $visitSession = VisitSession::GetInstance()->GetVisitSessionById($thread['visitsessionid']);
        if ($thread['state'] != STATE_CLOSED && !empty($thread['operatorid']) && $operator['operatorid'] != $thread['operatorid'] && $operator['operatorid'] != $thread['nextoperatorid']) {
            $page = array('visitor' => $visitSession['visitorname'], 'agent' => $thread['operatorfullname'], 'force' => true, 'takelink' => $_SERVER['PHP_SELF'] . "?thread={$threadid}&amp;force=true", 'viewlink' => $_SERVER['PHP_SELF'] . "?thread={$threadid}&amp;viewonly=true", 'priority' => $thread['state'] == STATE_QUEUE_EXACT_OPERATOR || $thread['state'] == STATE_CHATTING_OPERATOR_BROWSER_CLOSED_REFRESHED);
            // TODO get rid of STATE_WAIT_ANOTHER_OPERATOR
            $TML->assign('link_arguments', "&thread={$threadid}");
            $TML->assign('page', $page);
            $TML->display('confirm.tpl');
            exit;
        }
        // is closed
        if ($thread['state'] == STATE_CLOSED) {
            $page = array('viewlink' => $_SERVER['PHP_SELF'] . "?thread=" . $threadid . "&amp;viewonly=true", 'force' => false, 'thread_id' => $threadid, 'closed' => true);
            $TML->assign('link_arguments', "&thread={$threadid}");
            $TML->assign('page', $page);
            $TML->display('confirm.tpl');
            exit;
        }
    }
    ThreadProcessor::getInstance()->ProcessThread($thread['threadid'], 'operator_join', array('operatorid' => $operator['operatorid']));
    redirectToPageWithToken($thread, $viewonly, $remote_level);
}
Exemple #11
0
if (isset($_GET['visitsessionid'])) {
    $visitSession = VisitSession::GetInstance()->GetVisitSessionById($_GET['visitsessionid']);
} elseif (isset($_GET['pageid'])) {
    $visitdpageid = verify_param("pageid", "/^[a-z0-9]{32}\$/");
    $vistedpage = VisitedPage::GetInstance()->GetVisitedPageById($_GET['pageid']);
    $visitSession = VisitSession::GetInstance()->GetVisitSessionById($vistedpage['visitsessionid']);
}
if (empty($visitSession)) {
    die("Invalid or no visitsessionid or pageid");
}
$visitedPages = VisitedPage::GetInstance()->enumVisitedPagesByVisitSessionId($visitSession['visitsessionid']);
$landingPage = end($visitedPages);
$exitPage = reset($visitedPages);
$timeend = 0;
$timestart = 0;
foreach ($visitedPages as $k => $vp) {
    $timeend = $timeend == 0 ? $vp['updated'] : max($timeend, $vp['updated']);
    $timestart = $timestart == 0 ? $vp['opened'] : min($timestart, $vp['opened']);
    $visitedPages[$k]['sessionduration'] = $vp['updated'] - $vp['opened'];
}
$geodata = GeoIPLookup::getGeoDataByIP($visitSession['ip']);
//for testing purpose
//$geodata = GeoIPLookup::getGeoDataByIP('89.113.218.99');
if ($geodata == NULL) {
    $geodata = array('city' => null, 'country' => null, 'lat' => null, 'lng' => null);
}
$tmlPage = array('visitsessionid' => $visitSession['visitsessionid'], 'visitedpages' => $visitedPages, 'landingpage' => $landingPage['uri'], 'exitpage' => $exitPage['uri'], 'timestart' => $timestart, 'timeend' => $timeend, 'timediff' => webim_date_diff($timeend - $timestart), 'active' => time() - $timeend < VISITED_PAGE_TIMEOUT, 'ip' => $visitSession['ip'], 'city' => $geodata['city'], 'country' => $geodata['country'], 'lat' => $geodata['lat'], 'lng' => $geodata['lng'], 'browser' => get_user_agent($visitSession['useragent']), 'enterref' => $landingPage['referrer'], 'leaveref' => $exitPage['referrer'], 'historyParams' => array("q" => "" . $visitSession['visitorid']));
$TML = new SmartyClass($TITLE_KEY);
$TML->assign('page_settings', $tmlPage);
$TML->display('visit_info.tpl');
Exemple #12
0
 * http://webim.ru/license.html
 * 
 */
require_once dirname(__FILE__) . '/inc/admin_prolog.php';
require_once '../classes/functions.php';
require_once '../classes/class.operator.php';
require_once '../classes/class.adminurl.php';
require_once '../classes/class.smartyclass.php';
require_once '../classes/models/generic/class.mapperfactory.php';
$operator = Operator::getInstance()->GetLoggedOperator();
Operator::getInstance()->IsCurrentUserAdminOrRedirect();
$errors = array();
$TML = new SmartyClass();
$isNew = empty($_REQUEST['operatorid']);
if ($isNew && Operator::getInstance()->isOperatorsLimitExceeded()) {
    $TML->display('operators_limit.tpl');
    require_once dirname(__FILE__) . '/inc/admin_epilog.php';
    die;
}
$TML->assign('mode', $isNew ? 'new_operator' : 'edit_operator');
setAllDepartments();
setAllLocales();
if (isset($_REQUEST['act'])) {
    switch ($_REQUEST['act']) {
        case 'delete':
            deleteOperator();
            break;
        case 'delphoto':
            Operator::getInstance()->UpdateOperator($_REQUEST['operatorid'], array('avatar' => null));
            if ($_REQUEST['operatorid'] == $operator['operatorid']) {
                Operator::getInstance()->RefreshSessionOperator();
Exemple #13
0
    $has_errors = true;
} else {
    if (!is_valid_email($email)) {
        $TML->assign('erroremailformat', true);
        $has_errors = true;
    }
}
$captcha->setNumber();
if ($has_errors) {
    $TML->assign('name', getSecureText($visitor_name));
    $TML->assign('email', getSecureText($email));
    $TML->assign('phone', getSecureText($phone));
    $TML->assign('message', getSecureText($message));
    $TML->assign('canChangeName', getSecureText($canChangeName));
    $TML->assign('captcha_num', '');
    $TML->display('leave-message.tpl');
    exit;
}
$visitSessionId = VisitSession::GetInstance()->updateCurrentOrCreateSession();
$params = array();
$params['visitsessionid'] = $visitSessionId;
$params['lastpingvisitor'] = null;
$params['offline'] = 1;
$threads_count = MapperFactory::getMapper('Thread')->getNonEmptyThreadsCountByVisitorId($visitorid);
$thread = Thread::getInstance()->CreateThread(WEBIM_CURRENT_LOCALE, STATE_CLOSED, $params);
VisitSession::GetInstance()->UpdateVisitSession($visitSessionId, array('hasthread' => 1));
Thread::getInstance()->sendFirstMessageWithVisitorInfo($thread);
Thread::getInstance()->PostMessage($thread['threadid'], KIND_USER, Resources::Get('chat.window.offline_message', array($message)));
MapperFactory::getMapper('Thread')->incrementVisitorMessageCount($thread['threadid']);
$first_message = MapperFactory::getMapper('Message')->getFirstMessage($thread['threadid']);
Visitor::getInstance()->setVisitorNameCookie($visitor_name);
Exemple #14
0
        $tmlPage['formendday'] = date('d', $currTime);
        $tmlPage['formendmonth'] = date('m.y', $currTime);
    }
}
//
// This function should be defined before it's used otherwise on
// some PHP verions it can fail with Fatal error: Call to undefined function
//
function get_operators_list()
{
    $operators = Operator::getInstance()->GetAllAccessedOperators();
    $result = array();
    $result[''] = Resources::Get('search.any.operator');
    if (!empty($operators)) {
        foreach ($operators as $op) {
            $result[$op['operatorid']] = $op['fullname'];
        }
    }
    return $result;
}
$tmlPage['availableDays'] = range(1, 31);
$currTime = getCurrentTime();
$tmlPage['availableMonth'] = get_month_selection($currTime - 400 * 24 * 60 * 60, $currTime);
$tmlPage['operatorList'] = get_operators_list();
$TML->assign('departments', Operator::getInstance()->enumAvailableDepartmentsForOperator($operator['operatorid'], Resources::getCurrentLocale()));
$TML->assign('locales', getAvailableLocalesForChat());
$tmlPage['show_empty'] = $show_empty;
$TML->assign('page_settings', $tmlPage);
$TML->assign('advanced', true);
$TML->display('thread_search.tpl');
require_once dirname(__FILE__) . '/inc/admin_epilog.php';
Exemple #15
0
    $tmlPage["formendday"] = date("d", $end - 24 * 60 * 60);
    $tmlPage["formendmonth"] = date("m.y", $end - 24 * 60 * 60);
} else {
    $curr = getdate($currTime);
    if ($curr['mday'] < 7) {
        // previous month
        if ($curr['mon'] == 1) {
            $month = 12;
            $year = $curr['year'] - 1;
        } else {
            $month = $curr['mon'] - 1;
            $year = $curr['year'];
        }
        $starttime = mktime(0, 0, 0, $month, 1, $year);
        $tmlPage["formstartday"] = date("d", $starttime);
        $tmlPage["formstartmonth"] = date("m.y", $starttime);
        $tmlPage["formendday"] = date("d", mktime(0, 0, 0, $month, date("t", $starttime), $year));
        $tmlPage["formendmonth"] = date("m.y", mktime(0, 0, 0, $month, date("t", $starttime), $year));
    } else {
        $tmlPage["formstartday"] = date("d", mktime(0, 0, 0, $curr['mon'], 1, $curr['year']));
        $tmlPage["formstartmonth"] = date("m.y", mktime(0, 0, 0, $curr['mon'], 1, $curr['year']));
        $tmlPage["formendday"] = date("d", $currTime);
        $tmlPage["formendmonth"] = date("m.y", $currTime);
    }
}
if (!empty($errors)) {
    $TML->assign('errors', $errors);
}
$TML->assign('page_settings', $tmlPage);
$TML->display('statistics.tpl');
require_once dirname(__FILE__) . '/inc/admin_epilog.php';
    switch ($_REQUEST['act']) {
        case 'removerate':
            Operator::getInstance()->IsCurrentUserAdminOrRedirect();
            $rateid = verify_param('rateid', "/^(\\d{1,9})?\$/");
            $url = WEBIM_ROOT . '/operator/threadprocessor.php?threadid=' . $threadid;
            Thread::getInstance()->removeRate($rateid);
            header('Location: ' . $url);
            exit;
            break;
        case 'removethread':
            Operator::getInstance()->IsCurrentUserAdminOrRedirect();
            $threadid = verify_param('threadid', "/^(\\d{1,9})?\$/");
            $url = WEBIM_ROOT . '/operator/threadprocessor.php?threadid=' . $threadid;
            $TML->assign('removed_thread', true);
            MapperFactory::getMapper('Thread')->delete($threadid);
            //Thread::getInstance()->removeRate($rateid);
            //header("Location: ".$url);
            //exit();
            break;
        case 'removehistory':
            Operator::getInstance()->IsCurrentUserAdminOrRedirect();
            $url = WEBIM_ROOT . '/operator/history.php';
            // TODO history
            Thread::getInstance()->removeHistory($threadid);
            header('Location: ' . $url);
            exit;
            break;
    }
}
$TML->display('thread_log.tpl');
Exemple #17
0
require_once '../classes/models/generic/class.mapperfactory.php';
$operator = Operator::getInstance()->GetLoggedOperator();
$errors = array();
$banMapper = MapperFactory::getMapper('Ban');
if (!empty($_GET['act']) && $_GET['act'] == 'delete') {
    $banId = isset($_GET['id']) ? $_GET['id'] : '';
    if (!preg_match("/^\\d+\$/", $banId)) {
        $errors[] = 'Wrong argument';
    }
    if (count($errors) == 0) {
        $banMapper->delete($banId);
        header('Location: ' . WEBIM_ROOT . '/operator/blocked.php');
        exit;
    }
}
$blockedList = $banMapper->getAll();
foreach ($blockedList as $k => $v) {
    $blockedList[$k]['till'] = date(getDateTimeFormat(), $v['till']);
}
require_once dirname(__FILE__) . '/inc/admin_prolog_after.php';
$TML = new SmartyClass($TITLE_KEY);
if (!empty($blockedList)) {
    $pagination = setup_pagination($blockedList);
    $tmlPage['pagination'] = $pagination['pagination'];
    $tmlPage['pagination_items'] = $pagination['pagination_items'];
    $TML->assign('pagination', generate_pagination($tmlPage['pagination']));
    $TML->assign('page_settings', $tmlPage);
}
$TML->assign('errors', $errors);
$TML->display('blocked_visitors.tpl');
require_once dirname(__FILE__) . '/inc/admin_epilog.php';
Exemple #18
0
<?php

/* 
 * 
 * Данный файл является частью проекта Веб Мессенджер.
 * 
 * Все права защищены. (c) 2005-2009 ООО "ТОП".
 * Данное программное обеспечение и все сопутствующие материалы
 * предоставляются на условиях лицензии, доступной по адресу
 * http://webim.ru/license.html
 * 
 */
$TITLE_KEY = 'leftMenu.auto_invites';
require_once dirname(__FILE__) . '/inc/admin_prolog.php';
require_once '../classes/functions.php';
require_once '../classes/class.operator.php';
require_once '../classes/class.smartyclass.php';
require_once '../classes/models/generic/class.mapperfactory.php';
Operator::getInstance()->IsCurrentUserAdminOrRedirect();
$TML = new SmartyClass($TITLE_KEY);
$TML->assign('invites', MapperFactory::getMapper('AutoInvite')->getAll());
$TML->display('auto_invites.tpl');
<?php

/* 
 * 
 * Данный файл является частью проекта Веб Мессенджер.
 * 
 * Все права защищены. (c) 2005-2009 ООО "ТОП".
 * Данное программное обеспечение и все сопутствующие материалы
 * предоставляются на условиях лицензии, доступной по адресу
 * http://webim.ru/license.html
 * 
 */
require_once '../classes/functions.php';
require_once '../classes/class.operator.php';
require_once '../classes/class.smartyclass.php';
require_once '../classes/models/generic/class.mapperfactory.php';
Operator::getInstance()->IsCurrentUserAdminOrRedirect();
$TML = new SmartyClass();
$TML->assign('operators', Operator::getInstance()->enumOperatorsWithOnlineStatus());
$TML->display('operators.tpl');
Exemple #20
0
    $TML->assign('erroremailformat', true);
    $has_errors = true;
}
if ($mode == 'cons' && empty($email_from)) {
    $TML->assign('erroremail_from', true);
    $has_errors = true;
} elseif ($mode == 'cons' && !is_valid_email($email_from)) {
    $TML->assign('erroremailformat_from', true);
    $has_errors = true;
}
if ($has_errors) {
    $TML->assign('threadid', $_REQUEST['threadid']);
    $TML->assign('token', $_REQUEST['token']);
    $TML->assign('level', $_REQUEST['level']);
    if ($mode != 'cons') {
        $TML->display('send-history.tpl');
    } else {
        // отделы службы поддержки free-lance ---
        $aDetps = array();
        foreach ($aDkoOrder as $nOrder) {
            $aDetps[] = array('value' => $nOrder, 'title' => $aDko[$nOrder]['option']);
        }
        $TML->assign('depts', $aDetps);
        //---------------------------------------
        $TML->display('send-history-c.tpl');
    }
    exit;
}
$eHistory = $history = "";
$lastid = -1;
$output = Thread::getInstance()->GetMessages($threadid, "text", true, $lastid);
Exemple #21
0
    if (file_exists($filename)) {
        // isset($info['GIF Read Support']) && $info['GIF Read Support'] && TODO check other file types
        $size = @getimagesize($filename);
    }
}
$location = WEBIM_ROOT;
if ($showhost) {
    $location = ($forcesecure ? 'https://' : 'http://') . $_SERVER['HTTP_HOST'] . WEBIM_ROOT;
}
$alt = Resources::Get('webim.online.consultant');
$departmentParam = !empty($departmentkey) ? '&departmentkey=' . $departmentkey : '';
$button_img = '<img alt="' . $alt . '" src="' . $location . '/button.php?bim=' . $image . '&amp;lang=' . $locale . $departmentParam . '" border="0"';
if (!empty($size)) {
    $button_img .= ' width="' . $size[0] . '" height="' . $size[1] . '" ';
}
$button_img .= ' />';
$chooseOperatorParam = !empty($chooseoperator) ? '&chooseoperator=' . $chooseoperator : '';
$chooseDepartmentParam = !empty($choosedepartment) ? '&choosedepartment=1' : '';
$chatimmediatelyParam = !empty($chatimmediately) ? '&chatimmediately=1' : '';
$link = $location . "/client.php?theme={$theme}" . '&amp;lang=' . $locale . $chooseOperatorParam . $chooseDepartmentParam . $departmentParam . $chatimmediatelyParam;
$temp = get_popup($link, $button_img, '', 'webim_' . getWindowNameSuffix(), 'toolbar=0, scrollbars=0, location=0, menubar=0, width=540, height=480, resizable=1', empty($chatimmediately));
$buttonCode = '<!-- webim button -->' . $temp . '<!-- /webim button -->';
$trackerCode = getTrackerCode($location, $theme, $forcesecure);
$buttonCode .= getAutoInviteCode($location, $theme);
$code = $includeTracker ? $trackerCode . $buttonCode : $buttonCode;
$TML->assign('code', htmlspecialchars($code));
$TML->assign('code_raw', $code);
$TML->assign('image', $image);
Browser::SendHtmlHeaders();
$TML->display('gen_button.tpl');
Exemple #22
0
        }
    }
    if (empty($errors)) {
        $time = strtotime($till);
        if ($time < 1) {
            $errors[] = Resources::Get("errors.format", Resources::Get("form.field.till"));
        }
        $hashTable = array('till' => date('Y-m-d H:i:s', $time), 'address' => $address, 'comment' => $comment);
        if ($isCreateMode) {
            $hashTable['created'] = null;
        } else {
            $hashTable['banid'] = $banid;
        }
        $banMapper->save($hashTable);
        header("Location: " . AdminURL::getInstance()->getURL('blocked'));
        exit;
    }
    $TML->assign('address', $address);
    $TML->assign('till', $till);
    $TML->assign('comment', $comment);
} elseif (isset($_REQUEST['banid'])) {
    $banid = verify_param('banid', "/^\\d{1,9}\$/");
    $ban = $banMapper->getById($banid);
    $TML->assign('address', $ban['address']);
    $TML->assign('till', date(getDateTimeFormat(), $ban['till']));
    $TML->assign('comment', $ban['comment']);
}
require_once dirname(__FILE__) . '/inc/admin_prolog_after.php';
$TML->assign('errors', $errors);
$TML->display('ban.tpl');
require_once dirname(__FILE__) . '/inc/admin_epilog.php';
Exemple #23
0
$TML->assign('action', $action);
$threadid = verify_param('thread', "/^\\d{1,8}\$/");
$token = verify_param('token', "/^\\d{1,8}\$/");
$TML->assign('threadid', $threadid);
$TML->assign('token', $token);
if ($action == 'operators') {
    $found = Operator::getInstance()->getOnlineOperatorsWithDepartments($operator['operatorid'], Resources::getCurrentLocale());
    $TML->assign('operators', $found);
    //  $out = setupPage($found, $action, 'operatorid', 'fullname');
    //  $TML->assign('out', $out);
} elseif ($action == 'visitor_redirected') {
    $TML->Assign('link', WEBIM_ROOT . '/operator/agent.php?thread=' . $threadid . '&token=' . $token . '&level=ajaxed&viewonly=true');
} elseif ($action == 'chat_closed') {
    $TML->Assign('link', WEBIM_ROOT . '/operator/agent.php?thread=' . $threadid . '&token=' . $token . '&level=ajaxed&viewonly=true&history=true');
}
$TML->display('popup.tpl');
function setupPage($list, $action, $idfield, $valuefield)
{
    global $token, $threadid, $TML;
    $pagination = setup_pagination($list);
    if (!empty($pagination)) {
        $page = array();
        $page['pagination'] = $pagination['pagination'];
        $page['pagination_items'] = $pagination['pagination_items'];
        $page['params'] = array('thread' => $threadid, 'token' => $token);
        $TML->assign('pagination', generate_pagination($page['pagination']));
    }
    $out = array();
    if (!empty($page['pagination_items'])) {
        foreach ($page['pagination_items'] as $v) {
            $page['params']['nextoperatorid'] = $v[$idfield];