PDA

View Full Version : 2.2 vbstats


|DarkManX|
11-02-2001, 01:04 AM
i installed this hack, but however the links to change options and stuff like that in the admin cp don't work

i was wondering what the updated code would be for this to work..............thank you

Bane
11-03-2001, 05:04 AM
Excactly what links do you mean? If you mean the CP intergration with vbstats, that is *not* installed automatically. that is one of the optional hacks.

|DarkManX|
11-04-2001, 04:31 PM
i got it now, i ment like in the admin cp....how the admin/index.php was coded a lil bit different know what i mean?

highlander_RD
11-19-2003, 12:42 PM
I wonder if there's any mercy soul who can help me in the optimization of the frontpage vbstats code.

Everything is working fine ( http://www.risikodigital.it/forum ) but, since I'm a totally newbie in php and mysql programming, I'm quite sure there's a fastest way to obtain the same figures shown in my forum HP.

I'm publishing below
1) index.php
2) vbstats_forumhome template

I beg your pardon if i post in the wrong area. Sorry, and forgive me.
Thanks much to people who can help me. ;)

1) index.php
<?php
error_reporting(7);

$templatesused='forumhome_birthdaybit,error_noperm ission,forumhome_pmloggedin,forumhome_welcometext, forumhome_logoutcode,forumhome_newposts,forumhome_ todayposts,forumhome_logincode,forumhome_loggedinu ser,forumhome_loggedinusers,forumhome_lastpostby,f orumhome_moderator,forumhome_forumbit_level1_nopos t,forumhome_forumbit_level1_post,forumhome_forumbi t_level2_nopost,forumhome_forumbit_level2_post,for umhome,forumhome_unregmessage';
$loadbirthdays=1;
$loadmaxusers=1;

require('./global.php');

$permissions=getpermissions();
if (!$permissions['canview']) {
show_nopermission();
}

//check usergroup of user to see if they can use PMs
//$permissions=getpermissions($forumid);
if ($enablepms==1 and $permissions['canusepm'] and $bbuserinfo['receivepm']) {
$ignoreusers="";
if (trim($bbuserinfo['ignorelist'])!="") {
$ignoreusers='AND fromuserid<>'.implode(' AND fromuserid<>',explode(' ', trim($bbuserinfo['ignorelist'])));
}

$allpm=$DB_site->query_first("SELECT COUNT(*) AS messages FROM privatemessage WHERE userid=$bbuserinfo[userid] $ignoreusers");
$newpm=$DB_site->query_first("SELECT COUNT(*) AS messages FROM privatemessage WHERE userid=$bbuserinfo[userid] AND dateline>$bbuserinfo[lastvisit] AND folderid=0 $ignoreusers");
$unreadpm=$DB_site->query_first("SELECT COUNT(*) AS messages FROM privatemessage WHERE userid=$bbuserinfo[userid] AND messageread=0 AND folderid=0 $ignoreusers");

if ($newpm['messages']==0) {
$lightbulb='space';
} else {
$lightbulb='sirena';
}
eval("\$pminfo = \"".gettemplate('forumhome_pmloggedin')."\";");

} else {
$pminfo='';
}

// How Many?
$numbersmembers=$DB_site->query_first('SELECT COUNT(*) AS users,MAX(userid) AS max FROM user');
$numbermembers=number_format(($numbersmembers['users']), 0, ',', '.');
$snonposters=$DB_site->query_first('SELECT COUNT(*) AS users,MAX(userid) AS max FROM user WHERE posts=0');
$nonposters=number_format(($snonposters['users']), 0, ',', '.');
$activemembers=number_format((($numbersmembers['users'])-$nonposters), 0, ',', '.');
$activityrate=number_format(($activemembers/$numbermembers/10), 2, ',', '.');

// Equate [Added Post 230.b to resolve Active Users issues]
// $activemembers=number_format($activemembers);
// $nonposters=number_format($nonposters);

// PM Totals
$totalpms = $DB_site->query_first("SELECT count(*) as pmcount FROM privatemessage");
$totalpm = number_format(($totalpms[pmcount]), 0, ',', '.');

// Staff
$anum = mysql_num_rows(mysql_query("select * from user WHERE usergroupid=5 or usergroupid=6 or usergroupid=7"));

// get total posts & threads
$countposts=$DB_site->query_first('SELECT COUNT(*) AS posts FROM post');
$totalposts=number_format(($countposts['posts']), 0, ',', '.');

