Buch gesucht, OOP / Templates

Dass ich keine Templates für mein nächstes Projekt anwenden will, heißt ja nicht, dass ich das nie machen werde. Ich will es lernen, halte es aber bei dem Projekt nicht für sinnvoll.

Klar, PHP-Code und HTML-Code sind nicht von einander getrennt, aber es ist trotzdem übersichtlich, da ja nur ein einziger PHP-Befehl in der Datei steht. In der index.php ist das Design, die paar Includes machen den Inhalt, natürlich wird der Inhalt da auch per CSS / HTML formatiert, jedoch halte ich das nicht für komplizierter.

Ich konnte nach wie vor noch keinen entscheidenden Vorteil an Templates für mein anstehendes Projekt finden. Für Forensysteme oder richtige CMS-Systeme ist das sicherlich sinnvoll, dem User "zuliebe", jedoch kann ich in Templates für mein geplantes "Mini-CMS" keine große Erleichterung finden, insofern werde ich mich wahrscheinlich bei diesem Projekt dagegen entscheiden. Trotzdem habe ich aber vor, zu lernen, mit Templates zu arbeiten, um es in späteren Arbeiten anzuwenden.

Ich denke, für mein erstes Projekt gleich Templates anzuwenden, von denen ich bisher noch kaum verstehe, wie ich diese anwenden soll (abgesehen von der "Hallo {bla}"-Variante), ist doch vielleicht ein wenig zu hoch zugriffen.

Wenn ich es jedoch schaffe, mir in den nächsten 2 Wochen genug Wissen über Templates anzueignen, werde ich es durchaus in Betracht ziehen, diese auch zu nutzen, jedoch ist derzeit noch viel zu viel unklar, deswegen hätte ich gerne ein Buch (eBooks sind für mich lange nicht dasselbe).

Ich verstehe z.B nicht, wie ich folgendes regeln könnte: Ich habe in der Template-Datei ein Formular, wie kann ich dieses Formular überhaupt auswerten? Wenn es in der Template-Datei steht? Solche Sachen sind mir im Moment vollkommen unklar, was wohl nicht zuletzt auch der Grund dafür ist, dass ich mich noch weigere, Templates in Betracht zu ziehen, als Feature meines "Mini-CMS"s.

P.S.: Die Dokumentation von Smarty hilft mir relativ wenig. Auch viele Tutorials über Templates, die ich mir schon angeschaut haben, ergaben keinen großen Lernerfolg, weil ich einfach viel zu wenig verstehe. Ich habe das Gefühl, noch kein "Basis"-Wissen-Tutorial gefunden zu haben, ich will ein Buch :/
 
Ich verstehe z.B nicht, wie ich folgendes regeln könnte: Ich habe in der Template-Datei ein Formular, wie kann ich dieses Formular überhaupt auswerten? Wenn es in der Template-Datei steht? Solche Sachen sind mir im Moment vollkommen unklar, was wohl nicht zuletzt auch der Grund dafür ist, dass ich mich noch weigere, Templates in Betracht zu ziehen, als Feature meines "Mini-CMS"s.

Grundsätzlich genauso wie ein Formular, das mittels echo "generiert" wird. Im Anhang ist ein PDF, das den Sachverhalt vielleicht etwas klärt.
 

Anhänge

Oha, das sieht doch schon viel besser aus. So langsam verstehe ich die Funktionsweise von Templates (auch wenns dumm klingt :)).

Nun..ich werde mich wohl entscheiden, Templates einzusetzen, erscheint mir doch nur als vernünftig, jetzt habe ich allerdings folgendes Problem. Meine bisherigen Tests (Templates) habe ich mit Smarty gemacht, wenn ich nun aber mein Mini-CMS auf einem Server ohne Smarty laden möchte, funktioniert das alles ja nicht mehr.

Gibt es eine Möglichkeit, von Smarty wegzukommen oder muss ich das überhaupt?
 
