<?php // $Id: block-Who_is_Online.php,v 1.6 2003/10/02 22:28:55 EllselAn Exp $
/**********************************************************************/
/* vkpMx 2.0  Content Management System Platform                      */
/* ================================================================== */
/* Copyright (C) 2003 by the vkpMx & pragmaMx Developer Team          */
/* email:         team@pragmamx.org                                   */
/* homepage:      http://www.maax-design.de                           */
/* further sites: http://www.pragmaMx.org, http://www.guggemahier.de, */
/*            http://www.marx-city.de, http://www.genutec-studios.de, */
/*            http://www.shiba-design.de, http://www.power-maax.de    */
/* ================================================================== */
/*   The vkpMx is distributed free of charge by maax-design.de.       */
/*   The use of this system is allowed until copyright information    */
/*   is shown perspicuous visible and correcty on all system pages.   */
/*   Sales, rent out and the use of single code parts from this       */
/*   system must be allowed by maax-design.de.                        */
/**********************************************************************/

/* Changed by Robert E. Daumann, cifher@chatecke.com */


################# Einstell Variablen ############################################################################
$onlinelistsize  = 10; 	    # Hoehe des Selectfeld der Onlinuser (Online-Liste)
$showuserlistall = 0;     	# Wenn Online-Liste immer erscheinen soll, 1=Ja, 0=nein
$showbuddy       = 1;  			# Buddylink (Messenger) anzeigen , 1=Ja, 0=nein
# User, die nicht angezeigt werden sollen
# Namen mit Komma trennen!
$excludedusers ="Richard, Sabine, test,";
##################################################################################################################
$imagedir="images/visitors";
$pm_module_name = "Private_Messages";
##################################################################################################################
#$checkpmtime=200000; # Intervall zum private Nachrichten abfragen, 0 wenn nicht abgefragt werden soll
$thisfile=basename(__file__);
if (!defined("mxMainFileLoaded")) die ("You can't access this file directly...");

$mxblockcache = FALSE;

global $prefix, $user_prefix, $bgcolor1, $bgcolor2, $bgcolor3, $txtcolor1, $txtcolor2;

include_once("language/maaXoN/maaXoN-german_du.php");

# Variablen initialisieren
if(substr(strtolower($GLOBALS['currentlang']), 0, 6) == "german"){	# Bilder fuer Buttons definieren (noch keine Bilder vorhanden!!)
	$pmimagepath="modules/$pm_module_name/images/buttons/german";
	}
else{
	$pmimagepath="modules/$pm_module_name/images/buttons/english";
	}

# Variablen initialisieren
$isseruser = 0;
$username = "";
if (mxIsUser()){
	$isseruser = 1;
	$cookie=mxGetUserSession();
	$username = $cookie[1];
	$uid = $cookie[0];
	$usr = getusrinfo();
	}
else { $username = "Gast"; }

$isseradmin = mxIsAdmin();
# SQL-bedingung fuer excluded Users erstellen
$exusers = explode (",", $excludedusers);
if(!$isseradmin){
	while (list($key, $val) = each($exusers)) {
		$xexusers[]=trim($val);
		}
	}
$xexusers[] = $GLOBALS['anonymous'];
$excludedusers = "'".implode("','",$xexusers)."'";

# Anzahl aller User und hoechste uid ermitteln
$totalmembers=0;
$qry="select COUNT(uid), MAX(uid) from ${user_prefix}_users where user_stat=1;";
list($totalmembers, $lastuid) = sql_fetch_row(sql_query($qry));

# neusten User ermitteln
$lastuid = (empty($lastuid)) ? 0 : $lastuid;
$qry="select uname from ${user_prefix}_users where uid = $lastuid;";
$result = sql_query($qry);	# neusten User ermitteln
list($lastuser) = sql_fetch_row($result);

$past = time()- MX_SETINACTIVE_MINS ;
# Alle Gaeste ermitteln
$guest_online_num=0;
$result = sql_query("SELECT Count(ip) FROM ${prefix}_visitors WHERE time>".$past." AND uid=0;");
list($guest_online_num) = sql_fetch_row($result);

# Alle User ermitteln, evtl auflisten
$member_online_num = 0;
$i = 1;
$whoonlineselect = "";
$smallunmae = strtolower($username);