$countthreads=$DB_site->query_first('SELECT COUNT(*) AS threads FROM thread');
$totalthreads=number_format(($countthreads['threads']), 0, ',', '.');

// thread Most Viewed
$top3d1=$DB_site->query("SELECT threadid, title, views FROM thread GROUP BY threadid ORDER BY views DESC LIMIT 1");
while ($top3d=$DB_site->fetch_array($top3d1)) {
$top3d1views = number_format(($top3d[views]), 0, ',', '.');
$top3d1id =($top3d[threadid]);
$top3d1title =($top3d[title]);
$maxchars='20'; // title lenght
if (strlen($top3d1title) > $maxchars) {
$top3d1title = substr($top3d1title, 0, $maxchars-2) . '...';
}
}

// get total views
$boardviews = $DB_site->query_first("SELECT SUM(views) AS threadviews FROM thread");
$totalviews = number_format(($boardviews[threadviews]), 0, ',', '.');

// get newest member
$getnewestusers=$DB_site->query_first("SELECT userid,username FROM user WHERE userid=$numbersmembers[max]");
$newusername=$getnewestusers['username'];
$newuserid=$getnewestusers['userid'];

// if user is know, then welcome
if ($bbuserinfo['userid']!=0) {
$username=$bbuserinfo['username'];
eval("\$welcometext = \"".gettemplate('forumhome_welcometext')."\";");
eval("\$logincode = \"".gettemplate('forumhome_logoutcode')."\";");
eval("\$newposts = \"".gettemplate('forumhome_newposts')."\";");

} else {
$welcometext = "";
eval("\$newposts = \"".gettemplate('forumhome_todayposts')."\";");
eval("\$logincode = \"".gettemplate('forumhome_logincode')."\";");
}

$birthdaybits="";
if ($showbirthdays) {

$birthdays = gettemplate('birthdays',0,0);
$btoday = explode('|||',$birthdays);
$today = vbdate("Y-m-d",time());
if (($today != $btoday[0] and $today != $btoday[1]) or empty($birthdays)) { // Need to update!
if (empty($birthdays)) {
$DB_site->query("INSERT INTO template (templateid, templatesetid, title, template) VALUES (NULL, '-2', 'birthdays', '')");
}
getbirthdays();
$birthdays = $DB_site->query_first("SELECT template FROM template WHERE title='birthdays' and templatesetid = -2");
$birthdays = $birthdays[template];
$btoday = explode('|||',$birthdays);
}

if ($today == $btoday[0]) {
$birthdays = $btoday[2];
} elseif ($today == $btoday[1]) {
$birthdays = $btoday[3];
}

if ($birthdays) {
eval("\$birthdaybits = \"".gettemplate("forumhome_birthdaybit")."\";");
}
}

//Forum info
$forums=$DB_site->query('SELECT * FROM forum WHERE displayorder<>0 AND active=1 ORDER BY parentid,displayorder');
while ($forum=$DB_site->fetch_array($forums)) {
$iforumcache["$forum[parentid]"]["$forum[displayorder]"]["$forum[forumid]"] = $forum;
}
$DB_site->free_result($forums);
unset($forum);

//Forum perms
$forumperms=$DB_site->query("SELECT forumid,canview,canpostnew FROM forumpermission WHERE usergroupid='$bbuserinfo[usergroupid]'");
while ($forumperm=$DB_site->fetch_array($forumperms)) {
$ipermcache["$forumperm[forumid]"] = $forumperm;
}
$DB_site->free_result($forumperms);
unset($forumperm);

$accesscache = array();
if ($bbuserinfo['userid']!=0 AND $enableaccess) {
//Access table perms
$accessperms=$DB_site->query("SELECT forumid,accessmask FROM access WHERE userid='$bbuserinfo[userid]'");
while ($accessperm=$DB_site->fetch_array($accessperms)) {
$accesscache["$accessperm[forumid]"] = $accessperm;
}
$DB_site->free_result($accessperms);
unset($accessperm);

// usergroup defaults
$usergroupdef['canview'] = $permissions['canview'];
$usergroupdef['canpostnew'] = $permissions['canpostnew'];

// array for accessmask=0
$noperms['canview'] = 0;
$noperms['canpostnew'] = 0;
}

