[RC] AJAX Chat

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
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.
madblueimp
Mitglied
Beiträge: 62
Registriert: 14.08.2007 15:09
Kontaktdaten:

Beitrag von madblueimp »

kolja hat geschrieben:lässt dich der chat als shoutbox umbauen bzw ist sowas geplant ?
Die Möglichkeit (den Chat in eine bestehende Webseite einzubauen) eingeplant habe ich seit der ersten Version.
Getestet habe ich es zwar bisher nicht - es sollte aber mit Anpassungen an der index.php und den Templates des Chats möglich sein.
AJAX-Aufrufe würden weiterhin über den normalen Chat laufen.
Zusätzlich müsste man dann den anderen Teil aus der index.php in ein eigenes, in die Website zu inkludierendes Skript auslagern.

Vielleicht werde ich das mal austesten - allerdings nicht unbedingt in der nächsten Zeit.
Kleopatras_Sister
Mitglied
Beiträge: 257
Registriert: 28.07.2007 18:44

Beitrag von Kleopatras_Sister »

Nabend,

ich schreibe mal in Punkten, damit es einfacher für uns beide ist.



1. How to use the phpBB database configuration settings (für den AJAX Chat)

Wäre also wie folgt, richtig?

Code: Alles auswählen

// phpBB integration:
define('IN_PHPBB', true);
$phpbb_root_path = PATH.'/../';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

$params['dbConnection']['host'] = $dbhost;
$params['dbConnection']['user'] = $dbuser;
$params['dbConnection']['pass'] = $dbpasswd;
$params['dbConnection']['name'] = $dbname;

// phpBB session management:
$user->session_begin();
$auth->acl($user->data);
2. Doch was ist mit der conifc.php. Dort sind ja Einträge manuell schon getätigt, muss da was weg ?
weil erkenne den Sinn nicht. Man muss mit der neuen Anpassung nichts mehr machen (z.b. bei Forum Umzug, keine Anpassungen vornehmen), da er sich nun die Daten aus der db direkt holt richtig ?
also wäre im Umkehrschluss die Eintragungen in der confic.php unnötig.


3. Den Quelcode, ja kann ich machen. Muss ich die Tage nochmal schauen. Da wir nun Deutsch reden können, was genau bewirkt deine Änderung die du für mich angefertigt hattest nochmal ?

