phpBB

Development Wiki

Difference between revisions of "Deutsch:Vorlage für in phpBB3 eingebundene Seiten"

From phpBB Development Wiki

 
Line 1: Line 1:
 +
[[en:Coding guidelines]]
 
<p><strong><span style="font-size: 18px;">Vorlage für in phpBB3 eingebundene Seiten</span></strong></p>
 
<p><strong><span style="font-size: 18px;">Vorlage für in phpBB3 eingebundene Seiten</span></strong></p>
  

Revision as of 22:24, 26 May 2007

Vorlage für in phpBB3 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.

<?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();

/*
* 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();

?>

Anmerkungen
  • $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:
    case 'report':
    			$location = $user->lang['REPORTING_POST'];
    			$location_url = append_sid("{$phpbb_root_path}index.$phpEx");
    		break;
    
    Danach einfügen:
    case 'eure_seite':
    

    $location = 'Betrachtet "Eure Seite"'; $location_url = append_sid("{$phpbb_root_path}eure_seite.$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')

    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
    $template->set_filenames(array(
       'body' => 'eure_seite.html')
    ); 
    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
    <!-- INCLUDE overall_header.html -->
    enthalten. Um den Footer einzubinden, muss am Ende der Datei folgendes eingfügt werden:
    <!-- INCLUDE overall_footer.html -->

Prüfung der Benutzerrechte

  • Soll geprüft werden, ob ein Benutzer angemeldet ist, so ist $user->data['user_id'] zu prüfen. Also z.B.
    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:
    if ($user->data['user_id'] == ANONYMOUS)
    {
    	login_box();
    }

  • Weiterhin kann so geprüft werden, ob ein User Admin-Rechte hat:
    if ($auth->acl_get('a_'))
    {
    }

    Entsprechendes gild für Moderatoren-Rechte:

    if ($auth->acl_getf_global('m_'))
    {
    }

    Die Prüfung, ob ein User Admin oder Moderator ist, erfolgt folgendermaßen:
    if ($auth->acl_get('a_') || $auth->acl_getf_global('m_'))
    {
    }

Weitergabe der Sitzungsdaten

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
<a href="index.php">Zum Forum</a>
besser
<a href="<?php append_sid('index.php'); ?>">Zum Forum</a>
verwendet werden, wenn von einer Seite mit dieser Vorlage auf eine Foren-Seite oder auf eine andere Seite mit dieser Vorlage verwiesen wird.