mirror of
				https://github.com/Mibew/java.git
				synced 2025-10-31 18:41:09 +03:00 
			
		
		
		
	statistics
git-svn-id: https://webim.svn.sourceforge.net/svnroot/webim/trunk@428 c66351dc-e62f-0410-b875-e3a5c0b9693f
This commit is contained in:
		
							parent
							
								
									22e616e79b
								
							
						
					
					
						commit
						76affc9b4b
					
				| @ -388,7 +388,17 @@ input.formauth { | ||||
| 	padding-left: 4px; | ||||
| } | ||||
| 
 | ||||
| table.list, table.translate { | ||||
| .tabletitle { | ||||
| 	background: url(images/graydot.gif) repeat-x left bottom; | ||||
| 	font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif; | ||||
| 	font-size: 1.4em; | ||||
| 	margin: 10px 0px 20px; | ||||
| 	padding-bottom: 10px; | ||||
| 	color: #1D485E; | ||||
| 	font-weight: bold; | ||||
| } | ||||
| 
 | ||||
| table.list, table.translate, table.statistics { | ||||
| 	font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif; | ||||
| 	background: #fff; | ||||
| 	width: 100%; | ||||
| @ -396,15 +406,17 @@ table.list, table.translate { | ||||
| 	text-align: left; | ||||
| } | ||||
| 
 | ||||
| table.list th, table.translate th { | ||||
| table.list th, table.translate th, table.statistics th { | ||||
| 	font-size: 1.2em; | ||||
| 	font-weight: normal; | ||||
| 	color: #1D485E; | ||||
| 	padding: 10px 8px; | ||||
| 	border-bottom: 2px solid #2F7598; | ||||
| } | ||||
| 
 | ||||
| table.list td { | ||||
| table.list th, table.translate th { color: #1D485E; } | ||||
| table.statistics th { color: #2F7598; } | ||||
| 
 | ||||
| table.list td, table.statistics td { | ||||
| 	color: #2f7599; | ||||
| 	padding: 10px 8px; | ||||
| 	border-bottom: 1px solid #ccc; | ||||
| @ -423,7 +435,7 @@ table.list td a.man { | ||||
| 	padding-left: 15px; | ||||
| } | ||||
| 
 | ||||
| table.list tbody tr:hover td, table.list tbody tr:hover td a { | ||||
| table.list tbody tr:hover td, table.list tbody tr:hover td a, table.statistics tbody tr:hover td { | ||||
| 	color: #1D485E; | ||||
| } | ||||
| 
 | ||||
| @ -508,6 +520,13 @@ table.awaiting td.visitor { | ||||
| 	padding-right:5px; | ||||
| } | ||||
| 
 | ||||
| .searchctrl { | ||||
| 	float: left; | ||||
| 	margin:7px 20px 5px 0px; | ||||
| 	padding-right:5px; | ||||
| 	display: inline;	 | ||||
| } | ||||
| 
 | ||||
| #searchtext input { | ||||
| 	width: 100%; | ||||
| 	margin: 0px; | ||||
|  | ||||
							
								
								
									
										
											BIN
										
									
								
								src/messenger/webim/images/dash/stat.gif
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/messenger/webim/images/dash/stat.gif
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 1.2 KiB | 
| @ -221,6 +221,7 @@ function prepare_menu($operator,$hasright=true) { | ||||
| 		loadsettings(); | ||||
| 		$page['showban'] = $settings['enableban'] == "1"; | ||||
| 		$page['showdep'] = $settings['enabledepartments'] == "1"; | ||||
| 		$page['showstat'] = true; //$settings['enablestatistics'] == "1";
 | ||||
| 		$page['showadmin'] = is_capable($can_administrate, $operator); | ||||
| 	} | ||||
| } | ||||
|  | ||||
| @ -295,6 +295,18 @@ permission.takeover=Take over chat thread | ||||
| permission.viewthreads=View another operator's chat thread | ||||
| permissions.intro=Here you can control operator's permissions  | ||||
| permissions.title=Permissions | ||||
| report.bydate.1=Date | ||||
| report.bydate.2=Chat threads | ||||
| report.bydate.3=Messages from operators | ||||
| report.bydate.4=Messages from visitors | ||||
| report.bydate.title=Usage statistics for each date | ||||
| report.byoperator.1=Operator | ||||
| report.byoperator.2=Chat Threads | ||||
| report.byoperator.3=Messages | ||||
| report.byoperator.4=Average message length (in chars) | ||||
| report.byoperator.title=Threads by operator | ||||
| report.no_items=Not enough data | ||||
| report.total=Total: | ||||
| right.administration=Administration | ||||
| right.main=Main | ||||
| right.other=Other | ||||
| @ -330,6 +342,12 @@ settings.usernamepattern=Visitor's identifier | ||||
| settings.wrong.email=Enter proper email address | ||||
| site.title=openwebim.org | ||||
| site.url=http://openwebim.org | ||||
| statistics.dates=Select dates | ||||
| statistics.description=Daily usage reports | ||||
| statistics.from=From: | ||||
| statistics.till=Till: | ||||
| statistics.title=Statistics | ||||
| statistics.wrong.dates=You have selected From date after Till date | ||||
| tag.pagination.info=Page {0} of {1}, {2}-{3} from {4} | ||||
| tag.pagination.next=next | ||||
| tag.pagination.no_items.elements=No elements | ||||
|  | ||||
| @ -277,6 +277,18 @@ permissions.title= | ||||
| right.administration=Управление | ||||
| right.main=Посетители | ||||
| right.other=Остальное | ||||
| report.bydate.1=Дата | ||||
| report.bydate.2=Диалогов | ||||
| report.bydate.3=Сообщений операторов | ||||
| report.bydate.4=Сообщений посетителей | ||||
| report.bydate.title=Использование мессенджера по дням | ||||
| report.byoperator.1=Оператор | ||||
| report.byoperator.2=Диалогов | ||||
| report.byoperator.3=Сообщений | ||||
| report.byoperator.4=Средняя длина сообщения (в символах) | ||||
| report.byoperator.title=Статистика по операторам | ||||
| report.no_items=Мало данных | ||||
| report.total=Итого: | ||||
| settings.chat.title.description=Например, название отдела вашей компании | ||||
| settings.chat.title=Заголовок в чат окне | ||||
| settings.chatstyle.description=Предпросмотр всех страниц каждого стиля доступен <a href="preview.php">здесь</a> | ||||
| @ -307,6 +319,12 @@ settings.usernamepattern= | ||||
| settings.wrong.email=Введите правильный адрес электронной почты | ||||
| site.title=openwebim.org | ||||
| site.url=http://openwebim.org | ||||
| statistics.dates=Выберите даты | ||||
| statistics.description=Различные отчеты по посетителям и использованию мессенджера | ||||
| statistics.from=С: | ||||
| statistics.till=По: | ||||
| statistics.title=Статистика | ||||
| statistics.wrong.dates=Вы выбрали дату для начала отчета после даты конца  | ||||
| tag.pagination.info=Страница {0} из {1}, показаны {2}-{3} из {4} | ||||
| tag.pagination.next=следующая | ||||
| tag.pagination.no_items.elements=Нет элементов для отображения. | ||||
|  | ||||
							
								
								
									
										80
									
								
								src/messenger/webim/operator/statistics.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										80
									
								
								src/messenger/webim/operator/statistics.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,80 @@ | ||||
| <?php | ||||
| /* | ||||
|  * This file is part of Web Instant Messenger project. | ||||
|  * | ||||
|  * Copyright (c) 2005-2009 Web Messenger Community | ||||
|  * All rights reserved. This program and the accompanying materials | ||||
|  * are made available under the terms of the Eclipse Public License v1.0 | ||||
|  * which accompanies this distribution, and is available at | ||||
|  * http://www.eclipse.org/legal/epl-v10.html | ||||
|  * | ||||
|  * Contributors: | ||||
|  *    Evgeny Gryaznov - initial API and implementation | ||||
|  */ | ||||
| 
 | ||||
| require_once('../libs/common.php'); | ||||
| require_once('../libs/chat.php'); | ||||
| require_once('../libs/operator.php'); | ||||
| 
 | ||||
| $operator = check_login(); | ||||
| 
 | ||||
| $page = array(); | ||||
| $page['operator'] = topage(get_operator_name($operator)); | ||||
| $page['availableDays'] = range(1,31); | ||||
| $page['availableMonth'] = get_month_selection(time()-400*24*60*60,time()+50*24*60*60 ); | ||||
| $page['showresults'] = false; | ||||
| $errors = array(); | ||||
| 
 | ||||
| if(isset($_GET['startday'])) { | ||||
| 	$startday = verifyparam("startday","/^\d+$/"); | ||||
| 	$startmonth = verifyparam("startmonth","/^\d{2}.\d{2}$/"); | ||||
| 	$endday = verifyparam("endday","/^\d+$/"); | ||||
| 	$endmonth = verifyparam("endmonth","/^\d{2}.\d{2}$/"); | ||||
| 	$start = get_form_date($startday,$startmonth); | ||||
| 	$end = get_form_date($endday, $endmonth)+24*60*60; | ||||
| 
 | ||||
| } else { | ||||
| 	$curr = getdate(time()); | ||||
| 	if( $curr['mday'] < 7 ) { | ||||
| 		// previous month
 | ||||
| 		if($curr['mon'] == 1) { | ||||
| 			$month = 12;  | ||||
| 			$year = $curr['year']-1; | ||||
| 		} else { | ||||
| 			$month = $curr['mon']-1;  | ||||
| 			$year = $curr['year']; | ||||
| 		} | ||||
| 		$start = mktime(0,0,0,$month,1,$year); | ||||
| 		$end = mktime(0,0,0,$month, date("t",$start),$year)+24*60*60; | ||||
| 	} else { | ||||
| 		$start = mktime(0,0,0,$curr['mon'],1,$curr['year']); | ||||
| 		$end = time()+24*60*60; | ||||
| 	} | ||||
| } | ||||
| set_form_date($start, "start"); | ||||
| set_form_date($end-24*60*60, "end"); | ||||
| 
 | ||||
| if( $start > $end ) { | ||||
| 	$errors[] = getlocal("statistics.wrong.dates"); | ||||
| } | ||||
| 
 | ||||
| $link = connect(); | ||||
| 
 | ||||
| $page['reportByDate'] = select_multi_assoc("select DATE(dtmcreated) as date, COUNT(distinct threadid) as threads, SUM(chatmessage.ikind = $kind_agent) as agents, SUM(chatmessage.ikind = $kind_user) as users ". | ||||
| 	 "from chatmessage where unix_timestamp(dtmcreated) >= $start AND unix_timestamp(dtmcreated) < $end group by DATE(dtmcreated) order by dtmcreated desc", $link); | ||||
| 
 | ||||
| $page['reportByDateTotal'] = select_one_row("select COUNT(distinct threadid) as threads, SUM(chatmessage.ikind = $kind_agent) as agents, SUM(chatmessage.ikind = $kind_user) as users ". | ||||
| 	 "from chatmessage where unix_timestamp(dtmcreated) >= $start AND unix_timestamp(dtmcreated) < $end", $link); | ||||
| 
 | ||||
| $page['reportByAgent'] = select_multi_assoc("select vclocalename as name, COUNT(distinct threadid) as threads, SUM(ikind = $kind_agent) as msgs, AVG(CHAR_LENGTH(tmessage)) as avglen ". | ||||
| 	 "from chatmessage, chatoperator ". | ||||
|          "where agentId = operatorid AND unix_timestamp(dtmcreated) >= $start AND unix_timestamp(dtmcreated) < $end group by operatorid", $link); | ||||
| 
 | ||||
| $page['showresults'] = count($errors) == 0; | ||||
| 
 | ||||
| mysql_close($link); | ||||
| 
 | ||||
| prepare_menu($operator); | ||||
| start_html_output(); | ||||
| require('../view/statistics.php'); | ||||
| ?>
 | ||||
| @ -15,6 +15,9 @@ function tpl_menu() { global $page, $webimroot, $errors; | ||||
| 					<li<?php menuli("main")?>><a href='<?php echo $webimroot ?>/operator/index.php'><?php echo getlocal('topMenu.main') ?></a></li>
 | ||||
| 					<li<?php menuli("users")?>><a href='<?php echo $webimroot ?>/operator/users.php'><?php echo getlocal('topMenu.users') ?></a></li>
 | ||||
| 					<li<?php menuli("history")?>><a href='<?php echo $webimroot ?>/operator/history.php'><?php echo getlocal('page_analysis.search.title') ?></a></li>
 | ||||
| <?php if(isset($page['showstat']) && $page['showstat']) { ?>
 | ||||
| 					<li<?php menuli("statistics")?>><a href='<?php echo $webimroot ?>/operator/statistics.php'><?php echo getlocal('statistics.title') ?></a></li>
 | ||||
| <?php } ?>
 | ||||
| <?php if(isset($page['showban']) && $page['showban']) { ?>
 | ||||
| 					<li<?php menuli("blocked")?>><a href='<?php echo $webimroot ?>/operator/blocked.php'><?php echo getlocal('menu.blocked') ?></a></li>
 | ||||
| <?php } ?>
 | ||||
|  | ||||
| @ -59,6 +59,16 @@ function tpl_content() { global $page, $webimroot, $current_locale, $menuItemsCo | ||||
| $menuItemsCount = 2; | ||||
| if( $page['showban'] ) { | ||||
| ?>
 | ||||
| 
 | ||||
| <?php if($page['showstat']) { ?>
 | ||||
| 	<td class="dashitem"> | ||||
| 		<img src="/webim/images/dash/stat.gif" alt=""/> | ||||
| 		<a href='<?php echo $webimroot ?>/operator/statistics.php'> | ||||
| 			<?php echo getlocal('statistics.title') ?></a>
 | ||||
| 		<?php echo getlocal('statistics.description') ?>
 | ||||
| 	</td> | ||||
| 	<?php menuseparator(); ?>
 | ||||
| <?php } ?>
 | ||||
| 	 | ||||
| 	<td class="dashitem"> | ||||
| 		<img src="/webim/images/dash/blocked.gif" alt=""/> | ||||
|  | ||||
							
								
								
									
										148
									
								
								src/messenger/webim/view/statistics.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										148
									
								
								src/messenger/webim/view/statistics.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,148 @@ | ||||
| <?php | ||||
| /* | ||||
|  * This file is part of Web Instant Messenger project. | ||||
|  * | ||||
|  * Copyright (c) 2005-2009 Web Messenger Community | ||||
|  * All rights reserved. This program and the accompanying materials | ||||
|  * are made available under the terms of the Eclipse Public License v1.0 | ||||
|  * which accompanies this distribution, and is available at | ||||
|  * http://www.eclipse.org/legal/epl-v10.html | ||||
|  * | ||||
|  * Contributors: | ||||
|  *    Evgeny Gryaznov - initial API and implementation | ||||
|  */ | ||||
| 
 | ||||
| require_once("inc_menu.php"); | ||||
| $page['title'] = getlocal("statistics.title"); | ||||
| $page['menuid'] = "statistics"; | ||||
| 
 | ||||
| function tpl_content() { global $page, $webimroot, $errors; | ||||
| ?>
 | ||||
| 
 | ||||
| <?php echo getlocal("statistics.description") ?>
 | ||||
| <br /> | ||||
| <br /> | ||||
| <?php  | ||||
| require_once('inc_errors.php'); | ||||
| ?>
 | ||||
| 
 | ||||
| <form name="statisticsForm" method="get" action="<?php echo $webimroot ?>/operator/statistics.php"> | ||||
| 	<div class="mform"><div class="formtop"><div class="formtopi"></div></div><div class="forminner"> | ||||
| 
 | ||||
| 
 | ||||
| 	<div class="fieldForm"> | ||||
| 		<div class="field"> | ||||
| 			<div class="flabel"><?php echo getlocal("statistics.dates") ?></div>
 | ||||
| 			<div class="fvaluenodesc"> | ||||
| 				<div class="searchctrl"> | ||||
| 					<?php echo getlocal("statistics.from") ?>
 | ||||
| 					<select name="startday"><?php foreach($page['availableDays'] as $k) { echo "<option value=\"".$k."\"".($k == form_value("startday") ? " selected=\"selected\"" : "").">".$k."</option>"; } ?></select>
 | ||||
| 			 | ||||
| 					<select name="startmonth"><?php foreach($page['availableMonth'] as $k => $v) { echo "<option value=\"".$k."\"".($k == form_value("startmonth") ? " selected=\"selected\"" : "").">".$v."</option>"; } ?></select>
 | ||||
| 				</div> | ||||
| 				<div class="searchctrl"> | ||||
| 					<?php echo getlocal("statistics.till") ?>
 | ||||
| 					<select name="endday"><?php foreach($page['availableDays'] as $k) { echo "<option value=\"".$k."\"".($k == form_value("endday") ? " selected=\"selected\"" : "").">".$k."</option>"; } ?></select>
 | ||||
| 			 | ||||
| 					<select name="endmonth"><?php foreach($page['availableMonth'] as $k => $v) { echo "<option value=\"".$k."\"".($k == form_value("endmonth") ? " selected=\"selected\"" : "").">".$v."</option>"; } ?></select>
 | ||||
| 				</div> | ||||
| 				<div id="searchbutton"> | ||||
| 					<input type="image" name="search" src='<?php echo $webimroot.getlocal("image.button.search") ?>' alt='<?php echo getlocal("button.search") ?>'/> | ||||
| 				</div> | ||||
| 			</div> | ||||
| 			<br clear="all"/> | ||||
| 		</div> | ||||
| 	</div> | ||||
| 
 | ||||
| 	</div><div class="formbottom"><div class="formbottomi"></div></div></div> | ||||
| </form> | ||||
| 
 | ||||
| <?php if( $page['showresults'] ) { ?>
 | ||||
| 
 | ||||
| <br/> | ||||
| <br/> | ||||
| 
 | ||||
| <div class="tabletitle"> | ||||
| <?php echo getlocal("report.bydate.title") ?>
 | ||||
| </div> | ||||
| <table class="statistics"> | ||||
| <thead> | ||||
| <tr><th> | ||||
| 	<?php echo getlocal("report.bydate.1") ?>
 | ||||
| </th><th> | ||||
| 	<?php echo getlocal("report.bydate.2") ?>
 | ||||
| </th><th> | ||||
| 	<?php echo getlocal("report.bydate.3") ?>
 | ||||
| </th><th> | ||||
| 	<?php echo getlocal("report.bydate.4") ?>
 | ||||
| </th></tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <?php if( $page['reportByDate'] ) { ?>
 | ||||
| 	<?php foreach( $page['reportByDate'] as $row ) { ?>
 | ||||
| 	<tr> | ||||
| 		<td><?php echo $row['date'] ?></td>
 | ||||
| 		<td><?php echo $row['threads'] ?></td>
 | ||||
| 		<td><?php echo $row['agents'] ?></td>
 | ||||
| 		<td><?php echo $row['users'] ?></td>
 | ||||
| 	</tr> | ||||
| 	<?php } ?>
 | ||||
| 	<tr> | ||||
| 		<td><b><?php echo getlocal("report.total") ?></b></td>
 | ||||
| 		<td><?php echo $page['reportByDateTotal']['threads'] ?></td>
 | ||||
| 		<td><?php echo $page['reportByDateTotal']['agents'] ?></td>
 | ||||
| 		<td><?php echo $page['reportByDateTotal']['users'] ?></td>
 | ||||
| 	</tr> | ||||
| <?php } else { ?>
 | ||||
| 	<tr> | ||||
| 	<td colspan="4"> | ||||
| 		<?php echo getlocal("report.no_items") ?>
 | ||||
| 	</td> | ||||
| 	</tr> | ||||
| <?php } ?>
 | ||||
| </tbody> | ||||
| </table> | ||||
| 
 | ||||
| <br/> | ||||
| <br/> | ||||
| 
 | ||||
| <div class="tabletitle"><?php echo getlocal("report.byoperator.title") ?></div>
 | ||||
| <table class="statistics"> | ||||
| <thead> | ||||
| <tr><th> | ||||
| 	<?php echo getlocal("report.byoperator.1") ?>
 | ||||
| </th><th> | ||||
| 	<?php echo getlocal("report.byoperator.2") ?>
 | ||||
| </th><th> | ||||
| 	<?php echo getlocal("report.byoperator.3") ?>
 | ||||
| </th><th> | ||||
| 	<?php echo getlocal("report.byoperator.4") ?>
 | ||||
| </th></tr> | ||||
| </thead> | ||||
| <tbody>	 | ||||
| <?php if( $page['reportByAgent'] ) { ?>
 | ||||
| 	<?php foreach( $page['reportByAgent'] as $row ) { ?>
 | ||||
| 	<tr> | ||||
| 		<td><?php echo topage(htmlspecialchars($row['name'])) ?></td>
 | ||||
| 		<td><?php echo $row['threads'] ?></td>
 | ||||
| 		<td><?php echo $row['msgs'] ?></td>
 | ||||
|     	<td><?php echo $row['avglen'] ?></td>
 | ||||
| 	</tr> | ||||
| 	<?php } ?>
 | ||||
| <?php } else { ?>
 | ||||
| 	<tr> | ||||
| 	<td colspan="4"> | ||||
| 		<?php echo getlocal("report.no_items") ?>
 | ||||
| 	</td> | ||||
| 	</tr> | ||||
| <?php } ?>
 | ||||
| </tbody> | ||||
| </table> | ||||
| 
 | ||||
| <?php } ?>
 | ||||
| 
 | ||||
| <?php  | ||||
| } /* content */ | ||||
| 
 | ||||
| require_once('inc_main.php'); | ||||
| ?>
 | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user