Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > Offtopic > Gesuche > Generierung der Inhalte durch das Template
Antwort
 
Themen-Optionen
Alt 11.06.2007, 00:51   Nach oben    #1
Erfahrener Benutzer
 
Registriert seit: 17.11.2005
Ort: Rheinland-Pfalz, Osthofen
Beiträge: 122
Standard Generierung der Inhalte durch das Template

Hallo

ich bin gerade an einer TemplateEngine dran und wollte fragen ob etwas in die Richtung bereits im Web zu finden ist.

Nun, das Prinzip beim arbeiten mit Templates ist meist folgender. Man holt sich die Daten aus der Datenbank und bereitet diese für das Tempalte vor. Am Schluss werden dann die Informationen in das Template eingearbeitet.

Was mich interessiert, ob ihr Projekte (Scripte) kennt, wo das ganze anders funktioniert. Nämlich vom Template aus. Es wird zuerst das Template geholt. Und dann, durch das Template initiiert, werden die benötigten Inhalte beschafft/generiert.

Also es werden die Informationen nicht vorher bereitgestellt, sondern erst wenn diese benötigt werden (durch einen Template-Eintrag) bereitgestellt.

Kennt ihr sowas?
dago ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.06.2007, 08:40   Nach oben    #2
Master of Disaster
 
Benutzerbild von Matthias959
 
Registriert seit: 18.08.2005
Ort: Duisburg
Beiträge: 36
Standard

Bei Smarty gibt es das beispielsweise.
Dort kann man mittels {include 'file.php'} eine Datei im Template includen. Wenn man das ganze dann dynamischer haben möchte, dann bietet sich auch ein {include $file} also via Variable an.

Allerdings solltest du dir dann nochmal überlegen, ob das noch sinn macht, da ein Template doch eigentlich Code und Design trennen soll. Dies wäre dann nicht mehr gegeben.
__________________
Matthias959 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.06.2007, 11:07   Nach oben    #3
Erfahrener Benutzer
 
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 789
Standard

Zitat:
Zitat von Matthias959 Beitrag anzeigen
Allerdings solltest du dir dann nochmal überlegen, ob das noch sinn macht, da ein Template doch eigentlich Code und Design trennen soll. Dies wäre dann nicht mehr gegeben.
Nein, die Trennung zwischen Geschäfts- und Darstellungslogik wäre so durchaus gegeben. Dass die Templates ausschließlich Lese-Zugriff hätten, wäre ja eh klar (denke ich mal).

Das klassische MVC-Muster funktioniert ja auch genau so. Das Prinzip ist ja, dass du zunächst je nach Request einen bestimmten Controller aufrufst, dort ggf. Daten bearbeitest (z.B. ein Formular verarbeitest) und entscheidest, welche View angezeigt werden soll. Diese View wird dann eingebunden und holt sich die Inhalte selbst aus z.B. der Datenbank (bzw. im aktiven Modell wird diese von der Model-Schicht über Änderungen z.B. via Observer informiert).

