AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Sinnvolle Anwendung eines Template-Systems
Thema durchsuchen
Ansicht
Themen-Optionen

Sinnvolle Anwendung eines Template-Systems

Ein Thema von Valle · begonnen am 26. Nov 2008 · letzter Beitrag vom 29. Nov 2008
Antwort Antwort
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#1

Sinnvolle Anwendung eines Template-Systems

  Alt 26. Nov 2008, 18:27
Hi DPler!

Ich bin nun mittlerweile seit einiger Zeit dabei, eine Webseite mal von Grund auf sauber zu erstellen. Ich habe schon mehrere Wochen zusammen mit einem Freund verbracht, um dies alles zu planen und die anzuwendenden Patterns zu besprechen. Nun hänge ich hier vor einem kleinen Problem, bei dem ich gerne mal eure Meinung hören möchte.

Wir haben unser Projekt nach dem MVC-Model gestaltet. Dabei haben wir die Möglichkeit, unsere Templates ähnlich zu folgendem Code aufzurufen.

Code:
$view = new View("mein_temaplte");
$view->assign("ueberschrift", "Hello World!");
$view->display();
Das hat bisher auch immer gereicht, denn wir haben noch kein Design eingebaut und bisher nur Debug-Code gehabt, um den Core zu testen. Jetzt ist es allerdings so weit, dass ich doch mal ein Design einbauen möchte und langsam aber sicher mal die 'sichtbaren' Dinge programmieren will. Dabei stellt sich jetzt bzgl. der Views ein Problem: Wie benutze ich diese, wenn ich auf jeder Seite einen Header und einen Footer haben möchte, aber auch die Wahl haben will, ob die rechte oder linke Spalte der Webseite eingeblendet werden soll? Dazu bisher erstmal folgende, sehr simple Lösung:

Code:
$view = new View("main");
$rechte_spalte = new View("rechts");
$linke_spalte = new View("links");
$content = new View("content)";
$footer = new View("footer");
$header = new View("header");

$content->assign("dies_und_das", "Der Content eben. ;-) ");

$view->assign("rechts", $rechte_spalte->display(false));
$view->assign("links", $linke_spalte->display(false));
$view->assign("footer", $footer->display(false));
$view->assign("header", $header->display(false));
$view->assign("content", $content->display(false));

$view->display();
Wie man sieht: Viel Code. Kleine Erklärung: display(false) gibt die Ausgabe des Templates nicht mit echo aus, sondern mit return zurück. display(true) oder display() hingegen benutzt echo.

Was mich daran enorm stört, ist, dass das Ganze in ein ewig Copy&Paste-Gemetzel ausarten wird. Ich habe eigentlich keine Lust für jeden Controller, erstmal diese ganzen Zeilen zu kopieren und anschließend dort reinzupasten. Jetzt frage ich mich eben: Wie mache ich das richtig? Ich will die Möglichkeit haben, verschiedene Teile des Layouts auszublenden: Footer, Header, Spalten, usw. Wie macht ihr sowas? Habt ihr da Ideen und Vorschläge?

Mit freundlichen Grüßen,

Valle
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Sinnvolle Anwendung eines Template-Systems

  Alt 26. Nov 2008, 18:45
In einer Schleife
Um welches Template-System handelt es sich?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Sinnvolle Anwendung eines Template-Systems

  Alt 26. Nov 2008, 18:49
Wohl um sein selbst entwickeltes.
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#4

Re: Sinnvolle Anwendung eines Template-Systems

  Alt 26. Nov 2008, 19:27
Zitat von mkinzler:
In einer Schleife
Aha. Toll. Könntest du das vielleicht etwas näher beschreiben?

Zitat von mkinzler:
Um welches Template-System handelt es sich?
Selbst geschrieben. Die Templates bestehen aus PHP-Dateien, deren Ausgabe via Output-Buffering aufgefangen werden. So spart man sich das Parsen der Templates.

Mit freundlichen Grüßen,

Valle
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#5

Re: Sinnvolle Anwendung eines Template-Systems

  Alt 27. Nov 2008, 14:47
Es sind zwar noch nicht so ganz 24h, aber ich hoffe, ich darf den
Thread hier trotzdem mal ein kleines bisschen nach oben drücken.

Mit freundlichen Grüßen,

Valle
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#6

Re: Sinnvolle Anwendung eines Template-Systems

  Alt 29. Nov 2008, 10:22
Mh... Ich kann mir irgendwie fast nicht vorstellen, dass es in einem Forum voller Programmierer keine Leute gibt, die auch mit derartigen Template-Systemen zutun haben. Naja, abwarten, vielleicht hilft doch noch einer.

Mit freundlichen Grüßen,

Valle
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz