Ok I looked at my code, and this appears to work fine now for both flat files and database:
Code:
// ### HACK FOR WHO'S CHATTING
$query_chatonline ="SELECT COUNT(*) FROM connections WHERE userid IS NOT NULL";
$count = mysql_fetch_array(mysql_query($query_chatonline));
$count_chatter = $count[0];
// ###################### Start getavatarurl #######################
function fetch_avatar_url($userid)
{
global $DB_site, $session, $vboptions;
if ($avatarinfo = $DB_site->query_first("
SELECT user.avatarid, user.avatarrevision, avatarpath, NOT ISNULL(avatardata) AS hascustom, customavatar.dateline
FROM " . TABLE_PREFIX . "user AS user
LEFT JOIN " . TABLE_PREFIX . "avatar AS avatar ON avatar.avatarid = user.avatarid
LEFT JOIN " . TABLE_PREFIX . "customavatar AS customavatar ON customavatar.userid = user.userid
WHERE user.userid = $userid"))
{
if (!empty($avatarinfo['avatarpath']))
{
return $avatarinfo['avatarpath'];
}
else if ($avatarinfo['hascustom'])
{
if ($vboptions['usefileavatar'])
{
return "$vboptions[avatarurl]/avatar{$userid}_{$avatarinfo[avatarrevision]}.gif";
}
else
{
return "image.php?u=$userid&dateline=$avatarinfo[dateline]";
}
}
else
{
return '';
}
}
}
//if anyone is chatting.....
if($count_chatter >0)
{
//get the uids of the chatters
$query_userid = "SELECT userid FROM connections WHERE userid IS NOT NULL";
$show_userid = mysql_query($query_userid);
$row_show_userid = mysql_fetch_assoc($show_userid);
//build an array of the userids
do {
$userids[] = $row_show_userid['userid'];
} while ($row_show_userid = mysql_fetch_assoc($show_userid));
// Get the usernames and build the outputVar for the template
foreach($userids as $val)
{
//Get the username for each chatter
$show_username= $DB_site->query("select username from user where userid=".intval($val));
$row_show_username = mysql_fetch_assoc($show_username);
//pass the userid to the avatar_resize.php
$chatavatar = fetch_avatar_url($val);
// store the htmloutput for each user in $temp
$temp = "<td><tr>";
$temp.= "<img src=\"$chatavatar\">";
$temp.= "<div align=\"center\">";
$temp.= "<a href=\"member.php?u=".$val."\">".$row_show_username['username']."</a>";
$temp.= "</div>";
$temp.= "</tr><td>";
// concatenate the temp stuff to > $chatusers
$chatusers = $chatusers.$temp;
}; // End foreach
}; // End $count_chatter >0
// surround the $chatusers with some table tags and assign it to a template var
$chatter['usernames'] = "<table><tr>".$chatusers."</tr></table>";
// assign the number of people to a templatevar, so that we can have some conditions on the forumhome-template
$chatter['count'] = $count_chatter;