vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 3.0 Beta Releases (https://vborg.vbsupport.ru/forumdisplay.php?f=34)
-   -   Flashchat - who is online with showing the chatters avatars (https://vborg.vbsupport.ru/showthread.php?t=71288)

quasan 11-01-2004 10:00 PM

Flashchat - who is online with showing the chatters avatars
 
this is a beta release of a "who is online" mod for Flashchat

Version 0.2

What's new:
  • now working with prefixes for the database tables
  • now working with gif-avatars too
  • resize option (yes / no)
  • better image quality because of gdlib2

Features:
  • generate dynamically resized avatar-pics for the chatting users
    and displays them on the forumhome with the username and a link to their profile

issues/bugs/ todo:
  • if too many users are chatting, the tablerow grows and grows instead of breaking into a new tablerow (fixing it later)
  • doesn't show avatars when they aren't stored in the db(thekeeper)

note: you need the gdlib2

installation and upgrade information inside the .zip

Polo 11-02-2004 09:03 PM

looks good, will try it out ;)

Giveit2u43 11-03-2004 04:12 PM

Excellent FlashChat mod.. much better than including the info file using phpinclude (I often had probs with that if 3 or more people were in the room) but this hack 7 people in the room and just one extra query on the forumhome, superb stuff.. thanks :)

FilmoreSlim 11-03-2004 09:54 PM

Hey just installed FlashChat and was looking for something like this! Great job!!

*clicks install

theArchitect 11-04-2004 12:39 AM

*theArchitect clicks install*.

Great work. I was going to developing something similar, this has saved me having to do it.

karlogaga 11-04-2004 09:31 AM

Hi Quasan,

this must be an amazing hack if it works! I wonder if you could explain how to do these things a little bit more precisely, as if you were writing for someone who is handicapped in his coding abilitys, cause i really am! (and i still want to implement this very much)

The first thing i dont understand is where you write:

Quote:

(p.e: http://forum.test.tld)
, i wonder how to write that URL if the forum is in a subfolder, like http://www.test.com/forum , do i have to write it like that or does it need a "/" at the end?

Next thing is:

Quote:

insert $chatter[usernames]
, ok, just like this:

<td>$chatter[usernames]</td> ? I wonder...



And also for this part:

Quote:

write conditions like <if condition="$chatter['count'] >0">
..it would be very, very helpful for someone like me who is still learning to have a little but complete example, to see how the syntax of this works.

I hope i didnt work on your nerves too much, i guess for you it is hard to imagine how someone could not know these things i'm asking for...

I would appreciate it very much if you could help me out with this, and anyway thanks for sharing your work!

Karlo

The Keeper 11-04-2004 03:55 PM

Might be a stupid question, but how do I get into chat? I've installed it, and when I go to the /chat directory it asks for a user and pass. The only one which works is my admin pass, but I didn't buy this to sit in the chatroom myself.

FilmoreSlim 11-04-2004 05:33 PM

Hey keeper did you follow the vB integration instructions that came with FlashChat?

FilmoreSlim 11-04-2004 08:16 PM

quasan, this is pretty nice! I was wondering if there was a way to have the same hack without all the re-size options? The avatars on my forum are already small enough and don't need to be resized.

The Keeper 11-05-2004 12:20 PM

Quote:

Originally Posted by FilmoreSlim
Hey keeper did you follow the vB integration instructions that came with FlashChat?

I installed the wrong FlashChat, that guy has two out.

The Keeper 11-05-2004 12:56 PM

Hmm, not working for me, gives parse errors. For what I can see there are three of these { and only two of these }

The Keeper 11-05-2004 12:58 PM

Yup, just fixed it, you're missing a closing brace.

quasan 11-05-2004 01:13 PM

oh hi! i am really amazed that someone uses this :) it's my first "mod"


so let's start over:

@ karlogaga: I will rewrite the instructions in the next release. sorry for that.
with forum.test.tld i ment that you just have to insert there the url of your forum. tld = topleveldomain... so if your forum is http://forum.test.com... insert the url in the script :)

