Vorlage für in phpBB eingebundene Seiten
Dieses ist eine Vorlage für eine Seite, die man ins phpBB-Verzeichnis legen kann und in der dann automatisch der Header/Footer sowie die Login-Daten verfügbar sind.
Code: Alles auswählen
<?php
// Benötigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// Session auslesen und Benutzer-Informationen laden
$user->session_begin();
$user->setup();
$auth->acl($user->data);
/*
* Inhaltsbereich
*/
// Header und Titel der Seite
page_header('TITEL DER SEITE');
// Angabe eurer Content-Seite
$template->set_filenames(array(
'body' => 'eure_seite.html')
);
// Footer
page_footer();
?>
- $phpbb_root_path: Wenn die Datei in einem anderen Verzeichnis als phpBB liegt, hier den relativen Pfad zu phpBB mit abschliessendem Slash (/) eintragen. Eventuell muss dazu der Cookie-Pfad im ACP auf / gesetzt werden.
- $phpEx: Um Probleme mit den Datei-Endungen zu umgehen und Fehlermeldungen zu vermeiden, ist es ratsam, für eure php-Datei die gleiche Endung zu verwenden die die index.*** im Root-Verzeichnis besitzt. (bei index.php: eure_seite.php, bei index.php5 => eure_seite.php5)
- PAGE_INDEX: Wenn du möchtest, daß deine Seite mit Titel und Link in der "Wer ist Online"-Liste aufgeführt wird, musst du wie folgt vorgehen:
In der viewonline.php ab Zeile 312 suchen:Danach einfügen:Code: Alles auswählen
case 'report': $location = $user->lang['REPORTING_POST']; $location_url = append_sid("{$phpbb_root_path}index.$phpEx"); break;
Wichtig: zu: case 'eure_seite': in diesem Fall heißt die Seite, die ihr erstellen wollt: "eure_seite.php". Ändert den Code also entsprechend ab (z.B. bei "teampage.php": case 'teampage')Code: Alles auswählen
case 'eure_seite': $location = 'Betrachtet "Eure Seite"'; $location_url = append_sid("{$phpbb_root_path}eure_seite.$phpEx"); break;
Entsprechend dazu müsst ihr $location_url = append_sid("{$phpbb_root_path}eure_seite.$phpEx"); ebenfalls abändern. - $user->data: Über den Aufruf des User-Objekts hast man u.a. Zugriff auf alle Felder der User-Tabelle eines angemeldeten Users oder eines Gasts.
- Inhaltsbereich: Hier kannst du beliebigen php-Code verwenden.
- Templatedatei: Durch
gebt ihr den Dateiname der Datei an, die den Inhalt der eingebundenen Datei enthält. Diese Datei muss im Verzeichnis /styles/euerStyle/ liegen. Um den Header einzubinden, muss diese Datei Am Anfang den Code
Code: Alles auswählen
$template->set_filenames(array( 'body' => 'eure_seite.html') );
enthalten. Um den Footer einzubinden, muss am Ende der Datei folgendes eingfügt werden:Code: Alles auswählen
<!-- INCLUDE overall_header.html -->
Code: Alles auswählen
<!-- INCLUDE overall_footer.html -->
- Soll geprüft werden, ob ein Benutzer angemeldet ist, so ist $user->data['user_id'] zu prüfen. Also z.B.
Code: Alles auswählen
if ($user->data['user_id'] == ANONYMOUS) { // Code, wenn Benutzer nicht angemeldet ist } else { // Code, wenn Benutzer angemeldet ist }
- Mit diesem Code kannst du nicht eingelogte Benutzer auf die Login-Seite umleiten:
Code: Alles auswählen
if ($user->data['user_id'] == ANONYMOUS) { login_box(); }
- Weiterhin kann so geprüft werden, ob ein User Admin-Rechte hat:Entsprechendes gild für Moderatoren-Rechte:
Code: Alles auswählen
if ($auth->acl_get('a_')) { }
Die Prüfung, ob ein User Admin oder Moderator ist, erfolgt folgendermaßen:Code: Alles auswählen
if ($auth->acl_getf_global('m_')) { }
Code: Alles auswählen
if ($auth->acl_get('a_') || $auth->acl_getf_global('m_')) { }
Damit die Sitzungsdaten zwischen den einzelnen Seitenaufrufen erhalten bleiben, speichert phpBB die ID der Sitzung in einem Cookie. Falls kein Cookie verwendet werden kann, wird die ID über die URL (&sid=...) weitergegeben. Damit diese Sitzungs-ID ggf. an die URL angehangen wird, gibt es die Funktion append_sid(), die als Parameter die URL der Seite aufnimmt. So sollte z.B. statt
Code: Alles auswählen
<a href="index.php">Zum Forum</a>
Code: Alles auswählen
<a href="<?php append_sid('index.php'); ?>">Zum Forum</a>