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 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'); }
* Все права защищены. (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'; $locale = verify_param('locale', '/^([a-z]{2})$/', Resources::getCurrentLocale()); $size = array(); if (function_exists('gd_info')) {
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';
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 . "/"); } 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');
if ($start > $end) { $errors[] = Resources::Get('search.wrong.dates'); } else { $nTotal = Thread::getInstance()->GetListThreadsAdvCount($operator['operatorid'], $q, $start, $end, $op_param, $show_empty, $departmentidParam, $localeParam, $rateParam, $offlineParam); if ($nTotal) { $pagination = setup_pagination_cnt($nTotal, $items_per_page); $nLimit = $pagination['items']; $nOffset = $pagination['start']; $threads = Thread::getInstance()->GetListThreadsAdv($operator['operatorid'], $q, $start, $end, $op_param, $show_empty, $departmentidParam, $localeParam, $rateParam, $offlineParam, $nLimit, $nOffset); $tmlPage['pagination'] = $pagination; $tmlPage['pagination_items'] = $threads; if (!empty($tmlPage['pagination_items'])) { 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('pagination', generate_pagination($tmlPage['pagination'])); } } $tmlPage['formq'] = $q; $tmlPage['formoperator'] = $op_param; $tmlPage['formstartday'] = date('d', $start); $tmlPage['formstartmonth'] = date('m.y', $start); $tmlPage['formendday'] = date('d', $end - 24 * 60 * 60); $tmlPage['formendmonth'] = date('m.y', $end - 24 * 60 * 60); // $TML->assign('pagination', generate_pagination($tmlPage['pagination'])); } // no errors and need to find } else { // no query $currTime = getCurrentTime(); $curr = getdate($currTime);
* Данный файл является частью проекта Веб Мессенджер. * * Все права защищены. (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';
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'); }
$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');
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(); } header("Location: " . WEBIM_ROOT . "/operator/operator.php?operatorid=" . $_REQUEST['operatorid']); break; }
$attach[] = $cfile; } } $fileIndex++; } } } if ($sFileAlert) { $errors[1] = $sFileAlert; $errors[2] = $fileIndex; $errors[0] = 6; echo "Error:{$errors[0]};{$errors[1]};{$errors[2]}"; exit; } $captcha->setNumber(); $TML->assign('RAND', rand(1000, 9999)); $args = array(); foreach ($_GET as $key => $item) { if ($key != 'action') { $args[] = "{$key}={$item}"; } } $TML->assign('chaturi', "./?a=5" . join('&', $args)); $TML->assign('MAX_FILES', feedback::MAX_FILES); $TML->assign('u_token_key', $_SESSION['rand']); if ($has_errors) { echo "Error:{$errors[0]};{$errors['1']}" . ($errors[2] ? ';' . $errors[2] : ''); exit; } $visitSessionId = VisitSession::GetInstance()->updateCurrentOrCreateSession(); $params = array();
// отправке диалогов $dept = 1; // пока не выбирается $canChangeName = Visitor::getInstance()->canVisitorChangeName(); $v = GetVisitorFromRequestAndSetCookie(); $visitorid = $v['id']; $captcha_num = $v['captcha']; if ($canChangeName) { $visitor_name = get_mandatory_param('name'); } else { $visitor_name = $v['name']; } $message = get_mandatory_param('message'); $has_errors = false; if (empty($email)) { $TML->assign('erroremail', true); $has_errors = true; } elseif (!$captcha->checkNumber($captcha_num)) { $TML->assign('errorcaptcha', true); $has_errors = true; } elseif (empty($visitor_name) && $canChangeName) { $TML->assign('errorname', true); $has_errors = true; } elseif (empty($message)) { $TML->assign('errormessage', true); $has_errors = true; } else { if (!is_valid_email($email)) { $TML->assign('erroremailformat', true); $has_errors = true; }
<?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';
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); }
* Данное программное обеспечение и все сопутствующие материалы * предоставляются на условиях лицензии, доступной по адресу * 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); } if (!empty($nextdepartmentid)) { $nextdepartment = Department::getInstance()->getById($nextdepartmentid, Resources::getCurrentLocale()); $TML->assign('nextdepartment', $nextdepartment); } $errors = array();
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'])) { $TML->assign('pagination', generate_pagination($tmlPage['pagination'])); } $tmlPage['formq'] = $_GET['q']; $tmlPage['show_empty'] = $show_empty; } $TML->assign('advanced', false); $TML->assign('page_settings', $tmlPage); $TML->display('thread_search.tpl'); require_once dirname(__FILE__) . '/inc/admin_epilog.php';
} if (empty($errors)) { $hash = array(); $params['logo'] = WEBIM_ROOT . '/images/logo/' . constructFileNameFromUploadedFile($requestFile, $destFilename); } } if (empty($errors)) { $params[$answersKey] = remove_empty_strings($params[$answersKey]); foreach ($params as $key => $value) { Settings::getInstance()->Set($key, $value); } 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)
* * Все права защищены. (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';
// $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': Operator::getInstance()->IsCurrentUserAdminOrRedirect(); $threadid = verify_param('threadid', "/^(\\d{1,9})?\$/");
$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';
<?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');
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';
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; } if ($has_errors) { $TML->assign('threadid', $_REQUEST['threadid']); $TML->assign('token', $_REQUEST['token']);
<?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');
* */ $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)) { $errors[] = Resources::Get("errors.required", Resources::Get('form.field.address')); } elseif (!preg_match("/^(\\d{1,3}.\\d{1,3}.\\d{1,3}.\\d{1,3})\$/", $address) && !preg_match("/^([a-z0-9-]+\\.)+[a-z0-9-]+\$/", $address)) { $errors[] = Resources::Get("errors.format", Resources::Get("form.field.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'); } $TML->display('popup.tpl');