mirror of
				https://github.com/Mibew/mibew.git
				synced 2025-10-28 09:15:31 +03:00 
			
		
		
		
	update from branch (1.5.2)
git-svn-id: https://webim.svn.sourceforge.net/svnroot/webim/trunk@399 c66351dc-e62f-0410-b875-e3a5c0b9693f
This commit is contained in:
		
							parent
							
								
									4a2d55fb40
								
							
						
					
					
						commit
						c2d0852e83
					
				| @ -1,6 +1,5 @@ | |||||||
| #Thu Dec 18 15:36:01 CET 2008 | #Sun Mar 08 21:44:45 CET 2009 | ||||||
| eclipse.preferences.version=1 | eclipse.preferences.version=1 | ||||||
| encoding//webim/INSTALL_RUS.txt=cp1251 |  | ||||||
| encoding//webim/locales/fr/properties=ISO-8859-1 | encoding//webim/locales/fr/properties=ISO-8859-1 | ||||||
| encoding//webim/locales/names/properties=utf-8 | encoding//webim/locales/names/properties=utf-8 | ||||||
| encoding//webim/locales/ru=cp1251 | encoding//webim/locales/ru=cp1251 | ||||||
|  | |||||||
| @ -239,8 +239,11 @@ Class.inherit( Ajax.ChatThreadUpdater, Ajax.Base, { | |||||||
| 	if( haveMessage ) { | 	if( haveMessage ) { | ||||||
| 		FrameUtils.scrollDown(this._options.container); | 		FrameUtils.scrollDown(this._options.container); | ||||||
| 		if(!this.skipNextsound) { | 		if(!this.skipNextsound) { | ||||||
|  | 			var tsound = $('soundimg'); | ||||||
|  | 			if(tsound == null || tsound.className.match(new RegExp("\\bisound\\b")) ) { | ||||||
| 				playSound(Chat.webimRoot+'/sounds/new_message.wav'); | 				playSound(Chat.webimRoot+'/sounds/new_message.wav'); | ||||||
| 			} | 			} | ||||||
|  | 		} | ||||||
| 		if( !this.focused ) { | 		if( !this.focused ) { | ||||||
| 			window.focus(); | 			window.focus(); | ||||||
| 		} | 		} | ||||||
| @ -402,6 +405,22 @@ Behaviour.register({ | |||||||
| 			Chat.threadUpdater.update(); | 			Chat.threadUpdater.update(); | ||||||
| 		}; | 		}; | ||||||
| 	}, | 	}, | ||||||
|  | 	'a#togglesound' : function(el) { | ||||||
|  | 		el.onclick = function() { | ||||||
|  | 			var tsound = $('soundimg'); | ||||||
|  | 			if(!tsound) { | ||||||
|  | 				return; | ||||||
|  | 			} | ||||||
|  | 			if(tsound.className.match(new RegExp("\\bisound\\b"))) { | ||||||
|  | 				tsound.className = "tplimage inosound"; | ||||||
|  | 			} else { | ||||||
|  | 				tsound.className = "tplimage isound"; | ||||||
|  | 			} | ||||||
|  | 			var messagePane = $('msgwnd'); | ||||||
|  | 			if(messagePane) | ||||||
|  | 				messagePane.focus(); | ||||||
|  | 		}; | ||||||
|  | 	}, | ||||||
| 	'a.closethread' : function(el) { | 	'a.closethread' : function(el) { | ||||||
| 		el.onclick = function() { | 		el.onclick = function() { | ||||||
| 			Chat.threadUpdater.closeThread(); | 			Chat.threadUpdater.closeThread(); | ||||||
|  | |||||||
| @ -1,49 +0,0 @@ | |||||||
| 
 |  | ||||||
| Open Web Messenger |  | ||||||
| Copyright (c) 2005-2009 сообщество разработчиков Web Messenger. |  | ||||||
| 
 |  | ||||||
| Все права защищены. Данное программное обеспечение и сопутствующие материалы  |  | ||||||
| подпадают под условия Eclipse Public License v1.0, доступной по адресу  |  | ||||||
| http://www.eclipse.org/legal/epl-v10.html  |  | ||||||
| 
 |  | ||||||
| СИСТЕМНЫЕ ТРЕБОВАНИЯ |  | ||||||
| 
 |  | ||||||
|  * Apache сервер версии 1.3.34 или выше |  | ||||||
|  * MySQL версии 5.0 или выше |  | ||||||
|  * PHP версии 4.x или выше |  | ||||||
| 
 |  | ||||||
| БЫСТРАЯ УСТАНОВКА |  | ||||||
| 
 |  | ||||||
| 1. Создайте папку с именем 'webim' в корневом каталоге вашего сайта на сервере. |  | ||||||
| 2. Распакуйте и выгрузите содержимое архива с системой (сохраняя структуру директорий)  |  | ||||||
|    в созданную папку на сервере. |  | ||||||
| 3. Отредактируйте конфигурационный файл /webim/libs/config.php и выставьте правильные параметры  |  | ||||||
|    соединения с базой данных. |  | ||||||
| 4. Используя веб браузер, перейдите на страницу http://<ваш домен>/webim/install/ и  |  | ||||||
|    нажмите 'Create tables' ('Создать таблицы') |  | ||||||
| 5. После того, как необходимые таблицы будут созданы, удалите папку /webim/install/ на вашем сервере. |  | ||||||
| 6. Войдите в систему по адресу http://<ваш домен>/webim/operator/login.php, используя следующие данные: |  | ||||||
| 		пользователь: admin |  | ||||||
| 		пароль: <пустой> |  | ||||||
| 7. Получите код кнопки по адресу http://<ваш домен>/webim/operator/getcode.php и расположите ее  |  | ||||||
|    на странице вашего сайта. |  | ||||||
| 8. Измените пароль и имя пользователя по адресу http://<ваш домен>/webim/operator/operators.php. |  | ||||||
| 9. Просматривайте и обслуживайте посетителей, нажавших на кнопку на странце 'Pending users'  |  | ||||||
|    ('Посетители') по адресу http://<ваш домен>/webim/operator/users.php. |  | ||||||
| 
 |  | ||||||
| На unix/linux платформах измените владельца папки /webim/images/avatar на пользователя, |  | ||||||
| под которым запущен веб сервер (например, chown www /webim/images/avatar). Владелец должен иметь все  |  | ||||||
| права на папку /webim/images/avatar (chmod 700 /webim/images/avatar). |  | ||||||
| 
 |  | ||||||
| ОБНОВЛЕНИЕ СИСТЕМЫ |  | ||||||
| 
 |  | ||||||
| 1. Скопируйте /webim/libs/config.php в безопасное место, чтобы не потерять настройки. |  | ||||||
| 2. Скопируйте папку /webim/images/avatar в безопасное место, чтобы не потерять ее содержимое. |  | ||||||
| 3. Очистите папку 'webim' в корневом каталоге вашего сайта. |  | ||||||
| 4. Распакуйте и выгрузите содержимое архива с системой (сохраняя структуру директорий)  |  | ||||||
|    в папку 'webim'. |  | ||||||
| 5. Отредактируйте config.php в соответствии с настройками вашего сервера. |  | ||||||
| 6. Используя веб браузер, перейдите на страницу http://<ваш домен>/webim/install/index.php и следуйте  |  | ||||||
|    указаниям по обновлению базы данных (если потребуется). |  | ||||||
| 7. После того, как необходимые таблицы будут созданы, удалите папку /webim/install/ на вашем сервере. |  | ||||||
| 8. Восстановите содержимое папки /webim/images/avatar. |  | ||||||
| @ -20,7 +20,8 @@ require_once('libs/expand.php'); | |||||||
| if( !isset($_GET['token']) || !isset($_GET['thread']) ) { | if( !isset($_GET['token']) || !isset($_GET['thread']) ) { | ||||||
| 
 | 
 | ||||||
| 	$chatstyle = verifyparam( "style", "/^\w+$/", ""); | 	$chatstyle = verifyparam( "style", "/^\w+$/", ""); | ||||||
| 	$info = isset($_GET['info']) ? $_GET['info'] : ""; | 	$info = getgetparam('info'); | ||||||
|  | 	$email = getgetparam('email'); | ||||||
| 	$thread = NULL; | 	$thread = NULL; | ||||||
| 	if( isset($_SESSION['threadid']) ) { | 	if( isset($_SESSION['threadid']) ) { | ||||||
| 		$thread = reopen_thread($_SESSION['threadid']); | 		$thread = reopen_thread($_SESSION['threadid']); | ||||||
| @ -28,7 +29,10 @@ if( !isset($_GET['token']) || !isset($_GET['thread']) ) { | |||||||
| 
 | 
 | ||||||
| 	if( !$thread ) { | 	if( !$thread ) { | ||||||
| 		if(!has_online_operators()) { | 		if(!has_online_operators()) { | ||||||
|  | 			$page = array(); | ||||||
| 			setup_logo(); | 			setup_logo(); | ||||||
|  | 			$page['formname'] = topage(getgetparam('name')); | ||||||
|  | 			$page['formemail'] = topage($email); | ||||||
| 			$page['info'] = topage($info); | 			$page['info'] = topage($info); | ||||||
| 			expand("styles", getchatstyle(), "leavemessage.tpl"); | 			expand("styles", getchatstyle(), "leavemessage.tpl"); | ||||||
| 			exit; | 			exit; | ||||||
| @ -46,13 +50,16 @@ if( !isset($_GET['token']) || !isset($_GET['thread']) ) { | |||||||
| 		} | 		} | ||||||
| 		$userbrowser = $_SERVER['HTTP_USER_AGENT']; | 		$userbrowser = $_SERVER['HTTP_USER_AGENT']; | ||||||
| 		$remoteHost = isset($_SERVER['REMOTE_HOST']) ? $_SERVER['REMOTE_HOST'] : $extAddr; | 		$remoteHost = isset($_SERVER['REMOTE_HOST']) ? $_SERVER['REMOTE_HOST'] : $extAddr; | ||||||
| 		$visitor = $remote_visitor(); | 		$visitor = visitor_from_request(); | ||||||
| 		$thread = create_thread($visitor['name'], $remoteHost, $referer,$current_locale,$visitor['id'], $userbrowser); | 		$thread = create_thread($visitor['name'], $remoteHost, $referer,$current_locale,$visitor['id'], $userbrowser); | ||||||
| 		$_SESSION['threadid'] = $thread['threadid']; | 		$_SESSION['threadid'] = $thread['threadid']; | ||||||
| 		if( $referer ) { | 		if( $referer ) { | ||||||
| 			post_message($thread['threadid'],$kind_for_agent,getstring2('chat.came.from',array($referer))); | 			post_message($thread['threadid'],$kind_for_agent,getstring2('chat.came.from',array($referer))); | ||||||
| 		} | 		} | ||||||
| 		post_message($thread['threadid'],$kind_info,getstring('chat.wait')); | 		post_message($thread['threadid'],$kind_info,getstring('chat.wait')); | ||||||
|  | 		if($email) { | ||||||
|  | 			post_message($thread['threadid'],$kind_for_agent,getstring2('chat.visitor.email',array($email))); | ||||||
|  | 		} | ||||||
| 		if($info) { | 		if($info) { | ||||||
| 			post_message($thread['threadid'],$kind_for_agent,getstring2('chat.visitor.info',array($info))); | 			post_message($thread['threadid'],$kind_for_agent,getstring2('chat.visitor.info',array($info))); | ||||||
| 		} | 		} | ||||||
|  | |||||||
| @ -1,7 +1,13 @@ | |||||||
|   1.5.2 |   1.5.2 | ||||||
|   ----- |   ----- | ||||||
|  |   [+] Ability to disable sound notifications for chat (toolbar button)  | ||||||
|  |   [+] Switch to SSL in chat (should be enabled in "Settings -> Optional Services") | ||||||
|   [!] lost query parameters after login redirect |   [!] lost query parameters after login redirect | ||||||
|   [+] added referrer into button code |   [+] added referrer into button code | ||||||
|  |   [+] ability to add text for operator into button code, define visitor's name and email | ||||||
|  |   [!] geolocation on IPs in history | ||||||
|  |   [!] Translation UI: added sorting, filters, fixed several problems | ||||||
|  |   [+] New chat buttons | ||||||
| 
 | 
 | ||||||
|   1.5.1 |   1.5.1 | ||||||
|   ----- |   ----- | ||||||
|  | |||||||
| @ -1 +1 @@ | |||||||
| var myAgent="";var jk=0;var myRealAgent="";function kk(){var lk=["\157pe\162a","\u006d\163\151\145","saf\u0061\u0072i","\u0066i\162\u0065\u0066\157\170","n\u0065t\163c\u0061p\145","m\u006fzil\154a"];var gj=navigator.userAgent.toLowerCase();for(var i=0;i<lk.length;i++){var ok=lk[i];if(gj.indexOf(ok)!=-1){myAgent=ok;if(!window.RegExp)break;var pk=new RegExp(ok+"[ \/\135\u003f([\u0030\u002d9\135\053\050\.[\060-\u0039]\u002b\u0029\u003f)");if(pk.exec(gj)!=null){jk=parseFloat(RegExp.$1);} break;} } myRealAgent=myAgent;if(navigator.product=="\107\145c\153o")myAgent="\155o\u007a";} kk();function getEl(name){return document.getElementById(name);}  | var myAgent="";var lk=0;var myRealAgent="";function ok(){var pk=["\157pe\162\141","\155si\145","\u0073afa\u0072i","\u0066\151re\146o\u0078","\u006ee\u0074sc\u0061pe","\155o\172\u0069ll\141"];var bj=navigator.userAgent.toLowerCase();for(var i=0;i<pk.length;i++){var dk=pk[i];if(bj.indexOf(dk)!=-1){myAgent=dk;if(!window.RegExp)break;var ek=new RegExp(dk+"\133\u0020\/\u005d?\050[\u0030\0559]+\u0028\.\1330\u002d\071]\053)\u003f\u0029");if(ek.exec(bj)!=null){lk=parseFloat(RegExp.$1);} break;} } myRealAgent=myAgent;if(navigator.product=="\107e\u0063k\u006f")myAgent="\u006do\172";} ok();function getEl(name){return document.getElementById(name);}  | ||||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @ -40,16 +40,21 @@ if( count($errors) > 0 ) { | |||||||
| 	$page['formname'] = topage($visitor_name); | 	$page['formname'] = topage($visitor_name); | ||||||
| 	$page['formemail'] = $email; | 	$page['formemail'] = $email; | ||||||
| 	$page['formmessage'] = topage($message); | 	$page['formmessage'] = topage($message); | ||||||
| 	$page['info'] = $info; | 	$page['info'] = topage($info); | ||||||
| 	setup_logo(); | 	setup_logo(); | ||||||
| 	expand("styles", getchatstyle(), "leavemessage.tpl"); | 	expand("styles", getchatstyle(), "leavemessage.tpl"); | ||||||
| 	exit; | 	exit; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| $subject = getstring2_("leavemail.subject", array($visitor_name), $webim_messages_locale); |  | ||||||
| $body = getstring2_("leavemail.body", array($visitor_name,$email,$message,$info ? "$info\n" : ""), $webim_messages_locale); |  | ||||||
| 
 |  | ||||||
| loadsettings(); | loadsettings(); | ||||||
|  | $message_locale = $settings['left_messages_locale']; | ||||||
|  | if(!locale_exists($message_locale)) { | ||||||
|  | 	$message_locale = $home_locale; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | $subject = getstring2_("leavemail.subject", array($visitor_name), $message_locale); | ||||||
|  | $body = getstring2_("leavemail.body", array($visitor_name,$email,$message,$info ? "$info\n" : ""), $message_locale); | ||||||
|  | 
 | ||||||
| $inbox_mail = $settings['email']; | $inbox_mail = $settings['email']; | ||||||
| 
 | 
 | ||||||
| if($inbox_mail) { | if($inbox_mail) { | ||||||
|  | |||||||
| @ -15,8 +15,7 @@ | |||||||
| 
 | 
 | ||||||
| $connection_timeout = 30; // sec
 | $connection_timeout = 30; // sec
 | ||||||
| 
 | 
 | ||||||
| $simplenamecookie = "WEBIM_Name";   // 1.0.8 and earlier
 | $namecookie = "WEBIM_Data"; | ||||||
| $namecookie = "WEBIM_Data";   // 1.0.9+
 |  | ||||||
| $usercookie = "WEBIM_UserID"; | $usercookie = "WEBIM_UserID"; | ||||||
| 
 | 
 | ||||||
| $state_queue = 0; | $state_queue = 0; | ||||||
| @ -286,6 +285,11 @@ function setup_chatview_for_user($thread,$level) { | |||||||
| 
 | 
 | ||||||
| 	$params = "thread=".$thread['threadid']."&token=".$thread['ltoken']; | 	$params = "thread=".$thread['threadid']."&token=".$thread['ltoken']; | ||||||
| 	$page['mailLink'] = "$webimroot/client.php?".$params."&level=$level&act=mailthread"; | 	$page['mailLink'] = "$webimroot/client.php?".$params."&level=$level&act=mailthread"; | ||||||
|  | 
 | ||||||
|  | 	if($settings['enablessl'] == "1" && !is_secure_request()) { | ||||||
|  | 		$page['sslLink'] = get_app_location(true, true)."/client.php?".$params."&level=$level"; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	$page['isOpera95'] = is_agent_opera95(); | 	$page['isOpera95'] = is_agent_opera95(); | ||||||
| 	$page['neediframesrc'] = needsFramesrc(); | 	$page['neediframesrc'] = needsFramesrc(); | ||||||
| 
 | 
 | ||||||
| @ -305,6 +309,9 @@ function setup_chatview_for_operator($thread,$operator) { | |||||||
| 
 | 
 | ||||||
| 	setup_logo(); | 	setup_logo(); | ||||||
| 	$page['send_shortcut'] = "Ctrl-Enter"; | 	$page['send_shortcut'] = "Ctrl-Enter"; | ||||||
|  | 	if($settings['enablessl'] == "1" && !is_secure_request()) { | ||||||
|  | 		$page['sslLink'] = get_app_location(true, true)."/operator/agent.php?thread=".$thread['threadid']."&token=".$thread['ltoken']; | ||||||
|  | 	} | ||||||
| 	$page['isOpera95'] = is_agent_opera95(); | 	$page['isOpera95'] = is_agent_opera95(); | ||||||
| 	$page['neediframesrc'] = needsFramesrc(); | 	$page['neediframesrc'] = needsFramesrc(); | ||||||
| 	$page['historyParams'] = array("userid" => "".$thread['userid']); | 	$page['historyParams'] = array("userid" => "".$thread['userid']); | ||||||
| @ -535,15 +542,18 @@ function check_for_reassign($thread,$operator) { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function visitor_from_request() { | function visitor_from_request() { | ||||||
| 	global $namecookie, $simplenamecookie, $compatibility_encoding, $webim_encoding, $usercookie; | 	global $namecookie, $webim_encoding, $usercookie; | ||||||
| 	$userName = getstring("chat.default.username"); | 	$defaultName = getstring("chat.default.username"); | ||||||
|  | 	$userName = $defaultName; | ||||||
| 	if( isset($_COOKIE[$namecookie]) ) { | 	if( isset($_COOKIE[$namecookie]) ) { | ||||||
| 		$data = base64_decode(strtr($_COOKIE[$namecookie],'-_,', '+/=')); | 		$data = base64_decode(strtr($_COOKIE[$namecookie],'-_,', '+/=')); | ||||||
| 		if( strlen($data) > 0 ) { | 		if( strlen($data) > 0 ) { | ||||||
| 			$userName = myiconv("utf-8",$webim_encoding,$data); | 			$userName = myiconv("utf-8",$webim_encoding,$data); | ||||||
| 		} | 		} | ||||||
| 	} else if( isset($_COOKIE[$simplenamecookie]) && isset($compatibility_encoding) ) { | 	} | ||||||
| 		$userName = myiconv($compatibility_encoding,$webim_encoding,$_COOKIE[$simplenamecookie]); | 
 | ||||||
|  | 	if($userName == $defaultName) { | ||||||
|  | 		$userName = getgetparam('name', $userName); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	$userId = ""; | 	$userId = ""; | ||||||
|  | |||||||
| @ -17,7 +17,7 @@ session_start(); | |||||||
| require_once(dirname(__FILE__).'/converter.php'); | require_once(dirname(__FILE__).'/converter.php'); | ||||||
| require_once(dirname(__FILE__).'/config.php'); | require_once(dirname(__FILE__).'/config.php'); | ||||||
| 
 | 
 | ||||||
| $version = '1.5.1'; | $version = '1.5.2'; | ||||||
| 
 | 
 | ||||||
| function myiconv($in_enc, $out_enc, $string) { | function myiconv($in_enc, $out_enc, $string) { | ||||||
| 	global $_utf8win1251, $_win1251utf8; | 	global $_utf8win1251, $_win1251utf8; | ||||||
| @ -408,6 +408,36 @@ function quote_smart($value,$link) { | |||||||
| 	return mysql_real_escape_string($value,$link); | 	return mysql_real_escape_string($value,$link); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | function unicode_urldecode($url) { | ||||||
|  |     preg_match_all('/%u([[:alnum:]]{4})/', $url, $a); | ||||||
|  | 
 | ||||||
|  |     foreach ($a[1] as $uniord) { | ||||||
|  |         $dec = hexdec($uniord); | ||||||
|  |         $utf = ''; | ||||||
|  | 
 | ||||||
|  |         if ($dec < 128) { | ||||||
|  |             $utf = chr($dec); | ||||||
|  |         } else if ($dec < 2048) { | ||||||
|  |             $utf = chr(192 + (($dec - ($dec % 64)) / 64)); | ||||||
|  |             $utf .= chr(128 + ($dec % 64)); | ||||||
|  |         } else { | ||||||
|  |             $utf = chr(224 + (($dec - ($dec % 4096)) / 4096)); | ||||||
|  |             $utf .= chr(128 + ((($dec % 4096) - ($dec % 64)) / 64)); | ||||||
|  |             $utf .= chr(128 + ($dec % 64)); | ||||||
|  |         } | ||||||
|  |         $url = str_replace('%u'.$uniord, $utf, $url); | ||||||
|  |     } | ||||||
|  |     return urldecode($url); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | function getgetparam($name,$default='') { | ||||||
|  | 	global $webim_encoding; | ||||||
|  | 	if( !isset($_GET[$name]) || !$_GET[$name] ) { | ||||||
|  | 		return $default; | ||||||
|  | 	} | ||||||
|  | 	return myiconv("utf-8", $webim_encoding, unicode_urldecode($_GET[$name])); | ||||||
|  | } | ||||||
|  | 
 | ||||||
| function get_app_location($showhost,$issecure) { | function get_app_location($showhost,$issecure) { | ||||||
| 	global $webimroot; | 	global $webimroot; | ||||||
| 	if( $showhost ) { | 	if( $showhost ) { | ||||||
| @ -417,6 +447,13 @@ function get_app_location($showhost,$issecure) { | |||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | function is_secure_request() { | ||||||
|  | 	return | ||||||
|  | 		   isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443' | ||||||
|  | 		|| isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on" | ||||||
|  | 		|| isset($_SERVER["HTTP_HTTPS"]) && $_SERVER["HTTP_HTTPS"] == "on"; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| function get_month_selection($fromtime,$totime) { | function get_month_selection($fromtime,$totime) { | ||||||
| 	$start = getdate($fromtime); | 	$start = getdate($fromtime); | ||||||
| 	$month = $start['mon']; | 	$month = $start['mon']; | ||||||
| @ -448,9 +485,9 @@ function set_form_date($utime,$prefix) { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function webim_mail($toaddr, $reply_to, $subject, $body) { | function webim_mail($toaddr, $reply_to, $subject, $body) { | ||||||
| 	global $webim_encoding, $webim_from_email, $mail_encoding; | 	global $webim_encoding, $webim_mailbox, $mail_encoding; | ||||||
| 
 | 
 | ||||||
| 	$headers = "From: $webim_from_email\r\n" | 	$headers = "From: $webim_mailbox\r\n" | ||||||
| 	   ."Reply-To: ".myiconv($webim_encoding, $mail_encoding, $reply_to)."\r\n" | 	   ."Reply-To: ".myiconv($webim_encoding, $mail_encoding, $reply_to)."\r\n" | ||||||
| 	   ."Content-Type: text/plain; charset=$mail_encoding\r\n" | 	   ."Content-Type: text/plain; charset=$mail_encoding\r\n" | ||||||
| 	   .'X-Mailer: PHP/'.phpversion(); | 	   .'X-Mailer: PHP/'.phpversion(); | ||||||
| @ -460,23 +497,27 @@ function webim_mail($toaddr, $reply_to, $subject, $body) { | |||||||
| 	mail($toaddr, $real_subject, wordwrap(myiconv($webim_encoding, $mail_encoding, $body),70), $headers); | 	mail($toaddr, $real_subject, wordwrap(myiconv($webim_encoding, $mail_encoding, $body),70), $headers); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| $dbversion = '1.5.1'; | $dbversion = '1.5.2'; | ||||||
| 
 | 
 | ||||||
| $settings = array( | $settings = array( | ||||||
| 	'dbversion' => 0, | 	'dbversion' => 0, | ||||||
| 	'email' => '',				/* inbox for left messages */ |  | ||||||
| 	'title' => 'Your Company', | 	'title' => 'Your Company', | ||||||
| 	'hosturl' => 'http://webim.sourceforge.net', | 	'hosturl' => 'http://openwebim.org', | ||||||
| 	'logo' => '', | 	'logo' => '', | ||||||
| 	'enableban' => '0', |  | ||||||
| 	'usernamepattern' => '{name}', | 	'usernamepattern' => '{name}', | ||||||
| 	'usercanchangename' => '1', |  | ||||||
| 	'chatstyle' => 'default', | 	'chatstyle' => 'default', | ||||||
| 	'chattitle' => 'Live Support', | 	'chattitle' => 'Live Support', | ||||||
| 	'geolink' => 'http://api.hostip.info/get_html.php?ip={ip}', | 	'geolink' => 'http://api.hostip.info/get_html.php?ip={ip}', | ||||||
| 	'geolinkparams' => 'width=440,height=100,toolbar=0,scrollbars=0,location=0,status=1,menubar=0,resizable=1', | 	'geolinkparams' => 'width=440,height=100,toolbar=0,scrollbars=0,location=0,status=1,menubar=0,resizable=1', | ||||||
| 	'online_timeout' => 30,		/* Timeout (in seconds) when online operator becomes offline */ | 	'online_timeout' => 30,		/* Timeout (in seconds) when online operator becomes offline */ | ||||||
| 	'max_uploaded_file_size' => 100000, | 	'max_uploaded_file_size' => 100000, | ||||||
|  | 
 | ||||||
|  | 	'email' => '',				/* inbox for left messages */ | ||||||
|  | 	'left_messages_locale' => $home_locale, | ||||||
|  | 
 | ||||||
|  | 	'enableban' => '0', | ||||||
|  | 	'enablessl' => '0', | ||||||
|  | 	'usercanchangename' => '1', | ||||||
| ); | ); | ||||||
| $settingsloaded = false; | $settingsloaded = false; | ||||||
| $settings_in_db = array(); | $settings_in_db = array(); | ||||||
|  | |||||||
| @ -17,6 +17,11 @@ | |||||||
|  */ |  */ | ||||||
| $webimroot = "/webim"; | $webimroot = "/webim"; | ||||||
| 
 | 
 | ||||||
|  | /* | ||||||
|  |  *  Internal encoding | ||||||
|  |  */ | ||||||
|  | $webim_encoding = "utf-8"; | ||||||
|  | 
 | ||||||
| /* | /* | ||||||
|  *  MySQL Database parameters |  *  MySQL Database parameters | ||||||
|  */ |  */ | ||||||
| @ -25,35 +30,14 @@ $mysqldb = "webim_db"; | |||||||
| $mysqllogin = "webim_lite"; | $mysqllogin = "webim_lite"; | ||||||
| $mysqlpass = "123"; | $mysqlpass = "123"; | ||||||
| 
 | 
 | ||||||
| /* |  | ||||||
|  *  Localization parameters |  | ||||||
|  */ |  | ||||||
| 
 |  | ||||||
| /* Use UTF-8 database */ |  | ||||||
| $dbencoding = "utf8"; | $dbencoding = "utf8"; | ||||||
| $webim_encoding = "utf-8"; |  | ||||||
| $force_charset_in_connection = true; | $force_charset_in_connection = true; | ||||||
| 
 | 
 | ||||||
| /* | /* | ||||||
|  * Web Messenger 1.0.8 an earlier stored user name in cookie in "webim_encoding". If |  *  Mailbox | ||||||
|  * you used this versions of webim set your previous encoding here. |  | ||||||
|  */ |  */ | ||||||
| $compatibility_encoding = "cp1251"; | $webim_mailbox = "webim@yourdomain.com"; | ||||||
| 
 | $mail_encoding = "utf-8"; | ||||||
| /* |  | ||||||
|  * This encoding will be used for emails |  | ||||||
|  */ |  | ||||||
| $mail_encoding = $webim_encoding; |  | ||||||
| 
 |  | ||||||
| /* |  | ||||||
|  *   From field in outgoing mail. |  | ||||||
|  */ |  | ||||||
| $webim_from_email = "webim@yourdomain.com"; /* email from field */ |  | ||||||
| 
 |  | ||||||
| /* |  | ||||||
|  *   Inbox for left messages encoding |  | ||||||
|  */ |  | ||||||
| $webim_messages_locale = "en"; |  | ||||||
| 
 | 
 | ||||||
| /* | /* | ||||||
|  *  Locales |  *  Locales | ||||||
| @ -61,10 +45,4 @@ $webim_messages_locale = "en"; | |||||||
| $home_locale = "en";						/* native name will be used in this locale */ | $home_locale = "en";						/* native name will be used in this locale */ | ||||||
| $default_locale = "en";						/* if user does not provide known lang */ | $default_locale = "en";						/* if user does not provide known lang */ | ||||||
| 
 | 
 | ||||||
| /* |  | ||||||
|  *   Method of getting information about remote user. For example, you could |  | ||||||
|  *   have user name or id in session. Default value: visitor_from_request |  | ||||||
|  */ |  | ||||||
| $remote_visitor = 'visitor_from_request'; |  | ||||||
| 
 |  | ||||||
| ?>
 | ?>
 | ||||||
|  | |||||||
| @ -61,13 +61,18 @@ function setup_empty_pagination() { | |||||||
| 	$page['pagination'] = false; | 	$page['pagination'] = false; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function generate_pagination($pagination) { | function generate_pagination($pagination,$bottom=true) { | ||||||
| 	global $pagination_spacing, $links_on_page; | 	global $pagination_spacing, $links_on_page; | ||||||
| 	$result = getlocal2("tag.pagination.info", | 	$result = getlocal2("tag.pagination.info", | ||||||
| 		array($pagination['page'],$pagination['total'],$pagination['start']+1,$pagination['end'],$pagination['count']))."<br/>"; | 		array($pagination['page'],$pagination['total'],$pagination['start']+1,$pagination['end'],$pagination['count']))."<br/>"; | ||||||
| 
 | 
 | ||||||
| 	if( $pagination['total'] > 1 ) { | 	if( $pagination['total'] > 1 ) { | ||||||
| 		$result.="<br/><div class='pagination'>"; | 		if(!$bottom) { | ||||||
|  | 			$result = ""; | ||||||
|  | 		} else { | ||||||
|  | 			$result .= "<br/>"; | ||||||
|  | 		} | ||||||
|  | 		$result.="<div class='pagination'>"; | ||||||
| 		$curr_page = $pagination['page']; | 		$curr_page = $pagination['page']; | ||||||
| 
 | 
 | ||||||
| 		$minPage = max( $curr_page - $links_on_page, 1 ); | 		$minPage = max( $curr_page - $links_on_page, 1 ); | ||||||
|  | |||||||
| @ -46,6 +46,7 @@ chat.thread.state_closed=Closed | |||||||
| chat.thread.state_loading=Loading | chat.thread.state_loading=Loading | ||||||
| chat.thread.state_wait=In queue | chat.thread.state_wait=In queue | ||||||
| chat.thread.state_wait_for_another_agent=Waiting for operator | chat.thread.state_wait_for_another_agent=Waiting for operator | ||||||
|  | chat.visitor.email=E-Mail: {0} | ||||||
| chat.visitor.info=Info: {0} | chat.visitor.info=Info: {0} | ||||||
| chat.wait=Thank you for contacting us. An operator will be with you shortly... | chat.wait=Thank you for contacting us. An operator will be with you shortly... | ||||||
| chat.window.chatting_with=You chat with: | chat.window.chatting_with=You chat with: | ||||||
| @ -212,7 +213,7 @@ page.preview.userchat=Chat window (user-mode) | |||||||
| page.translate.descr=If you don't like the translation, please send us an update.    | page.translate.descr=If you don't like the translation, please send us an update.    | ||||||
| page.translate.done=Your translation is saved. | page.translate.done=Your translation is saved. | ||||||
| page.translate.one=Enter you translation. | page.translate.one=Enter you translation. | ||||||
| page.translate.title=Translate Open WebIM | page.translate.title=Localization wizard | ||||||
| page_agent.clear_avatar=Remove avatar | page_agent.clear_avatar=Remove avatar | ||||||
| page_agent.create_new=Here you can create new operator | page_agent.create_new=Here you can create new operator | ||||||
| page_agent.error.duplicate_login=Please choose another login, because agent with entered login is already registered in the system. | page_agent.error.duplicate_login=Please choose another login, because agent with entered login is already registered in the system. | ||||||
| @ -278,6 +279,8 @@ settings.email.description=Enter email to receive system messages | |||||||
| settings.email=Email | settings.email=Email | ||||||
| settings.enableban.description=Using it you can block attacks from specific IPs | settings.enableban.description=Using it you can block attacks from specific IPs | ||||||
| settings.enableban=Enable feature "Malicious Visitors" | settings.enableban=Enable feature "Malicious Visitors" | ||||||
|  | settings.enablessl.description=Please, note that your web server should be<br/> configured to support https requests. | ||||||
|  | settings.enablessl=Allow secure connections (SSL) | ||||||
| settings.geolink.description=Each IP becomes a link opening in new window. {ip} is substituted with a real ip.   | settings.geolink.description=Each IP becomes a link opening in new window. {ip} is substituted with a real ip.   | ||||||
| settings.geolink=Link to an external geolocation service | settings.geolink=Link to an external geolocation service | ||||||
| settings.geolinkparams.description=Window size and toolbars hiding  | settings.geolinkparams.description=Window size and toolbars hiding  | ||||||
| @ -305,6 +308,15 @@ thread.intro=The page displays chat | |||||||
| topMenu.admin=Administration | topMenu.admin=Administration | ||||||
| topMenu.logoff=Exit | topMenu.logoff=Exit | ||||||
| topMenu.users=Visitors | topMenu.users=Visitors | ||||||
|  | translate.direction=Direction: | ||||||
|  | translate.show.all=All strings | ||||||
|  | translate.show.foradmin=Strings for administrator | ||||||
|  | translate.show.foroperator=Strings for operator | ||||||
|  | translate.show.forvisitor=Strings for visitor | ||||||
|  | translate.show=Show: | ||||||
|  | translate.sort.key=Key identifier | ||||||
|  | translate.sort.lang=Source language string | ||||||
|  | translate.sort=Sort by: | ||||||
| typing.remote=Remote user is typing... | typing.remote=Remote user is typing... | ||||||
| updates.intro=Web Messenger updates. | updates.intro=Web Messenger updates. | ||||||
| updates.title=Updates | updates.title=Updates | ||||||
|  | |||||||
| @ -56,8 +56,9 @@ foreach( $output as $msg ) { | |||||||
| $subject = getstring("mail.user.history.subject"); | $subject = getstring("mail.user.history.subject"); | ||||||
| $body = getstring2("mail.user.history.body", array($thread['userName'],$history) ); | $body = getstring2("mail.user.history.body", array($thread['userName'],$history) ); | ||||||
| 
 | 
 | ||||||
| webim_mail($email, $webim_from_email, $subject, $body); | webim_mail($email, $webim_mailbox, $subject, $body); | ||||||
| 
 | 
 | ||||||
| setup_logo(); | setup_logo(); | ||||||
| expand("styles", getchatstyle(), "mailsent.tpl"); | expand("styles", getchatstyle(), "mailsent.tpl"); | ||||||
|  | exit; | ||||||
| ?>
 | ?>
 | ||||||
| @ -21,7 +21,7 @@ $operator = check_login(); | |||||||
| $page = array('agentId' => ''); | $page = array('agentId' => ''); | ||||||
| $errors = array(); | $errors = array(); | ||||||
| 
 | 
 | ||||||
| $options = array('enableban', 'usercanchangename'); | $options = array('enableban', 'usercanchangename', 'enablessl'); | ||||||
| 
 | 
 | ||||||
| loadsettings(); | loadsettings(); | ||||||
| $params = array(); | $params = array(); | ||||||
| @ -30,11 +30,8 @@ foreach($options as $opt) { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| if (isset($_POST['sent'])) { | if (isset($_POST['sent'])) { | ||||||
|     $params['enableban'] = verifyparam("enableban","/^on$/", "") == "on" ? "1" : "0"; |  | ||||||
|     $params['usercanchangename'] = verifyparam("usercanchangename", "/^on$/", "") == "on" ? "1" : "0"; |  | ||||||
| 
 |  | ||||||
| 	foreach($options as $opt) { | 	foreach($options as $opt) { | ||||||
| 		$settings[$opt] = $params[$opt]; |     	$settings[$opt] = verifyparam($opt,"/^on$/", "") == "on" ? "1" : "0"; | ||||||
| 	} | 	} | ||||||
|     update_settings(); |     update_settings(); | ||||||
|     header("Location: $webimroot/operator/features.php?stored"); |     header("Location: $webimroot/operator/features.php?stored"); | ||||||
| @ -42,9 +39,10 @@ if (isset($_POST['sent'])) { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| $page['operator']  = topage(get_operator_name($operator)); | $page['operator']  = topage(get_operator_name($operator)); | ||||||
| $page['formenableban'] = $params['enableban'] == "1"; |  | ||||||
| $page['formusercanchangename'] = $params['usercanchangename'] == "1"; |  | ||||||
| $page['stored'] = isset($_GET['stored']); | $page['stored'] = isset($_GET['stored']); | ||||||
|  | foreach($options as $opt) { | ||||||
|  |    	$page["form$opt"] = $params[$opt] == "1"; | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| setup_settings_tabs(1); | setup_settings_tabs(1); | ||||||
| start_html_output(); | start_html_output(); | ||||||
|  | |||||||
| @ -16,6 +16,35 @@ require_once('../libs/common.php'); | |||||||
| require_once('../libs/operator.php'); | require_once('../libs/operator.php'); | ||||||
| require_once('../libs/pagination.php'); | require_once('../libs/pagination.php'); | ||||||
| 
 | 
 | ||||||
|  | function compare_localization_by_l1($a, $b) { | ||||||
|  |     if ($a == $b) { | ||||||
|  |         return 0; | ||||||
|  |     } | ||||||
|  |     return ($a['l1'] < $b['l1']) ? -1 : 1; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | function compare_localization_by_id($a, $b) { | ||||||
|  |     if ($a == $b) { | ||||||
|  |         return 0; | ||||||
|  |     } | ||||||
|  |     return ($a['id'] < $b['id']) ? -1 : 1; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | function load_idlist($name) { | ||||||
|  | 	$result = array(); | ||||||
|  | 	$fp = @fopen(dirname(__FILE__)."/../locales/names/$name", "r"); | ||||||
|  | 	if($fp !== FALSE) { | ||||||
|  | 		while (!feof($fp)) { | ||||||
|  | 			$line = trim(fgets($fp, 4096)); | ||||||
|  | 			if($line && preg_match("/^[\w_\.]+$/", $line)) { | ||||||
|  | 				$result[] = $line; | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 		fclose($fp); | ||||||
|  | 	} | ||||||
|  | 	return $result; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| function save_message($locale,$key,$value) { | function save_message($locale,$key,$value) { | ||||||
| 	global $webim_encoding; | 	global $webim_encoding; | ||||||
| 	$result = ""; | 	$result = ""; | ||||||
| @ -39,11 +68,15 @@ function save_message($locale,$key,$value) { | |||||||
| 	if(!$added) { | 	if(!$added) { | ||||||
| 		$result .= "$key=".myiconv($webim_encoding, $current_encoding, str_replace("\r", "",str_replace("\n", "\\n",trim($value))))."\n"; | 		$result .= "$key=".myiconv($webim_encoding, $current_encoding, str_replace("\r", "",str_replace("\n", "\\n",trim($value))))."\n"; | ||||||
| 	} | 	} | ||||||
| 	$fp = fopen(dirname(__FILE__)."/../locales/$locale/properties", "w"); | 	$fp = @fopen(dirname(__FILE__)."/../locales/$locale/properties", "w"); | ||||||
|  | 	if($fp !== FALSE) { | ||||||
| 		fwrite($fp, $result); | 		fwrite($fp, $result); | ||||||
| 		fclose($fp); | 		fclose($fp); | ||||||
| 	$fp = fopen(dirname(__FILE__)."/../locales/$locale/properties.log", "a"); | 	} else { | ||||||
| 
 | 		die("cannot write /locales/$locale/properties, please check file permissions on your server"); | ||||||
|  | 	} | ||||||
|  | 	$fp = @fopen(dirname(__FILE__)."/../locales/$locale/properties.log", "a"); | ||||||
|  | 	if($fp !== FALSE) { | ||||||
| 		$extAddr = $_SERVER['REMOTE_ADDR']; | 		$extAddr = $_SERVER['REMOTE_ADDR']; | ||||||
| 		if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && | 		if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && | ||||||
| 		          $_SERVER['HTTP_X_FORWARDED_FOR'] != $_SERVER['REMOTE_ADDR']) { | 		          $_SERVER['HTTP_X_FORWARDED_FOR'] != $_SERVER['REMOTE_ADDR']) { | ||||||
| @ -55,6 +88,7 @@ function save_message($locale,$key,$value) { | |||||||
| 		fwrite($fp,"# ".date(DATE_RFC822)." by $remoteHost using $userbrowser\n"); | 		fwrite($fp,"# ".date(DATE_RFC822)." by $remoteHost using $userbrowser\n"); | ||||||
| 		fwrite($fp,"$key=".myiconv($webim_encoding, $current_encoding, str_replace("\r", "",str_replace("\n", "\\n",trim($value))))."\n"); | 		fwrite($fp,"$key=".myiconv($webim_encoding, $current_encoding, str_replace("\r", "",str_replace("\n", "\\n",trim($value))))."\n"); | ||||||
| 		fclose($fp); | 		fclose($fp); | ||||||
|  | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| $operator = check_login(); | $operator = check_login(); | ||||||
| @ -119,16 +153,48 @@ foreach($allLocales as $loc) { | |||||||
| 	$localesList[] = array("id" => $loc, "name" => getlocal_("localeid", $loc)); | 	$localesList[] = array("id" => $loc, "name" => getlocal_("localeid", $loc)); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | $show = verifyparam("show", "/^(all|s1|s2|s3)$/", "all"); | ||||||
|  | 
 | ||||||
| $result = array(); | $result = array(); | ||||||
| $allkeys = array_keys($lang1); | $allkeys = array_keys($lang1); | ||||||
| foreach($allkeys as $key) { | if($show == 's1') { | ||||||
| 	$result[] = array('id' => $key, 'l1' => $lang1[$key], 'l2' => (isset($lang2[$key]) ? $lang2[$key] : "<font color=\"#c13030\"><b>absent</b></font>") ); | 	$allkeys = array_intersect($allkeys, load_idlist('level1')); | ||||||
|  | } else if($show == 's2') { | ||||||
|  | 	$allkeys = array_intersect($allkeys, load_idlist('level2')); | ||||||
|  | } else if($show == 's3') { | ||||||
|  | 	$allkeys = array_diff($allkeys, load_idlist('level1'), load_idlist('level2')); | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | foreach($allkeys as $key) { | ||||||
|  | 	if($key != 'output_charset') { | ||||||
|  | 		$tsource = htmlspecialchars($lang1[$key]); | ||||||
|  | 		$value = isset($lang2[$key]) ? htmlspecialchars($lang2[$key]) : "<font color=\"#c13030\"><b>absent</b></font>"; | ||||||
|  | 		$result[] = array( | ||||||
|  | 				'id' => $key, | ||||||
|  | 				'l1' => $tsource, | ||||||
|  | 				'l2' => $value ); | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | $order = verifyparam("sort", "/^(id|l1)$/", "id"); | ||||||
|  | usort($result, "compare_localization_by_$order"); | ||||||
| setup_pagination($result,100); | setup_pagination($result,100); | ||||||
| 
 | 
 | ||||||
| $page['formtarget'] = $target; | $page['formtarget'] = $target; | ||||||
| $page['formsource'] = $source; | $page['formsource'] = $source; | ||||||
| $page['availableLocales'] = $localesList; | $page['availableLocales'] = $localesList; | ||||||
|  | $page['availableOrders'] = array( | ||||||
|  | 	array("id" => "id", "name" => getlocal("translate.sort.key")), | ||||||
|  | 	array("id" => "l1", "name" => getlocal("translate.sort.lang")), | ||||||
|  | ); | ||||||
|  | $page['formsort'] = $order; | ||||||
|  | $page['showOptions'] = array( | ||||||
|  | 	array("id" => "all", "name" => getlocal("translate.show.all")), | ||||||
|  | 	array("id" => "s1", "name" => getlocal("translate.show.forvisitor")), | ||||||
|  | 	array("id" => "s2", "name" => getlocal("translate.show.foroperator")), | ||||||
|  | 	array("id" => "s3", "name" => getlocal("translate.show.foradmin")), | ||||||
|  | ); | ||||||
|  | $page['formshow'] = $show; | ||||||
| start_html_output(); | start_html_output(); | ||||||
| require('../view/translatelist.php'); | require('../view/translatelist.php'); | ||||||
| ?>
 | ?>
 | ||||||
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.5 KiB | 
| @ -5,12 +5,12 @@ | |||||||
| <link rel="shortcut icon" href="${webimroot}/images/favicon.ico" type="image/x-icon"/> | <link rel="shortcut icon" href="${webimroot}/images/favicon.ico" type="image/x-icon"/> | ||||||
| <meta http-equiv="Content-Type" content="text/html; charset=Windows-1251"> | <meta http-equiv="Content-Type" content="text/html; charset=Windows-1251"> | ||||||
| <link rel="stylesheet" type="text/css" href="${webimroot}/chat.css" /> | <link rel="stylesheet" type="text/css" href="${webimroot}/chat.css" /> | ||||||
| <script type="text/javascript" language="javascript" src="${webimroot}/js/common.js"></script> | <script type="text/javascript" language="javascript" src="${webimroot}/js/common.js?v=152"></script> | ||||||
| <script type="text/javascript" language="javascript" src="${webimroot}/js/brws.js"></script> | <script type="text/javascript" language="javascript" src="${webimroot}/js/brws.js?v=152"></script> | ||||||
| <script language="javascript"><!-- | <script language="javascript"><!-- | ||||||
| var threadParams = { servl:"${webimroot}/thread.php",wroot:"${webimroot}",frequency:2,${if:user}user:"true",${endif:user}threadid:${page:ct.chatThreadId},token:${page:ct.token} }; | var threadParams = { servl:"${webimroot}/thread.php",wroot:"${webimroot}",frequency:2,${if:user}user:"true",${endif:user}threadid:${page:ct.chatThreadId},token:${page:ct.token} }; | ||||||
| //--></script> | //--></script> | ||||||
| <script type="text/javascript" language="javascript" src="${webimroot}/js/chat.js"></script> | <script type="text/javascript" language="javascript" src="${webimroot}/js/chat.js?v=152"></script> | ||||||
| </head> | </head> | ||||||
| 
 | 
 | ||||||
| <style> | <style> | ||||||
| @ -49,8 +49,11 @@ var threadParams = { servl:"${webimroot}/thread.php",wroot:"${webimroot}",freque | |||||||
| .iexec { background-position:-48px 0px; } | .iexec { background-position:-48px 0px; } | ||||||
| .ihistory, .ichangeuser { background-position:-96px 0px; } | .ihistory, .ichangeuser { background-position:-96px 0px; } | ||||||
| .isend { background-position:-120px 0px; } | .isend { background-position:-120px 0px; } | ||||||
|  | .issl { background-position:-144px 0px; } | ||||||
|  | .isound { background-position:-168px 0px; } | ||||||
|  | .inosound { background-position:-192px 0px; } | ||||||
| .iemail { background-position:0px 0px; } | .iemail { background-position:0px 0px; } | ||||||
| .iclosewin { background-position:-170px -1px; width: 15px; height: 15px; } | .iclosewin { background-position:-187px -27px; width: 15px; height: 15px; } | ||||||
| .tplimageloc { | .tplimageloc { | ||||||
| 	background: transparent url(${webimroot}${url:image.chat.sprite}) no-repeat scroll 0px 0px; | 	background: transparent url(${webimroot}${url:image.chat.sprite}) no-repeat scroll 0px 0px; | ||||||
| 	-moz-background-clip: -moz-initial;  | 	-moz-background-clip: -moz-initial;  | ||||||
| @ -175,10 +178,15 @@ ${if:historyParams} | |||||||
| 				<td><a href="${page:historyParamsLink}" target="_blank" title="${msg:page.analysis.userhistory.title}" onclick="this.newWindow = window.open('${page:historyParamsLink}', 'UserHistory', 'toolbar=0,scrollbars=0,location=0,statusbar=1,menubar=0,width=703,height=380,resizable=1');this.newWindow.focus();this.newWindow.opener=window;return false;"><img class="tplimage ihistory" src="${webimroot}/images/free.gif" border="0" alt="History "/></a></td> | 				<td><a href="${page:historyParamsLink}" target="_blank" title="${msg:page.analysis.userhistory.title}" onclick="this.newWindow = window.open('${page:historyParamsLink}', 'UserHistory', 'toolbar=0,scrollbars=0,location=0,statusbar=1,menubar=0,width=703,height=380,resizable=1');this.newWindow.focus();this.newWindow.opener=window;return false;"><img class="tplimage ihistory" src="${webimroot}/images/free.gif" border="0" alt="History "/></a></td> | ||||||
| ${endif:historyParams} | ${endif:historyParams} | ||||||
| ${endif:agent} | ${endif:agent} | ||||||
|  | 				<td><a id="togglesound" href="javascript:void(0)" onclick="return false;" title="Turn off sound"> | ||||||
|  | 				<img id="soundimg" class="tplimage isound" src="${webimroot}/images/free.gif" border="0" alt="Sound " /></a></td> | ||||||
| 	 | 	 | ||||||
| 				<td><a id="refresh" href="javascript:void(0)" onclick="return false;" title="${msg:chat.window.toolbar.refresh}"> | 				<td><a id="refresh" href="javascript:void(0)" onclick="return false;" title="${msg:chat.window.toolbar.refresh}"> | ||||||
| 				<img class="tplimage irefresh" src="${webimroot}/images/free.gif" border="0" alt="Refresh " /></a></td> | 				<img class="tplimage irefresh" src="${webimroot}/images/free.gif" border="0" alt="Refresh " /></a></td> | ||||||
| 
 | ${if:sslLink} | ||||||
|  | 				<td><a href="${page:sslLink}&style=${styleid}" title="SSL" > | ||||||
|  | 				<img class="tplimage issl" src="${webimroot}/images/free.gif" border="0" alt="SSL "/></a></td> | ||||||
|  | ${endif:sslLink} | ||||||
| 				<td width="20" valign="top"><img src='${webimroot}/images/free.gif' width="20" height="1" border="0" alt="" /></td> | 				<td width="20" valign="top"><img src='${webimroot}/images/free.gif' width="20" height="1" border="0" alt="" /></td> | ||||||
| 				</tr> | 				</tr> | ||||||
| 				</table> | 				</table> | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| <link rel="shortcut icon" href="${webimroot}/images/favicon.ico" type="image/x-icon"/> | <link rel="shortcut icon" href="${webimroot}/images/favicon.ico" type="image/x-icon"/> | ||||||
| <meta http-equiv="Content-Type" content="text/html; charset=Windows-1251"> | <meta http-equiv="Content-Type" content="text/html; charset=Windows-1251"> | ||||||
| <link rel="stylesheet" type="text/css" href="${webimroot}/chat.css" /> | <link rel="stylesheet" type="text/css" href="${webimroot}/chat.css" /> | ||||||
| <script type="text/javascript" language="javascript" src="${webimroot}/js/brws.js"></script> | <script type="text/javascript" language="javascript" src="${webimroot}/js/brws.js?v=152"></script> | ||||||
| </head> | </head> | ||||||
| 
 | 
 | ||||||
| <body bgcolor="#FFFFFF" text="#000000" link="#C28400" vlink="#C28400" alink="#C28400" marginwidth="0" marginheight="0" leftmargin="0" rightmargin="0" topmargin="0" bottommargin="0"> | <body bgcolor="#FFFFFF" text="#000000" link="#C28400" vlink="#C28400" alink="#C28400" marginwidth="0" marginheight="0" leftmargin="0" rightmargin="0" topmargin="0" bottommargin="0"> | ||||||
|  | |||||||
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 4.4 KiB | 
| @ -5,12 +5,12 @@ | |||||||
| <link rel="shortcut icon" href="${webimroot}/images/favicon.ico" type="image/x-icon"/> | <link rel="shortcut icon" href="${webimroot}/images/favicon.ico" type="image/x-icon"/> | ||||||
| <meta http-equiv="Content-Type" content="text/html; charset=Windows-1251"> | <meta http-equiv="Content-Type" content="text/html; charset=Windows-1251"> | ||||||
| <link rel="stylesheet" type="text/css" href="${webimroot}/chat.css" /> | <link rel="stylesheet" type="text/css" href="${webimroot}/chat.css" /> | ||||||
| <script type="text/javascript" language="javascript" src="${webimroot}/js/common.js"></script> | <script type="text/javascript" language="javascript" src="${webimroot}/js/common.js?v=152"></script> | ||||||
| <script type="text/javascript" language="javascript" src="${webimroot}/js/brws.js"></script> | <script type="text/javascript" language="javascript" src="${webimroot}/js/brws.js?v=152"></script> | ||||||
| <script language="javascript"><!-- | <script language="javascript"><!-- | ||||||
| var threadParams = { servl:"${webimroot}/thread.php",wroot:"${webimroot}",frequency:2,${if:user}user:"true",${endif:user}threadid:${page:ct.chatThreadId},token:${page:ct.token} }; | var threadParams = { servl:"${webimroot}/thread.php",wroot:"${webimroot}",frequency:2,${if:user}user:"true",${endif:user}threadid:${page:ct.chatThreadId},token:${page:ct.token} }; | ||||||
| //--></script> | //--></script> | ||||||
| <script type="text/javascript" language="javascript" src="${webimroot}/js/chat.js"></script> | <script type="text/javascript" language="javascript" src="${webimroot}/js/chat.js?v=152"></script> | ||||||
| </head> | </head> | ||||||
| <style> | <style> | ||||||
| .tplimage { | .tplimage { | ||||||
| @ -25,6 +25,9 @@ var threadParams = { servl:"${webimroot}/thread.php",wroot:"${webimroot}",freque | |||||||
| .iexec { background-position:-48px 0px; } | .iexec { background-position:-48px 0px; } | ||||||
| .ihistory, .ichangeuser { background-position:-24px -24px; } | .ihistory, .ichangeuser { background-position:-24px -24px; } | ||||||
| .isend { background-position:-48px -24px; } | .isend { background-position:-48px -24px; } | ||||||
|  | .issl { background-position:-173px 0px; } | ||||||
|  | .isound { background-position:-149px 0px; } | ||||||
|  | .inosound { background-position:-149px -24px; } | ||||||
| .iemail { background-position:0px 0px; } | .iemail { background-position:0px 0px; } | ||||||
| .iclosewin { background-position:-108px -34px; width: 15px; height: 15px; } | .iclosewin { background-position:-108px -34px; width: 15px; height: 15px; } | ||||||
| .ibuttondiv { background-position:-73px -2px; width: 35px; height: 45px;} | .ibuttondiv { background-position:-73px -2px; width: 35px; height: 45px;} | ||||||
| @ -170,9 +173,15 @@ ${if:historyParams} | |||||||
| 				<td><a href="${page:historyParamsLink}" target="_blank" title="${msg:page.analysis.userhistory.title}" onclick="this.newWindow = window.open('${page:historyParamsLink}', 'UserHistory', 'toolbar=0,scrollbars=0,location=0,statusbar=1,menubar=0,width=703,height=380,resizable=1');this.newWindow.focus();this.newWindow.opener=window;return false;"><img class="tplimage ihistory" src="${webimroot}/images/free.gif" border="0" alt="History "/></a></td> | 				<td><a href="${page:historyParamsLink}" target="_blank" title="${msg:page.analysis.userhistory.title}" onclick="this.newWindow = window.open('${page:historyParamsLink}', 'UserHistory', 'toolbar=0,scrollbars=0,location=0,statusbar=1,menubar=0,width=703,height=380,resizable=1');this.newWindow.focus();this.newWindow.opener=window;return false;"><img class="tplimage ihistory" src="${webimroot}/images/free.gif" border="0" alt="History "/></a></td> | ||||||
| ${endif:historyParams} | ${endif:historyParams} | ||||||
| ${endif:agent} | ${endif:agent} | ||||||
|  | 				<td><a id="togglesound" href="javascript:void(0)" onclick="return false;" title="Turn off sound"> | ||||||
|  | 				<img id="soundimg" class="tplimage isound" src="${webimroot}/images/free.gif" border="0" alt="Sound " /></a></td> | ||||||
|  | 
 | ||||||
| 				<td><a id="refresh" href="javascript:void(0)" onclick="return false;" title="${msg:chat.window.toolbar.refresh}"> | 				<td><a id="refresh" href="javascript:void(0)" onclick="return false;" title="${msg:chat.window.toolbar.refresh}"> | ||||||
| 				<img class="tplimage irefresh" src="${webimroot}/images/free.gif" border="0" alt="Refresh " /></a></td> | 				<img class="tplimage irefresh" src="${webimroot}/images/free.gif" border="0" alt="Refresh " /></a></td> | ||||||
| 
 | ${if:sslLink} | ||||||
|  | 				<td><a href="${page:sslLink}&style=${styleid}" title="SSL" > | ||||||
|  | 				<img class="tplimage issl" src="${webimroot}/images/free.gif" border="0" alt="SSL "/></a></td> | ||||||
|  | ${endif:sslLink} | ||||||
| 				<td width="20" valign="top"><img src='${webimroot}/images/free.gif' width="20" height="1" border="0" alt="" /></td> | 				<td width="20" valign="top"><img src='${webimroot}/images/free.gif' width="20" height="1" border="0" alt="" /></td> | ||||||
| 				</tr> | 				</tr> | ||||||
| 				</table> | 				</table> | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| <link rel="shortcut icon" href="${webimroot}/images/favicon.ico" type="image/x-icon"/> | <link rel="shortcut icon" href="${webimroot}/images/favicon.ico" type="image/x-icon"/> | ||||||
| <meta http-equiv="Content-Type" content="text/html; charset=Windows-1251"> | <meta http-equiv="Content-Type" content="text/html; charset=Windows-1251"> | ||||||
| <link rel="stylesheet" type="text/css" href="${webimroot}/chat.css" /> | <link rel="stylesheet" type="text/css" href="${webimroot}/chat.css" /> | ||||||
| <script type="text/javascript" language="javascript" src="${webimroot}/js/brws.js"></script> | <script type="text/javascript" language="javascript" src="${webimroot}/js/brws.js?v=152"></script> | ||||||
| </head> | </head> | ||||||
| 
 | 
 | ||||||
| <body bgcolor="#FFFFFF" background="${tplroot}/images/bg.gif" text="#000000" link="#C28400" vlink="#C28400" alink="#C28400" marginwidth="0" marginheight="0" leftmargin="0" rightmargin="0" topmargin="0" bottommargin="0"> | <body bgcolor="#FFFFFF" background="${tplroot}/images/bg.gif" text="#000000" link="#C28400" vlink="#C28400" alink="#C28400" marginwidth="0" marginheight="0" leftmargin="0" rightmargin="0" topmargin="0" bottommargin="0"> | ||||||
|  | |||||||
| @ -82,6 +82,10 @@ | |||||||
| 			<input type="checkbox" name="enableban" value="on"<?php echo form_value_cb('enableban') ? " checked=\"checked\"" : "" ?>/>
 | 			<input type="checkbox" name="enableban" value="on"<?php echo form_value_cb('enableban') ? " checked=\"checked\"" : "" ?>/>
 | ||||||
| 		</td><td></td><td class='formauth'><span class='formdescr'> — <?php echo getlocal('settings.enableban.description') ?></span></td></tr><tr><td colspan='3' height='10'></td></tr>
 | 		</td><td></td><td class='formauth'><span class='formdescr'> — <?php echo getlocal('settings.enableban.description') ?></span></td></tr><tr><td colspan='3' height='10'></td></tr>
 | ||||||
| 
 | 
 | ||||||
|  | 		<tr><td class='formauth'><?php echo getlocal('settings.enablessl') ?></td><td width='10'><img width='10' height='1' border='0' alt='' src='<?php echo $webimroot ?>/images/free.gif'></td><td></td></tr><tr><td height='2' colspan='3'></td></tr><tr><td>
 | ||||||
|  | 			<input type="checkbox" name="enablessl" value="on"<?php echo form_value_cb('enablessl') ? " checked=\"checked\"" : "" ?>/>
 | ||||||
|  | 		</td><td></td><td class='formauth'><span class='formdescr'> — <?php echo getlocal('settings.enablessl.description') ?></span></td></tr><tr><td colspan='3' height='10'></td></tr>
 | ||||||
|  | 
 | ||||||
| 		<tr><td colspan='3' height='20'></td></tr><tr><td colspan='3' background='<?php echo $webimroot ?>/images/formline.gif'><img src='<?php echo $webimroot ?>/images/formline.gif' width='1' height='2' border='0' alt=''></td></tr><tr><td colspan='3' height='10'></td></tr> | 		<tr><td colspan='3' height='20'></td></tr><tr><td colspan='3' background='<?php echo $webimroot ?>/images/formline.gif'><img src='<?php echo $webimroot ?>/images/formline.gif' width='1' height='2' border='0' alt=''></td></tr><tr><td colspan='3' height='10'></td></tr> | ||||||
| 		<tr> | 		<tr> | ||||||
| 			<td class="formauth" colspan="3"> | 			<td class="formauth" colspan="3"> | ||||||
|  | |||||||
| @ -18,7 +18,7 @@ | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| <link rel="stylesheet" type="text/css" media="all" href="<?php echo $webimroot ?>/styles.css" /> | <link rel="stylesheet" type="text/css" media="all" href="<?php echo $webimroot ?>/styles.css" /> | ||||||
| <script type="text/javascript" language="javascript" src="<?php echo $webimroot ?>/js/common.js"></script> | <script type="text/javascript" language="javascript" src="<?php echo $webimroot ?>/js/common.js?v=152"></script> | ||||||
| <script><!-- | <script><!-- | ||||||
| var localized = new Array( | var localized = new Array( | ||||||
|     "<?php echo getlocal("pending.table.speak") ?>", |     "<?php echo getlocal("pending.table.speak") ?>", | ||||||
| @ -30,7 +30,7 @@ var updaterOptions = { | |||||||
| 	agentservl:"<?php echo $webimroot ?>/operator/agent.php", | 	agentservl:"<?php echo $webimroot ?>/operator/agent.php", | ||||||
| 	noclients:"<?php echo getlocal("clients.no_clients") ?>" }; | 	noclients:"<?php echo getlocal("clients.no_clients") ?>" }; | ||||||
| //--></script>
 | //--></script>
 | ||||||
| <script type="text/javascript" language="javascript" src="<?php echo $webimroot ?>/js/users.js"></script> | <script type="text/javascript" language="javascript" src="<?php echo $webimroot ?>/js/users.js?v=152"></script> | ||||||
| 
 | 
 | ||||||
| <link rel="shortcut icon" href="<?php echo $webimroot ?>/images/favicon.ico" type="image/x-icon"/> | <link rel="shortcut icon" href="<?php echo $webimroot ?>/images/favicon.ico" type="image/x-icon"/> | ||||||
| <title> | <title> | ||||||
|  | |||||||
| @ -47,16 +47,34 @@ | |||||||
| <form name="translateForm" method="get" action="<?php echo $webimroot ?>/operator/translate.php"> | <form name="translateForm" method="get" action="<?php echo $webimroot ?>/operator/translate.php"> | ||||||
| <table cellspacing='0' cellpadding='0' border='0'><tr><td background='<?php echo $webimroot ?>/images/loginbg.gif'><table cellspacing='0' cellpadding='0' border='0'><tr><td><img src='<?php echo $webimroot ?>/images/logincrnlt.gif' width='16' height='16' border='0' alt=''></td><td></td><td><img src='<?php echo $webimroot ?>/images/logincrnrt.gif' width='16' height='16' border='0' alt=''></td></tr><tr><td></td><td align='center'><table border='0' cellspacing='0' cellpadding='0'> | <table cellspacing='0' cellpadding='0' border='0'><tr><td background='<?php echo $webimroot ?>/images/loginbg.gif'><table cellspacing='0' cellpadding='0' border='0'><tr><td><img src='<?php echo $webimroot ?>/images/logincrnlt.gif' width='16' height='16' border='0' alt=''></td><td></td><td><img src='<?php echo $webimroot ?>/images/logincrnrt.gif' width='16' height='16' border='0' alt=''></td></tr><tr><td></td><td align='center'><table border='0' cellspacing='0' cellpadding='0'> | ||||||
| 	<tr> | 	<tr> | ||||||
| 		<td class="formauth" colspan="3"> | 		<td class="formauth"><?php echo getlocal("translate.direction") ?></td>
 | ||||||
|  | 		<td></td> | ||||||
|  | 		<td class="formauth"><?php echo getlocal("translate.sort") ?></td>
 | ||||||
|  | 		<td></td> | ||||||
|  | 		<td class="formauth"><?php echo getlocal("translate.show") ?></td>
 | ||||||
|  | 	</tr> | ||||||
|  | 	<tr><td colspan="3" height="2"></td></tr> | ||||||
|  | 	<tr> | ||||||
|  | 		<td class="formauth"> | ||||||
| 			<select name="source" onchange="this.form.submit();"><?php foreach($page['availableLocales'] as $k) { echo "<option value=\"".$k["id"]."\"".($k["id"] == form_value("source") ? " selected=\"selected\"" : "").">".$k["name"]."</option>"; } ?></select>
 | 			<select name="source" onchange="this.form.submit();"><?php foreach($page['availableLocales'] as $k) { echo "<option value=\"".$k["id"]."\"".($k["id"] == form_value("source") ? " selected=\"selected\"" : "").">".$k["name"]."</option>"; } ?></select>
 | ||||||
| 			=> | 			=> | ||||||
| 			<select name="target" onchange="this.form.submit();"><?php foreach($page['availableLocales'] as $k) { echo "<option value=\"".$k["id"]."\"".($k["id"] == form_value("target") ? " selected=\"selected\"" : "").">".$k["name"]."</option>"; } ?></select>
 | 			<select name="target" onchange="this.form.submit();"><?php foreach($page['availableLocales'] as $k) { echo "<option value=\"".$k["id"]."\"".($k["id"] == form_value("target") ? " selected=\"selected\"" : "").">".$k["name"]."</option>"; } ?></select>
 | ||||||
| 		</td> | 		</td> | ||||||
|  | 		<td width="40"> </td> | ||||||
|  | 		<td> | ||||||
|  | 			<select name="sort" onchange="this.form.submit();"><?php foreach($page['availableOrders'] as $k) { echo "<option value=\"".$k["id"]."\"".($k["id"] == form_value("sort") ? " selected=\"selected\"" : "").">".$k["name"]."</option>"; } ?></select>
 | ||||||
|  | 		</td> | ||||||
|  | 		<td width="40"> </td> | ||||||
|  | 		<td> | ||||||
|  | 			<select name="show" onchange="this.form.submit();"><?php foreach($page['showOptions'] as $k) { echo "<option value=\"".$k["id"]."\"".($k["id"] == form_value("show") ? " selected=\"selected\"" : "").">".$k["name"]."</option>"; } ?></select>
 | ||||||
|  | 		</td> | ||||||
| 	</tr> | 	</tr> | ||||||
| </table></td><td></td></tr><tr><td><img src='<?php echo $webimroot ?>/images/logincrnlb.gif' width='16' height='16' border='0' alt=''></td><td></td><td><img src='<?php echo $webimroot ?>/images/logincrnrb.gif' width='16' height='16' border='0' alt=''></td></tr></table></td></tr></table> | </table></td><td></td></tr><tr><td><img src='<?php echo $webimroot ?>/images/logincrnlb.gif' width='16' height='16' border='0' alt=''></td><td></td><td><img src='<?php echo $webimroot ?>/images/logincrnrb.gif' width='16' height='16' border='0' alt=''></td></tr></table></td></tr></table> | ||||||
| </form> | </form> | ||||||
| <br/> | <br/> | ||||||
| <?php if( $page['pagination'] && $page['pagination.items'] ) { ?>
 | <?php if( $page['pagination'] && $page['pagination.items'] ) { ?>
 | ||||||
|  | 	<?php echo generate_pagination($page['pagination'],false) ?>
 | ||||||
|  | 	</br> | ||||||
| 	<table cellpadding="0" cellspacing="0" border="0" width="100%"> | 	<table cellpadding="0" cellspacing="0" border="0" width="100%"> | ||||||
| 		<tr> | 		<tr> | ||||||
| 			<td class='table' bgcolor='#276db8' height='30'><span class='header'>Key</span></td><td width='3'></td> | 			<td class='table' bgcolor='#276db8' height='30'><span class='header'>Key</span></td><td width='3'></td> | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user