4. Update
also am besten alle Files überschreiben ? und die wenigen (siehe auch punkt 2. lassen oder nur den geänderten Beitrag in das neue Files rein nehmen ?
SQL mässig hat sich nix getan, also nur FIles, richtig ?

5. Danke dir
madblueimp
Mitglied
Beiträge: 62
Registriert: 14.08.2007 15:09
Kontaktdaten:

Beitrag von madblueimp »

1.
Kleopatras_Sister hat geschrieben:

Code: Alles auswählen

// phpBB integration:
define('IN_PHPBB', true);
$phpbb_root_path = PATH.'/../';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

$params['dbConnection']['host'] = $dbhost;
$params['dbConnection']['user'] = $dbuser;
$params['dbConnection']['pass'] = $dbpasswd;
$params['dbConnection']['name'] = $dbname;

// phpBB session management:
$user->session_begin();
$auth->acl($user->data);
Richtig.


2.
Kleopatras_Sister hat geschrieben:Doch was ist mit der config.php. Dort sind ja Einträge manuell schon getätigt, muss da was weg ?
weil erkenne den Sinn nicht. Man muss mit der neuen Anpassung nichts mehr machen (z.b. bei Forum Umzug, keine Anpassungen vornehmen), da er sich nun die Daten aus der db direkt holt richtig?
also wäre im Umkehrschluss die Eintragungen in der confic.php unnötig.
Die Einträge in der config.php werden dadurch "überschrieben", d.h. die Einträge der betreffenden Variablen einfach ersetzt.
Sie sind im Prinzip obsolet, du kannst sie aber einfach drin stehen lassen.
Die Konfigurations-Daten werden jedoch nicht aus der Datenbank geholt (denn das sind ja die Konfigurations-Daten um sich überhaupt mit der Datenbank verbinden zu können). Es werden einfach die Datenbank-Verbindungs-Daten aus der phpBB-Konfigurations verwendet.
Daher funktioniert das auch nur unter Verwendung der gleichen Datenbank für das Forum und den Chat.


3.
Kleopatras_Sister hat geschrieben:Den Quelcode, ja kann ich machen. Muss ich die Tage nochmal schauen. Da wir nun Deutsch reden können, was genau bewirkt deine Änderung die du für mich angefertigt hattest nochmal ?
Die Änderung in der login-Methode fügt eine Willkommens-Nachricht beim Login ein.
Die Änderung in der getChannels-Methode ändert die Raum-Auswahl.


4.
Kleopatras_Sister hat geschrieben:Update
also am besten alle Files überschreiben ? und die wenigen (siehe auch punkt 2. lassen oder nur den geänderten Beitrag in das neue Files rein nehmen ?
SQL mässig hat sich nix getan, also nur FIles, richtig ?
Ja, keine Änderungen an den Datenbanken (SQL).
Am besten du löschst das komplette Verzeichnis und lädst das neue hoch (gemäß der Anleitung aus der readme).


5.
Kleopatras_Sister hat geschrieben:Danke dir
Bitte. :)
Kleopatras_Sister
Mitglied
Beiträge: 257
Registriert: 28.07.2007 18:44

Beitrag von Kleopatras_Sister »

ok, ist die neue Änderung mit den variablen im neuen update enthalten oder muss ich die selbst neu hin zu fügen ?

ich hoffe das ich das wieder hinbekomme, wo ich was geändert hatte *hoff*

LG

EDIT

ok hab nun folgendes gemacht und ehrlich gesagt ist mir das ganze zu komplex geworden, ne einfacher Möglichkeit für die Zukunft (ala update install) wäre sicherlich nicht verkehrt.

1. alles gelöscht und neu drüber kopiert, datein aus Ordner samples für bb3 moved
2. chat.css von alter Version umbenannt in acid.css und moved
3. index um deinen auto db eintrag erweitert
4. config um neuen style und stanard erweitert
Hier verstehe ich jedoch den eng text vom php.com nicht. Man kann auch ohne was zu ändern an der css direkt von php style Ordner was auslesen lassen ?
5. Ich hab in meiner Acid Style overall_header zur Zeit

Code: Alles auswählen

<!-- ENDIF -->
<!--[if IE 7]>
<link rel="stylesheet" type="text/css" href="{T_THEME_PATH}/ie7.css" />
<![endif]-->

<script type="text/javascript">
function openChatWindow(url)
			{
				window.open(
					url,
					'chat',
					'screenX='+(screen.width/2-375)+',screenY='+(screen.height/2-255)+',width=750,height=510,resizable=yes'
				)
			}
<!--

<!-- IF S_USER_PM_POPUP -->
Leider hat du einen neuen Text auch hier, doch dann hab ich chat als Hyperlink und Wort ganz links oben... muss ich da was anpassen oder ist dies für mich unwichtig ? bzw nicht Relevant


6. lib/config.php erweitert (Frag mich aber wieso das nicht vorher von dir gemacht wurde)
meinen acid angegeben die css die ich mal angepasst hab und vorher Funktionierte :D

7. so nun Chat gestartet :D und bekomme ein Weißes Bild und kann mich nicht mehr einloggen.... und nu ? User wäre in Benutzung, egal was ich eingebe.. ich komme nicht weiter

8. die customchat ist auch neu, brauche ich dann noch diesen Eintrag von dir bzw wo füge ich denn nun wieder ein

Code: Alles auswählen

             // Default channel, public to everyone:
             $this->_channels[$this->_params['defaultChannelName']] = $this->_params['defaultChannelID'];

             if($auth->acl_get('f_read', '29'))
                   $this->_channels[preg_replace('/\s/', '_', '3l!tE G4m!nG Clan')] = '29';

             if($auth->acl_get('f_read', '93'))
                   $this->_channels[preg_replace('/\s/', '_', 'Eternity Clan')] = '93';

             if($auth->acl_get('f_read', '3'))
                   $this->_channels[preg_replace('/\s/', '_', 'Intern Group')] = '3';

             if($auth->acl_get('f_read', '31'))
                   $this->_channels[preg_replace('/\s/', '_', 'TNG Team')] = '31';
          }
          return $this->_channels;
Habe ihn nun mit dem vorhandenen Eintrag

Code: Alles auswählen

			// Default channel, public to everyone:
			$this->_channels[$this->_params['defaultChannelName']] = $this->_params['defaultChannelID'];
ersetzt. Richtig ?


10. kann es sein das in dieser install txt nicht die rede mehr von include functions.php ist ? oder verwechsle ich was, denn ich denke das es ne Version gab wo man dort Änderungen machen musste, nur müsste ich die ja nun wieder entfernen, doch ich weiß nicht *g*

EDIT

Code: Alles auswählen

	// The following assigns all _common_ variables that may be used at any point in a template.
	$template->assign_vars(array(
		'CHAT_LINK' => '../phpBB3/chat/',
		'CHAT_LINK_REGISTERED' => '../phpBB3/chat/?userID='.$user->data['user_id'].'&userName='.$user->data['username'],
		'CHAT_LABEL' => 'Chat',
		'SITENAME'						=> $config['sitename'],
		'SITE_DESCRIPTION'				=> $config['site_desc'],
		'PAGE_TITLE'					=> $page_title,
		'SCRIPT_NAME'					=> str_replace('.' . $phpEx, '', $user->page['page_name']),


das müsste es sein. Also die Zeilen

Code: Alles auswählen

		'CHAT_LINK' => '../phpBB3/chat/',
		'CHAT_LINK_REGISTERED' => '../phpBB3/chat/?userID='.$user->data['user_id'].'&userName='.$user->data['username'],
		'CHAT_LABEL' => 'Chat',
entfernen. Richtig ?

man man, also das ist doch kein update mehr... nicht falsch verstehen, aber bin nun so lange davor und es läuft nicht mehr :(

SQL muss ich nix anpassen, nur die files und anscheinend die include/..


Naja, ich warte nun mal auf dich und bin gespannt auf deine Reaktion

EDIT. Wenn ich die Entferne (3 Zeilen) verwindet der Chat Link.. oh man. ich hab keine Lust ma :x
nakor
Mitglied
Beiträge: 41
Registriert: 19.12.2005 14:22
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von nakor »

Sehr schön, dass jetzt alles funktioniert.
Ich habe noch ein paar Ideen, wie man es noch anpassen könnte an phpbb3:
  • Datenbanktabelle:
    includes/constants.php

    Code: Alles auswählen

    INSERT
    //* AJAXchat *//
    define('CHAT_ONLINE_TABLE', 'chat_online');
    define(CHAT_MESSAGES_TABLE', 'chat_messages');
    define('CHAT_BANS_TABLE', 'chat_bans');
    //* AJAXchat *//
    

    Code: Alles auswählen

    ADD AFTER
    // Additional tables
    
    Dadurch werden die Tabellen bei einer Sicherung über das ACP auch gesichert. Gut programmiert wäre es, wenn die entsprechenden Parameter (BSP: $params['dbTableNames']['online'] ) dann durch das entsprechende ersetzt würden (hier dann CHAT_ONLINE_TABLE).
  • kein eigener Datenbank-Verbindungsaufbau
  • Laden der css aus dem Forum, Style komplett wie Forumsstyle (Bsp runde Ecken bei prosilver)
  • skalierung des Fensters, so dass bei größerziehen des Fensters auch das Chatfenster entsprechend größer wird.
  • Autologin bei Eintritt in das Forum (ACP und UCP-Einstellung)
  • Chatlog-View im ACP (kein Exportieren mehr/nur auf Wunsch), Rechtevergabe dafür
Dann hab ich noch ein paar Bugs und Vorschläge für Befehle:
  • /roll [NUMMER] d[SEITENZAHL] --> Das mit der Nummer funktioniert nicht
  • /sep [SEPNAME] --> Separee (entsprechend dann Einladefunktion, Schließ- und Kickfunktion für den Raumersteller) - ich brauch das zwar nicht, aber es war eine Idee
  • /me --> als eigener Style bei der Ausgabe (Bsp Benutzername und das nachfolgende krsiv ohne weitere wiederholung des Benutzernamens, vll andere Schriftfarbe)
  • /name [NAME] --> Namen wechseln (auf Online-Liste dann den Usernamen in Klammer dazu)
Das heißt natürlich nicht, dass es alles umgesetzt werden muss, es wäre nur eine Überlegung. Wichtiges und auf jeden Fall sinnvolles habe ich fett gemacht.
Allerdings sollte bei manchem eine reine phpBB3-Version des Chats rauskommen, sonst muss doch viel geändert werden (vor allem kompliziert für weniger erfahrene). Ich könnte vielleicht mal versuchen eine reine phpBB3-Version rauszubringen, in der alle Variablen entsprechend umgenannt sind, wenn von dir nichts dagegen spricht.
Für nächste Versionen wäre auch ein "changed Files only" sehr cool ^^
http://www.arsfantasia.de
Verein für Rollenspiel und Fantasy
Stuttgart
nakor
Mitglied
Beiträge: 41
Registriert: 19.12.2005 14:22
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von nakor »

Kleopatras_Sister hat geschrieben:

Code: Alles auswählen

		'CHAT_LINK' => '../phpBB3/chat/',
		'CHAT_LINK_REGISTERED' => '../phpBB3/chat/?userID='.$user->data['user_id'].'&userName='.$user->data['username'],
		'CHAT_LABEL' => 'Chat',
entfernen. Richtig ?
Nein, das ist die Definition der Sprach- und Verknüpfungsvariablen, die darfst du nicht löschen! Allerdings wird in der neuen Version der Eintrag CHAT_LINK_REGISTERED nicht mehr verwendet, musst aber aufpassen, dass, wenn du ihn ruaslöchst, auch dein Template (overall_heaer) entsprechend anpasst. Steht alles in der readme-Datei (unter docs/)
http://www.arsfantasia.de
Verein für Rollenspiel und Fantasy
Stuttgart
Benutzeravatar
kolja
Mitglied
Beiträge: 1546
Registriert: 13.05.2005 16:39
Wohnort: münster

Beitrag von kolja »

ich hab mir den chat gestern mal installiert, und muss jetzt erstmal ein lob loswerden!
sehr gut gelungen !!!

nach dem ersten funktionstest, habe ich natürlich sofort angefangen mir das ganze als shoutbox einzubauen
hier zu bewundern: www.reggae-party.de

jetzt habe ich noch ein paar fragen:

-gibt es schon eine lösung für den (auto)login, wenn die seite per iframe eingebunden wird ?

-wie kann ich die kommentare des chatbot ausschalten ?

-kann ich auch nachrichten zu gruppen flüstern ?

vielen dank für die ganze arbeit!

kolja
Zuletzt geändert von kolja am 13.09.2007 06:11, insgesamt 1-mal geändert.
Das Leben ist unberechenbar - deshalb ist Improvisation wichtiger als Planung!

Es ist besser zu geben, als zu leihen, und kostet ungefähr gleichviel.

.: Münsters Reggae Forum :.
Benutzeravatar
feuerteufel
Mitglied
Beiträge: 524
Registriert: 17.04.2004 21:11
Wohnort: Schortens
Kontaktdaten:

Beitrag von feuerteufel »

Ich habe den Chat fast hinbekommen ..

nun bekomme ich diese Meldung

Code: Alles auswählen

XML-Verarbeitungsfehler: nicht wohlgeformt Adresse: http://www.unsere-fruehchen.de/chat/ Zeile Nr. 44, Spalte 1245:
und eine zeile tiefer diese Meldung

Code: Alles auswählen

<select name="channelName" id="channelField"><option value="Public">Public</option><option value="Schredder">Schredder</option><option value="Round_Table">Round_Table</option><option value="Mitteilungen">Mitteilungen</option><option value="Klinikzeit">Klinikzeit</option><option value="Grundlagen">Grundlagen</option><option
hat jemand eine Idee ??

gruß der feuerteufel
Wenn es Wo Brennt, war ich schon lange da ...

Feuerwehr Schortens
Kleopatras_Sister
Mitglied
Beiträge: 257
Registriert: 28.07.2007 18:44

Beitrag von Kleopatras_Sister »

nakor hat geschrieben:
Kleopatras_Sister hat geschrieben:

Code: Alles auswählen

		'CHAT_LINK' => '../phpBB3/chat/',
		'CHAT_LINK_REGISTERED' => '../phpBB3/chat/?userID='.$user->data['user_id'].'&userName='.$user->data['username'],
		'CHAT_LABEL' => 'Chat',
entfernen. Richtig ?
Nein, das ist die Definition der Sprach- und Verknüpfungsvariablen, die darfst du nicht löschen! Allerdings wird in der neuen Version der Eintrag CHAT_LINK_REGISTERED nicht mehr verwendet, musst aber aufpassen, dass, wenn du ihn ruaslöchst, auch dein Template (overall_heaer) entsprechend anpasst. Steht alles in der readme-Datei (unter docs/)

mhh ich schau nochmal... blick da im Moment nicht mehr durch. Wegen der Overall Änderung, meinst du den Text den ich jetzt drin hab raus und den neuen rein nehmen (siehe post über deinem etwas weiter oben (text in meiner coverall) )
madblueimp
Mitglied
Beiträge: 62
Registriert: 14.08.2007 15:09
Kontaktdaten:

Beitrag von madblueimp »

Version 0.2.1 freigegeben:
New features:
- Updated CSS styles - chat messages window now adjusts to the browser window.

Bugfixes:
- If a registered user lost his session while logged in he could not login again until timeout.
This is now fixed by removing the registered user from the online list prior to a new login.
- The login method had been called on every request with a given userName parameter even if logged in - fixed.

Other changes:
- Rewrote the DataBase code to make it possible to use a given DataBase link identifier.
Geänderte Dateien (zu 0.2.0.2):

  • - lib/class/Chat.php
    - lib/class/DataBase.php

    - lib/template/loggedIn.php

    - js/chat.js

    - css/beige.css
    - css/black.css
    - css/grey.css

    - doc/samples/phpBB2/lib/class/CustomChat.php

    - doc/samples/phpBB2/css/subSilver.css

    - doc/samples/phpBB3/css/prosilver.css
    - doc/samples/phpBB3/css/subsilver2.css



Ich habe einige der Vorschläge von nakor übernommen - hier noch ein paar Anmerkungen zu den Vorschlägen:
  • * Das Backup der Datenbank-Tabellen und die Übernahme der Konfiguration habe ich in ein FAQ-Item übernommen
    * Auch die Übernahme der Datenbank-Verbindung wird jetzt in einem FAQ-Item beschrieben
    * Die CSS-Styles werden seit Version 0.2 von den Style-Einstellungen des phpBB Forums übernommen
    Allerdings müssen die Styles für den Chat angelegt werden.
    Mitgeliefert werden die phpBB Standard-Styles (subSilver, subsilver2 und prosilver).
    * Chat-Login und Forums-Login haben nicht direkt etwas miteinander zu tun. Der Chat-Login ist unter anderem dazu da, um die Online User zu ermitteln. Ein Logout aus dem Chat soll nicht aus dem Forum ausloggen.
nakor hat geschrieben: /roll [NUMMER] d[SEITENZAHL] --> Das mit der Nummer funktioniert nicht
Doch, es funktioniert - du darfst nur kein Leerzeichen vor dem "d" verwenden. :P
nakor hat geschrieben:Chatlog-View im ACP (kein Exportieren mehr/nur auf Wunsch), Rechtevergabe dafür
Das Logging und das Leeren der Chat-Messages kann in der Konfiguration (lib/config.php) abgestellt werden:

Code: Alles auswählen

// Defines if messages are logged to file and purged from the database:
$params['logsCreateLogs'] = true;
Generell versuche ich, die Änderungen am phpBB Forum so klein wie möglich zu halten, um Forums-Updates zu erleichtern:
Mittlerweile braucht es für die Installation des Chats überhaupt keine Änderungen mehr am Forum.
Es reicht, irgendwo einen Link auf den Chat zu setzen, das kann auch in einem Themen-Beitrag sein.

Wenn jemand Lust hat, eine Chatlog-View für das phpBB ACP zu schreiben - gerne. Am besten mit Anleitung in englischer Sprache, dann verlinke den Beitrag in der FAQ zum AJAX Chat. :)
Antworten

Zurück zu „phpBB 2.0: Mods in Entwicklung“