function showOperator() { $TML = new SmartyClass(); $TML->assign('mode', 'profile'); setOperator($TML); $TML->display('operator.tpl'); }
function showDepartment() { global $TITLE_KEY; $TML = new SmartyClass($TITLE_KEY); $TML->assign('mode', 'edit'); setDepartment($TML); $TML->display('department.tpl'); }
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; }
function showLeaveMessageSentPage() { $TML = new SmartyClass(); $TML->assignCompanyInfoAndTheme(); $TML->assign('theme', Browser::getCurrentTheme()); $TML->display('leave-message-sent.tpl'); exit; }
<?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';
* * Данный файл является частью проекта Веб Мессенджер. * * Все права защищены. (c) 2005-2009 ООО "ТОП". * Данное программное обеспечение и все сопутствующие материалы * предоставляются на условиях лицензии, доступной по адресу * http://webim.ru/license.html * */ $TITLE_KEY = 'page_login.title'; require_once '../classes/functions.php'; require_once '../classes/common.php'; require_once '../classes/class.smartyclass.php'; require_once '../classes/class.operator.php'; require_once '../classes/class.browser.php'; $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 . "/"); }
* Данный файл является частью проекта Веб Мессенджер. * * Все права защищены. (c) 2005-2009 ООО "ТОП". * Данное программное обеспечение и все сопутствующие материалы * предоставляются на условиях лицензии, доступной по адресу * http://webim.ru/license.html * */ $TITLE_KEY = 'page_analysis.adv.search.title'; require_once dirname(__FILE__) . '/inc/admin_prolog.php'; require_once '../classes/functions.php'; require_once '../classes/class.thread.php'; require_once '../classes/class.operator.php'; require_once '../classes/class.smartyclass.php'; require_once '../classes/class.pagination.php'; $TML = new SmartyClass($TITLE_KEY); $tmlPage = array(); $operator = Operator::getInstance()->GetLoggedOperator(); $show_empty = isset($_REQUEST['show_empty']) && $_REQUEST['show_empty'] == 1 ? true : false; if (isset($_REQUEST['q'])) { $q = $_REQUEST['q']; $items_per_page = verify_param('items', "/^\\d{1,3}\$/", DEFAULT_ITEMS_PER_PAGE); $op_param = verify_param('operator', "/^\\d+\$/"); // TODO should be operatorid $departmentidParam = verify_param('departmentid', "/^\\d+\$/"); $localeParam = verify_param($_REQUEST['locale'], '/^[a-z]{2}$/'); $rateParam = verify_param('rate', "/^\\w+\$/"); $startday = verify_param('startday', "/^\\d+\$/"); $startmonth = verify_param('startmonth', "/^\\d{2}.\\d{2}\$/"); $endday = verify_param('endday', "/^\\d+\$/"); $endmonth = verify_param('endmonth', "/^\\d{2}.\\d{2}\$/");
/* * * Данный файл является частью проекта Веб Мессенджер. * * Все права защищены. (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'); }
* Все права защищены. (c) 2005-2009 ООО "ТОП". * Данное программное обеспечение и все сопутствующие материалы * предоставляются на условиях лицензии, доступной по адресу * 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':
* Все права защищены. (c) 2005-2009 ООО "ТОП". * Данное программное обеспечение и все сопутствующие материалы * предоставляются на условиях лицензии, доступной по адресу * http://webim.ru/license.html * */ require_once 'classes/functions.php'; require_once 'classes/class.thread.php'; require_once 'classes/class.smartyclass.php'; require_once 'classes/class.settings.php'; require_once 'classes/class.visitor.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/stdf.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/captcha.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/feedback.php'; $captcha = new captcha(); $TML = new SmartyClass(); $TML->assignCompanyInfoAndTheme(); $errors = array(); $page = array(); $department = (int) $_REQUEST["department_db_id"]; $canChangeName = Visitor::getInstance()->canVisitorChangeName(); $v = GetVisitorFromRequestAndSetCookie(); $visitorid = $v['id']; $captcha_num = $v['captcha']; $message = get_mandatory_param('message'); $has_errors = false; if (count($_POST) == 0 && count($_FILES) == 0) { //костыль. при отправке на сервер большого файла приходит пустой request и files, как по длругому определить, пока не придумал $has_errors = true; $errors[0] = 6; $errors[1] = iconv("UTF-8", "WINDOWS-1251//IGNORE", "Файл очень велик");
* * Все права защищены. (c) 2005-2009 ООО "ТОП". * Данное программное обеспечение и все сопутствующие материалы * предоставляются на условиях лицензии, доступной по адресу * http://webim.ru/license.html * */ require_once 'classes/functions.php'; require_once 'classes/class.thread.php'; require_once 'classes/class.smartyclass.php'; require_once 'classes/class.settings.php'; require_once 'classes/class.visitor.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/captcha.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/feedback.php'; $captcha = new captcha(); $TML = new SmartyClass(); $TML->assignCompanyInfoAndTheme(); $errors = array(); $page = array(); $email = get_mandatory_param('email'); $phone = get_mandatory_param('phone'); // отправке диалогов $dept = 1; // пока не выбирается $canChangeName = Visitor::getInstance()->canVisitorChangeName(); $v = GetVisitorFromRequestAndSetCookie(); $visitorid = $v['id']; $captcha_num = $v['captcha']; if ($canChangeName) { $visitor_name = get_mandatory_param('name'); } else {
<?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';
* * Данный файл является частью проекта Веб Мессенджер. * * Все права защищены. (c) 2005-2009 ООО "ТОП". * Данное программное обеспечение и все сопутствующие материалы * предоставляются на условиях лицензии, доступной по адресу * http://webim.ru/license.html * */ require_once '../classes/functions.php'; require_once '../classes/class.thread.php'; require_once '../classes/class.pagination.php'; require_once '../classes/class.smartyclass.php'; require_once '../classes/class.visitsession.php'; $operator = Operator::getInstance()->GetLoggedOperator(); $TML = new SmartyClass(); $items_per_page = verify_param("items", "/^\\d{1,3}\$/", DEFAULT_ITEMS_PER_PAGE); $visitsessionid = verify_param("visitsessionid", "/^\\d{0,63}\\.?\\d{0,63}\$/", ""); $threadid = verify_param("threadid", "/^\\d{1,8}\$/", ""); $found = Thread::getInstance()->GetThreadsByVisitSessionID($visitsessionid); $tmlPage = array(); if ($found) { $pagination = setup_pagination($found); $tmlPage['pagination'] = $pagination['pagination']; $tmlPage['pagination_items'] = $pagination['pagination_items']; $TML->assign('pagination', generate_pagination($tmlPage['pagination'])); for ($i = 0; $i < count($tmlPage['pagination_items']); $i++) { $tmlPage['pagination_items'][$i]['diff'] = webim_date_diff($tmlPage['pagination_items'][$i]['modified'] - $tmlPage['pagination_items'][$i]['created']); } } $TML->assign('page_settings', $tmlPage);
<?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');
$visitSession = null; 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');
* * Данный файл является частью проекта Веб Мессенджер. * * Все права защищены. (c) 2005-2009 ООО "ТОП". * Данное программное обеспечение и все сопутствующие материалы * предоставляются на условиях лицензии, доступной по адресу * http://webim.ru/license.html * */ require_once '../classes/functions.php'; require_once '../classes/class.smartyclass.php'; require_once '../classes/class.operator.php'; require_once '../classes/class.settings.php'; require_once '../classes/class.button.php'; Operator::getInstance()->IsCurrentUserAdminOrRedirect(); $TML = new SmartyClass(); $image = verify_param('image', "/^[\\w\\.]+\$/", 'webim'); $theme = verify_param('theme', "/^\\w+\$/", 'default'); $TML->assign('theme', $theme); //$TML->assign('availableImages', Button::enumAvailableImages(WEBIM_CURRENT_LOCALE)); //$TML->assign('availableThemes', enumAvailableThemes()); //$TML->assign('availableDepartments', MapperFactory::getMapper("Department")->enumDepartments(Resources::getCurrentLocale())); $TML->assign('params', Button::getParameters()); $lang = Resources::getCurrentLocale(); $showhost = verify_param('include_host_url', '/^y$/', '') == 'y'; $includeTracker = verify_param('add_track_code', '/^y$/', '') == 'y'; $forcesecure = verify_param('secure', '/^y$/', '') == 'y'; $chooseoperator = verify_param('choose_operator', "/^\\w+\$/", ''); $chatimmediately = verify_param('chat_immediately', '/^y$/', '') == 'y'; $departmentkey = verify_param('department_key', "/^\\w+\$/"); $choosedepartment = verify_param('choose_department', '/^y$/', '') == 'y';
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'); }
/* * * Данный файл является частью проекта Веб Мессенджер. * * Все права защищены. (c) 2005-2009 ООО "ТОП". * Данное программное обеспечение и все сопутствующие материалы * предоставляются на условиях лицензии, доступной по адресу * http://webim.ru/license.html * */ require_once '../classes/functions.php'; require_once '../classes/class.thread.php'; require_once '../classes/class.department.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);
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}&force=true", 'viewlink' => $_SERVER['PHP_SELF'] . "?thread={$threadid}&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 . "&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); }
* Данный файл является частью проекта Веб Мессенджер. * * Все права защищены. (c) 2005-2009 ООО "ТОП". * Данное программное обеспечение и все сопутствующие материалы * предоставляются на условиях лицензии, доступной по адресу * http://webim.ru/license.html * */ $TITLE_KEY = 'leftMenu.client_settings'; 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'; $answersKey = 'answers_' . WEBIM_CURRENT_LOCALE; Operator::getInstance()->IsCurrentUserAdminOrRedirect(); $TML = new SmartyClass($TITLE_KEY); $errors = array(); if (isset($_REQUEST['dellogo'])) { Settings::getInstance()->Set('logo', ''); } if (isset($_POST['submitted'])) { $fields = array('company_name', 'hosturl', $answersKey, 'superviser_email', 'from_email', 'offline_email', 'stats_email', 'max_sessions'); $emails = array('stats_email' => 'settings.stats_email', 'superviser_email' => 'settings.superviser_email', 'from_email' => 'settings.from_email', 'offline_email' => 'settings.offline_email'); $params = array(); foreach ($fields as $key) { if (isset($_REQUEST[$key])) { $params[$key] = get_mandatory_param($key); } } foreach ($emails as $key => $res) { if (empty($params[$key])) {
* Данный файл является частью проекта Веб Мессенджер. * * Все права защищены. (c) 2005-2009 ООО "ТОП". * Данное программное обеспечение и все сопутствующие материалы * предоставляются на условиях лицензии, доступной по адресу * http://webim.ru/license.html * */ $TITLE_KEY = 'page_analysis.search.title'; require_once dirname(__FILE__) . '/inc/admin_prolog.php'; require_once '../classes/functions.php'; require_once '../classes/class.thread.php'; require_once '../classes/class.operator.php'; require_once '../classes/class.smartyclass.php'; require_once '../classes/class.pagination.php'; $TML = new SmartyClass($TITLE_KEY); $tmlPage = null; $operator = Operator::getInstance()->GetLoggedOperator(); $items_per_page = verify_param("items", "/^\\d{1,3}\$/", DEFAULT_ITEMS_PER_PAGE); $show_empty = isset($_REQUEST['show_empty']) && $_REQUEST['show_empty'] == 1 ? true : false; if (isset($_REQUEST['q'])) { $nTotal = Thread::getInstance()->GetListThreadsCount($operator['operatorid'], $_REQUEST['q'], $show_empty); if ($nTotal) { $pagination = setup_pagination_cnt($nTotal, $items_per_page); $nLimit = $pagination['items']; $nOffset = $pagination['start']; $res = Thread::getInstance()->GetListThreads($operator['operatorid'], $_REQUEST['q'], $show_empty, $nLimit, $nOffset); $tmlPage['pagination'] = $pagination; $tmlPage['pagination_items'] = $res; } if (!empty($tmlPage['pagination_items'])) {
require_once '../classes/class.smartyclass.php'; // if (isset($_GET['threadid'])) { // $threadid = verify_param("threadid", "/^(\d{1,9})?$/", ""); // $lastid = -1; // $TML->assign('messages', Thread::getInstance()->GetMessages($threadid, "html", false, $lastid)); // } $threadid = verify_param('threadid', "/^(\\d{1,9})?\$/"); if (empty($threadid)) { die('threadid should be provided for history'); } $operator = Operator::getInstance()->GetLoggedOperator(); $canAccess = Thread::getInstance()->hasThreadAccess($operator['operatorid'], $threadid); if (!$canAccess) { die('access denied'); } $TML = new SmartyClass(); $lastid = '-1'; $TML->assign('messages', Thread::getInstance()->GetMessages($threadid, 'html', false, $lastid)); $TML->assign('threadid', $threadid); $TML->assign('is_admin', Operator::getInstance()->isCurrentUserAdmin()); if (isset($_REQUEST['act'])) { 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':
* * Все права защищены. (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';
<?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');
* * Все права защищены. (c) 2005-2009 ООО "ТОП". * Данное программное обеспечение и все сопутствующие материалы * предоставляются на условиях лицензии, доступной по адресу * http://webim.ru/license.html * */ $TITLE_KEY = 'statistics.title'; require_once dirname(__FILE__) . '/inc/admin_prolog.php'; require_once '../classes/functions.php'; require_once '../classes/class.thread.php'; require_once '../classes/class.operator.php'; require_once '../classes/class.smartyclass.php'; Operator::getInstance()->IsCurrentUserAdminOrRedirect(); $tmlPage = null; $TML = new SmartyClass($TITLE_KEY); $tmlPage['availableDays'] = range(1, 31); $currTime = getCurrentTime(); $tmlPage['availableMonth'] = get_month_selection($currTime - 400 * 24 * 60 * 60, $currTime + 50 * 24 * 60 * 60); $tmlPage['showresults'] = false; $tmlPage['departments'] = MapperFactory::getMapper("Department")->enumDepartments(Resources::getCurrentLocale()); $tmlPage['locales'] = getAvailableLocalesForChat(); Operator::getInstance()->ensureOperatorsAreInLastAccess(); $errors = array(); if (isset($_GET['startday'])) { $startday = verify_param("startday", "/^\\d+\$/"); $startmonth = verify_param("startmonth", "/^\\d{2}.\\d{2}\$/"); $endday = verify_param("endday", "/^\\d+\$/"); $endmonth = verify_param("endmonth", "/^\\d{2}.\\d{2}\$/"); $start = get_form_date($startday, $startmonth); $end = get_form_date($endday, $endmonth) + 24 * 60 * 60;
$page = array(); $token = verify_param("token", "/^\\d{1,8}\$/"); $threadid = verify_param("threadid", "/^\\d{1,8}\$/"); $thread = Thread::getInstance()->GetThreadById($threadid); if (!$thread || !isset($thread['token']) || $token != $thread['token']) { die("wrong thread"); } $email = !empty($_POST['email']) ? trim($_POST['email']) : false; $email_from = !empty($_POST['email_from']) ? trim($_POST['email_from']) : false; $mode = !empty($_POST['mode']) ? trim($_POST['mode']) : false; $dept = !empty($_POST['dept']) ? trim($_POST['dept']) : false; // отправке диалогов из мессенджера ---------- if ($dept && isset($aDko[$dept]['email'])) { $email = $aDko[$dept]['email']; } $TML = new SmartyClass(); $TML->assignCompanyInfoAndTheme(); $has_errors = false; if ($mode != 'cons' && empty($email)) { $TML->assign('erroremail', true); $has_errors = true; } elseif ($mode != 'cons' && !is_valid_email($email)) { $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;
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';
* Данное программное обеспечение и все сопутствующие материалы * предоставляются на условиях лицензии, доступной по адресу * http://webim.ru/license.html * */ $TITLE_KEY = 'page_ban.title'; require_once dirname(__FILE__) . '/inc/admin_prolog_before.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/class.thread.php'; require_once '../classes/class.visitsession.php'; require_once '../classes/models/generic/class.mapperfactory.php'; $banMapper = MapperFactory::getMapper("Ban"); $TML = new SmartyClass($TITLE_KEY); if (!isset($_REQUEST['submitted'])) { if (isset($_REQUEST['address'])) { $TML->assign('address', $_REQUEST['address']); } $TML->assign('till', date(getDateTimeFormat(), time() + 24 * 60 * 60)); // next day } $operator = Operator::getInstance()->GetLoggedOperator(); $errors = array(); if (isset($_REQUEST['submitted'])) { $banid = verify_param("banid", "/^(\\d{1,9})?\$/", ""); $address = get_mandatory_param("address"); $till = get_mandatory_param("till"); $comment = get_mandatory_param('comment'); if (empty($address)) {
/* * * Данный файл является частью проекта Веб Мессенджер. * * Все права защищены. (c) 2005-2009 ООО "ТОП". * Данное программное обеспечение и все сопутствующие материалы * предоставляются на условиях лицензии, доступной по адресу * http://webim.ru/license.html * */ require_once '../classes/functions.php'; require_once '../classes/class.thread.php'; require_once '../classes/class.pagination.php'; require_once '../classes/class.smartyclass.php'; $operator = Operator::getInstance()->GetLoggedOperator(); $TML = new SmartyClass(); $action = $_REQUEST['action']; $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');