Seite 1 von 1

Includen in phpBB2

Verfasst: 23.02.2007 11:11
von bisi
Ich habe nun knappe 2 Tage in Foren gesucht und probiert/getestet/evaluiert aber bin zu keinem Ergebnis gekommen.

Es geht um folgenden Punkt:

Es ist so, dass ich diverse Elemente aus unserer Seite im Design von phpBB includen möchten (Die Hauptseite besteht aus mehreren Designstücken die nach und nach Includet werden, da dies sehr dynamisch ist, mit erstellen von Menüs abhängig von Rechten und DB einträgen). Ich habe bereits http://www.phpbb.de/doku/kb/artikel.php?artikel=13 probiert, und es funktionierte nicht. Keine Ausgabe. Wenn ich meine menulinks.php in einer normalen Datei inlcude klappts. Per Implode() func. gehts im Template nicht, trotz richtiger implementierung in page_header.php und overall_template.tpl ( {WHAT_INCLUDE} ).

Ich weiß leider nicht woran es liegt. Die menulinks.php ist eine Datei die ein Menü dynamisch generiert (PHP Code mit Abfrage der Rechte - DB - und einträge) nur wird das Menü leider nicht includet.

Das includen der index.php vom Forum klappt ja eh nicht (warum auch immer). Aber das includen meiner PHP Dateien mit Designelementen in phpBB auch nicht.

Hat jemand so ein ähnliches Problem?

P.S.: Ich habe diese Varianten probiert:

1. page_header.php & overall_template.tpl

Code: Alles auswählen

ob_start();
include("../menulinks.php");
$menulinksanzeige = ob_get_contents(); 
ob_end_clean(); 
..
..
   'WHAT_INCLUDE' => $menulinksanzeige,
2. page_header.php & overall_template.tpl

Code: Alles auswählen

'WHAT_INCLUDE' => implode('',file('http://www.meineurl.de/menulinks.php')),
und auch das PHP Template Modul wo man PHP Code in .tpl ausführen kann.

Hoffe mir kann noch einer Tips geben.

MfG bisi

Verfasst: 23.02.2007 12:11
von easygo
Zu 1) Versuch das "Includen" mal mit ner absoluten Pfadangabe.

Also dein_document_root/menulinks.php

Verfasst: 24.02.2007 01:08
von gn#36
Prinzipiell sollten beide Versionen funktionieren, zumindest sofern ob_start() in der Datei nicht auch verwendet wird. Vielleicht hast du diesen Code aber an der falschen Stelle eingebaut? Wenn du ihn zu spät einbaust, dann ist die Ausgabe schon erfolgt und eine Zuweisung an das Template macht keinen Sinn mehr. Wichtig ist auch dass du die Zuweisung nicht in eine Zuweisung an einen Block eingebaut hast da die Variable sonst eben nur in diesem Block zur Verfügung steht. Eine relative Pfadangabe beim include stört nicht (das ist sogar genau das, was im phpBB Forum gemacht wird, $phpbb_root_path bezieht sich immer auf die relative Position des Root-Levels des Forums im Bezug auf die Position des aktuellen Files). Die Datei muss natürlich an der entsprechenden Position dann auch sein, wenn nicht gibt's aber eine Warning.

Verfasst: 24.02.2007 17:01
von easygo
Hm, falsche Stelle hab ich hier von vornherein mal ausgeschlossen,
weil sonst hätte er das Assign nicht so druntergesetzt, oder?

Zu absolute path: Hat hier und da schon Wunder gewirkt und darum
schließ ich die Variante bei der Fehlersuche immer mit ein.

Bei implode leg ich mich aber erst fest, wenn ich den Code kenne..
weil die Funktionsweise schon auch abhängig von der Content Ausgabe
der Variablen ist, mein ich. Soll heißen, mit echo geht da nix.

Verfasst: 24.02.2007 18:29
von Miriam
Ohne den Code zu kennen, rate ich einfach mal:

<rate>Es liegt an der DB Abfrage.</rate>