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.

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?
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 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',
Code: Alles auswählen
'CHAT' => 'Chat',
'CHAT_NR' => ' (%s)',
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>
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>
Eine Frage direkt:
Wie kann ich anstatt der deutschen Sprache in der functions.php Sprachvariablen einsetzen?
lg,
Trash-Master