MyBB.de Forum

Normale Version: phpFreeChat Integration
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo alle miteinander!

Ich hab mir mal den Mod phpFreeChat Integration mit dem dazugehörigen Chat zur Brust genommen.

Sowohl der Mod wie auch der Chat sind noch im Beta-Stadium, aber bis jetzt schon ziemlich klasse (mich begeistern normal Betas nicht so schnell).

Leider kommt es bei der Verwendung des Mods zur Integration des Chats zu einem Konflickt mit der Spiel-Sektion. Vielleicht wird dieser Fehler auch behoben, wenn das Beta-Stadium verlasssen wird.

Der Chat nutzt standardmäßig einen Cache nach der "Flatfile" Methode (hab ich so dort gelesen).
Ich hab das bei mir mal so umgemodelt, dass der eine MySQL-Datenbank anspricht und benutzt. Und habe ein kleines PHP-Script geschrieben mit dem ich die Tabelle auch wieder leeren kann.

Leider bin ich nicht so der Held, wenn es um Programmierung von Zeitvariabeln geht und wie ich das in den Chat einbauen könnte, dass dieser selbstständig nach 24 Stunden die Datenbank wieder leert.

... eigentlich wollte ich hier mit diesem Thread überhaupt mal anfragen, ob da auch von anderen Interesse daran besteht!?
Und ob der Mod auch hier noch hochgeladen wird?!?

LG, GM!
Wir dürfen Mods nur hochladen, wenn wir die Berechtigung des Autors haben. Das ist aber nicht so einfach, wie gedacht. Ich versuche schon seit längeren von musicalmidget eine Liste aller Autoren zu bekommen. Jeden einzelnd rauszusuchen und anzuschreiben ist mir zu mühsam.

Bei den Mods, die wir von https://www.mybb.de übertragen haben, haben wir die Autoren angeschrieben. Wir haben keine Absagen erhalten, aber auch kaum Zusagen.

Wir bedauern dies sehr, können aber nichts machen.
Ah, okay. Naja, dann lass ich einfach den Link stehen! Big Grin
Hallo Grauer-Magier,

Ich bekomme es nicht zum laufen.

Was ich auch tue und wie ich die Einstellungen auch verändere (eigener Linux-Server zuhause) ich bekomme bestenfalls diese Meldung:
Zitat:Error: the chat cannot be loaded! two possibilities: your browser doesn't support javascript or you didn't setup correctly the server directories rights - don't hesitate to ask some help on the forum www.phpfreechat.net/forum
in der Message-Box wo eigentlich der Chat erscheinen sollte.

(sehen? --> unter 'www' Knopf unten)

Da du ja offensichtlich mit dem Code schon viel vertrauter bist als ich, wollte ich gerne wissen ob du eventuell eine Lösung kennst für mein Problem oder wenigstens die Ursache dafür irgendwo vermutest.

Ich habe das Problem auch schon hier im MyBB Mods Community Forum beschrieben.

Deine Idee mit dem MySQL-Backend: Top! bleib dran!

ernolf

Ach so, ja:
natürlich ist JavaScript im Browser aktivert und die Berechtigungen (unix) habe ich auch schon endlos herumprobiert (auch alles auf 777 geht nicht) User:Group ist wwwrun:nogroup (mein Apache-Daemon)
Es wird ja auch immer nach dem Aufruf ein Cache angelegt im Ordner /data also bin ich gaanz nah am Durchbruch ;-)
Hi, ernolf!

Hmm ... poste doch bitte mal deine index.php (vom Chat). - Vielleicht steckt da der Teufel im Detail! Wink

LG, GM!
Grauer-Magier schrieb:[..] poste doch bitte mal deine index.php (vom Chat).

Wie das so ist:

Der Teufel ist bekantermassen ein Eichhörnchen und jetzt geht es.
Zwar Fehlerbehaftet aber das ist nicht schlimm
Ich kann nicht zu 100% erklären wieso es jetzt geht, da ich dieselbe Konstellation (meinte ich) schon vorher versucht hatte. Wird wohl was in einem Cache drinnen gewesen sein was ich nicht sofort gesehen habe (vermutung)

Jetzt habe ich den Chat als Unterordner des Forums. Das wollte ich so eigentlich nicht da der Chat so auch direkt auf zu rufen ist aber es ist Bewegung drinn, ich glaube ich habe die Räder wieder aus dem schlamm!

Ich habe diese Seite gebookmarkt also sobald du mit deiner MySQL-Erweiterung voran kommst oder Tester brauchst,
Ich biet mich an!

Vielen Dank für deine Antwort!

ernolf
*lach* Das war wohl der Vorführeffekt! Big Grin

Also die MySQL-Variante klappt bei mir jetzt. Du mußt nur erst eine Datenbank anlegen.
Hier der Code meiner index.php:
Code:
<?php
require_once dirname(__FILE__)."/src/phpfreechat.class.php";
$params =  array("title"          => "Chat",
                 "max_msg"        => 21,
                 "clock"          => true,
                 "showwhosonline" => true,
                 "showsmileys"    => true,
                 "serverid"       => md5(__FILE__),
                 "language"       => "de_DE-informal",
                 "theme"          => "default",
                 "container_type" => "mysql",
                 "container_cfg_mysql_host" => "localhost",
                 "container_cfg_mysql_port" => "3306",
                 "container_cfg_mysql_database" => "DATENBANKNAME",
                 "container_cfg_mysql_table" => "chat",
                 "container_cfg_mysql_username" => "DATENBANKUSER",
                 "container_cfg_mysql_password" => "DATENBANKPASSWORT",
                 );