if your location is at : http://www.test.com/forum, please do not use a trailing slash, so http://www.test.com/forum would be right and
http://www.test.com/forum/ would be wrong

<if condition="$chatter['count'] >0"> is a template condition for vbulletin..
for example you could write something like this:

Quote:

<if condition="$chatter['count'] >0">
in chat are: $chatter[usernames]
<else />
nobody is chatting right now :(
</if>
so when someone is in the chat you'll get the "in chat are + picture" and if no one is chatting there will be the output "nobody is chatting right now:("



@FilmoreSlim yep, that will come next.

@thekeeper: where ? would be cool if you could tell me, so that I can update the file.

thx for your replies:)

The Keeper 11-05-2004 01:26 PM

Ok, fixed that and now nobody shows up in the box when I have them logged into chat.

The Keeper 11-05-2004 01:28 PM

Quote:

Originally Posted by quasan
@thekeeper: where ? would be cool if you could tell me, so that I can update the file.

thx for your replies:)

Just replace

Code:

// concatenate the temp stuff to > $chatusers
        $chatusers = $chatusers.$temp;

}; // End foreach

with

Code:

// concatenate the temp stuff to > $chatusers
        $chatusers = $chatusers.$temp;
}       
}; // End foreach


karlogaga 11-05-2004 01:37 PM

@Quasan: Hi, thanks for your answer! I'll try to install it, was working almost all day on the integration of the new version of flaschat in vb3, now it doesnt autologin anymore, what a bummer..

@Keeper: does it work now with your fixes?

The Keeper 11-05-2004 01:39 PM

It doesn't give a parse error anymore, but the variable $chatter[usernames] is always blank.

quasan 11-05-2004 01:53 PM

thekeeper: sorry i tripple and quad checked the amount of { and }

there are exactly 3 opening tags and 3 closing brackets.

the first closing } is after the do while loop

the second is

}; // End foreach

and the third: }; // End $count_chatter >0

please recheck this, because the amount of {} is right. I cannot explain where your parse error came from. what message came with the php debugger?

if you are not sure where the error is, please test the following.

open the http://forum.test.com/avatar_resize.php?u=USERID

with a user Userid where the user has a avatar.
for example:

http://forum.test.com/avatar_resize.php?u=1

it should show the resized avatar of the user

The Keeper 11-05-2004 02:00 PM

Sorry, ignore me, I copied the code wrong, which is why it isn't working for me.

karlogaga 11-05-2004 02:07 PM

@qasan

ich habs installiert und bekomme das:

mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ...../forum/index.php on line 514

$count = mysql_fetch_array(mysql_query($query_chatonline));

The Keeper 11-05-2004 02:07 PM

Works now, but the avatar function isn't quite right. People with avatars are showing up as the noavatar thing

karlogaga 11-05-2004 02:09 PM

mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ...../forum/index.php on line 514

(das ist die line 514 in meinem index.php)

$count = mysql_fetch_array(mysql_query($query_chatonline));

The Keeper 11-05-2004 02:11 PM

Just realised it only works if the avatars are in teh database, whereas I use a file based system. Hang on and I'll think of a way round that.

karlogaga 11-05-2004 02:12 PM

Oh, sorry for talking german!

I installed it and get the following error message:

mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ...../forum/index.php on line 514

where line 514 is this one:

$count = mysql_fetch_array(mysql_query($query_chatonline));

quasan 11-05-2004 02:18 PM

@karlogaga: is the flashchat dbtable in the same database as the forum? your error sounds to me, that the query cannot find the "connections" table of your flashchat table. or do you use a prefix on the flashchat table?

I forgot to implement this in the php because i do not use a prefix.

If you use one. please change the
Quote:

$query_chatonline ="SELECT COUNT(*) FROM connections WHERE userid IS NOT NULL";
to
Quote:

$query_chatonline ="SELECT COUNT(*) FROM PREFIX_connections WHERE userid IS NOT NULL";
and insert the prefix of your flashchat db table in there...

I will put it in the next version

karlogaga 11-05-2004 02:25 PM

