FastTemplate und TemplatePower Fragen

Naaabend Gemeinde !

kennt sich jemand mit der Template Klasste ‚TemplatePower’ aus ? Bin mit verschachtelten bzw. modularen Blöcken (sprich ein Template im Template) wohl an die Grenzen von FastTemplate gekommen was sonst wirklich super war. Denn bei TemplatePower gestaltet es sich schwierig wenn ein Template aus mehreren Templatedateien besteht.

Solange ich ein einziges Template habe passt alles, aber sobald es mehrere werden scheint mir die Handhabung ganz schön aufwändig.

kleine Beispiel : Ich habe ein PHP Script welches aus 3 Templates besteht :

- header.tpl (enthält Einbindung von CSS, Doctype etc)
- body.tpl (enthält dann bsp. Datensätze aus der DB)
- foter.tpl (enthält schliessende Tags wie </body></html>

Bei FastTemplate ließ sich das recht einfach lösen

PHP:
$tpl->define(array("head"  => "header.tpl"));	
$tpl->define(array("main"  => "body.tpl"));	
$tpl->define(array("foot"  => "footer.tpl"));

An der Stelle wo ich meinte den Header ausgeben zu müssen, stand dann einfach

PHP:
$tpl->parse("ausgabeHead", "head");	
$tpl->FastPrint("ausgabeHead");

Bei TemplatePower, bläht sich der Quellcode irgendwie so unnötig auf. Das obige Beispiel schaut dann so aus :

PHP:
$tpl_head->define(array("head"  => "header.tpl"));	
$tpl_main->define(array("main"  => "body.tpl"));	
$tpl_foot->define(array("foot"  => "footer.tpl"));

Dann ein Teil der nötig ist damit das Script Zuweisungen ausführen kann (auch wieder für JEDES Template)

PHP:
$tpl_head->prepare();
$tpl_body->prepare();
$tpl_foot->prepare();

und dann noch an der Stelle wo es ausgeführt werden soll jeweils

PHP:
$tpl_head->printToScreen();
$tpl_body->printToScreen();
$tpl_foot->printToScreen();


Es wäre doch einfacher wenn man nur ein $tpl hätte und dann jeweils den gewünschten Teil in die Klammern setzen könnte. So zum Beispiel :

PHP:
$tpl->define(array("head"  => "header.tpl"));	
$tpl->define(array("main"  => "body.tpl"));	
$tpl->define(array("foot"  => "footer.tpl"));

und dann das gewünschte Template ausgeben

PHP:
$tpl ->prepare( „header“);
$tpl ->printToScreen( “header” );

Sooo, alle Klarheiten beseitigt ? Geht mir einfach nur darum ob jemand ne Möglichkeit kennt das ganze via TemplatePower etwas kürzer zu halten, ähnlich wie bei FastTemplate ooooder aber ob jemand ne Möglichkeit kennt einen verschachtelten/modularen Aufbau von Seiten via FastTemplate zu realisieren. Das war halt der Hauptgrund warum ich mich nach anderen Template Klassen umgesehen habe
 
Du könntest per [phpf]file_get_contents[/phpf] einfach alle Inhalte der Dateien auslesen und dann als eine zusammenfügen.

Weiß nur nicht ob TemplatePower auch eine Variable statt einer Datei annimmt, aber das wäre eine Möglichkeit...

Ansonsten kann ich immer nur Smarty[1] empfehlen ;)

[1] http://smarty.php.net
 
Aber bei Smarty fällt mir ein, ist es dort möglich zum einen verschatelte Templates aufzubauen. Also Quasi ein Script im Script ohne das ich dazu iframe benötige und wenn ja, lassen sich dann scripte aus einem includierten Script auch im Hauptscript nutzen ?

Kleine Beisppiel – habe auf einer Startseite ein Eingabefeld was ein Suchscript füttert. Bisher war es so das ich im Contenbereich dann ein iframe hatte der nur angezeigt wurde wenn das Formular versendet wurde. Gleichzeitig wurde dann als iframe Quelle zum einen der Link zum Suchscript angegeben als auch der Suchstring. Aber iframes sind halt keine elegante Lösung der Sache also wollte ich die Seite modular aufbauen.

Bei FastTemplate scheint es nicht zu gehen ein Script im Script laufen zu lassen. Bis gestern fand ich bei TemplatePower würde es gehen – allerdings Fehlanzeige.

Solange ich nur Datenbankeinträge auslese, in ein Template parse und dann im Hauptsctipt zurückgebe ist es kein Problem. Problematisch wird es dann bei Variablenübergaben. Wie eben bei der Suchfunktion. Das selbe gilt allerdings auch für Formulare etc.

Weißt Du ob Smarty da ne Lösung anbietet ?
 
$_GET ist da wie schon in deinem Letzten Beitrag

http://www.tutorials.de/forum/php/269197-frage-zur-strukturierung-aufbau-von-dynamischen-seiten.html

Eine tolle möglichkeit. Über Switch kannst dann verschiedene Seiten includen (daraus gehe ich auch ein ...) und so kannst dein Suchscript ganz nett includen und deine Suche dann auf

index.php?search=suchbegriff

Oder so laufen lassen. Im Content kannst dann prüfen ob $_GET gefüllt ist (ein Beispiel im eltzten Beitrag von dir! ) und kannst dann dort dein Script nach dem includen ausführen lassen -.- kein IFrame und kein garnichts ... do konnst des don seng ...

http://thekiller.th.funpic.de/manmanman/
Ist ein Template mit verschienden includeten PHP Seiten
 
Zurück