$chat = new phpFreeChat( $params );
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  <title>Chat</title>
</head>
    <body>
<div class="content">
  <?php $chat->printChat(); ?>
</div>
    </body>
</html>

Die zugehörigen Dateien beschreiben dann die Datenbank automatisch und erstellen die nötigen Daten in der Datenbank.

Und hier der Code die Chatdatenbank per Klick zu löschen.
Ich hab das ganze zur Sicherheit mit dem MyBB Admin-CP verbunden, und im MyBB "/admin"-Verzeichnis angelegt mit dem Namen "chatpurge.php":
Code:
<?php
/**Das ist eine Vorabversion, keine Gewähr für Vollständigkeit
**/
error_reporting(E_ALL);

define('IN_MYBB', 1);
require "./global.php";
require MYBB_ROOT."inc/class_parser.php";
$link = mysql_connect("localhost", "DATENBANKUSER", "DATENBANKPASSWORT");
mysql_select_db("DATENBANKNAME");
$res = mysql_query("TRUNCATE `chat`");
$SQL = 'OPTIMIZE TABLE chattable';
$resultO = mysql_query($SQL);
?>

LG, GM!
Grauer-Magier schrieb:*lach* Das war wohl der Vorführeffekt! Big Grin
Eben! Dafür weiß ich jetzt woran es lag. Meine Vermutung oben war richtig.

Grauer-Magier schrieb:Also die MySQL-Variante klappt bei mir jetzt. Du mußt nur erst eine Datenbank anlegen.
Und das sollte doch auch irgendwie ein (Plugin)Script übernehmen, oder?

Grauer-Magier schrieb:Hier der Code meiner index.php:
Code:
<?php
                 [..]
                 "container_type" => "mysql",
                 "container_cfg_mysql_host" => "localhost",
                 "container_cfg_mysql_port" => "3306",
                 "container_cfg_mysql_database" => "DATENBANKNAME",
                 "container_cfg_mysql_table" => "chat",
                 "container_cfg_mysql_username" => "DATENBANKUSER",
                 "container_cfg_mysql_password" => "DATENBANKPASSWORT",
                 );
[..]

Die zugehörigen Dateien beschreiben dann die Datenbank automatisch und erstellen die nötigen Daten in der Datenbank.
Ist klar.

Grauer-Magier schrieb:Und hier der Code die Chatdatenbank per Klick zu löschen.
[..]

Das ist gut! Das ist genau der Knackpunkt, wie zwischendurch der Chat gereinigt werden kann ohne den Chattern so zu sagen den Raum unter der Maus weg zu löschen (mit als Folge das erst nach einem F5 wieder weiter gehen kann).
Hier sollte eine Erkennung eingebaut werden, sobald keiner mehr am Chat teilnimmt, wird das reinigungsscript ausgeführt
Bei mir wird das nun per Cron schonmal alle 24Stunden nachts durchgeführt aber das ist keine Dauerlösung ;-)

Dann will ich jetzt auf die neueste Beta aktualisieren und da ich mir gerade einen JabberServer aufsetze, werde ich mich um einen Jabber-Container Gedanken machen. Ich denke das ist für Chat die bessere Lösung.

Dann habe ich aktuell das Problem, das die automatische Nick-Vergabe an Gästen so wie das im PluginScript ("pfc_mybb.php") eingebaut wurde fehlerhaft ist, da davon ausgegangen wird, das ein Gast bereits 'guest' heisst, dem ist nicht so:
Die Zeilen 298-305:
Code:
                if ($mybb->user['username'] != "guest") // Hier der Fehler
                {
                    $params["nick"] = "".$mybb->user['username'];  // Das hier funktioniert
                }
                else
                {
                    $params["nick"] = "guest".rand(1,1000);  // Das hier nicht
                }
habe ich so umgeändert:
Code:
                if ($mybb->user['usergroup'] >= 2)
                {
                    $params["nick"] = "".$mybb->user['username'];
                }
                else
                {
                    $params["nick"] = "Gast".rand(1,1000);
                }

Aber so bekommen die Gäste zwar einen Nick in der Form "Gast[Zufallsnummervon1-1000]" aber die Nummer bleibt sich ständig ändern und logt sich nicht im Chat ein :-(

Also musste ich das erst mal ausschalten und so haben meine 'Gäste' nun das 'Privileg' sich für jede Chat-Sitzung einen neuen Nick aus zu suchen während meine Foren-Mitglieder an ihrem Nick gebunden sind.

Ich hoffe jemand zeigt mir eine Lösung für dieses Problem.

Danke im Voraus

ernolf
So sollte es gehen:
PHP-Code:
if ($mybb->user['uid'] != "0")
                {
                    
$params["nick"] = $mybb->user['username'];
                }
                else
                {
                    
$params["nick"] = "guest".rand(1,1000);
                } 
Also könnte einer von euch ne kleine Anleitung dazu geben ?
Damit es für mich auch verständlich ist weil ihr euh ja
wie man merkt gut mir php und mySQL auskennt Wink
Danke im Vorraus.

Mfg System
Seiten: 1 2