thanks, i just found it myself, and i put the prefix before "connections".

I also did it for "users", is that correct?



Quote:

Originally Posted by quasan
@karlogaga: is the flashchat dbtable in the same database as the forum? your error sounds to me, that the query cannot find the "connections" table of your flashchat table. or do you use a prefix on the flashchat table?

I forgot to implement this in the php because i do not use a prefix.

If you use one. please change the


to


and insert the prefix of your flashchat db table in there...

I will put it in the next version


karlogaga 11-05-2004 02:29 PM

..like this:

//Get the username for each chatter
$show_username= $DB_site->query("select username from vb3_user where userid=".intval($val));

where vb3_ is the prefix...

quasan 11-05-2004 02:30 PM

Quote:

"SELECT COUNT(*) FROM flashchatprefix_connections WHERE userid IS NOT NULL";
prefix_connections of your flashchat dbprefix

here again:
Quote:

"SELECT userid FROM flashchatprefix_connections WHERE userid IS NOT NULL";

if you have also a prefix for your vbulletin board:

Quote:

$DB_site->query("select username from user where userid=".intval($val));
from VBPREFIX_user ...

quasan 11-05-2004 02:31 PM

Quote:

..like this:

//Get the username for each chatter
$show_username= $DB_site->query("select username from vb3_user where userid=".intval($val));


where vb3_ is the prefix...
yep exactly :)

@keeper: thx I will have a look at it later. now i have to go shopping:/

The Keeper 11-05-2004 03:06 PM

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&amp;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;


karlogaga 11-05-2004 04:01 PM

@quasan, thank you very much for your support, it works now! Even though it only works with .jpg - all the .gif show the noavatar.gif.

Is that supposed to be like that or have i got something wrong? :rolleyes:

FilmoreSlim 11-05-2004 04:48 PM

the new version of GD doesn't support the "gif" (the format is licensed or something) format. GD doesn't recognize .gif, unless you are running an older version of GD :\

quasan 11-05-2004 05:17 PM

FilmoreSlim that may be right but even in gdlib2 there are functions to transform gif, etc..
I will add this function to my to do list and have closer look on it

FilmoreSlim 11-05-2004 08:23 PM

Oh really? Hmm, I need to check that out then! Oh and thanks for supporting this hack quasan :)

quasan 11-05-2004 09:40 PM

ok using gif pics works now, i hope I get a new version online asap

@FilmoreSlim just use the imagecreatefromgif function for working with gifs

karlogaga 11-06-2004 03:03 PM

@quasan: did you exchange the .zip already with a version that works with .gif? (dont mean to push you, just wasnt sure what you meant)

@The Keeper: when i use the code you provided in your hack i get the following error:

Fatal error: Cannot redeclare fetch_avatar_url() in ......................./forum/includes/functions_user.php on line 116

Do you know how to fix that?

quasan 11-06-2004 03:28 PM

@karlogaga

sorry not yet. but I will update the mod this evening and post what's new etc :)

quasan 11-06-2004 04:56 PM

there it is :) hope that there are no new bugs in it :nervous:

The Keeper 11-06-2004 05:08 PM

Quote:

Originally Posted by karlogaga
@quasan: did you exchange the .zip already with a version that works with .gif? (dont mean to push you, just wasnt sure what you meant)



@The Keeper: when i use the code you provided in your hack i get the following error:

Fatal error: Cannot redeclare fetch_avatar_url() in ......................./forum/includes/functions_user.php on line 116

Do you know how to fix that?

Yeah sorry I put the function in teh wrong place (inside a loop, what an idiot :rolleyes: ) Hang on a sec...

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&amp;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>";
        $temp.= "<br />";
       

        // 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;

will work. :)

quasan 11-06-2004 05:14 PM

thanks for helping! I never used the storing of the avatars in the filesystem, so I didn't know what to do.
I will analyse your script and try to implement it into mine in version 0.3 :)


All times are GMT. The time now is 04:50 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01742 seconds
  • Memory Usage 1,862KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (4)bbcode_code_printable
  • (14)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (1)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (40)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete