[DEV] ET-Chat who is online

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 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Trash-Master
Mitglied
Beiträge: 211
Registriert: 13.11.2008 21:13

[DEV] ET-Chat who is online

Beitrag von Trash-Master »

Salü,

Aufgrund dessen, das ich in meinem Board den ET-Chat einsetze und dort eine Online-User Anzeige, wie beim AJAX Chat, fehlt, habe ich eine MOD auf Basis der im Chat-Paket enthaltenden Datei "Zusatztool_ExterneAnzeige_Interface.php" geschrieben.

Das ist meine allererste Modifikation für phpBB3. Also seit bitte nicht so hart zu mir. :roll:
Feedback ist natürlich erwünscht, besonders Tipps wie ich was noch besser machen kann. :)

Ich werde mich bald auch ins ModX Format einarbeiten, aber fürs Erste poste ich die Installationsanleitung hier einfach mal so rein. Ist ja auchnoch alles DEV und desshalb nicht zum Einsatz in produktiven Foren empfohlen. ;)
Natürlich setzt die Mod einen vorhandenen in phpBB intigrierten ET-Chat vorraus.
Getestet mit phpBB 3.0.4

Also, fangen wir an:

Öffne: includes/functions.php

Finde:

Code: Alles auswählen

	// Which timezone?
Füge davor ein:

Code: Alles auswählen

	// Begin ET-Chat who is online by Trash-Master
	// Ausgabepufferung aktivieren
	ob_start();
	// Alle relevanten Dateien includen
	include($phpbb_root_path . 'et_chat_v305/dbcon/config.inc.' . $phpEx);
	include($phpbb_root_path . 'et_chat_v305/dbcon/'.$database_class);
	include($phpbb_root_path . 'et_chat_v305/dbcon/init_chat_db.class.' . $phpEx);

	// DB Grundwerte in Varaiable übergeben
	$confObj = new InitChatDB($prefix,$sqlhost,$sqluser,$sqlpass,$database,false);
	// Anzahl der Online-User aus DB auslesen
	$erg = $confObj->dbObj->sql("SELECT count(etchat_onlineid) FROM {$prefix}etchat_useronline WHERE 
	etchat_onlinetimestamp > ".(date('U')-30)."
	and (etchat_user_online_user_status_img is null or etchat_user_online_user_status_img <> 'status_invisible')", false);
	
	// Anzahl der User im Chat ausgeben
	echo $erg[0][0]." User im Chat";
	// Bei mehr als 0 Usern noch einen Doppelpunkt dahinter
	if ($erg[0][0] > 0) echo ": ";
	
	// Online-Username(n) aus DB auslesen
	$erg_user = $confObj->dbObj->sql("SELECT etchat_user_online_user_name, etchat_user_online_user_priv FROM {$prefix}etchat_useronline 
	WHERE etchat_onlinetimestamp > ".(date('U')-30)." 
	and (etchat_user_online_user_status_img is null or etchat_user_online_user_status_img <> 'status_invisible')
	order by etchat_user_online_user_name", true);
	
	// Jeweils Online-Username mit Leerzeichen dahinter ausgeben
	if(is_array($erg_user)) foreach($erg_user as $us) echo "$us[0] ";
	// Inhalt des Ausgabe-Puffers an Variable zurückgeben
	$chatol = ob_get_contents();
	// Ausgabe-Puffer löschen und deaktivieren
	ob_end_clean();

	// Jetzt noch die Variablen ans Template übergeben
	$template->assign_vars(array(
	// Die Variable für Anzahl + Name
    'S_CHATOL'    	=> $chatol,
    // Und die Variable nur für Anzahl
	'CHAT_NR'		=> sprintf($user->lang['CHAT_NR'], $erg[0][0]),	    
	)); 
	// End ET-Chat who is online by Trash-Master
Anmerkung: Die Kommentare können natürlich gelöscht werden. :roll:
Anmerkung 2: Möglicherweise muss der Pfad zum ET-Chat geändert werden.

Öffne: language/de/common.php

Finde:

Code: Alles auswählen

	'CLICK_VIEW_PRIVMSG'	=> '%sZu deinem Posteingang%s',
Füge davor ein:

Code: Alles auswählen

	'CHAT'					=> 'Chat',
	'CHAT_NR'				=> ' (%s)',	
Öffne: styles/prosilver/template/overall_header.html

Finde:

Code: Alles auswählen

					<li class="icon-members"><a href="#" onclick="window.open('et_chat_v305/','Chat','width=750,height=520');" title="Chat">Chat</a></li>
Ersetze durch:

Code: Alles auswählen

		        <li class="icon-members"><a href="#" onclick="window.open('et_chat_v305/','Chat','width=750,height=520');" title="{S_CHATOL}">{L_CHAT}{CHAT_NR}</a></li>
Cache leeren, EOM

Eine Frage direkt:
Wie kann ich anstatt der deutschen Sprache in der functions.php Sprachvariablen einsetzen?

lg,
Trash-Master
phpBB Version: 3.0.5
Style: Prosilver, Prosilver SE
Trash-Master
Mitglied
Beiträge: 211
Registriert: 13.11.2008 21:13

Re: [DEV] ET-Chat who is online

Beitrag von Trash-Master »

Mmh...ich sehe ein par Aufrufe, aber keine Kommentare.
Das ist meine erste Mod, hat denn niemand etwas dazu zu sagen? :roll:

lg,
TrashMaster
phpBB Version: 3.0.5
Style: Prosilver, Prosilver SE
aurora876
Ehemaliger Übersetzer
Beiträge: 1600
Registriert: 30.08.2008 20:41

Re: [DEV] ET-Chat who is online

Beitrag von aurora876 »

mußt eine variable definieren und die dann auch in der sprachdatei dann definieren :)
There are 10 types of people in the world: Those who understand binary and those who don't. :D

Support Toolkit in Deutsch
Antworten

Zurück zu „[3.0.x] Mods in Entwicklung“