Noch eine spezielle Frage: wie wäre folgendes mit Templates umzusetzen:

Man hat ein ganz normales Gästebuch, was, solange Datensätze da sind, diese untereinander anzeigt.

Nun kann ich mit Templates die Anzeige der Einträge bauen, aber wie kann ich dann bestimmen, wie oft diese da sein soll? Sorry, wenns etwas undeutlich ist.

Ähnliche Frage: wenn ich ein Select habe mit Einträgen, die PHP generiert, sieht das im Template so aus:
Code:
<select [..]>{$options}</select>
oder so?
Code:
<select [..]><option name="{$options_name}">{$options_value}</option></select>

Bei letzterm stellt sich die gleiche Frage, wie bei dem Gästebuch. Wenn ich per Template die Select-Liste definiert habe und auch ein Options-Feld, wie kann ich dann per PHP bestimmen, wieviele Optionen es gibt?

Hm..habs versuch, 1. geht wenn man dann in PHP (Templates, Smarty) z.B. folgendes schreibt:
Code:
$template->assign('OPTIONS', '<option></option><option></option>');
Also alle Options auflistet, ich schätze, das geht beim GB dann genauso?
 
Zuletzt bearbeitet:
Hat sich geklärt.

Für mich ist jetzt nur noch wichtig zu wissen, wie das mit Smarty ist.

Gibt es eine Alternative? Bzw. kann ich Smarty einsetzen? Was passiert, wenn auf einem Server Smarty nicht drauf ist, dann läuft mein CMS nicht?

Da tappe ich derzeit noch komplett im Dunklen.
 
Zu Smarty: Du musst Smarty selber herunterladen bzw. auf den Server aufspielen. Tust du das nicht wird dein Script zwangsläufig nicht laufen ;-)
Du kannst es hier herunterladen: http://smarty.php.net/
Alternativen gibts es durchaus: ezComponents hat eine Template klasse, das Zend Framework (mit Zend_View) und generell eigentlich jedes gute Framework. Mit ein bisschen Suchen findest du aber auch kleinere (vielleicht schnellere) Klassen, die nicht so bekannt sind.

Zu Template Engines: Ich halte sie allgemein für überflüssig. Es spricht nichts gegen PHP in HTML, weil PHP ansich schon eine Templatesprache ist. Außerdem ist es hundert mal schneller als es mit Smarty "übersetzen" zu lassen.
Im Grunde geht es nicht darum, PHP von HTML zu trennen, sondern die Applikationslogik von der Darstellungslogik (siehe dazu MVC)
 
Kann man denn auf jeden Server Smarty installieren?

So habe ich auch gedacht, allerdings sind Templates durchaus nicht unpraktisch. Ich bin mir nicht sicher, da ich noch nicht viel damit gemacht habe, aber es scheint mir durchaus als eine Erleichterung und Vereinfacherung beim Programmieren.

Langsamer? Wie meinst du das? Es dauert länger, bis die Seite aufbaut oder wie?
 
Zuletzt bearbeitet:
Bei kleinen Seiten wird die Behäbigkeit von Smarty durch den Cache meiner Meinung nach ersetzt (es sei denn man hat Zugriff auf ein weiteres Cache System).

Und ja, so ziemlich jeder Server mit PHP kann auch Smarty laufen lassen.

Nils hat mal in seinem Blog dazu etwas erwähnt.
Mal wieder ein Tooltip von Tim.
 
HS-Template klingt ja nicht schlecht, jedoch verstehe ich die Funktion getDisplay() nicht.

Instantiate the HSTemplateDisplay object

// index page
$DisplayIndex = & $HSTemplate->getDisplay('index');
Kann mir das jemand erklären? :/

Bin ja noch neu auf dem Gebiet =)
 
gibt es keine Dukumentation des Template Systems?

Nutze doch keine Engine wenn du noch gar nicht auf dem Level dafür bist.
Naja deine Sache....
 
Zurück