153 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			153 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?
 | 
						|
/*
 | 
						|
Jorge - frontend for mod_logdb - ejabberd server-side message archive module.
 | 
						|
 | 
						|
Copyright (C) 2009 Zbigniew Zolkiewski
 | 
						|
 | 
						|
This program is free software; you can redistribute it and/or
 | 
						|
modify it under the terms of the GNU General Public License
 | 
						|
as published by the Free Software Foundation; either version 2
 | 
						|
of the License, or (at your option) any later version.
 | 
						|
 | 
						|
This program is distributed in the hope that it will be useful,
 | 
						|
but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
						|
GNU General Public License for more details.
 | 
						|
 | 
						|
You should have received a copy of the GNU General Public License
 | 
						|
along with this program; if not, write to the Free Software
 | 
						|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 | 
						|
 | 
						|
*/
 | 
						|
require_once("headers.php");
 | 
						|
require_once("upper.php");
 | 
						|
 | 
						|
$html->set_overview('<h2>'.$chat_map[$lang].'</h2>'.'<small>'.$chat_select[$lang].'</small>');
 | 
						|
 | 
						|
if ($_POST['chat_map']) {
 | 
						|
		
 | 
						|
		$con_map = $enc->decrypt_url($_POST['chat_map']);
 | 
						|
 | 
						|
	}
 | 
						|
	elseif ($_GET['chat_map']) {
 | 
						|
 | 
						|
		$con_map = $enc->decrypt_url($_GET['chat_map']);
 | 
						|
	
 | 
						|
	}
 | 
						|
 | 
						|
if($con_map === true) {
 | 
						|
 | 
						|
		$con_map = $enc->jid;
 | 
						|
	}
 | 
						|
	else{
 | 
						|
 | 
						|
		unset($con_map);
 | 
						|
}
 | 
						|
	
 | 
						|
// prepare roster object
 | 
						|
$ejabberd_roster->sort_by_nick("az");
 | 
						|
$roster_chat = $ejabberd_roster->get_roster();
 | 
						|
 | 
						|
$html->set_body('<br><br><br>
 | 
						|
		<form id="c_map_form" action="chat_map.php" method="post" name="chat_map_form">
 | 
						|
		<p>'.$filter_tip[$lang].'</p>
 | 
						|
		<span style="padding-right: 20px">'.$chat_m_select[$lang].'</span>
 | 
						|
		<select id="c_map" style="text-align: center; border: 0px; background-color: #6daae7; color:#fff; font-size: x-small;" name="chat_map" size="0" onchange="javascript:document.chat_map_form.submit();">
 | 
						|
		<option value="null">'.$chat_c_list[$lang].'</option>
 | 
						|
	');
 | 
						|
 | 
						|
	while (array_keys($roster_chat)) {
 | 
						|
		
 | 
						|
		$jid = key($roster_chat);
 | 
						|
		$roster_item = array_shift($roster_chat);
 | 
						|
		$name = $roster_item[nick];
 | 
						|
		$grp  = $roster_item[group];
 | 
						|
		if ($con_map==$jid) { 
 | 
						|
		
 | 
						|
				$selected="selected"; 
 | 
						|
				
 | 
						|
			} 
 | 
						|
			else { 
 | 
						|
			
 | 
						|
				$selected=""; 
 | 
						|
				
 | 
						|
		}
 | 
						|
		
 | 
						|
		$html->set_body('<option '.$selected.' value=\''.$enc->crypt_url("jid=$jid").'\'>'.htmlspecialchars($name).' ('.htmlspecialchars($grp).')</option>');
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
$html->set_body('</select></form>');
 | 
						|
 | 
						|
if ($con_map AND $_POST['chat_map'] != "null") {
 | 
						|
 | 
						|
	// split username and server name
 | 
						|
	list($name_peer,$server_peer) = split("@",$con_map);
 | 
						|
 | 
						|
	// get the id's of user and server
 | 
						|
	$db->get_user_id($name_peer);
 | 
						|
	$peer_name_id = $db->result->user_id;
 | 
						|
	$db->get_server_id($server_peer);
 | 
						|
	$peer_server_id = $db->result->server_id;
 | 
						|
 | 
						|
	if ($peer_name_id !== null AND $peer_server_id !== null) {
 | 
						|
	
 | 
						|
		//first get the months
 | 
						|
		$db->get_chat_map($peer_name_id,$peer_server_id);
 | 
						|
		$result1 = $db->result;
 | 
						|
		$cc_cmp = count($result1);
 | 
						|
		foreach ($result1 as $row_m) {
 | 
						|
 | 
						|
			// hack for proper date parsing
 | 
						|
			list($y,$m) = split("-",$row_m[at]);
 | 
						|
			$mo="$y-$m";
 | 
						|
		
 | 
						|
			// now get the days in with user was talking
 | 
						|
			$db->get_chat_map_specyfic($peer_name_id,$peer_server_id,$mo);
 | 
						|
			$result2 = $db->result;
 | 
						|
			
 | 
						|
			foreach($result2 as $row_day) {
 | 
						|
 | 
						|
					// now scan day for chats, yep thats weak, but as long as we dont have right stats table this will work...
 | 
						|
					$i++;
 | 
						|
					list($y,$m,$d) = split("-",$row_day[at]);
 | 
						|
					$days[$i] = $d;
 | 
						|
			}
 | 
						|
 | 
						|
			if (count($days)>=1) {
 | 
						|
				
 | 
						|
					$html->set_body('<table cellpadding="0" cellspacing="0" style="display:inline;"><tr><td style="width:200px; border: 0px; text-align:center;">');
 | 
						|
					$html->set_body(calendar($db,$user_id,$xmpp_host,$y,$m,$days,TOKEN,$url_key,$left,$right,$selected,$lang,$view_type,2,$peer_name_id,$peer_server_id,$cal_days,$enc,$months_names,$weekdays));
 | 
						|
					$html->set_body('</td></tr></table>');
 | 
						|
					unset($days);
 | 
						|
				
 | 
						|
				}
 | 
						|
			else {
 | 
						|
			
 | 
						|
				$score++;
 | 
						|
 | 
						|
			}
 | 
						|
		$i=0;
 | 
						|
 | 
						|
		}
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
	else {
 | 
						|
 | 
						|
		$cc_cmp = $score;
 | 
						|
	}
 | 
						|
 | 
						|
 | 
						|
	if ($score==$cc_cmp) { 
 | 
						|
 | 
						|
		$html->set_body('<span style="text-align: center;"><h2>'.$chat_no_chats[$lang].'</h2></span>');
 | 
						|
	
 | 
						|
	}
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
$html->set_body('<br><small><i>*-'.$ff_notice[$lang].'</i></small>');
 | 
						|
require_once("footer.php");
 | 
						|
?>
 |