Das Problem dabei im Kontext von HTTP-Anwendungen ist nun, dass du da unglaubliche Redundanzen einbaust, wenn du so vorgehst. Zunächst musst du im Controller z.B. herausfinden, ob ein Reuqest auf ein gültiges Datenobjekt verweist, z.B. ob die angefragte Seite existiert und gelesen werden darf. Damit hast du die Seite schonmal eingelesen und es wäre ein Leichtes, diese nun in die View zu setzen. Wenn du diesen Schritt aber auslässt, dann wird die View im ungünstigsten Fall nochmal die Datenbank nach der angefragten Site anfragen, im günstigeren Fall speicherst du die Daten irgendwo zwischen und der einfachste aller Fälle ist eben, diese daten direkt in der View zwischenzuspeichern, also das klassische:
PHP-Code:
class Controller_Page_display extends Controller
{
    public function 
execute()
    {

        
$Page Page::get($this->Request->get('page'));

        if (!
is_null($Page)) {

            
$View = new View('page_display');
            
$View->assign('page'$Page);

        } else {

            
$View = new View('error_404');
        }

        return 
$View;
    }

Weitere Überlegungen sind, wie viele Kompetenzen du deinen Template-Designern zusprichst undauf der anderen Seite abverlangst. Wenn du im Controller definierst, welche Daten der Designer verwursten kann, dann kann der sich diese genau anzeigen lassen. Wenn nicht, dann muss er genau wissen, wie er sich die Daten woher holen muss. Kommen sie aus der Session? Oder aus der Persistenz-Schicht? Oder direkt aus dem Request (fehlerhaftes Formular)? Und, du kannst eben nicht so eben eingrenzen, welche Daten er auslesen darf. Wo siedelst du da die Zugriffskontrolle an?

Basti
Basti ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.06.2007, 12:20   Nach oben    #4
Erfahrener Benutzer
 
Registriert seit: 17.11.2005
Ort: Rheinland-Pfalz, Osthofen
Beiträge: 122
Standard

Ich mach dazu ein kleines Bespiel, wie ich das vorstelle.
Code:
<body>

<h1><mdl:galery.title /></h1>

<table>
<mdl:gallery.images>
    <tr><td><mdl:gallery.images.next /></td>  <td><mdl:gallery.images.next /></td></tr>
</mdl:gallery.images>
</table>

</body>
So in etwas könnte das aussehen. Oben wird der Titel der Galerie eingefügt und unten die Bilder in eine Tabelle eingearbeitet.
Bei Gallery handelt es sich um einen Modul der über eine Schnittstelle angesprochen wird.

Zitat:
Zitat von Basti
Weitere Überlegungen sind, wie viele Kompetenzen du deinen Template-Designern zusprichst und auf der anderen Seite abverlangst.
Sicherlich wird ein Template-Designer dabei eng mit dem Manual arbeiten müssen. Aber es ergeben sich ein paar Vorteile dadurch. Der Template-Designer kann selbst entscheiden, was für Informationen auf der Seite verfügbar sind. Er kann Inhalte weglassen, diese werden dann auch nicht beschaft/generiert. Er kann aber auch leicht neue Inhalte einpflegen, ohne dabei vom Programmierer abhängig zu sein.

Der Designer kann dann wirklich das tun, was der Name schon sagt, designen. Und nicht das Aussehen anpassen. Da erwarte ich schon, dass er etwas Kompetenz mitbringt, sonst hat er auch nichts im HTML-Code zu suchen. Der soll dann bei Erstellung der Photoshopdateien bleiben.


Ich denke, wenn ich fertig bin, stelle ich das Projekt hier vor. Am besten mit einem Beispiel. Die Frage um die es sich eigentlich dreht ist, ob schon etwas in die Richtung gibt. Da es bereits viele Template-Engines oder Klasse gibt, würde ich ungern ein überflüssiges zusätzliches Projekt ins Leben rufen. Bin da noch nicht fündig geworden.
dago ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.06.2007, 12:42   Nach oben    #5
Erfahrener Benutzer
 
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 789
Standard

Zitat:
Zitat von dago Beitrag anzeigen
Ich mach dazu ein kleines Bespiel, wie ich das vorstelle.
Code:
<body>

<h1><mdl:galery.title /></h1>

<table>
<mdl:gallery.images>
    <tr><td><mdl:gallery.images.next /></td>  <td><mdl:gallery.images.next /></td></tr>
</mdl:gallery.images>
</table>

</body>
So in etwas könnte das aussehen. Oben wird der Titel der Galerie eingefügt und unten die Bilder in eine Tabelle eingearbeitet.
Bei Gallery handelt es sich um einen Modul der über eine Schnittstelle angesprochen wird.
Schon klar. Klassisches Pull-Prinzip. Das Problem ist ja aber eben, dass du vorher im Controller schon mal gecheckt haben musst, ob die Gallerie überhaupt funktioniert etc. Andernfalls wäre ein Template je kein guter Ort, um auf fehlerhafte Eingaben zu reagieren. Gerade, wenn es um Formularverarbeitung geht hast du dann ganz schnell wieder diesere ätzenden PageController/Gechäftslogik-im-Template/Affenformular-Geschichten im Code!

Zitat:
Zitat:
Zitat von Basti
Weitere Überlegungen sind, wie viele Kompetenzen du deinen Template-Designern zusprichst und auf der anderen Seite abverlangst.
Sicherlich wird ein Template-Designer dabei eng mit dem Manual arbeiten müssen. Aber es ergeben sich ein paar Vorteile dadurch. Der Template-Designer kann selbst entscheiden, was für Informationen auf der Seite verfügbar sind. Er kann Inhalte weglassen, diese werden dann auch nicht beschaft/generiert. Er kann aber auch leicht neue Inhalte einpflegen, ohne dabei vom Programmierer abhängig zu sein.
Das ist ein großer Vorteil, keine Frage. Die Frage ist nur, ob er wirklich überwiegt.

Zitat:
Der Designer kann dann wirklich das tun, was der Name schon sagt, designen. Und nicht das Aussehen anpassen.
Designen heißt nicht zu entscheiden, welche Inhalte dargestellt werden sollen, nur wie die Inhalte dargestellt werden sollen!

Zitat:
Da erwarte ich schon, dass er etwas Kompetenz mitbringt, sonst hat er auch nichts im HTML-Code zu suchen. Der soll dann bei Erstellung der Photoshopdateien bleiben.
"Etwas Kompetenz" ist aber ziemlich querch ausgedrückt. Ich erlebe Designer mit sehr viel Kompetenz. Aber den gleichen Designern brauchst du nichts von Sessions, Requests oder Datenbanken erzählen! Es gibt ja schon genug Designer, die mit reinem HTML schon mal gar nichts anfangen können. Dann welche zu finden, die Smarty beherrschen ist gerade noch möglich (wobei ich vermute, dass auch diese Designer hauptsächlich das im Team machen), aber das hier ist nochmal ein ganz anderer Schuh!

Ist ja auch nicht die Diskussion. Ich will damit nur sagen, dass es einen riesigen Unterschied ausmachst, ob du jemandem sagst: Hier, gestalte diese 5 Elemente ordentlich, oder ob du sagst: Hier ist das Lager, hier der Plan, schau mal, was du da findest, was taugen könnte und gestalte das dann nett.

Zitat:
Die Frage um die es sich eigentlich dreht ist, ob schon etwas in die Richtung gibt. Da es bereits viele Template-Engines oder Klasse gibt, würde ich ungern ein überflüssiges zusätzliches Projekt ins Leben rufen. Bin da noch nicht fündig geworden.
WACT verwendet zum Teil pull-Techniken. Ansonsten fällt mir nichts ein. Ich denke, dass sich Smarty-Modifier für sowas auch einsetzen lassen - vielleicht gibts da aber auch noch elegantere Möglichkeiten.

Basti
Basti ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.06.2007, 13:20   Nach oben    #6
Erfahrener Benutzer
 
Registriert seit: 17.11.2005
Ort: Rheinland-Pfalz, Osthofen
Beiträge: 122
Standard

Zitat:
Zitat von Basti
Designen heißt nicht zu entscheiden, welche Inhalte dargestellt werden sollen, nur wie die Inhalte dargestellt werden sollen!
Einer einzelnen Seite, ja! Aber nicht der kompletter Website. Da gehört wo und auf welcher Seite welche Inhalte dargestellt werden sollen zum designen dazu. Ich hab zwei Freunde, die das Designen studiert haben. Daher weiß ich, dass zum designen nicht nur das erstellen des Aussehens gehört.
Beispielsweise beim designen einer Küche bedarf es mehr als nur das erstellen einer schönen Farbenkombination oder anordnen der Schränke. Man muss sich mit den einzelnen Geräten beschäftigen. Es muss nicht nur schön anzuschauen sein, sondern auch bequem beim Kochen sein. Alles Griffbereit. Beim designen wird jede Kleinigkeit berücksichtig.
Das sollte bei Website auch so sein. Leider gibt es viele sogenannte Designer, die eigentlich höchstens als Grafiker durchgehen können. (Falls die das gut können.)

Aber ich denke, es muss sowieso eine dritte Person da sein, die sich mit HTML und CSS (auch evtl. JavaScript, Flash, ...) auskennt.

Nun gut, dies sollte aber eigentlich nicht das Thema dieses Theards sein. Zum weiteren Punkten habe ich mir auch Gedanken gemacht. Selbstverständlich muss die Auswertung des Formulars nicht im Template geschehen. Allerdings muss im Template definiert werden, wie das Ergebnis dargestellt werden soll. Ich denke dazu schreibe ich dann ein anderes mal mehr.


Zitat:
Zitat von Basti
WACT verwendet zum Teil pull-Techniken.
Danke! Das schaue ich mir mal an.
dago ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Schleifenproblem bei Template RisingWar PHP-Programmierung 4 28.08.2007 22:46
Kleine Fragen zur IT[X] Template Engine ex³ PEAR, PECL und Frameworks 0 18.07.2006 14:00
Kleines Prob mit phpBB Template System Garnele PEAR, PECL und Frameworks 6 22.10.2005 00:31
[PHP] Ein einfaches Template-System MrNiceGuy Tutorials 0 09.10.2005 18:30


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:07 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0) und vBSEO.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44