Frage zu Templatetutorial

xtratz

Gesperrt
Hallo Leute,

ich habe hier ein Tutorial zur verwendung von Templates gesehen und es gleich ausprobiert.
Eigentlich funktioniert es wunderbar.

Allerdings wenn ich für den Platzhalter ein include festlegen möchte dann erscheint bei mir in der HTML Ausgabe grundsätzlich eine 1.
Ich möchte z.b. eine externe php Datei implementieren z.b. eine NAvigation die ich vorher erstellt habe damit ich diese nicht in jeder Datei einzeln einfügen muss.

Hier mal der Code wo das Template aufgerufen wird.

PHP:
   $navigation = require('inc/boxen/navigation.php');


//jetzt der Aufruf, wo das Template geholt wird und die Platzhalter ersetzt werden.
  eval("dooutput(\"".gettemplate("templates/".$template."/index")."\");");

Für eure hilfe wäre ich sehr dankbar.
Gruss
 
Also ich habs jetzt mal anders versucht.
So ist es sogar noch besser,allerdings kann ich so keine externen Inhalte einbinden.

Sobald ich per include eine Datei einbinde erscheint immer eine 1 hinter dem Inhalt.

Weis einer an was des liegen kann.

PHP:
<?

$externe_datei = include('navigation.php');
$tpl = str_replace('{test}', $externe_datei, file_get_contents("templates/index.html")); 

echo $tpl 


?>

DAnke und Gruss
 
Zuletzt bearbeitet:
Probier die Datei mal so in die Variable zu bekommen.
PHP:
$externe_datei = implode('',file('navigation.php'));

und dann
PHP:
eval('$text = $text;');
echo $text;
 
Eine andere Möglichkeit wäre, dass du alle Ausgaben der navigator.php in eine Variable speicherst und diese dann nimmst zum ersetzen.
 
Ja das hab ich auch schon versucht.
Aber sobald der Inhalt der externen Datei in php geschrieben ist seh ich nix mehr.
sonst funktionierts ja.

Komisch komisch.
 
1. Die Datei navigator.php includen.
PHP:
include('navigator.php');
2. Alle ausgaben in der naviagtor.php in einer Vaiable speichern (z.B.: $ausgabe)
Bei der 1. Ausgabe musst du $ausgabe = CODE nehemn. bei der 2. Dann $ausgabe .= CODE.
Oder du schreibst am Anfang von Code $ausgabe = ""; und verwendest dann überall $ausgabe .= CODE
3. Platzhalter ersetzen.
PHP:
$tpl = str_replace('{test}', $ausgabe, file_get_contents("templates/index.html"));

klappt das so nicht?
 
Was genau meinst du mit "externer Datei", anderer Server, anderer Ordner? Was sieht man dann nicht mehr?
 
Zurück