MyBB.de Forum

Normale Version: FlashChat, anzeige wer ist im Chat
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
So, hallo zusammen ach einer ganzen Weile Smile
Nach dem Upgrade auf die letzte Version vom MyBB ist nun auch wieder die Anzeige wer im chat ist verschwunden. Da ich eh nicht sooo zufrieden war könnte man das ja gleich richtig machen Smile

FlashChat ist in die Datenbank von MyBB integriert so das es (denke ich) nicht allzu schwierig sein dürfte?
Mir schwebt vor das auf der Index-Seite wie wir es auch schon mit "wer war in den letzten 24Std online" anzeigen lassen.
FlashChat sieht nur eine einfache lösung vor nämlich durch einen zusätzlichen link
wo sich dann ein extra fenster öffnet. Finde ich ein wenig blöd.

Hier mal die php datei wo man die info rausziehen könnte:

PHP-Code:
<?php



    header
("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

    
header("Last-Modified: " gmdate("D, d M Y H:i:s") . " GMT");

    
header("Cache-Control: no-store, no-cache, must-revalidate");

    
header("Cache-Control: post-check=0, pre-check=0"false);

    
header("Pragma: no-cache");





/**

If this file is not in the FlashChat root folder, then change this

path to the location of the inc/common.php file.

*/

require_once('inc/common.php');



ChatServer::purgeExpired();



/**

Retrieves the number of users who are chatting in any room.

Leave the $room parameter empty to return the number of users in all room.

*/

function numusers$room "" )

{

    if(
$room) {

        
$stmt = new Statement("SELECT COUNT(*) AS numb FROM {$GLOBALS['fc_config']['db']['pref']}connections WHERE userid IS NOT NULL AND userid <> ? AND roomid=?");

        
$rs $stmt->process(SPY_USERID$room);

    } else {

        
$stmt = new Statement("SELECT COUNT(*) AS numb FROM {$GLOBALS['fc_config']['db']['pref']}connections,{$GLOBALS['fc_config']['db']['pref']}rooms

                              WHERE userid IS NOT NULL AND userid <> ? AND ispublic IS NOT NULL

                              AND 
{$GLOBALS['fc_config']['db']['pref']}connections.roomid = {$GLOBALS['fc_config']['db']['pref']}rooms.id");

        
$rs $stmt->process(SPY_USERID);

    }



    
$rec $rs->next();



    return 
$rec?$rec['numb']:0;

}



/**

Retrieves a list of the users (by login ID) who are in $room.

Leave the $room parameter empty to return a list of all users in all rooms.

*/

function usersinroom$room "" )

{

    
$list = array();



    if(
$room) {

        
$stmt = new Statement("SELECT userid, state, color, lang, roomid FROM {$GLOBALS['fc_config']['db']['pref']}connections WHERE userid IS NOT NULL AND userid <> ? AND roomid=?");

        
$rs $stmt->process(SPY_USERID$room);

    } else {

        
$stmt = new Statement("SELECT userid, state, color, lang, roomid FROM {$GLOBALS['fc_config']['db']['pref']}connections WHERE userid IS NOT NULL AND userid <> ?");

        
$rs $stmt->process(SPY_USERID);

    }



    while(
$rec $rs->next())

    {

        
$usr ChatServer::getUser($rec['userid']);

        if(
$usr == null && $GLOBALS['fc_config']['enableBots']) $usr $GLOBALS['fc_config']['bot']->getUser($rec['userid']);

        
$list[] = array_merge($usr$rec);

    }



    return 
$list;

}



/**

Retrieves a list of all available rooms, as an array.

*/

function roomlist()

{

    
$list = array();



    
// populate $list with the names of all available rooms

    
$stmt = new Statement("SELECT * FROM {$GLOBALS['fc_config']['db']['pref']}rooms WHERE ispublic IS NOT NULL order by ispermanent");

    
$rs $stmt->process();



    while(
$rec $rs->next()) $list[] = $rec;



    
//result will be an array of arrays like ('id' => <room id>, 'updated' = <timestamp>, 'created' => <timestamp>, 'name' => <room name>, 'ispublic' => <public flag>, 'ispermanent' => <autoclose flag>)

    
return $list;

}





$rooms roomlist();

$roomnumb sizeof($rooms);

$usernumb numusers();

?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<meta http-equiv=Content-Type content="text/html;  charset=UTF-8">
</head>

    <body>

        <center>

        <p class=normal><strong>Derzeit sind <?php echo numusers()?> Mitglieder im Chat.</strong></p>

        <table width="367" border="1" cellpadding="1" bordercolor="#000000" bgcolor="#add8e6" class="normal">

                <tr>

                    <th width="38">ID</th>

                    <th width="210">Name</th>

                    <th width="38">Count</th>

                    <th width="90">Users</th>
                </tr>

                <?php foreach($rooms as $room) { ?>

                    <tr>

                        <td height="56"><?php echo $room['id']?></td>

                        <td><strong><?php echo strip_tags($room['name'])?></strong></td>

                        <td><strong><?php echo numusers($room['id'])?></strong></td>

                        <td><strong>
                        <?php



                        $users 
usersinroom($room['id']);



                        foreach( 
$users as $user 

                        {

                            echo 
strip_tags($user['login']) . "<br>";

                        }
                        
?>
                        </strong> </td>
                    </tr>

                <?php ?>
          </table>
        <p>&nbsp;</p>
        </center>
    </body>
</html> 

Ich hatte das mal als HTML eingefügt was aber nicht wirklich gut aussieht.

Danke mal im voraus für Eure Hilfe

Gruss
coma

Dave

Fuer die Anzahl aller User im Chat:
PHP-Code:
function numusers( )
{
        
$stmt $db->query("SELECT numb FROM PREFIX_conections WHERE userid IS NOT NULL AND ispublic IS NOT NULL");
        
$numb $db->num_rows($stmt);

    return 
$numb;


In diesem Fall musst du noch PREFIX entsprechend ersetzen und ich bin mir nicht sicher, ob die Spalte numb in der Tabelle PREFIX_connections existiert, auch das muss eventuell entsprechend abgeaendert werden. Ansonsten holt sich diese Funktion nur die Anzahl der Eintraege aus der Tabelle PREFIX_connections und zaehlt diese anschliessend.
Was hat dir denn an der bisherigen Anzeige nicht gefallen? Du meinst damit doch das Plugin, oder? https://www.mybb.de/forum/showthread.php...5#pid29785
Hallo Michael,
nein das Plugin hatte ich nicht benutzt. Ich habe einfach den HTML-Part aus dem obigen code in die Index reinkopiert. Deshalb sah es nicht so besonders aus. Allerdings wurde auch namentlich angezeigt wer im Chat ist. Das war wiederum ganz gut.

Ich versuche mal das Plugin.

Gruss
coma
OK ... habe das Plugin ausprobiert. Es wird auch korrekt angezeigt jedoch verhaut es mir die ganze Index-Seite (Formatierung ist komplett weg)
Jemand eine Idee? Ich habe nun schon den ganzen Vormittag rumtestet jedoch ohne Erfolg. Sad

Gruss
coma
Kannst du das Problem näher beschreiben? Unter "verhaut" kann ich mit nichts vorstellen.
naja die formatierung des Themes ist komplett weg

ich hab mal ein Attachment angehängt

Gruss
coma
Kannst du den Fehler in dein Forum einbauen und einen Link posten?
hmmm .. um die leute nicht zu sehr zu verärgern wäre es sinnvoll wenn wir dann beide zur gleichen zeit online sind Smile
Na, dann geht es mir ja nicht alleine so.....
Ich dachte schon, ich wäre zu blöd das PlugIn einzubauen.
Bei mir wird ebenfalls die komplette auf CSS basierende Formatierung zerstört, pikanterweise aber nur im Internet Explorer. Im Fuchs ist alles in Ordnung.
Ein Reload bringt der Seite bringt übrigens dann die korrekte Formatierung wieder zum Vorschein.
Der Fehler tritt auch auf, wenn die Änderungen, die das PlugIn im entsprechenden Template durchführt, manuell rausgeworfen werden nachdem das PlugIn gestartet wurde.
Screenshot siehe Post von Coma
Seiten: 1 2