mirror of
				https://github.com/Mibew/tray.git
				synced 2025-10-03 00:03:34 +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 | ||||
| encoding//webim/INSTALL_RUS.txt=cp1251 | ||||
| encoding//webim/locales/fr/properties=ISO-8859-1 | ||||
| encoding//webim/locales/names/properties=utf-8 | ||||
| encoding//webim/locales/ru=cp1251 | ||||
|  | ||||
| @ -239,8 +239,11 @@ Class.inherit( Ajax.ChatThreadUpdater, Ajax.Base, { | ||||
| 	if( haveMessage ) { | ||||
| 		FrameUtils.scrollDown(this._options.container); | ||||
| 		if(!this.skipNextsound) { | ||||
| 			var tsound = $('soundimg'); | ||||
| 			if(tsound == null || tsound.className.match(new RegExp("\\bisound\\b")) ) { | ||||
| 				playSound(Chat.webimRoot+'/sounds/new_message.wav'); | ||||
| 			} | ||||
| 		} | ||||
| 		if( !this.focused ) { | ||||
| 			window.focus(); | ||||
| 		} | ||||
| @ -402,6 +405,22 @@ Behaviour.register({ | ||||
| 			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) { | ||||
| 		el.onclick = function() { | ||||
| 			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']) ) { | ||||
| 
 | ||||
| 	$chatstyle = verifyparam( "style", "/^\w+$/", ""); | ||||
| 	$info = isset($_GET['info']) ? $_GET['info'] : ""; | ||||
| 	$info = getgetparam('info'); | ||||
| 	$email = getgetparam('email'); | ||||
| 	$thread = NULL; | ||||
| 	if( isset($_SESSION['threadid']) ) { | ||||
| 		$thread = reopen_thread($_SESSION['threadid']); | ||||
| @ -28,7 +29,10 @@ if( !isset($_GET['token']) || !isset($_GET['thread']) ) { | ||||
| 
 | ||||
| 	if( !$thread ) { | ||||
| 		if(!has_online_operators()) { | ||||
| 			$page = array(); | ||||
| 			setup_logo(); | ||||
| 			$page['formname'] = topage(getgetparam('name')); | ||||
| 			$page['formemail'] = topage($email); | ||||
| 			$page['info'] = topage($info); | ||||
| 			expand("styles", getchatstyle(), "leavemessage.tpl"); | ||||
| 			exit; | ||||
| @ -46,13 +50,16 @@ if( !isset($_GET['token']) || !isset($_GET['thread']) ) { | ||||
| 		} | ||||
| 		$userbrowser = $_SERVER['HTTP_USER_AGENT']; | ||||
| 		$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); | ||||
| 		$_SESSION['threadid'] = $thread['threadid']; | ||||
| 		if( $referer ) { | ||||
| 			post_message($thread['threadid'],$kind_for_agent,getstring2('chat.came.from',array($referer))); | ||||
| 		} | ||||
| 		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) { | ||||
| 			post_message($thread['threadid'],$kind_for_agent,getstring2('chat.visitor.info',array($info))); | ||||
| 		} | ||||
|  | ||||
| @ -1,7 +1,13 @@ | ||||
|   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 | ||||
|   [+] 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 +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['formemail'] = $email; | ||||
| 	$page['formmessage'] = topage($message); | ||||
| 	$page['info'] = $info; | ||||
| 	$page['info'] = topage($info); | ||||
| 	setup_logo(); | ||||
| 	expand("styles", getchatstyle(), "leavemessage.tpl"); | ||||
| 	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(); | ||||
| $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']; | ||||
| 
 | ||||
| if($inbox_mail) { | ||||
|  | ||||
| @ -15,8 +15,7 @@ | ||||
| 
 | ||||
| $connection_timeout = 30; // sec
 | ||||
| 
 | ||||
| $simplenamecookie = "WEBIM_Name";   // 1.0.8 and earlier
 | ||||
| $namecookie = "WEBIM_Data";   // 1.0.9+
 | ||||
| $namecookie = "WEBIM_Data"; | ||||
| $usercookie = "WEBIM_UserID"; | ||||
| 
 | ||||
| $state_queue = 0; | ||||
| @ -286,6 +285,11 @@ function setup_chatview_for_user($thread,$level) { | ||||
| 
 | ||||
| 	$params = "thread=".$thread['threadid']."&token=".$thread['ltoken']; | ||||
| 	$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['neediframesrc'] = needsFramesrc(); | ||||
| 
 | ||||
| @ -305,6 +309,9 @@ function setup_chatview_for_operator($thread,$operator) { | ||||
| 
 | ||||
| 	setup_logo(); | ||||
| 	$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['neediframesrc'] = needsFramesrc(); | ||||
| 	$page['historyParams'] = array("userid" => "".$thread['userid']); | ||||
| @ -535,15 +542,18 @@ function check_for_reassign($thread,$operator) { | ||||
| } | ||||
| 
 | ||||
| function visitor_from_request() { | ||||
| 	global $namecookie, $simplenamecookie, $compatibility_encoding, $webim_encoding, $usercookie; | ||||
| 	$userName = getstring("chat.default.username"); | ||||
| 	global $namecookie, $webim_encoding, $usercookie; | ||||
| 	$defaultName = getstring("chat.default.username"); | ||||
| 	$userName = $defaultName; | ||||
| 	if( isset($_COOKIE[$namecookie]) ) { | ||||
| 		$data = base64_decode(strtr($_COOKIE[$namecookie],'-_,', '+/=')); | ||||
| 		if( strlen($data) > 0 ) { | ||||
| 			$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 = ""; | ||||
|  | ||||
| @ -17,7 +17,7 @@ session_start(); | ||||
| require_once(dirname(__FILE__).'/converter.php'); | ||||
| require_once(dirname(__FILE__).'/config.php'); | ||||
| 
 | ||||
| $version = '1.5.1'; | ||||
| $version = '1.5.2'; | ||||
| 
 | ||||
| function myiconv($in_enc, $out_enc, $string) { | ||||
| 	global $_utf8win1251, $_win1251utf8; | ||||
| @ -408,6 +408,36 @@ function quote_smart($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) { | ||||
| 	global $webimroot; | ||||
| 	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) { | ||||
| 	$start = getdate($fromtime); | ||||
| 	$month = $start['mon']; | ||||
| @ -448,9 +485,9 @@ function set_form_date($utime,$prefix) { | ||||
| } | ||||
| 
 | ||||
| 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" | ||||
| 	   ."Content-Type: text/plain; charset=$mail_encoding\r\n" | ||||
| 	   .'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); | ||||
| } | ||||
| 
 | ||||
| $dbversion = '1.5.1'; | ||||
| $dbversion = '1.5.2'; | ||||
| 
 | ||||
| $settings = array( | ||||
| 	'dbversion' => 0, | ||||
| 	'email' => '',				/* inbox for left messages */ | ||||
| 	'title' => 'Your Company', | ||||
| 	'hosturl' => 'http://webim.sourceforge.net', | ||||
| 	'hosturl' => 'http://openwebim.org', | ||||
| 	'logo' => '', | ||||
| 	'enableban' => '0', | ||||
| 	'usernamepattern' => '{name}', | ||||
| 	'usercanchangename' => '1', | ||||
| 	'chatstyle' => 'default', | ||||
| 	'chattitle' => 'Live Support', | ||||
| 	'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', | ||||
| 	'online_timeout' => 30,		/* Timeout (in seconds) when online operator becomes offline */ | ||||
| 	'max_uploaded_file_size' => 100000, | ||||
| 
 | ||||
| 	'email' => '',				/* inbox for left messages */ | ||||
| 	'left_messages_locale' => $home_locale, | ||||
| 
 | ||||
| 	'enableban' => '0', | ||||
| 	'enablessl' => '0', | ||||
| 	'usercanchangename' => '1', | ||||
| ); | ||||
| $settingsloaded = false; | ||||
| $settings_in_db = array(); | ||||
|  | ||||
| @ -17,6 +17,11 @@ | ||||
|  */ | ||||
| $webimroot = "/webim"; | ||||
| 
 | ||||
| /* | ||||
|  *  Internal encoding | ||||
|  */ | ||||
| $webim_encoding = "utf-8"; | ||||
| 
 | ||||
| /* | ||||
|  *  MySQL Database parameters | ||||
|  */ | ||||
| @ -25,35 +30,14 @@ $mysqldb = "webim_db"; | ||||
| $mysqllogin = "webim_lite"; | ||||
| $mysqlpass = "123"; | ||||
| 
 | ||||
| /* | ||||
|  *  Localization parameters | ||||
|  */ | ||||
| 
 | ||||
| /* Use UTF-8 database */ | ||||
| $dbencoding = "utf8"; | ||||
| $webim_encoding = "utf-8"; | ||||
| $force_charset_in_connection = true; | ||||
| 
 | ||||
| /* | ||||
|  * Web Messenger 1.0.8 an earlier stored user name in cookie in "webim_encoding". If | ||||
|  * you used this versions of webim set your previous encoding here. | ||||
|  *  Mailbox | ||||
|  */ | ||||
| $compatibility_encoding = "cp1251"; | ||||
| 
 | ||||
| /* | ||||
|  * 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"; | ||||
| $webim_mailbox = "webim@yourdomain.com"; | ||||
| $mail_encoding = "utf-8"; | ||||
| 
 | ||||
| /* | ||||
|  *  Locales | ||||
| @ -61,10 +45,4 @@ $webim_messages_locale = "en"; | ||||
| $home_locale = "en";						/* native name will be used in this locale */ | ||||
| $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; | ||||
| } | ||||
| 
 | ||||
| function generate_pagination($pagination) { | ||||
| function generate_pagination($pagination,$bottom=true) { | ||||
| 	global $pagination_spacing, $links_on_page; | ||||
| 	$result = getlocal2("tag.pagination.info", | ||||
| 		array($pagination['page'],$pagination['total'],$pagination['start']+1,$pagination['end'],$pagination['count']))."<br/>"; | ||||
| 
 | ||||
| 	if( $pagination['total'] > 1 ) { | ||||
| 		$result.="<br/><div class='pagination'>"; | ||||
| 		if(!$bottom) { | ||||
| 			$result = ""; | ||||
| 		} else { | ||||
| 			$result .= "<br/>"; | ||||
| 		} | ||||
| 		$result.="<div class='pagination'>"; | ||||
| 		$curr_page = $pagination['page']; | ||||
| 
 | ||||
| 		$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_wait=In queue | ||||
| chat.thread.state_wait_for_another_agent=Waiting for operator | ||||
| chat.visitor.email=E-Mail: {0} | ||||
| chat.visitor.info=Info: {0} | ||||
| chat.wait=Thank you for contacting us. An operator will be with you shortly... | ||||
| 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.done=Your translation is saved. | ||||
| 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.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. | ||||
| @ -278,6 +279,8 @@ settings.email.description=Enter email to receive system messages | ||||
| settings.email=Email | ||||
| settings.enableban.description=Using it you can block attacks from specific IPs | ||||
| 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=Link to an external geolocation service | ||||
| settings.geolinkparams.description=Window size and toolbars hiding  | ||||
| @ -305,6 +308,15 @@ thread.intro=The page displays chat | ||||
| topMenu.admin=Administration | ||||
| topMenu.logoff=Exit | ||||
| 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... | ||||
| updates.intro=Web Messenger updates. | ||||
| updates.title=Updates | ||||
|  | ||||
| @ -56,8 +56,9 @@ foreach( $output as $msg ) { | ||||
| $subject = getstring("mail.user.history.subject"); | ||||
| $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(); | ||||
| expand("styles", getchatstyle(), "mailsent.tpl"); | ||||
| exit; | ||||
| ?>
 | ||||
| @ -21,7 +21,7 @@ $operator = check_login(); | ||||
| $page = array('agentId' => ''); | ||||
| $errors = array(); | ||||
| 
 | ||||
| $options = array('enableban', 'usercanchangename'); | ||||
| $options = array('enableban', 'usercanchangename', 'enablessl'); | ||||
| 
 | ||||
| loadsettings(); | ||||
| $params = array(); | ||||
| @ -30,11 +30,8 @@ foreach($options as $opt) { | ||||
| } | ||||
| 
 | ||||
| if (isset($_POST['sent'])) { | ||||
|     $params['enableban'] = verifyparam("enableban","/^on$/", "") == "on" ? "1" : "0"; | ||||
|     $params['usercanchangename'] = verifyparam("usercanchangename", "/^on$/", "") == "on" ? "1" : "0"; | ||||
| 
 | ||||
| 	foreach($options as $opt) { | ||||
| 		$settings[$opt] = $params[$opt]; | ||||
|     	$settings[$opt] = verifyparam($opt,"/^on$/", "") == "on" ? "1" : "0"; | ||||
| 	} | ||||
|     update_settings(); | ||||
|     header("Location: $webimroot/operator/features.php?stored"); | ||||
| @ -42,9 +39,10 @@ if (isset($_POST['sent'])) { | ||||
| } | ||||
| 
 | ||||
| $page['operator']  = topage(get_operator_name($operator)); | ||||
| $page['formenableban'] = $params['enableban'] == "1"; | ||||
| $page['formusercanchangename'] = $params['usercanchangename'] == "1"; | ||||
| $page['stored'] = isset($_GET['stored']); | ||||
| foreach($options as $opt) { | ||||
|    	$page["form$opt"] = $params[$opt] == "1"; | ||||
| } | ||||
| 
 | ||||
| setup_settings_tabs(1); | ||||
| start_html_output(); | ||||
|  | ||||
| @ -16,6 +16,35 @@ require_once('../libs/common.php'); | ||||
| require_once('../libs/operator.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) { | ||||
| 	global $webim_encoding; | ||||
| 	$result = ""; | ||||
| @ -39,11 +68,15 @@ function save_message($locale,$key,$value) { | ||||
| 	if(!$added) { | ||||
| 		$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); | ||||
| 		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']; | ||||
| 		if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && | ||||
| 		          $_SERVER['HTTP_X_FORWARDED_FOR'] != $_SERVER['REMOTE_ADDR']) { | ||||
| @ -56,6 +89,7 @@ function save_message($locale,$key,$value) { | ||||
| 		fwrite($fp,"$key=".myiconv($webim_encoding, $current_encoding, str_replace("\r", "",str_replace("\n", "\\n",trim($value))))."\n"); | ||||
| 		fclose($fp); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| $operator = check_login(); | ||||
| 
 | ||||
| @ -119,16 +153,48 @@ foreach($allLocales as $loc) { | ||||
| 	$localesList[] = array("id" => $loc, "name" => getlocal_("localeid", $loc)); | ||||
| } | ||||
| 
 | ||||
| $show = verifyparam("show", "/^(all|s1|s2|s3)$/", "all"); | ||||
| 
 | ||||
| $result = array(); | ||||
| $allkeys = array_keys($lang1); | ||||
| foreach($allkeys as $key) { | ||||
| 	$result[] = array('id' => $key, 'l1' => $lang1[$key], 'l2' => (isset($lang2[$key]) ? $lang2[$key] : "<font color=\"#c13030\"><b>absent</b></font>") ); | ||||
| if($show == 's1') { | ||||
| 	$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); | ||||
| 
 | ||||
| $page['formtarget'] = $target; | ||||
| $page['formsource'] = $source; | ||||
| $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(); | ||||
| 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"/> | ||||
| <meta http-equiv="Content-Type" content="text/html; charset=Windows-1251"> | ||||
| <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/brws.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?v=152"></script> | ||||
| <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} }; | ||||
| //--></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> | ||||
| 
 | ||||
| <style> | ||||
| @ -49,8 +49,11 @@ var threadParams = { servl:"${webimroot}/thread.php",wroot:"${webimroot}",freque | ||||
| .iexec { background-position:-48px 0px; } | ||||
| .ihistory, .ichangeuser { background-position:-96px 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; } | ||||
| .iclosewin { background-position:-170px -1px; width: 15px; height: 15px; } | ||||
| .iclosewin { background-position:-187px -27px; width: 15px; height: 15px; } | ||||
| .tplimageloc { | ||||
| 	background: transparent url(${webimroot}${url:image.chat.sprite}) no-repeat scroll 0px 0px; | ||||
| 	-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> | ||||
| ${endif:historyParams} | ||||
| ${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}"> | ||||
| 				<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> | ||||
| 				</tr> | ||||
| 				</table> | ||||
|  | ||||
| @ -5,7 +5,7 @@ | ||||
| <link rel="shortcut icon" href="${webimroot}/images/favicon.ico" type="image/x-icon"/> | ||||
| <meta http-equiv="Content-Type" content="text/html; charset=Windows-1251"> | ||||
| <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> | ||||
| 
 | ||||
| <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"/> | ||||
| <meta http-equiv="Content-Type" content="text/html; charset=Windows-1251"> | ||||
| <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/brws.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?v=152"></script> | ||||
| <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} }; | ||||
| //--></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> | ||||
| <style> | ||||
| .tplimage { | ||||
| @ -25,6 +25,9 @@ var threadParams = { servl:"${webimroot}/thread.php",wroot:"${webimroot}",freque | ||||
| .iexec { background-position:-48px 0px; } | ||||
| .ihistory, .ichangeuser { background-position:-24px -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; } | ||||
| .iclosewin { background-position:-108px -34px; width: 15px; height: 15px; } | ||||
| .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> | ||||
| ${endif:historyParams} | ||||
| ${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}"> | ||||
| 				<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> | ||||
| 				</tr> | ||||
| 				</table> | ||||
|  | ||||
| @ -5,7 +5,7 @@ | ||||
| <link rel="shortcut icon" href="${webimroot}/images/favicon.ico" type="image/x-icon"/> | ||||
| <meta http-equiv="Content-Type" content="text/html; charset=Windows-1251"> | ||||
| <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> | ||||
| 
 | ||||
| <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\"" : "" ?>/>
 | ||||
| 		</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 class="formauth" colspan="3"> | ||||
|  | ||||
| @ -18,7 +18,7 @@ | ||||
| 
 | ||||
| 
 | ||||
| <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><!-- | ||||
| var localized = new Array( | ||||
|     "<?php echo getlocal("pending.table.speak") ?>", | ||||
| @ -30,7 +30,7 @@ var updaterOptions = { | ||||
| 	agentservl:"<?php echo $webimroot ?>/operator/agent.php", | ||||
| 	noclients:"<?php echo getlocal("clients.no_clients") ?>" }; | ||||
| //--></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"/> | ||||
| <title> | ||||
|  | ||||
| @ -47,16 +47,34 @@ | ||||
| <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'> | ||||
| 	<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="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 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> | ||||
| </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> | ||||
| <br/> | ||||
| <?php if( $page['pagination'] && $page['pagination.items'] ) { ?>
 | ||||
| 	<?php echo generate_pagination($page['pagination'],false) ?>
 | ||||
| 	</br> | ||||
| 	<table cellpadding="0" cellspacing="0" border="0" width="100%"> | ||||
| 		<tr> | ||||
| 			<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