Seite 1 von 1
PHP Code in .tpl einfügen?
Verfasst: 19.11.2008 12:48
von jolle-pe
Hallo,
ich arbeite grade ein kleines Hack für mein PHPBB aus.
Ich möchte gerne ein PHP-Code in das template overall_header.tpl reinsetzen. Aber dürfte eigentlich nicht funktionieren.
Wie könnte ich denn das umgehen?
In den Header Bereich soll ein Random-Pic rein.
Bitte um hilfe
Gruß
Julian
Verfasst: 19.11.2008 16:49
von gn#36
PHP Code stattdessen in die includes/page_header.php und dann per KB:template_syntax statt echos eben eine Ausgabe im Template erzeugen (also Template Variable befüllen und im Template an der gewünschten Stelle einfügen).
Verfasst: 19.11.2008 17:13
von jolle-pe
bin nicht so der spezi:
Code: Alles auswählen
//Bilder-Hack
$template=>assign_var('Bilder',
$ordner = "./images/headerpic";
$handle = opendir($ordner);
while ($file = readdir ($handle)) {
if($file != "." && $file != "..") {
if(is_dir($ordner."/".$file)) {
echo "/".$file."<br/>";
} else {
$ordner_inhalt[] = $ordner."/".$file;
}
}
}
closedir($handle);
$max_files = count($ordner_inhalt);
$datei1 = rand(0, $max_files-1);
$datei2 = rand(0, $max_files-1);
$datei3 = rand(0, $max_files-1);
$datei4 = rand(0, $max_files-1);
$datei1 = $ordner_inhalt[$datei1];
$datei2 = $ordner_inhalt[$datei2];
$datei3 = $ordner_inhalt[$datei3];
$datei4 = $ordner_inhalt[$datei4];
echo"
<img width=\"100\" height=\"100\" src=\"$datei1\" alt=\"\" />
<img width=\"100\" height=\"100\" src=\"$datei2\" alt=\"\" />
<img width=\"100\" height=\"100\" src=\"$datei3\" alt=\"\" />
<img width=\"100\" height=\"100\" src=\"$datei4\" alt=\"\" />
";);
Das ist mein Code, aber irgendwie will das alles nicht so hinhauen
Wo liegt mein fehler?
Verfasst: 19.11.2008 17:46
von gn#36
So geht das nicht...
Du kannst PHP Befehle nicht beliebig schachteln.
Im Prinzip geht das bei den meisten Skripten in etwa so:
- Erstelle eine neue Variable die es noch nicht in dem Skript gibt (ich nehme meist $text) und erstelle diese als String völlig leer:
- Platziere diese Variable vor deinem neu eingefügtem Code.
- Ersetze jedes Vorkommen von "echo" im Code durch "$text .= "
- Erstelle am Ende des Skriptes die Template Zuordnung:
Code: Alles auswählen
$template->assign_var('TEMPLATE_VARIABLENNAME_OHNE_GESCHWEIFTE_KLAMMERN', $text);
Das Funktioniert nur dann nicht, wenn entweder Funktionen oder Variablen im Code vorkommen, die in phpBB "reserviert" sind, als für andere Zwecke benutzt werden. Ist bei diesem Skript aber nicht der Fall.
Verfasst: 19.11.2008 20:19
von jolle-pe
Allerbesten Dank!
Funktioniert jetzt so wie ich mir das vorgestellt habe.
Schönen abend noch
Gruß
Julian