$result = sql_query("SELECT uname FROM ${user_prefix}_users
WHERE ((uname Not In (".$excludedusers.")) AND (user_lastvisit >= ".$past.") AND (user_stat=1) AND (user_lastmod<>'logout'))
ORDER BY uname");
#$GLOBALS["mxSqlDebug"]      = 0;
while (list($uname2) = sql_fetch_row($result)) {
	$sel = (strtolower($uname2) == $smallunmae) ? " selected " : "";
	$uname3 = mxCutString($uname2, 18, "..", "");	# Kurzen Usernamen erstellen
#	$whoonlineselect.="<option value=\"".$uname2."\" ".$sel." title=\"".$uname2."\">$i:".$uname3."</OPTION>\n"; # options fuer auswahlselect erstellen
	$whoisonline.="&nbsp;$i:&nbsp;<A HREF=\"modules.php?name=Userinfo&uname=$uname2\">".$uname3."</a><br>";
	$i++;  #Zähler erhöhen
	$member_online_num++;	# Anzahl User hochzaehlen
	$member_count_num++;
	}

$visitorsall = $member_online_num + $guest_online_num;

# Private Nachrichten
$countpm=0; $countpmunread=0;
if ($isseruser) { # Wenn aktueller User registriert ist (kein Gast)
	$pmactiv = (mxModuleAllowed($pm_module_name)) ? 1 : 0; # feststellen ob pm-modul aktiv ist
	if ($pmactiv){	# falls pm-modul aktiv ist
		$qry="SELECT read_msg, Count(msg_id) FROM ${prefix}_priv_msgs WHERE to_userid=".$uid." group by read_msg;";
		$result = sql_query($qry);
		while (list($read_msg, $nums) = sql_fetch_row($result)) {
	  	if ($read_msg==0) {	# wenn angemeldeter User
				$countpmunread=$nums;	# Anzahl ungelesene ermitteln
		  	}
			else{
				$countpm=$nums;	#++;	# Anzahl aller pm's ermitteln
				}
			}
		}
	}

$countpmread = $countpm - $countpmunread;

# Usergaestebuch
$content_ug = "";
if ($isseruser) { # Wenn aktueller User registriert ist (kein Gast)
	if (mxModuleAllowed("UserGuest")){	# falls gaestebuch vorhanden
		$qry="SELECT Count(gid) FROM ${prefix}_userguest WHERE touserid='".$uid."' AND touser = '".$username."' AND dummy=0;";
		$result = sql_query($qry);
		list($gbnewentries) = sql_fetch_row($result);
		# Usergaestebuch
		if(!empty($gbnewentries)){
			$content_ug .= "<div align=\"left\"><a href=\"modules.php?name=UserGuest&op=view&touser=$username\">
			<img src=\"$imagedir/tcake.gif\" width=\"19\" height=\"19\" border=\"0\" Alt=\""._BSVGUESTBOOK."\"></a> \n
			<b>$gbnewentries </b><a href=\"modules.php?name=UserGuest&op=view&touser=$username\">";
			if($gbnewentries==1){
				$content_ug .= ""._BSVGUESTBOOK1."";
				}
			else {
				$content_ug .= ""._BSVGUESTBOOK2."";
				}
			$content_ug .= "</a></div>";
			}
		}
	}

# weitere Variablen initialisieren zur Zeitberechnung :(
//Creating SQL parameter
$gestern = mktime(0, 0, 0, date ("m") , date ("d")-1, date("Y"));
$heute = mktime(0, 0, 0, date ("m") , date ("d"), date("Y"));

# Heute neu angemeldete User ermitteln
$qry = "SELECT COUNT(uid) from ${user_prefix}_users WHERE user_regtime >= $heute and user_stat=1 and uname not in($excludedusers);";
list($userCount) = sql_fetch_row(sql_query($qry));

# Gestern neu angemeldete User ermitteln
$qry = "SELECT COUNT(uid) from ${user_prefix}_users WHERE user_regtime >= $gestern and user_regtime < $heute and user_stat=1 and uname not in($excludedusers);";
list($userCount2) = sql_fetch_row(sql_query($qry));

# Ausgabe ...................................
$content = "\n<!-- $thisfile output start -->\n"
#Willkommensnachricht
."\n<img src=\"$imagedir/anon.gif\">&nbsp;"._BSVWELCOME."$username<br>";
if ($username != "Gast") {
	$content .= "<img src=\"$imagedir/arrow.gif\">&nbsp&nbsp<a href=\"modules.php?name=Your_Account&op=logout\">Logout</a><hr noShade SIZE=1>\n"
	#Private Nachrichten - ungelesen - gelesen
	."\n<img src=\"$imagedir/priv.gif\">&nbsp;<a href=\"modules.php?name=Private_Messages\"><b>"._BSVPMSG."</b></a><br>"
	."\n<img src=\"$imagedir/upriv.gif\">&nbsp;"._BSVPMSGUNREAD."<b>$countpmunread</b><br>"
	."\n<img src=\"$imagedir/rpriv.gif\">&nbsp;"._BSVPMSGALL."<b>$countpmread</b><br><hr noShade SIZE=1>";
} else {
	$content .= "<form action=\"modules.php\" method=\"post\" class=\"boxcontent\">"
	           ."<center>"._NICKNAME."<br>"
			   ."<input type=\"text\" name=\"uname\" size=\"15\" maxlength=\"25\" style=\"width: 80%;\"><br>"
			   . ""._PASSWORD."<br>"
			   ."<input type=\"password\" name=\"pass\" size=\"15\" maxlength=\"20\" style=\"width: 80%;\"><br>"
			   . mxGetUserLoginCheckField()
			   ."<input type=\"submit\" value=\""._LOGIN."\"></center></form>\n";
			   if (!mxIsAdmin()) {
			   $content .= "<span class=\"tiny\">"._ASREGISTERED."</span>";
			   }
			   $content .= "<hr noShade SIZE=1>\n";
	}
	
#Mitglieder - neuste - heute neu - gestern neu - alle
$content .= "\n<a href=\"modules.php?name=Members_List\"><img src=\"$imagedir/mem.gif\" alt=\"Members List\" border=0></a>&nbsp;<b>"._BSVMEMBERS1."</b><br>"
."\n<img src=\"$imagedir/mlatest.gif\">&nbsp;"._BSVLATEMEMBER."<A HREF=\"modules.php?name=Userinfo&uname=$lastuser\">$lastuser</a><br>\n"
."\n<img src=\"$imagedir/mtoday.gif\">&nbsp;"._BSVTODAYMEMBERS."<b>$userCount</b><br>\n"
."\n<img src=\"$imagedir/myesterday.gif\">&nbsp;"._BSVYESTERDAYMEMBERS."<b>$userCount2</b><br>\n"
."\n<img src=\"$imagedir/moverall.gif\">&nbsp;"._BSVTOTALMEMBERS."<b>$totalmembers</b><br><hr noShade SIZE=1>\n"
#Benutzer online
."\n<img src=\"$imagedir/visitors.gif\">&nbsp;<b>"._BSVUSERONLINE."</b><br>"
."\n<img src=\"$imagedir/vvisitors.gif\">&nbsp;"._BSVGUESTES."<b>$guest_online_num</b><br>\n"
."\n<img src=\"$imagedir/vmem.gif\">&nbsp;"._BSVMEMONLINE."<b>$member_online_num</b><br>\n"
."\n<img src=\"$imagedir/vtotal.gif\">&nbsp;"._BSVSUMME."<b>$visitorsall</b>";
if ($username != "Gast") {
	$content .= "<br><hr noShade SIZE=1>\n"
	#Wer ist jetzt online
	."\n<img src=\"$imagedir/visitors.gif\">&nbsp;<b>"._BSVONLINELIST."</b><br>"
	."\n$whoisonline";
}

      


$content .= "</div>\n<!-- $thisfile output end -->\n";
# Blocktitel aus Sprachdatei auslesen
$blockfiletitle=_BSVMAAXONLINE;
/* CVS-Log:
$Log: block-Who_is_Online.php,v $
Revision 1.6  2003/10/02 22:28:55  EllselAn
Zeilenumbruch nach scriptende entfernt

Revision 1.5  2003/10/01 12:00:51  EllselAn
problem mit file_exists bei safe_mode=on

Revision 1.4  2003/09/09 19:57:51  EllselAn
Abfrage des Usergästebuchs verändert

Revision 1.3  2003/09/01 14:49:24  EllselAn
function join() / implode() falsch verwendet


 */

?>
