index.php

FF Bayersried
Fatal error: Call to a member function on a non-object in /var/www/web13/html/sandra/index.php on line 22


ich finde keinen fehler in der 22 zeile


code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
322:
323:
324:
325:
326:
327:
328:
329:
330:
331:
332:
333:
334:
335:
336:
337:
338:
339:
340:
341:
342:
343:
344:
345:
346:
347:
348:
349:
350:
351:
352:
353:
354:
355:
356:
357:
358:
359:
360:
361:
362:
363:
364:
365:
366:
367:
368:
369:
370:
371:
372:
373:
374:
375:
376:
377:
378:
379:
380:
381:
382:
383:
384:
385:
386:
387:
388:
389:
390:
391:
392:
393:
394:
395:
396:
397:
398:
399:
400:
401:
402:
403:
404:
405:
406:
407:
408:
409:
410:
411:
412:
413:
414:
415:
416:
417:
418:
419:
420:
421:
422:
<?php
// ************************************************************************************//
// * WoltLab Burning Board 2
// ************************************************************************************//
// * Copyright (c) 2001-2004 WoltLab GmbH
// * Web           http://www.woltlab.de/
// * License       http://www.woltlab.de/products/burning_board/license_en.php
// *               http://www.woltlab.de/products/burning_board/license.php
// ************************************************************************************//
// * WoltLab Burning Board 2 is NOT free software.
// * You may not redistribute this package or any of it's files.
// ************************************************************************************//
// * $Date: 2005-06-16 14:28:46 +0200 (Thu, 16 Jun 2005) $
// * $Author: Burntime $
// * $Rev: 1618 $
// ************************************************************************************//


$filename = 'index.php';

require('./global.php');
$lang->load('START');

require('./acp/lib/class_useronline.php');

if (isset($_COOKIE[$cookieprefix.'hidecats'])) $hidecats = decode_cookie($_COOKIE[$cookieprefix.'hidecats']);
else $hidecats = array();

if (isset($_GET['hidecat'])) {
	$hidecats[$_GET['hidecat']] = 1;
	if ($wbbuserdata['usecookies'] == 1) encode_cookie("hidecats", time() + 3600 * 24 * 365);
	else encode_cookie("hidecats");
}
if (isset($_GET['showcat'])) {
	$hidecats[$_GET['showcat']] = 0;
	if ($wbbuserdata['usecookies'] == 1) encode_cookie("hidecats", time() + 3600 * 24 * 365);
	else encode_cookie("hidecats");
}

$boardcache = array();
$permissioncache = array();
$modcache = array();

switch ($boardordermode) {
	case 1: $boardorder = 'b.title ASC'; break;
	case 2: $boardorder = 'b.title DESC'; break;
	case 3: $boardorder = 'b.lastposttime DESC'; break;
	default: $boardorder = 'b.boardorder ASC'; break;
}
$activtime = time() - 60 * $useronlinetimeout;

$boardvisit = array();
$result = $db->unbuffered_query("
 SELECT
 b.*".(($showlastposttitle == 1) ? (", t.topic, t.prefix AS threadprefix, i.*") : (""))."
 ".(($showuseronlineinboard == 1) ? (", COUNT(s.sessionhash) AS useronline") : (""))."
 ".(($wbbuserdata['userid']) ? (", bv.lastvisit") : (""))."
 FROM bb".$n."_boards b
 ".(($showlastposttitle == 1) ? ("LEFT JOIN bb".$n."_threads t ON (t.threadid=b.lastthreadid)
 LEFT JOIN bb".$n."_icons i USING (iconid)") : (""))."
 ".(($showuseronlineinboard == 1) ? ("LEFT JOIN bb".$n."_sessions s ON (s.boardid=b.boardid AND s.lastactivity>='$activtime')") : (""))."
 ".(($wbbuserdata['userid']) ? (" LEFT JOIN bb".$n."_boardvisit bv ON (bv.boardid=b.boardid AND bv.userid='".$wbbuserdata['userid']."')") : (""))."
 ".(($showuseronlineinboard == 1) ? ("GROUP BY b.boardid") : (""))."
 ORDER by b.parentid ASC, $boardorder");
while ($row = $db->fetch_array($result)) {
	$boardcache[$row['parentid']][$row['boardorder']][$row['boardid']] = $row;
	$boardvisit[$row['boardid']] = $row['lastvisit'];
}
// Anfang AWH by Yyoshii http://www.fdlboard.da.ru
/* avatar */
if($wbbuserdata['userid']) {
	$avatar = $db->query_first("SELECT avatarid FROM bb".$n."_users WHERE userid = '$wbbuserdata[userid]'");
if ($avatar[avatarid]) {
	$ainfo = $db->query_first("SELECT * FROM bb".$n."_avatars WHERE avatarid = '$avatar[avatarid]'");
	$avatar = "<img src=\"images/avatars/avatar-".$ainfo[avatarid].".".$ainfo[avatarextension]."\" border=\"0\">";
} 
else 
{
	$avatar = "<img src=\"{$style['imagefolder']}/noavatar.gif\" border=\"0\">";
}
	$toffset=(($wbbuserdata['timezoneoffset']>=0) ? ("+") : ("")).$wbbuserdata['timezoneoffset']; 
	eval ("\$lang->items['LANG_START_TIMEZONE'] = \"".$lang->get("LANG_START_TIMEZONE")."\";");
	list($newthreads) = $db->query_first("SELECT COUNT(*) FROM bb".$n."_threads WHERE starttime > '$wbbuserdata[lastvisit]'");
	list($newposts) = $db->query_first("SELECT COUNT(*) FROM bb".$n."_posts WHERE posttime > '$wbbuserdata[lastvisit]'");
	$stats=$db->query_first("SELECT s.*, u.username FROM bb".$n."_stats s LEFT JOIN bb".$n."_users u ON(u.userid=s.lastuserid)");
 	$stats['username']=htmlconverter($stats['username']);
	$installdays = (time() - $installdate) / 86400;
	if ($installdays < 1) $postperday = $stats['postcount'];
	else $postperday = $stats['postcount'] / $installdays; 
	$postperday = number_format($postperday, 2, $lang->get("LANG_GLOBAL_DEC_POINT"), $lang->get("LANG_GLOBAL_THOUSANDS_SEP"));
	if($stats['usercount']>=1000) $stats['usercount']=number_format($stats['usercount'], 0, "", $lang->get("LANG_GLOBAL_THOUSANDS_SEP"));
	if($stats['threadcount']>=1000) $stats['threadcount']=number_format($stats['threadcount'], 0, "", $lang->get("LANG_GLOBAL_THOUSANDS_SEP"));
	if($stats['postcount']>=1000) $stats['postcount']=number_format($stats['postcount'], 0, "", $lang->get("LANG_GLOBAL_THOUSANDS_SEP"));
}
else
{
	$toffset=(($wbbuserdata['timezoneoffset']>=0) ? ("+") : ("")).$wbbuserdata['timezoneoffset']; 
	eval ("\$lang->items['LANG_START_TIMEZONE'] = \"".$lang->get4eval("LANG_START_TIMEZONE")."\";");
	list($newthreads) = $db->query_first("SELECT COUNT(*) FROM bb".$n."_threads WHERE starttime > '$wbbuserdata[lastvisit]'");
	list($newposts) = $db->query_first("SELECT COUNT(*) FROM bb".$n."_posts WHERE posttime > '$wbbuserdata[lastvisit]'");
	$stats=$db->query_first("SELECT s.*, u.username FROM bb".$n."_stats s LEFT JOIN bb".$n."_users u ON(u.userid=s.lastuserid)");
 	$stats['username']=htmlconverter($stats['username']);
	$installdays = (time() - $installdate) / 86400;
	if ($installdays < 1) $postperday = $stats['postcount'];
	else $postperday = $stats['postcount'] / $installdays; 
	$postperday = number_format($postperday, 2, $lang->get("LANG_GLOBAL_DEC_POINT"), $lang->get("LANG_GLOBAL_THOUSANDS_SEP"));
	if($stats['usercount']>=1000) $stats['usercount']=number_format($stats['usercount'], 0, "", $lang->get("LANG_GLOBAL_THOUSANDS_SEP"));
	if($stats['threadcount']>=1000) $stats['threadcount']=number_format($stats['threadcount'], 0, "", $lang->get("LANG_GLOBAL_THOUSANDS_SEP"));
	if($stats['postcount']>=1000) $stats['postcount']=number_format($stats['postcount'], 0, "", $lang->get("LANG_GLOBAL_THOUSANDS_SEP"));
}	
	if($showpmonindex==1 && $wbbuserdata['userid']!=0 && $wbbuserdata['can_use_pms']==1 && $wbbuserdata['receivepm']==1)
	$counttotal=0; $countunread=0; $countnew=0;
	$result = $db->unbuffered_query("SELECT view FROM bb".$n."_privatemessagereceipts WHERE recipientid = '$wbbuserdata[userid]' AND deletepm <> 1");
	  while($row=$db->fetch_array($result)) {
	$counttotal++;
   if($row['view']==0) {
    $countunread++;
    if($row['sendtime']>$wbbuserdata['lastvisit']) $countnew++;
   }
  }
  if($countnew==1) $pms_NEWMESSAGE = $lang->items['LANG_START_PMS_MESSAGE'];
  else $pms_NEWMESSAGE = $lang->items['LANG_START_PMS_MESSAGES'];
  if($counttotal==1) $pms_TOTALMESSAGE = $lang->items['LANG_START_PMS_MESSAGE'];
  else $pms_TOTALMESSAGE = $lang->items['LANG_START_PMS_MESSAGES'];
  eval ("\$lang->items['LANG_START_HEAD_PMS2'] = \"".$lang->get("LANG_START_HEAD_PMS2")."\";");
  eval ("\$lang->items['LANG_START_HEAD_PMS'] = \"".$lang->get("LANG_START_HEAD_PMS")."\";");    
  eval ("\$lang->items['LANG_START_PMS'] = \"".$lang->get("LANG_START_PMS")."\";");
  list($bs_waiting) = $db->query_first("SELECT COUNT(*) FROM bb".$n."_users WHERE activation <> 1");
	$bs_inaktiv = $bs_waiting;
// Ende AWH by Yyoshii http://www.fdlboard.da.ru
if ($showuseronlineinboard == 2) {
	$userinboard = array();
	$online = &new useronline($wbbuserdata['a_can_view_ghosts'], $wbbuserdata['buddylist']);
	$result = $db->unbuffered_query("SELECT s.userid, s.boardid, u.username, u.useronlinegroupid,g.useronlinemarking, u.invisible FROM bb".$n."_sessions s LEFT JOIN bb".$n."_users u USING (userid) LEFT JOIN bb".$n."_groups g ON g.groupid=u.useronlinegroupid WHERE s.lastactivity>='$activtime'".(($wbbuserdata['ignorelist']) ? (" AND s.userid NOT IN (".str_replace(" ", ",", $wbbuserdata['ignorelist']).")") : (""))." ORDER BY u.username ASC");	
	while ($row = $db->fetch_array($result)) $userinboard[$row['boardid']][] = $row;	
}

$result = $db->unbuffered_query("SELECT t.boardid, t.threadid, t.lastposttime".(($wbbuserdata['userid']) ? (", tv.lastvisit") : (""))." FROM bb".$n."_threads t".(($wbbuserdata['userid']) ? (" LEFT JOIN bb".$n."_threadvisit tv ON (tv.threadid=t.threadid AND tv.userid='".$wbbuserdata['userid']."')") : (""))." WHERE t.visible = 1 AND t.lastposttime > '$wbbuserdata[lastvisit]' AND t.closed <> 3");
while ($row = $db->fetch_array($result)) {
	if ($row['lastposttime'] > $row['lastvisit']) $visitcache[$row['boardid']][$row['threadid']] = $row['lastposttime'];
}

// read permissions
$permissioncache = getPermissions();

if ($hide_modcell == 0) {
	$result = $db->unbuffered_query("SELECT bb".$n."_moderators.*, username FROM bb".$n."_moderators LEFT JOIN bb".$n."_users USING (userid) ORDER BY username ASC");
	while ($row = $db->fetch_array($result)) $modcache[$row['boardid']][] = $row;
}

$boardbit = makeboardbit(0);

$index_pms = '';
$quicklogin = '';
$index_showevents = '';
$index_useronline = '';
$index_stats = '';

/* ############## TOP 5 oder 10 Hack © by stiefel############## */
list($showtoplist) = $db->query_first("SELECT value FROM bb".$n."_options WHERE varname='showtoplist' LIMIT 1");
if($showtoplist!=0)
{
	$toplistcount=$showtoplist*5;
	function getSearchableBoards()
	{
		global $db,$n,$wbbuserdata,$boardcache;
		list($excludedboards) = $db->query_first("SELECT value FROM bb".$n."_options WHERE varname='excludedtoplist' LIMIT 1");
		$excludedboards=str_replace("\n",",",trim($excludedboards));
		if(!isset($boardcache) || !is_array($boardcache)) $boardcache=array();
		$result=$db->query("SELECT boardid,boardorder,parentid,parentlist FROM bb".$n."_boards WHERE password='' AND invisible!='2'".((!empty($excludedboards)) ? (" AND boardid NOT IN(".$excludedboards.")") : (""))." ORDER BY parentid ASC, boardorder ASC");
		while($row=$db->fetch_array($result)) {
			$boardcache[$row['parentid']][$row['boardorder']][$row['boardid']] = $row;
		}
	
		$boardpermissions=getPermissions();
		$boardids="";
		foreach($boardcache as $key=>$val)
		{
			foreach($val as $key2=>$val2)
			{
				foreach($val2 as $row) if(!isset($boardpermissions[$row['boardid']]['can_use_search']) || $boardpermissions[$row['boardid']]['can_use_search']!=0) $boardids.=",".$row['boardid'];
			}
		}
		return $boardids;
	}
	
	//Top List Posts
	unset($toplistposters);
	$toplistposters = $db->query("SELECT DISTINCT userid,username,userposts FROM bb".$n."_users ORDER BY userposts DESC LIMIT $toplistcount");
	while($toplistposter = $db->fetch_array($toplistposters))
	{
		$toplistposterid = $toplistposter['userid'];
		$toplistpostername = htmlconverter(textwrap($toplistposter['username'],25));
		$toplist_counts = $toplistposter['userposts'];
		eval ("\$toplistposterbit .= \"".$tpl->get("index_toplist_posterbit")."\";");
	}
	
	//Top List New Member
	unset($toplistnewmembers);
	$toplistnewmembers = $db->query("SELECT DISTINCT username,userid,userposts FROM bb".$n."_users ORDER BY regdate DESC LIMIT $toplistcount");
	while($toplistnewmember = $db->fetch_array($toplistnewmembers))
	{
		$toplistposterid = $toplistnewmember['userid'];
		$toplistpostername = htmlconverter(textwrap($toplistnewmember['username'],25));
		$toplist_counts = $toplistnewmember['userposts'];
		eval ("\$toplistmembersbit .= \"".$tpl->get("index_toplist_posterbit")."\";");
	}
	
	
	
	
	//New Posts		
  	$toplistthreads = $db->query ("SELECT DISTINCT bb".$n."_threads.*, bb".$n."_users.username as lastposter FROM bb".$n."_threads LEFT JOIN bb".$n."_users ON (bb".$n."_threads.lastposterid=bb".$n."_users.userid) WHERE  bb".$n."_threads.boardid IN (0".getSearchableBoards().") AND bb".$n."_threads.closed!=3 ORDER BY bb".$n."_threads.lastposttime DESC LIMIT $toplistcount");
	while($toplistthread = $db->fetch_array($toplistthreads))
	{
		$toplistthreadid = $toplistthread['threadid'];
 		if(strlen($toplistthread['topic']) > "30"){ $toplistthread['topic'] = "".substr($toplistthread['topic'], 0, 30);$toplistthread['topic'].=" ...";};
		$toplistthreadname = htmlconverter(textwrap($toplistthread['topic']));
		$toplistposterid = $toplistthread['lastposterid'];
		$toplist_counts = $toplistthread['views'];
		$toplistpostername = htmlconverter(textwrap($toplistthread['lastposter'],25));
		eval ("\$toplistthreadbit .= \"".$tpl->get("index_toplist_threadbit")."\";");
	}
	
	//Top Clicks
	$topclicks=$db->query_first("SELECT DISTINCT topic,views,threadid FROM bb".$n."_threads WHERE bb".$n."_threads.boardid IN (0".getSearchableBoards().") AND bb".$n."_threads.closed!=3 ORDER BY views DESC LIMIT 1");
	$topthreadid=$topclicks['threadid'];
	$topthreadname=htmlconverter(textwrap($topclicks['topic']));
	$topclicksviews = $topclicks['views'];
	eval ("\$topclickstitle .= \"".$tpl->get("index_toplist_topthreadbit")."\";");
	
	
	//Top Vote
	$topvote=$db->query_first("SELECT DISTINCT topic,voted,votepoints,threadid  FROM bb".$n."_threads WHERE bb".$n."_threads.boardid IN (0".getSearchableBoards().") AND bb".$n."_threads.closed!=3  ORDER BY voted DESC LIMIT 1");
	$topthreadid=$topvote['threadid'];
	$topthreadname=htmlconverter(textwrap($topvote['topic']));
	$votedrating = $topvote['votepoints'];
	eval ("\$votedthread .= \"".$tpl->get("index_toplist_topthreadbit")."\";");
	
	
	//Sprachvariablen einlesen
	eval ("\$toplisttoplist .= \"".$lang->get("LANG_START_TOPLIST_TOPLIST")."\";");
	eval ("\$toplistposter .= \"".$lang->get("LANG_START_TOPLIST_TOPPOSTER")."\";");
	eval ("\$toplistnew_members .= \"".$lang->get("LANG_START_TOPLIST_NEWMEMBERS")."\";");
	eval ("\$toplistlastpost .= \"".$lang->get("LANG_START_TOPLIST_LASTPOST")."\";");
	eval ("\$toplistusername .= \"".$lang->get("LANG_START_TOPLIST_USERNAME")."\";");
	eval ("\$toplistposts .= \"".$lang->get("LANG_START_TOPLIST_POSTS")."\";");
	eval ("\$toplisttitle .= \"".$lang->get("LANG_START_TOPLIST_TITLE")."\";");
	eval ("\$toplistclicks .= \"".$lang->get("LANG_START_TOPLIST_CLICKS")."\";");
	eval ("\$toplistvotes .= \"".$lang->get("LANG_START_TOPLIST_VOTES")."\";");
	eval ("\$toplistratings .= \"".$lang->get("LANG_START_TOPLIST_RATINGS")."\";");
	eval ("\$toplistthread .= \"".$lang->get("LANG_START_TOPLIST_THREAD")."\";");
	
	eval ("\$toplist = \"".$tpl->get("index_toplist")."\";");
}

/* ############## TOP 5 oder 10 Hack © by stiefel############## */

/* ############## STATS ############## */
if ($showstats == 1) {
	$stats = $db->query_first("SELECT s.*, u.username FROM bb".$n."_stats s LEFT JOIN bb".$n."_users u ON(u.userid=s.lastuserid)");
	$stats['username'] = htmlconverter($stats['username']);
	
	$installdays = (time() - $installdate) / 86400;
	if ($installdays < 1) $postperday = $stats['postcount'];
	else $postperday = $stats['postcount'] / $installdays; 
	
	$postperday = number_format($postperday, 2, $lang->get("LANG_GLOBAL_DEC_POINT"), $lang->get("LANG_GLOBAL_THOUSANDS_SEP"));
	
	if ($stats['usercount'] >= 1000) $stats['usercount'] = number_format($stats['usercount'], 0, "", $lang->get("LANG_GLOBAL_THOUSANDS_SEP"));
	if ($stats['threadcount'] >= 1000) $stats['threadcount'] = number_format($stats['threadcount'], 0, "", $lang->get("LANG_GLOBAL_THOUSANDS_SEP"));
	if ($stats['postcount'] >= 1000) $stats['postcount'] = number_format($stats['postcount'], 0, "", $lang->get("LANG_GLOBAL_THOUSANDS_SEP"));
}
//####################################### i4e_bc_ useronlineanzeige################################
$bc_config=$db->query_first("SELECT * FROM bb".$n."_bc_config WHERE id='1'");
$user_reset=$bc_config[user_reset];
$killzeit=time()-(60*$user_reset);
if($showuseronline==1) {
	$membercount_chat=0;
	$invisiblecount_chat=0;
	$online = new useronline($wbbuserdata['a_can_view_ghosts'],$wbbuserdata['buddylist']);
	$result = $db->unbuffered_query("SELECT s.userid,s.aktuel_zeit,s.raum, u.username, useronlinegroupid, useronlinemarking, invisible FROM bb".$n."_bc_useronline s LEFT JOIN bb".$n."_users u USING (userid) LEFT JOIN bb".$n."_groups g ON g.groupid=u.useronlinegroupid ORDER BY u.username ASC");
	while ($row = $db->fetch_array ($result)) {
		// info beim verlassen
		if($row[aktuel_zeit]<$killzeit){
			$db->query("DELETE FROM bb".$n."_bc_useronline WHERE userid = '$row[userid]'");
			$db->query("INSERT INTO bb".$n."_bc_text (userid, username, msg, zeit, an_user, raum) VALUES ('0','$row[username]','$row[username] hat den Chat verlassen','".time()."','0','$row[raum]')");
                }
		$membercount_chat++;
		if($row['invisible']==1) $invisiblecount_chat++;
		$online->user($row['userid'],htmlconverter($row['username']),$row['useronlinemarking'],$row['invisible']);
	}
	if($membercount_chat==1){$erW="{$lang->items['LANG_START_USERONLINE_MEMBERS_ONE']}";$ist_sind="{$lang->items['LANG_START_USERONLINE_BE_ONE']}";}else{$erW="{$lang->items['LANG_START_USERONLINE_MEMBERS']}";$ist_sind="{$lang->items['LANG_START_USERONLINE_BE']}";}
	$online_chat=$online->useronlinebit;
	$gesamt_online_chat=$membercount_chat;
}
//####################################### i4e_bc_ useronlineanzeigeende############################
/* ############## USERONLINE ############## */
if ($showuseronline == 1 || $showuseronline == 0) {
	$guestcount = 0;
	$membercount = 0;
	$invisiblecount = 0;
	$online = &new useronline($wbbuserdata['a_can_view_ghosts'], $wbbuserdata['buddylist']);
	$result = $db->unbuffered_query("SELECT s.userid, username, useronlinegroupid, useronlinemarking, invisible FROM bb".$n."_sessions s LEFT JOIN bb".$n."_users u USING (userid) LEFT JOIN bb".$n."_groups g ON g.groupid=u.useronlinegroupid WHERE s.lastactivity >= '".(time() - 60 * $useronlinetimeout)."'".(($wbbuserdata['ignorelist']) ? (" AND s.userid NOT IN (".str_replace(" ", ",", $wbbuserdata['ignorelist']).")") : (""))." ORDER BY u.username ASC"); 
	while ($row = $db->fetch_array($result)) {
		if ($row['userid'] == 0) {
			$guestcount++;
			continue;	
		}
		$membercount++;
		if ($row['invisible'] == 1) $invisiblecount++;
		$online->user($row['userid'], htmlconverter($row['username']), $row['useronlinemarking'], $row['invisible']);
	}
	$useronline = $online->useronlinebit;
	$totaluseronline = $membercount + $guestcount;
	if ($totaluseronline > $rekord) {
		$rekord = $totaluseronline;
		$rekordtime = time();
		$db->unbuffered_query("UPDATE bb".$n."_options SET value='$rekord' WHERE varname='rekord'", 1);
		$db->unbuffered_query("UPDATE bb".$n."_options SET value='$rekordtime' WHERE varname='rekordtime'", 1);
		require("./acp/lib/class_options.php");
		$option = &new options("acp/lib");
		$option->write();
	}
	$rekorddate = formatdate($wbbuserdata['dateformat'], $rekordtime);
	$rekordtime = formatdate($wbbuserdata['timeformat'], $rekordtime);
	
	// format figures
	if ($guestcount >= 1000) $guestcount = number_format($guestcount, 0, "", $lang->get("LANG_GLOBAL_THOUSANDS_SEP"));
	if ($membercount >= 1000) $membercount = number_format($membercount, 0, "", $lang->get("LANG_GLOBAL_THOUSANDS_SEP"));
	if ($invisiblecount >= 1000) $invisiblecount = number_format($invisiblecount, 0, "", $lang->get("LANG_GLOBAL_THOUSANDS_SEP"));
	if ($totaluseronline >= 1000) $totaluseronline = number_format($totaluseronline, 0, "", $lang->get("LANG_GLOBAL_THOUSANDS_SEP"));
	if ($rekord >= 1000) $rekord = number_format($rekord, 0, "", $lang->get("LANG_GLOBAL_THOUSANDS_SEP"));
	
	if ($totaluseronline == 1) {
		$useronline_BE = $lang->items['LANG_START_USERONLINE_BE_ONE'];
		$useronline_USER = $lang->items['LANG_START_USERONLINE_USER_ONE'];
	}
	else {
		$useronline_BE = $lang->items['LANG_START_USERONLINE_BE'];
		$useronline_USER = $lang->items['LANG_START_USERONLINE_USER'];
	}
	
	if ($guestcount == 1) $useronline_GUEST = $lang->items['LANG_START_USERONLINE_GUEST_ONE'];
	elseif ($guestcount > 1) $useronline_GUEST = $lang->items['LANG_START_USERONLINE_GUEST'];
	else {
		$useronline_GUEST = '';
		$guestcount = '';
	}
	
	if ($membercount == 1) $useronline_MEMBERS = $lang->items['LANG_START_USERONLINE_MEMBERS_ONE'];
	elseif ($membercount > 1) $useronline_MEMBERS = $lang->items['LANG_START_USERONLINE_MEMBERS'];
	else {
		$useronline_MEMBERS = '';
		$membercount = '';
	}
	
	if ($invisiblecount == 1) $useronline_GHOSTS = $lang->items['LANG_START_USERONLINE_GHOSTS_ONE'];
	elseif ($invisiblecount > 1) $useronline_GHOSTS = $lang->get("LANG_START_USERONLINE_GHOSTS", array('$invisiblecount' => $invisiblecount));
	else $useronline_GHOSTS = '';
	
	if ($guestcount > 0 && $membercount > 0) $useronline_AND = $lang->items['LANG_START_USERONLINE_AND'];
	else $useronline_AND = '';
	
	$lang->items['LANG_START_USERONLINE'] = $lang->get("LANG_START_USERONLINE", array('$useronline_BE' => $useronline_BE, '$membercount' => $membercount, '$useronline_MEMBERS' => $useronline_MEMBERS, '$useronline_GHOSTS' => $useronline_GHOSTS, '$useronline_AND' => $useronline_AND, '$guestcount' => $guestcount, '$useronline_GUEST' => $useronline_GUEST, '$rekord' => $rekord, '$useronline_USER' => $useronline_USER, '$rekorddate' => $rekorddate, '$rekordtime' => $rekordtime));
	$lang->items['LANG_START_HEAD_USERONLINE'] = $lang->get("LANG_START_HEAD_USERONLINE", array('$useronline_BE' => $useronline_BE, '$membercount' => $membercount, '$useronline_MEMBERS' => $useronline_MEMBERS, '$useronline_GHOSTS' => $useronline_GHOSTS, '$useronline_AND' => $useronline_AND, '$guestcount' => $guestcount, '$useronline_GUEST' => $useronline_GUEST, '$rekord' => $rekord, '$useronline_USER' => $useronline_USER, '$rekorddate' => $rekorddate, '$rekordtime' => $rekordtime));
	$lang->items['LANG_START_SHOWUSERONLINE'] = $lang->get("LANG_START_SHOWUSERONLINE", array('$useronline_BE' => $useronline_BE, '$totaluseronline' => $totaluseronline, '$useronline_USER' => $useronline_USER));
}
/* ############## BIRTHDAYS ############## */
unset($birthdaybit);
if ($showbirthdays == 1  && $wbbuserdata['can_view_calendar'] != 0) {
	$currentdate = formatdate("m-d", time());
	$currentyear = intval(formatdate("Y", time()));
	$result = $db->unbuffered_query("SELECT userid, username, birthday FROM bb".$n."_users WHERE birthday LIKE '%-$currentdate' ORDER BY username ASC");
	while ($row = $db->fetch_array($result)) {
		$row['username'] = htmlconverter($row['username']);
		$birthyear = intval(wbb_substr($row['birthday'], 0, 4));
		$age = $currentyear - $birthyear;
		if ($age < 1 || $age > 200) $age = '';
		else $age = "&nbsp;($age)";
		if (isset($birthdaybit)) eval("\$birthdaybit .= \"".$tpl->get("index_birthdaybit")."\";");
		else eval("\$birthdaybit = \"".$tpl->get("index_birthdaybit")."\";");
	}
}

/* ############## EVENTS ############## */
unset($eventbit);
if ($showevents == 1 && $wbbuserdata['can_view_calendar'] != 0) {
	$currentdate = date("Y-m-d"); 
	$result = $db->unbuffered_query("SELECT eventid, subject, public FROM bb".$n."_events WHERE eventdate = '$currentdate' AND (public=2 OR (public=0 AND userid = '$wbbuserdata[userid]')) ORDER BY public ASC, subject ASC");
	while ($row = $db->fetch_array($result)) {
		$row['subject'] = htmlconverter($row['subject']);
		if (isset($eventbit)) eval("\$eventbit .= \"".$tpl->get("index_eventbit")."\";");
		else eval("\$eventbit = \"".$tpl->get("index_eventbit")."\";");
	}
}

if (!$wbbuserdata['userid']) {
	$lang->items['LANG_START_WELCOME_TITLE'] = $lang->get("LANG_START_WELCOME_TITLE", array('$master_board_name' => $master_board_name));
	$lang->items['LANG_START_WELCOME'] = $lang->get("LANG_START_WELCOME", array('$SID_ARG_2ND' => $SID_ARG_2ND, '$SID_ARG_1ST' => $SID_ARG_1ST));
}
else {
	$currenttime = formatdate($wbbuserdata['timeformat'], time());
	$toffset = (($wbbuserdata['timezoneoffset'] >= 0) ? ("+") : ("")).$wbbuserdata['timezoneoffset'];
	$lang->items['LANG_START_TIMEZONE'] = $lang->get("LANG_START_TIMEZONE", array('$toffset' => $toffset));
	$lastvisitdate = formatdate($wbbuserdata['dateformat'], $wbbuserdata['lastvisit'], 1);
	$lastvisittime = formatdate($wbbuserdata['timeformat'], $wbbuserdata['lastvisit']);
	if ($showpmonindex == 1 && $wbbuserdata['can_use_pms'] == 1 && $wbbuserdata['receivepm'] == 1) {
		$counttotal = $wbbuserdata['pminboxcount'];
		$countunread = $wbbuserdata['pmunreadcount'];
		$countnew = $wbbuserdata['pmnewcount'];
		if ($countnew == 1) $pms_NEWMESSAGE = $lang->items['LANG_START_PMS_MESSAGE'];
		else $pms_NEWMESSAGE = $lang->items['LANG_START_PMS_MESSAGES'];
		
		if ($counttotal == 1) $pms_TOTALMESSAGE = $lang->items['LANG_START_PMS_MESSAGE'];
		else $pms_TOTALMESSAGE = $lang->items['LANG_START_PMS_MESSAGES'];
		
		$lang->items['LANG_START_PMS'] = $lang->get("LANG_START_PMS", array('$countnew' => $countnew, '$pms_NEWMESSAGE' => $pms_NEWMESSAGE, '$countunread' => $countunread, '$counttotal' => $counttotal, '$pms_TOTALMESSAGE' => $pms_TOTALMESSAGE));
	}
}
eval("\$tpl->output(\"".$tpl->get("index")."\");"); 
?>