File "stats.php"
Full path: /home/argothem/www/memo/site/site/CoolForum_0.8.4_beta/CoolForum_0.8.4_beta/stats.php
File size: 17.5 KB
MIME-type: text/x-php
Charset: 8 bit
<?
//*********************************************************************************
//* *
//* CoolForum v.0.8 Beta : Forum de discussion *
//* Copyright 2001-2002 SORIANO Denis alias Cool Coyote *
//* *
//* *
//* 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., 59 Temple Place - Suite 330, *
//* Boston, MA 02111-1307, USA. *
//* *
//* *
//* Forum Cr par SORIANO Denis (Cool Coyote) *
//* contact : coyote@coolcoyote.net *
//* site web et tlchargement : http://www.coolforum.net *
//* *
//*********************************************************************************
require("secret/connect.php");
require("admin/functions.php");
// #### dfinition du lieu ###
$SessLieu = 'STA';
$SessForum = 0;
$SessTopic = 0;
//////////////////////////////
require("entete.php");
getlangage("stats");
//if($_FORUMCFG[statsconfig][0]=="1" && (($_USER[userstatus]>1 && $_FORUMCFG[statsconfig][$_USER[userstatus]]=="1") || ($_USER[userstatus]<2 && $_FORUMCFG[statsconfig][1]=="1")))
if($_GENERAL[0])
{
if(empty($_REQUEST['action']))
{
$query=$sql->query("SELECT COUNT(*) AS nbsmiles FROM ".$_PRE."smileys");
list($tpl->box['nbsmiles'])=mysql_fetch_array($query);
$tpl->box['nbtopics']=$_FORUMCFG['statnbtopics'];
$tpl->box['nbrep']=$_FORUMCFG['statnbposts'];
$tpl->box['nbmsg']= $_FORUMCFG['statnbtopics']+$_FORUMCFG['statnbposts'];
//// les dates
$date=explode(" - ",strftime("%d - %m - %Y",time()));
$thismonth= mktime(0,0,0,$date[1],1,$date[2]);
$thisday= mktime(0,0,0,$date[1],$date[0],$date[2]);
$query=$sql->query("SELECT COUNT(*) AS nbdays FROM ".$_PRE."posts WHERE date > $thismonth");
list($tpl->box['postthismonth'])=mysql_fetch_array($query);
$query=$sql->query("SELECT COUNT(*) AS nbdays FROM ".$_PRE."posts WHERE date > $thisday");
list($tpl->box['postthisday'])=mysql_fetch_array($query);
//// les membres
$tpl->box['groups_stats']="";
$tpl->box['nbbannis']=0;
$tpl->box['nbattente']=0;
$query = $sql->query("SELECT COUNT(*) AS nbuser, ".$_PRE."user.userstatus, ".$_PRE."groups.Nom_group FROM ".$_PRE."user LEFT JOIN ".$_PRE."groups ON ".$_PRE."user.userstatus=".$_PRE."groups.id_group GROUP BY userstatus ORDER BY userstatus");
while($j=mysql_fetch_array($query))
{
if($j['userstatus']<0)
$tpl->box['nbbannis'] += $j['nbuser'];
elseif($j['userstatus']==0)
$tpl->box['nbattente'] = $j['nbuser'];
else
{
$tpl->box['group_name'] = $j['Nom_group'];
$tpl->box['nb_users'] = $j['nbuser'];
$tpl->box['groups_stats'] .= $tpl->gettemplate("stats","groups_stats");
}
}
$tpl->box['maxusers']=$_FORUMCFG['topmembers'];
$tpl->box['timetopmembers']=getlocaltime($_FORUMCFG['timetopmembers']);
$query=$sql->query("SELECT forumtopic+forumposts AS maxmsg, forumtitle FROM ".$_PRE."forums ORDER BY maxmsg DESC");
list($tpl->box['maxforummsg'],$tpl->box['maxforumname'])=mysql_fetch_array($query);
$query=$sql->query("SELECT SUM(".$_PRE."topics.nbvues) AS Fnbvues,".$_PRE."forums.forumtitle FROM ".$_PRE."topics LEFT JOIN ".$_PRE."forums ON ".$_PRE."forums.forumid=".$_PRE."topics.idforum GROUP BY ".$_PRE."topics.idforum ORDER BY Fnbvues DESC");
if(!$query)
echo(mysql_error());
list($tpl->box['maxvues'],$tpl->box['forummaxvues'])=mysql_fetch_array($query);
$tpl->box['statscontent']=$tpl->gettemplate("stats","statsgeneral");
}
if($_REQUEST['action']=="tenbesttopics")
{
// slection des forums autoriss
$maskarray=array();
$query=$sql->query("SELECT * FROM ".$_PRE."forums");
$nb=mysql_numrows($query);
if($nb>0)
{
while($j=mysql_fetch_array($query))
{
if(isset($_PERMFORUM[$j['forumid']][1]) && $_PERMFORUM[$j['forumid']][1])
$maskarray[]=$j['forumid'];
}
}
$forummask ="'".implode("','",$maskarray)."'";
$query=$sql->query("SELECT ".$_PRE."topics.idtopic,
".$_PRE."topics.idforum,
".$_PRE."topics.sujet,
".$_PRE."topics.nbrep,
".$_PRE."topics.nbvues,
".$_PRE."topics.datederrep,
".$_PRE."topics.derposter,
".$_PRE."topics.idderpost,
".$_PRE."topics.icone,
".$_PRE."topics.idmembre,
".$_PRE."topics.pseudo,
".$_PRE."topics.poll,
".$_PRE."topics.postit,
".$_PRE."user.login
FROM ".$_PRE."topics
LEFT JOIN ".$_PRE."user ON ".$_PRE."topics.idmembre=".$_PRE."user.userid
WHERE ".$_PRE."topics.idforum IN ($forummask) ORDER BY ".$_PRE."topics.nbvues DESC LIMIT 0,10");
//$TitleStat=$tpl->gettemplate("stats",4);
$CptStats=1;
$tpl->box['topicscontent']="";
while($Topics=mysql_fetch_array($query))
{
$tpl->box['pretopic'] = NULLSTR;
if($Topics['idmembre']>0)
$Topics['loginposter']=$Topics['login'];
else
$Topics['loginposter']=$Topics['pseudo'];
$Topics['datederrep']=getlocaltime($Topics['datederrep']);
$Topics['sujet']=getformatrecup($Topics['sujet']);
if(!empty($Topics['postit']) && $Topics['postit']=="1")
$tpl->box['pretopic'].=$tpl->gettemplate("stats","ifpostittopic");
if(!empty($Topics['poll']) && $Topics['poll']>0)
$tpl->box['pretopic'].=$tpl->gettemplate("stats","iftopicpoll");
$forumid = $Topics['idforum'];
$tpl->box['topic']=$tpl->gettemplate("stats","topiclinktomsg");
$tpl->box['affichepages']= getpagestopic($Topics['nbrep']+1, $Topics['idtopic'],1);
$tpl->box['gotobutton']=$tpl->gettemplate("stats","linklastmsg");
$tpl->box['topicscontent'].=$tpl->gettemplate("stats","lignetopic");
$CptStats++;
}
$tpl->box['statscontent']=$tpl->gettemplate("stats","structure1");
}
if($_REQUEST['action']=="tenbestrep")
{
// slection des forums autoriss
$maskarray=array();
$query=$sql->query("SELECT * FROM ".$_PRE."forums");
$nb=mysql_numrows($query);
if($nb>0)
{
while($j=mysql_fetch_array($query))
{
if(isset($_PERMFORUM[$j['forumid']][1]) && $_PERMFORUM[$j['forumid']][1])
$maskarray[]=$j['forumid'];
}
}
$forummask ="'".implode("','",$maskarray)."'";
//echo($forummask);
//$query=$sql->query("SELECT idpost,idforum,sujet,date,nbrep,nbvues,datederrep,derposter,icone,idmembre FROM CF_posts WHERE parent=0 ORDER BY nbvues DESC");
$query=$sql->query("SELECT ".$_PRE."topics.idtopic,
".$_PRE."topics.idforum,
".$_PRE."topics.sujet,
".$_PRE."topics.nbrep,
".$_PRE."topics.nbvues,
".$_PRE."topics.datederrep,
".$_PRE."topics.derposter,
".$_PRE."topics.idderpost,
".$_PRE."topics.icone,
".$_PRE."topics.idmembre,
".$_PRE."topics.pseudo,
".$_PRE."topics.poll,
".$_PRE."topics.postit,
".$_PRE."user.login
FROM ".$_PRE."topics
LEFT JOIN ".$_PRE."user ON ".$_PRE."topics.idmembre=".$_PRE."user.userid
WHERE ".$_PRE."topics.idforum IN ($forummask) ORDER BY ".$_PRE."topics.nbrep DESC LIMIT 0,10");
if(!$query)
echo(mysql_error());
//$TitleStat=$tpl->gettemplate("stats",4);
$CptStats=1;
$tpl->box['topicscontent']="";
while($Topics=mysql_fetch_array($query))
{
$tpl->box['pretopic'] = NULLSTR;
if($Topics['idmembre']>0)
$Topics['loginposter']=$Topics['login'];
else
$Topics['loginposter']=$Topics['pseudo'];
$Topics['datederrep']=getlocaltime($Topics['datederrep']);
$Topics['sujet']=getformatrecup($Topics['sujet']);
if(!empty($Topics['postit']) && $Topics['postit']=="1")
$tpl->box['pretopic'].=$tpl->gettemplate("stats","ifpostittopic");
if(!empty($Topics['poll']) && $Topics['poll']>0)
$tpl->box['pretopic'].=$tpl->gettemplate("stats","iftopicpoll");
$forumid = $Topics['idforum'];
$tpl->box['topic']=$tpl->gettemplate("stats","topiclinktomsg");
$tpl->box['affichepages']= getpagestopic($Topics['nbrep']+1, $Topics['idtopic'],1);
$tpl->box['topic']=$tpl->gettemplate("stats","topiclinktomsg");
$tpl->box['gotobutton']=$tpl->gettemplate("stats","linklastmsg");
$tpl->box['topicscontent'].=$tpl->gettemplate("stats","lignetopic");
$CptStats++;
}
$tpl->box['statscontent']=$tpl->gettemplate("stats","structure1");
}
if($_REQUEST['action']=="tenbestuser")
{
$tpl->box['filter'] = NULLSTR;
$tpl->box['next'] = NULLSTR;
$tpl->box['before'] = NULLSTR;
$query=$sql->query("SELECT userid,login,userstatus,registerdate,usermsg,usermail,usersite,showmail,showusersite FROM ".$_PRE."user WHERE userstatus<>0 ORDER BY usermsg DESC LIMIT 0,10");
//$TitleStat=$tpl->gettemplate("stats",15);
$tpl->box['topicscontent']="";
$CptStats=1;
while($Topics=mysql_fetch_array($query))
{
$Topics['registerdate']=getlocaltime($Topics['registerdate'],1);
$Topics['loginposter']=getformatpseudo($Topics['login'],$Topics['userstatus'],$Topics['userid']);
if($Topics['showmail']=="Y")
{
$Topics['usermail']=getemail($Topics['usermail']);
$tpl->box['email']=$tpl->gettemplate("stats","emaillink");
}
else
$tpl->box['email']=" ";
if($Topics['showusersite']=="Y" && strlen($Topics['usersite'])>0)
$tpl->box['siteweb']=$tpl->gettemplate("stats","siteweblink");
else
$tpl->box['siteweb']=" ";
$tpl->box['topicscontent'].=$tpl->gettemplate("stats","lignemb");
$CptStats++;
}
$tpl->box['statscontent']=$tpl->gettemplate("stats","structure2");
}
if($_REQUEST['action']=="listmember")
{
$tpl->box['topicscontent'] = NULLSTR;
//$TitleStat=$tpl->gettemplate("stats",6);
if(!isset($_GET['debut'])) $debut=0;
else $debut= intval($_GET['debut']);
if(isset($_GET['letter']) && $_GET['letter']=="0")
{
$Where = "AND login NOT REGEXP('^[a-zA-Z]')";
$letter = htmlentities($_GET['letter']);
}
elseif(isset($_GET['letter']) && ereg("^[a-zA-Z]{1}$",$_GET['letter']))
{
$Where = "AND login LIKE '".$_GET['letter']."%'";
$letter = htmlentities($_GET['letter']);
}
else
{
$Where = NULLSTR;
$letter = NULLSTR;
}
$tpl->box['filter']=$tpl->gettemplate("stats","mbfilter");
$query=$sql->query("SELECT COUNT(*) AS tot FROM ".$_PRE."user WHERE userstatus>0 ".$Where);
if($query)
$total=mysql_fetch_array($query);
if($total['tot']>0)
{
$query=$sql->query("SELECT userid,login,userstatus,registerdate,usermsg,usermail,usersite,showmail,showusersite FROM ".$_PRE."user WHERE userstatus<>0 ".$Where." ORDER BY login LIMIT ".$debut.",20");
$tpl->box['affstats']="";
$CptStats=$debut+1;
while($Topics=mysql_fetch_array($query))
{
$Topics['registerdate']=getlocaltime($Topics['registerdate'],1);
$Topics['loginposter']=getformatpseudo($Topics['login'],$Topics['userstatus'],$Topics['userid']);
if($Topics['showmail']=="Y")
{
$Topics['usermail']=getemail($Topics['usermail']);
$tpl->box['email']=$tpl->gettemplate("stats","emaillink");
}
else
$tpl->box['email']=" ";
if($Topics['showusersite']=="Y" && strlen($Topics['usersite'])>0)
$tpl->box['siteweb']=$tpl->gettemplate("stats","siteweblink");
else
$tpl->box['siteweb']=" ";
$tpl->box['topicscontent'].=$tpl->gettemplate("stats","lignemb");
$CptStats++;
}
}
else
$tpl->box['topicscontent']=$tpl->gettemplate("stats","nomb");
if($debut>0)
{
$tpl->box['debut']=$debut-20;
$tpl->box['before']=$tpl->gettemplate("stats","beforelink");
}
else
$tpl->box['before']=$tpl->gettemplate("stats","beforenolink");
if(($debut+20)<$total['tot'])
{
$tpl->box['debut']=$debut+20;
$tpl->box['next']=$tpl->gettemplate("stats","nextlink");
}
else
$tpl->box['next']=$tpl->gettemplate("stats","nextnolink");
//$tpl->box[statscontent]=$tpl->gettemplate("stats",14);
$tpl->box['statscontent']=$tpl->gettemplate("stats","structure2");
}
if($_REQUEST['action']=="connected")
{
$MbConnected=0;
foreach($NombreConnectes as $Connected)
if($Connected['userid']>0)
$MbConnected++;
if($MbConnected > 0)
{
$Members = array();
$ForumsMask = array();
$TopicsMask = array();
$ForumInfo = array();
$TopicInfo = array();
if(empty($_GET['debut'])) $debut=0;
else $debut=intval($_GET['debut']);
if($debut < 0) $debut=0;
$query = $sql->query("SELECT username,userid,userstatus,typelieu,forumid,topicid FROM ".$_PRE."session WHERE userid<>'0' ORDER BY username LIMIT ".$debut.",20");
while($j=mysql_fetch_array($query))
$Members[]=$j;
foreach($Members as $MemberInfo)
{
if($MemberInfo['forumid']>0 && !empty($_PERMFORUM[$MemberInfo['forumid']][0]) && $_PERMFORUM[$MemberInfo['forumid']][0]==true)
{
$ForumsMask[]=$MemberInfo['forumid'];
if($MemberInfo['topicid']>0 && !empty($_PERMFORUM[$MemberInfo['forumid']][1]) && $_PERMFORUM[$MemberInfo['forumid']][1]==true)
$TopicsMask[]=$MemberInfo['topicid'];
}
}
if(count($ForumsMask)>0)
{
$query = $sql->query("SELECT forumid,forumtitle FROM ".$_PRE."forums WHERE forumid IN ('".implode("','",$ForumsMask)."')");
while(list($ForumId,$ForumTitle)=mysql_fetch_array($query))
$ForumInfo[$ForumId]=getformatrecup($ForumTitle);
if(count($TopicsMask)>0)
{
$query = $sql->query("SELECT idtopic,sujet,idderpost FROM ".$_PRE."topics WHERE idtopic IN ('".implode("','",$TopicsMask)."')");
while($j=mysql_fetch_array($query))
{
$TopicInfo[$j['idtopic']]=$j;
$TopicInfo[$j['idtopic']]['sujet']=getformatrecup($TopicInfo[$j['idtopic']]['sujet']);
}
}
}
reset($Members);
$tpl->box['listconnected']=NULLSTR;
foreach($Members as $MemberInfo)
{
$MemberInfo['pseudo']=getformatpseudo($MemberInfo['username'],$MemberInfo['userstatus'],$MemberInfo['userid']);
if($MemberInfo['forumid']>0 && !empty($_PERMFORUM[$MemberInfo['forumid']][0]) && $_PERMFORUM[$MemberInfo['forumid']][0]==true)
{
$ForumTitle = $ForumInfo[$MemberInfo['forumid']];
$tpl->box['typelieu']=$tpl->gettemplate("stats","typelieu_for");
if($MemberInfo['topicid']>0 && !empty($_PERMFORUM[$MemberInfo['forumid']][1]) && $_PERMFORUM[$MemberInfo['forumid']][1]==true)
{
$Topic = $TopicInfo[$MemberInfo['topicid']];
$tpl->box['typelieu'].=$tpl->gettemplate("stats","typelieu_top");
}
}
else
{
$TypeLieuUrl = NULLSTR;
switch($MemberInfo['typelieu'])
{
case "ACC":
$TypeLieu = $tpl->attlang("acc");
$TypeLieuUrl = "index.php";
break;
case "SEA":
$TypeLieu = $tpl->attlang("sea");
if($_GENERAL[1])
$TypeLieuUrl = "search.php";
break;
case "ADM":
$TypeLieu = $tpl->attlang("adm");
break;
case "STA":
$TypeLieu = $tpl->attlang("sta");
$TypeLieuUrl = "stats.php";
break;
case "HLP":
$TypeLieu = $tpl->attlang("hlp");
$TypeLieuUrl = "aide.php";
break;
case "PRO":
$TypeLieu = $tpl->attlang("pro");
if($_USER['userstatus']>0)
$TypeLieuUrl = "profile.php";
break;
default:
$TypeLieu = $tpl->attlang("acc");
$TypeLieuUrl = "index.php";
break;
}
if(strlen($TypeLieuUrl)>0) $tpl->box['typelieu']=$tpl->gettemplate("stats","typelieuurl");
else $tpl->box['typelieu']=$tpl->gettemplate("stats","typelieu");
}
$tpl->box['listconnected'].=$tpl->gettemplate("stats","ligneconnected");
}
if($debut > 0)
{
$tpl->box['debut']=$debut-20;
$tpl->box['before']=$tpl->gettemplate("stats","connectedbeforelink");
}
else
$tpl->box['before']=$tpl->gettemplate("stats","connectedbeforenolink");
if(($debut+20) < $MbConnected)
{
$tpl->box['debut']=$debut+20;
$tpl->box['next']=$tpl->gettemplate("stats","connectednextlink");
}
else
$tpl->box['next']=$tpl->gettemplate("stats","connectednextnolink");
}
else
$tpl->box['listconnected']=$tpl->gettemplate("stats","nombconnected");
$tpl->box['statscontent']=$tpl->gettemplate("stats","structure3");
}
$cache.=$tpl->gettemplate("stats","pageconfig");
$tps = number_format(get_microtime() - $tps_start,4);
$cache.=$tpl->gettemplate("baspage","endhtml");
$tpl->output($cache);
}
else
geterror("call_loginbox");
?>