$imodcache = array();
$mod = array();
$forummoderators=$DB_site->query('SELECT user.userid,user.username,moderator.forumid
FROM moderator
LEFT JOIN user
ON (moderator.userid=user.userid)
ORDER BY user.username');
while ($moderator=$DB_site->fetch_array($forummoderators)) {
$imodcache["$moderator[forumid]"][] = $moderator;
$mod["$moderator[userid]"] = 1;
}
$DB_site->free_result($forummoderators);
unset($moderator);

$activeusers = "";
$loggedinusers = "";
if ($displayloggedin) {
$datecut=time()-$cookietimeout;

$loggedins=$DB_site->query_first("SELECT COUNT(*) AS sessions FROM session WHERE userid=0 AND lastactivity>$datecut");
$numberguest=$loggedins['sessions'];

$numbervisible=0;
$numberregistered=0;

$loggedins=$DB_site->query("SELECT DISTINCT session.userid,username,invisible,usergroupid
FROM session
LEFT JOIN user ON (user.userid=session.userid)
WHERE session.userid>0 AND session.lastactivity>$datecut
ORDER BY invisible ASC, username ASC");
if ($loggedin=$DB_site->fetch_array($loggedins)) {
$numberregistered++;
if ($loggedin['invisible']==0 or $bbuserinfo['usergroupid']==6) {
$numbervisible++;
$userid = $loggedin['userid'];
if ($loggedin['invisible'] == 1) { // Invisible User but show to Admin
$invisibleuser = '*';
} else {
$invisibleuser = '';
}
if ($loggedin['usergroupid'] == 6 and $highlightadmin) {
$username = "<b><i>$loggedin[username]</i></b>";
} else if (($mod["$userid"] or $loggedin['usergroupid'] == 5) and $highlightadmin) {
$username = "<b>$loggedin[username]</b>";
} else {
$username = $loggedin['username'];
}
eval("\$activeusers = \"".gettemplate('forumhome_loggedinuser')."\";");
}

while ($loggedin=$DB_site->fetch_array($loggedins)) {
$numberregistered++;
$invisibleuser = '';
if ($loggedin['invisible']==1 and $bbuserinfo['usergroupid']!=6) {
continue;
}
$numbervisible++;
$userid=$loggedin['userid'];
if ($loggedin['invisible'] == 1) { // Invisible User but show to Admin
$invisibleuser = '*';
}
if ($loggedin['usergroupid'] == 6 and $highlightadmin) {
$username = "<b><i>$loggedin[username]</i></b>";
} else if (($mod["$userid"] or $loggedin['usergroupid'] == 5) and $highlightadmin) {
$username = "<b>$loggedin[username]</b>";
} else {
$username = $loggedin['username'];
}
eval("\$activeusers .= \", ".gettemplate('forumhome_loggedinuser')."\";");
}
}
$DB_site->free_result($loggedins);

$totalonline=$numberregistered+$numberguest;
$numberinvisible=$numberregistered-$numbervisible;

$maxusers=explode(" ", gettemplate('maxloggedin',0,0));
if ((int)$maxusers[0] <= $totalonline) {
$time = time();
$maxloggedin = "$totalonline " . $time;
$DB_site->query("UPDATE template SET template='$maxloggedin' WHERE title='maxloggedin'");
$maxusers[0] = $totalonline;
$maxusers[1] = $time;
}
$recordusers = $maxusers[0];
$recorddate = vbdate($dateformat,$maxusers[1]);
$recordtime = vbdate($timeformat,$maxusers[1]);
eval("\$loggedinusers = \"".gettemplate('forumhome_loggedinusers')."\";");
}

// Start makeforumbit
function makeforumbit($forumid,$depth=1,$permissions='') {
global $DB_site,$bbuserinfo,$iforumcache,$ipermcache,$imo dcache,$session,$accesscache,$usergroupdef,$noperm s;
global $showlocks,$hideprivateforums,$showforumdescriptio n,$forumhomedepth,$dateformat,$timeformat,$enablea ccess;

if ( !isset($iforumcache["$forumid"]) ) {
return;
}

$forumbits = '';

while ( list($key1,$val1)=each($iforumcache["$forumid"]) ) {
while ( list($key2,$forum)=each($val1) ) {

// Permissions
if ( $enableaccess and is_array($accesscache["$forum[forumid]"]) ) {
if ($accesscache["$forum[forumid]"]['accessmask']==1) {
$forumperms = $usergroupdef;
} else {
$forumperms = $noperms;
}
} else if ( is_array($ipermcache["$forum[forumid]"]) ) {
$forumperms = $ipermcache["$forum[forumid]"];
} else {
$forumperms = $permissions;
}

$trueperm['canview'] = $forumperms['canview'];

if (!$hideprivateforums) {
$forumperms['canview']=1;
}

if (!$forumperms['canview']) {
continue;
} else {
$forumshown=1;

// do light bulb
if ($bbuserinfo['lastvisitdate']=='Never') {
$forum['onoff']='on';
} else {
if (($fview = get_bbarraycookie('forumview', $forum['forumid'])) > $bbuserinfo['lastvisit']) {
$userlastvisit=$fview;
} else {
$userlastvisit=$bbuserinfo['lastvisit'];
}
if ($userlastvisit<$forum['lastpost']) {
$forum['onoff']='on';
} else {
$forum['onoff']='off';
}
}

if ((!$forumperms['canpostnew'] and $showlocks) or $forum['allowposting']==0) {
$forum['onoff'].='lock';
}

// prepare template vars
if (!$showforumdescription) {
$forum['description']='';
}

// dates
if ($forum['lastpost']>0) {
$maxchars='30'; // title lenght
if($trueperm['canview']) {
$forum['lastthread']=unhtmlspecialchars($forum['lastthread']);
if (strlen($forum['lastthread']) > $maxchars) {
$forum['lastthread'] = substr($forum['lastthread'], 0, $maxchars-2) . '...';
}
}
$forum['lastpostdate']=vbdate($dateformat,$forum['lastpost']);
$forum['lastposttime']=vbdate($timeformat,$forum['lastpost']);
eval("\$forum['lastpostinfo'] = \"".gettemplate('forumhome_lastpostby')."\";");
} else {
$forum['lastpostinfo']='Never';
}

$listexploded=explode(",", $forum['parentlist']);
while ( list($mkey1,$mval1)=each($listexploded) ) {
if ( !isset($imodcache["$mval1"]) ) {
continue;
}
reset($imodcache["$mval1"]);
while ( list($mkey2,$moderator)=each($imodcache["$mval1"]) ) {
if ( !isset($forum['moderators']) ) {
eval("\$forum['moderators'] = \"".gettemplate('forumhome_moderator')."\";");
} else {
eval("\$forum['moderators'] .= \", ".gettemplate('forumhome_moderator')."\";");
}
}
}

if ( !isset($forum['moderators']) ) {
$forum['moderators'] = '&nbsp;';
}

if ($forum['cancontainthreads']==1) {
$tempext = '_post';
} else {
$tempext = '_nopost';
}

eval("\$forumbits .= \"".gettemplate("forumhome_forumbit_level$depth$tempext")."\";");

if ($depth<$forumhomedepth) {
$forumbits.=makeforumbit($forum['forumid'],$depth+1,$forumperms);
}
} // END if can view
} // END while ( list($key2,$forum)=each($val1) ) {
} // END while ( list($key1,$val1)=each($iforumcache["$forumid"]) ) {

unset($iforumcache["$forumid"]);
return $forumbits;
}

if (!isset($forumid) or $forumid==0 or $forumid=='') {
$forumid=-1;
} else {
// need to get permissions for this specific forum
$permissions=getpermissions(intval($forumid));
}
$forumbits=makeforumbit(intval($forumid), 1, $permissions);

/* vbStats [forumhome]
#########################################*/
// Today post and threads [FireFly]
$tltoday=time()-(86400);
$getpoststoday=$DB_site->query_first("SELECT count(*) AS count FROM post WHERE dateline>='$tltoday'");
$poststoday=number_format(($getpoststoday[count]), 0, ',', '.');
$getthreadstoday=$DB_site->query_first("SELECT count(*) AS count FROM thread WHERE dateline>='$tltoday'");
$threadstoday=number_format(($getthreadstoday[count]), 0, ',', '.');

// Today Views
$tltoday=time()-(86400);
$todayboardviews = $DB_site->query_first("SELECT SUM(views) AS threadviews FROM thread WHERE dateline>='$tltoday'");
$todayviews = number_format(($todayboardviews[threadviews]), 0, ',', '.');

// ########## New Users Today
$tltoday=time()-(86400);
$getnewusertoday=$DB_site->query_first("SELECT count(*) AS count FROM user WHERE joindate>='$tltoday'");
$newusertoday=number_format(($getnewusertoday[count]), 0, ',', '.');

// PM Today
$tltoday=time()-(86400);
$todaypms = $DB_site->query_first("SELECT count(*) as pmcount FROM privatemessage WHERE dateline>='$tltoday'");
$todaypm = number_format(($todaypms[pmcount]), 0, ',', '.');

// 24 Hours
$datecut3=time()-(86400);
$toppost3=$DB_site->query("SELECT COUNT(post.userid) as posts, user.username, user.userid FROM post, user WHERE post.userid=user.userid AND post.dateline>=$datecut3 GROUP BY user.userid ORDER BY posts DESC LIMIT 1");
while ($user3=$DB_site->fetch_array($toppost3)) {
$numbertopposts=number_format($user3[posts]);
$topposter=($user3[username]);
$topposterid=($user3[userid]);
}

eval("\$vbstats = \"".gettemplate('vbstats_forumhome')."\";");
// vbStats [forumhome] END


$unregwelcomemessage='';
if ($bbuserinfo['userid']==0) {
eval("\$unregwelcomemessage = \"".gettemplate('forumhome_unregmessage')."\";");
}

eval("dooutput(\"".gettemplate('forumhome')."\");");

?>

2) template
<table align="left" border=0 cellpadding="0" cellspacing="0" valign="top">
<tr height="3">
<td></td>
</tr>
<tr align="left">
<td width="120"><smallfont><a href="memberlist.php?s=$session[sessionhash]">Iscritti</a>:&nbsp; <b>$numbermembers</b>&nbsp;&nbsp;</smallfont></td>
<td><smallfont>
Nuovi Iscritti:&nbsp;<b>$newusertoday</b>&nbsp;&nbsp;</smallfont></td>
<td><smallfont>
<a href="showgroups.php?s=$session[sessionhash]">Staff</a>:&nbsp;<b>$anum</b>&nbsp;&nbsp;</smallfont></td>
<td><smallfont>
Attivi:&nbsp;<b>$activemembers</b>&nbsp;&nbsp;</smallfont></td>
<td><smallfont>
Non Attivi:&nbsp;<b>$nonposters</b>&nbsp;&nbsp;</smallfont></td>
<td colspan="2"><smallfont>
% Attivi:&nbsp;<b>$activityrate<b><smallfont>%</b></smallfont></b>&nbsp;&nbsp;</smallfont></td></tr>
<tr>
<td><smallfont>
Stat. totali:&nbsp;&nbsp;</smallfont></td>
<td><smallfont>
Discussioni:&nbsp;<b>$totalthreads</b>&nbsp;&nbsp;</smallfont></td>
<td><smallfont>
MP:&nbsp;<b>$totalpm</b>&nbsp;&nbsp;</smallfont></td>
<td><smallfont>
Post:&nbsp;<b>$totalposts</b>&nbsp;&nbsp;</smallfont></td>
<td><smallfont>
Visite:&nbsp;<b>$totalviews</b>&nbsp;&nbsp;</smallfont></td>
<td><smallfont>Top Disc.: &nbsp;<b>
<a href=showthread.php?threadid=$top3d1id>$top3d1title</a></b>
&nbsp;&nbsp;</smallfont></td>
<td><smallfont>($top3d1views Visite)
&nbsp;&nbsp;</smallfont></td></tr>
<tr>
<td><smallfont>
Stat. ultime 24 ore:&nbsp;&nbsp;</smallfont></td>
<td><smallfont>
Discussioni:&nbsp;<b>$threadstoday</b>&nbsp;&nbsp;</smallfont></td>
<td><smallfont>
<a href='private.php?s=$session[sessionhash]'>MP</a>: <b>$todaypm</b>&nbsp;&nbsp;</smallfont></td>
<td><smallfont>
<a href='search.php?action=getdaily'>Post</a>:&nbsp;<b>$poststoday</b>&nbsp;&nbsp;</smallfont></td>
<td><smallfont>
Visite:&nbsp;<b>$todayviews</b>&nbsp;&nbsp;</smallfont></td>
<td><smallfont>Top Poster:&nbsp;<b><a href=member.php?action=getinfo&userid=$topposterid">$topposter</a></b>&nbsp;&nbsp;</smallfont></td>
<td><smallfont>($numbertopposts Post) &nbsp;&nbsp;</smallfont></td></tr>
</table>
</td></tr>


BTW: Thank you Bane! * great hack! *

3) here the screenshot: