mit { und } eine .php includen
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
mit { und } eine .php includen
Hi,
ich möchte gerne in einer Template Datei folgende Zeichen Verwenden:
{POS.1}
{POS.2}
usw.
Nun möchte ich gerne, dass bei {POS.1} eine bestimme .php Datei includet wird.
Der Benutzer hat über eine von mir definierte Seite die Möglichkeit {POS.1} eine beliebige Seite aus einer Auswahl zuzuweisen.
Ich hoffe mein Problem wurde verstanden und ich hoffe das mir wer weiterhelfen kann.
danke hibbert
ich möchte gerne in einer Template Datei folgende Zeichen Verwenden:
{POS.1}
{POS.2}
usw.
Nun möchte ich gerne, dass bei {POS.1} eine bestimme .php Datei includet wird.
Der Benutzer hat über eine von mir definierte Seite die Möglichkeit {POS.1} eine beliebige Seite aus einer Auswahl zuzuweisen.
Ich hoffe mein Problem wurde verstanden und ich hoffe das mir wer weiterhelfen kann.
danke hibbert
» Wer nicht fragt bleibt dumm !! «
Die einfachste Lösung wäre, wenn das Template als String eingelesen wird, ein preg_replace(), siehe: PHP-Manual.
so grob:
für Mehrere replacements müsste man dann noch etwas genauer ausarbeiten, eleganter geht das dann mit nempreg_replace
da hab ich um die Zeit aber keine Lust zu...versuch dich mal dran is ne schöne übung zu RegEx
so grob:
Code: Alles auswählen
$ergebnis = str_replace("\{pos1\}", "<? include($seite); ?>", $template);
eval($ergebnis);
Gruß
OnFire
Il y a plus des choses à changer dans l'avenir que dans le passé.
OnFire
Il y a plus des choses à changer dans l'avenir que dans le passé.
Hallo
Das phpBB 2.0.x Template-System erlaubt es Dateien einzubinden:
PHP-Code in der entsprechenden phpBB-Datei:
Und dann könntest du in der entsprechenden Templatedatei mit {BAR} die Datei dateiname.ext einbinden.
Aber: Beim normalen phpBB 2.0.x wird PHP-Code in der eingebundenen Datei nicht geparst. Du könntest aber deine template.php (Backup machen!) mit der aus dem eXtreme Styles mod 2.x ersetzten, dann würde das gehen.
Die Frage ist aber, ob man anstatt die PHP-Dateien einzubinden, das Ganze nicht über das normale Templatesystem des phpBBs hingebekommt. Was bewirkt den der Code in den PHP-Dateien die du einbinden möchtest?
Das phpBB 2.0.x Template-System erlaubt es Dateien einzubinden:
PHP-Code in der entsprechenden phpBB-Datei:
Code: Alles auswählen
$template->set_filenames(array('foo' => 'dateiname.ext'));
$template->assign_var_from_handle('BAR', 'foo');Aber: Beim normalen phpBB 2.0.x wird PHP-Code in der eingebundenen Datei nicht geparst. Du könntest aber deine template.php (Backup machen!) mit der aus dem eXtreme Styles mod 2.x ersetzten, dann würde das gehen.
Die Frage ist aber, ob man anstatt die PHP-Dateien einzubinden, das Ganze nicht über das normale Templatesystem des phpBBs hingebekommt. Was bewirkt den der Code in den PHP-Dateien die du einbinden möchtest?
Hi,
sicherlich könnte ich das normale Template System verwenden, ich wollte nur wissen, ob es evtl auch anders geht, denn so müsste ich nicht alles umschreiben
Die Dateien zeigen eigentlich nur immer was an: Shoutbox, zufallsbilder, letzten Beiträge etc....
Gibt es irgendwo ein tut, wo man selber templates für phpBB erstellen kann bzw. wie ich Templates an anderen stellen in Templates einbinden kann, Beispiel:
in der overall_header.tpl soll an einer bestimmten stelle die shoutbox.tpl eingebunden werden. Dann ist dies nun mein neues ziel, da .php Dateien nicht übersetzt werden.
ich danke schonmal für die bisherige Hilfe.
hibbert
sicherlich könnte ich das normale Template System verwenden, ich wollte nur wissen, ob es evtl auch anders geht, denn so müsste ich nicht alles umschreiben
Die Dateien zeigen eigentlich nur immer was an: Shoutbox, zufallsbilder, letzten Beiträge etc....
Gibt es irgendwo ein tut, wo man selber templates für phpBB erstellen kann bzw. wie ich Templates an anderen stellen in Templates einbinden kann, Beispiel:
in der overall_header.tpl soll an einer bestimmten stelle die shoutbox.tpl eingebunden werden. Dann ist dies nun mein neues ziel, da .php Dateien nicht übersetzt werden.
ich danke schonmal für die bisherige Hilfe.
hibbert
» Wer nicht fragt bleibt dumm !! «
Also das reine einbinden der Datei geht wie schon erklärt ganz einfach:hibbert hat geschrieben:in der overall_header.tpl soll an einer bestimmten stelle die shoutbox.tpl eingebunden werden. Dann ist dies nun mein neues ziel, da .php Dateien nicht übersetzt werden.
page_header.php
suche
Code: Alles auswählen
//
// Parse and show the overall header.
//Code: Alles auswählen
$template->set_filenames(array('shoutbox' => 'shoutbox.tpl'));
$template->assign_var_from_handle('SHOUTBOX', 'shoutbox');(siehe dazu: KB:template_syntax)
Das hat so aber gar kein Sinn, denn die Platzhalter/Template-Variablen in der shoutbox.tpl würden gar nicht ersetzt, nein, diese würden sogar entfernt und nur der reine HTML-Code aus der shoutbox.tpl würde ausgegeben. Du musst also die Platzhalter noch durch den entsprechenden Inhalt ersetzten, sprich die shoutbox.tpl ordentlich parsen. Das könntest du der Übersicht in der page_header.php wegen einfach in einer Funktion machen, die du selbst z.B. in der functions.php definierst:
Code: Alles auswählen
function shoutbox()
{
global $db, $template, $userdata, $lang, $phpEx /*, noch mehr Variablen die benötigt werden*/;
// ganz viel Code
// noch mehr Code
// Datenbankabfragen und deren Verarbeitung
// immernoch ganz viel Code
$template->set_filenames(array(
'shoutbox' => 'shoutbox.tpl')
);
$template->assign_vars(array(
'L_PLATZHALTER' => $lang['blub'],
// usw.
// usw.
'U_LINK' => append_sid('datei.' . $phpEx)
);
$template->assign_var_from_handle('SHOUTBOX', 'shoutbox');
}Code: Alles auswählen
$template->set_filenames(array('shoutbox' => 'shoutbox.tpl'));
$template->assign_var_from_handle('SHOUTBOX', 'shoutbox');Code: Alles auswählen
shoutbox();Also Beispiel kannst du dir mal die Funktion make_jumpbox in der functions.php anschauen.
Du siehst, das Ganze ist schon etwas kompliziert, aber wenn du das so machen willst, würd ich dir dabei helfen.
Hi,
man ich danke dir !!
danach habe ich gesucht, eigentlich ist es super einfach
Ich benutze deinen zweiten Vorschlag, mit dem einfachen Aufruf:
alleringd benötige ich ja die Shoutbox an einem Dynamischen Platz wie {POS1}.
Das habe ich dann folgendermaßen gelöst:
und
Jetzt habe ich mir genau das zusammengebastelt was ich brauche.
Vielen dank für deine Hilfe.
hibbert
man ich danke dir !!
danach habe ich gesucht, eigentlich ist es super einfach
Ich benutze deinen zweiten Vorschlag, mit dem einfachen Aufruf:
Code: Alles auswählen
shoutbox();Das habe ich dann folgendermaßen gelöst:
Code: Alles auswählen
shoutbox(3);Code: Alles auswählen
function shoutbox($platz)
{
global $db, $template, $userdata, $lang, $phpEx /*, noch mehr Variablen die benötigt werden*/;
// ...
$template->set_filenames(array(
'shoutbox' => 'shoutbox.tpl')
// ...
$template->assign_var_from_handle('POS'.$platz, 'shoutbox');
}Vielen dank für deine Hilfe.
hibbert
» Wer nicht fragt bleibt dumm !! «