tray/src/messenger/webim/operator/settings.php

119 lines
4.1 KiB
PHP
Raw Normal View History

<?php
/*
* This file is part of Mibew Messenger project.
*
2011-02-16 03:22:22 +03:00
* Copyright (c) 2005-2011 Mibew Messenger Community
* All rights reserved. The contents of this file are subject to the terms of
* the Eclipse Public License v1.0 which accompanies this distribution, and
* is available at http://www.eclipse.org/legal/epl-v10.html
*
* Alternatively, the contents of this file may be used under the terms of
* the GNU General Public License Version 2 or later (the "GPL"), in which case
* the provisions of the GPL are applicable instead of those above. If you wish
* to allow use of your version of this file only under the terms of the GPL, and
* not to allow others to use your version of this file under the terms of the
* EPL, indicate your decision by deleting the provisions above and replace them
* with the notice and other provisions required by the GPL.
*
* Contributors:
* Evgeny Gryaznov - initial API and implementation
*/
require_once('../libs/common.php');
require_once('../libs/operator.php');
require_once('../libs/settings.php');
2011-12-14 19:50:10 +04:00
require_once('../libs/styles.php');
$operator = check_login();
force_password($operator);
$page = array('agentId' => '');
$errors = array();
2011-12-14 19:50:10 +04:00
$stylelist = get_style_list("../styles/dialogs");
$options = array(
2011-02-26 17:06:19 +03:00
'email', 'title', 'logo', 'hosturl', 'usernamepattern',
'chatstyle', 'chattitle', 'geolink', 'geolinkparams', 'sendmessagekey');
loadsettings();
2011-12-14 19:50:10 +04:00
if ($settings['enabletracking']) {
$options[] = 'invitationstyle';
$invitationstylelist = get_style_list("../styles/invitations");
}
$params = array();
2011-02-26 17:06:19 +03:00
foreach ($options as $opt) {
$params[$opt] = $settings[$opt];
}
if (isset($_POST['email']) && isset($_POST['title']) && isset($_POST['logo'])) {
2011-02-26 17:06:19 +03:00
$params['email'] = getparam('email');
$params['title'] = getparam('title');
$params['logo'] = getparam('logo');
$params['hosturl'] = getparam('hosturl');
$params['usernamepattern'] = getparam('usernamepattern');
$params['chattitle'] = getparam('chattitle');
$params['geolink'] = getparam('geolink');
$params['geolinkparams'] = getparam('geolinkparams');
$params['sendmessagekey'] = verifyparam('sendmessagekey', "/^c?enter$/");
2011-02-26 17:06:19 +03:00
$params['chatstyle'] = verifyparam("chatstyle", "/^\w+$/", $params['chatstyle']);
if (!in_array($params['chatstyle'], $stylelist)) {
$params['chatstyle'] = $stylelist[0];
}
2011-12-14 19:50:10 +04:00
if ($settings['enabletracking']) {
$params['invitationstyle'] = verifyparam("invitationstyle", "/^\w+$/", $params['invitationstyle']);
if (!in_array($params['invitationstyle'], $invitationstylelist)) {
$params['invitationstyle'] = $invitationstylelist[0];
}
}
2011-02-26 17:06:19 +03:00
if ($params['email'] && !is_valid_email($params['email'])) {
$errors[] = getlocal("settings.wrong.email");
}
2011-02-26 17:06:19 +03:00
if ($params['geolinkparams']) {
foreach (preg_split("/,/", $params['geolinkparams']) as $oneparam) {
if (!preg_match("/^\s*(toolbar|scrollbars|location|status|menubar|width|height|resizable)=\d{1,4}$/", $oneparam)) {
$errors[] = "Wrong link parameter: \"$oneparam\", should be one of 'toolbar, scrollbars, location, status, menubar, width, height or resizable'";
}
}
}
if (count($errors) == 0) {
foreach ($options as $opt) {
$settings[$opt] = $params[$opt];
}
2011-02-26 17:06:19 +03:00
update_settings();
header("Location: $webimroot/operator/settings.php?stored");
exit;
}
}
$page['formemail'] = topage($params['email']);
$page['formtitle'] = topage($params['title']);
2011-02-26 17:06:19 +03:00
$page['formlogo'] = topage($params['logo']);
$page['formhosturl'] = topage($params['hosturl']);
$page['formgeolink'] = topage($params['geolink']);
$page['formgeolinkparams'] = topage($params['geolinkparams']);
$page['formusernamepattern'] = topage($params['usernamepattern']);
$page['formchatstyle'] = $params['chatstyle'];
$page['formchattitle'] = topage($params['chattitle']);
$page['formsendmessagekey'] = $params['sendmessagekey'];
2011-12-14 19:50:10 +04:00
$page['availableChatStyles'] = $stylelist;
$page['stored'] = isset($_GET['stored']);
2011-12-14 19:50:10 +04:00
$page['enabletracking'] = $settings['enabletracking'];
if ($settings['enabletracking']) {
$page['forminvitationstyle'] = $params['invitationstyle'];
$page['availableInvitationStyles'] = $invitationstylelist;
}
prepare_menu($operator);
setup_settings_tabs(0);
start_html_output();
require('../view/settings.php');
?>