Seite 1 von 1

Wer war online? - Mod

Verfasst: 18.08.2014 00:44
von Krachschwarte
Hi.

Ich habe ein phpBB3 Forum in eine Wordpress-Seite integriert. (siehe Link) Im Forum habe ich die Mod "Wer war online" integriert. Aber nun stehe ich vor folgendem Problem.

Sobald jemand auf die Wordpress-Seite gelangt, wird er direkt im Forum unter "Wer ist online?" angezeigt. Aber nicht unter "Wer war online?". Unter "Wer war online?" werden lediglich die Benutzer aufgeführt, die auch wirklich im Forum waren und nicht nur auf der Wordpress-Seite...dies hat einige komische Statistiken zur Folge.

[ externes Bild ]

Weiß evtl. jemand, wie man es hinbekommen könnte, dass die Nutzer, die nur auf den Wordpress-Seiten herumsurfen ebenfalls unter der Rubrik "Wer war online?" aufgeführt werden?

Re: Wer war online? - Mod

Verfasst: 20.08.2014 14:52
von HabNurNeFrage
Hi,

da werden wohl die Daten für "Wer war da" aus der phpbb_sessions Tabelle gelesen, aber die WP-Bridge legt dort nichts ab, sondern greift nur auf phpbb_users zu, um die Anmeldung zu verifizieren. Ein Micro-Workaround könnte ein 1x1 Pixel großer iFrame auf WP-Only-Seiten sein, der z.B. die FAQs vom phpBB beinhaltet und somit auch Session-Einträge im Forum erzeugt.

Ggf. könnte auch ein Eintrag im WP-PHP sein, der in etwa Folgendes enthält:

Code: Alles auswählen

define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
$user->session_begin();
$auth->acl($user->data);
$user->setup(); 
Damit würde bei jedem WP-Only-Aufruf auch die phpBB-Session initialisiert.
Eventuell muss der Pfad angepasst werden, jenachdem, wie das phpBB relativ zur WP-Installation liegt.
Dazu ggf. diese Zeilen:

Code: Alles auswählen

$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
ersetzen durch:

Code: Alles auswählen

include('relativer_pfad_zu_phpbb/common.php');
Das könnte z.B. so aussehen include('../phpbb/common.php');, wenn WP und phpBB in unterschiedlichen Ordnern im selben Verzeichnis liegen.
Probiers einfach aus... :P

Die komplett modifizierte Stelle sähe dann so aus:

Code: Alles auswählen

define('IN_PHPBB', true);
include('../phpbb/common.php');
$user->session_begin();
$auth->acl($user->data);
$user->setup(); 
LG