Hallo,
einen Chat in das PHPBB zu integrieren finde ich nicht schlecht. Für mich kommt aus diversen Gründen nur ein IRC in Frage. Pjirc macht einen guten Eindruck und wenn man sich mal durchliest was die alles noch realisieren wollen, sieht das wirklich gut aus.
Ich habe hier schon diverse Themen über Chateinbindung gelesen, allerdings fand ich nichts zu meinem konkreten Problem.
1. Ich möchte gern Usernamen + Passwort(!) aus dem PHPBB übernehmen. Eventuell mit einem Extra Klartext-Passwort-Feld in der Datenbank. Falls ein User mit diesem nick schon online ist muss versucht werden, ob man seinen eventuell registrierten nick mit "recover" freigeben kann. Ganz so wichtig ist diese Option nicht, man kann nickserv ja so einstellen, dass so ein User nach einer Minute den von anderen registrierten nick verliert.
2. Ein neuer Chatbesucher sollte sich bei nickserv identifizieren, falls der nick nicht registriert ist, sollte er das an dieser Stelle werden.
3. Ich möchte gern im Board anzeigen, wie viele User derzeit im Chat sind.
Vollen Zugriff auf den IRC-Server habe ich, ich könnte da also ein Script installieren, was die Useranzahl im Chat ermittelt. Ich bin selbst bereit an einer Lösung mitzuarbeiten, falls es noch keine dafür gibt. Ich bin daher für jeden kleinen Tipp dankbar.
IRC-Chat (pjirc), nick, passwort
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Anmeldung: Ich benutze den nick aus der Datenbank und versuche über die JavaScript-Schnittstelle des Applets, mittels nickserv den nick zu registrieren. Dann hinterher noch ein identify, falls der nick schon registriert war. Bzw. noch ein "release", falls ein anderer den Nick benutzt.
Dass mit dem Passwort konnte ich leider nur mit einem zusätzlichen Passwort im Klartext ändern. Habe halt ein Klartext-Passwortfeld zur User-Tabelle hinzugefügt und bei jedem einloggen wird das neu geschrieben. Hier mal das, was ich in der chat.php ergänzt habe:
Falls es Dich noch interessiert wie ich das Passwort schreibe, kann ich das gern auch noch posten.
Dass mit dem Passwort konnte ich leider nur mit einem zusätzlichen Passwort im Klartext ändern. Habe halt ein Klartext-Passwortfeld zur User-Tabelle hinzugefügt und bei jedem einloggen wird das neu geschrieben. Hier mal das, was ich in der chat.php ergänzt habe:
Code: Alles auswählen
if (strlen($userdata['user_irc_pass'])>1) {
$nickserv = "/msg nickserv ghost ".$userdata['username']." ".$userdata['user_irc_pass'].";";
$nickserv .= "/msg nickserv release ".$userdata['username']." ".$userdata['user_irc_pass'].";";
$nickserv .= "/nick ".$userdata['username'].";";
$nickserv .= "/msg nickserv register ".$userdata['user_irc_pass']." ".$userdata['user_email'].";";
$nickserv .= "/msg nickserv identify ".$userdata['user_irc_pass'].";";
$nickserv .= "/join ".$board_config['irc_channel'].";";
}
$userdata['irc_commands'] = $nickserv.$userdata['irc_commands'];
nach dem $template->assign_vars-Block, also nach:
Aber bedenke, so allein bringt das noch nichts. Das Passwortfeld muss noch in die User-Tabelle "phpbb_users" (user_irc_pass varchar(32)). Anschließend in der login.php nach diesem Code:
dies einfügen:
Ich hoffe, dass das jetzt alles war. Wenn Du auf einem IRC-Server bist der keine Services wie den nickserv hat, kannst Du Dir das natürlich alles sparen!
Nachtrag: Die Passwörter der automatisch einloggenden User werden so nicht gespeichert! Ich habe mir so geholfen, dass ich einfach den Cookienamen des Boards geändert habe wonach sich alle einmal mit Passwortangabe einloggen mussten.
Code: Alles auswählen
'SOUND_BEEP' => $board_config['irc_sound_beep'],
'SOUND_QUERY' => $board_config['irc_sound_query'])
);
Code: Alles auswählen
if ($row['user_badlogin']<$board_config['max_login_error'] || $row['user_blocktime']<time() )
{
if( md5($password) == $row['user_password'] && $row['user_active'] )
{
Code: Alles auswählen
$sql = "UPDATE " . USERS_TABLE . " SET user_irc_pass='".$password."'
WHERE username = '" . str_replace("\'", "''", $username) . "'";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Error updating correct login data', '', __LINE__, __FILE__, $sql);
}
Nachtrag: Die Passwörter der automatisch einloggenden User werden so nicht gespeichert! Ich habe mir so geholfen, dass ich einfach den Cookienamen des Boards geändert habe wonach sich alle einmal mit Passwortangabe einloggen mussten.