PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : include im template


malawi
28.03.2004, 14:18:01
Hi,

ich habe folgendes Problem:

in einem Template habe ich einen Platzhalter {STATUS}. Diesen will ich in meinem main.php ersetzen, aber nicht durch eine Variable oder einen String, sondern durch die Ausgabe von status.php. Versuche ich das mit "include", wird die Ausgabe von status.php zwar ausgegeben, aber nicht an der Stelle von {STATUS} sondern ganz am Anfang des erzeugten HTML-Dokumentes.

Wer weiss Rat? Ich verzweifele langsam...

main.tpl
<HTML>
...
<BODY>
1. Zeile
{STATUS}
2. Zeile
</BODY>
</HTML>


main.php

<?php
...
$tpl -> assign_template("STATUS", include('status.php'));
$tpl -> print_template();
...
?>


status.php

<?php
print "Statuszeile";
?>


Ausgabe:

Statuszeile
Zeile 1
Zeile 2

meikel
28.03.2004, 15:30:01
Original geschrieben von malawi
in einem Template habe ich einen Platzhalter {STATUS}. Diesen will ich in meinem main.php ersetzen, aber nicht durch eine Variable oder einen String, sondern durch die Ausgabe von status.php. Versuche ich das mit "include", wird die Ausgabe von status.php zwar ausgegeben, aber nicht an der Stelle von {STATUS} sondern ganz am Anfang des erzeugten HTML-Dokumentes.
Das ist falsch, weil es bei Deinem Templatesystem nur eine einzige print/echo Anweisung geben darf, bei der all das ausgegeben wird,
was der Klasse vorher per $klasse->assign(Platzhalter, Inhalt) bekannt gemacht wurde. Dein status.php darf nicht printen sondern muß das, was ausgegeben wird, als String übergeben.

# ...
include('status.php');
$tpl -> assign_template("STATUS", $ausgabe_von_status);
...