WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik



Im Homepage und Webhosting-Forum --- tutorials für templates

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.

Forum » PHP & MySQL » tutorials für templates - 22 Dez 2024 Antworten
tutorials für templates
[SpecFor]crusher
Otto-Normal-Poster
Threadstarter




Beiträge: 97

hiho ich steige nun so allmählich in die php programmierung ein und wollt mal wissen wie das mit Templates so geht...
zum beispiel was es sich so mit den geschweiften klammern auf sich hat, etc.

das 2. hat sich erledigt =)

crusher am 2002-06-26 16:17 ]

  Profil   E-Mail   Website   Editieren   Zitieren
Manticor
Quasselstrippe




Beiträge: 240

Aaaalso:

Beschäftige mich auch gerade mit dem Thema und daher... Bin aber deshalb auch noch nicht so erfahren darin.

Templates sind Vorlagen (in unserem Falle vermutlich für HTML-Seiten). Das W3C und Konsorten (ach nee, Konsortium) empfiehlt zwischen ausgeführtem Code und Inhalt zu trennen.
Vorteil: HTML-Code und PHP-Code lassen sich unabhängig voneinander verändern und der Seitengestalter muss nicht notwendigerweise HTML können, sowie für den PHP-Coder eventuell weniger HTML-Kenntnisse erforderlich sind.

Ein Template ist also (im angenommenen Fall) eine Datei, die wie eine HTML-Datei aussieht, bis auf den kleinen Unterschied, dass irgendwo besondere Tags enthalten sind, die anzeigen: STOP! Hier muss was eingefügt werden, was mir ein Skript liefert. Oft verwendet scheint @@befehl@@ dafür zu sein.

Da so ein Template aber nun unglücklicherweise weder PHP noch gültiges HTML ist muss man es parsen, was bedeutet (man erinnere sich an die guten, alten Textadventures), dass man ein PHP-Skript drüberjagen muss, welches die Template-Tags mit der passenden PHP-Ausgabe ergänzt.

Der Zeitpunkt, wann man einTemplate parst ist nicht unwichtig.
Entweder gleich nach der Erstellung des Templates. Es wird also in eine gültige PHP Datei umgewandelt, die statt der @@-Befehle z.B. dann enthält. Der Vorteil: Geschwindigkeitgewinn, der Nachteil: Nach jeder kleinen Änderung im Template muss ich neu parsen.
Die zweite Methode ist, dass das Template zur Laufzeit (also während der Skriptausführung) geparst wird. Ist langsamer, da ja eventuelle mehrere Tausend Zeichen durchsucht werden müssen, aber man muss seine Templates nicht gleich nach einer Änderung parsen.

Davon ab leitet sich ein weiterer Aspekt: Ich muss einen Editor für die Templates haben.
Als alleiniger Autor, der sich mit den Eigenheiten des Systems auskennt kann man auf ihn auch verzichten, will man as Skript abe weitergeben oder von mehreren pflegen lassen, so kommt man kaum um einen Editor herum.
Der Editor ist dann meist eine HTML-Seite mit mächtig viel Textarea. Das alte Template wird eingelesen und dargestellt. Daneben kann man z.B. die @@-Tags anklickbar darstellen, die dann über JavaScript eingefügt werden. Wenn das Template abgeschickt wird, wandert es erst durch den Parser, der Fehlermeldungen ausgibt oder aber dass geparste Template abspeichert.

Alle Klarheiten beseitigt? Fein.

Manti


---

  Profil   Website   Editieren   Zitieren
HG
Posting-Schinder




Beiträge: 520

Hmmm. Ich hab mich letztens auch damit beschäftigt, und habe mich für eine bestehende Template-Klasse entschieden, zu der es zwei super Dokumentationen gibt (wenn auch nicht von den Autoren)... http://www.php-tools.de

---
www.kuminatano.de

  Profil   E-Mail   Website   Editieren   Zitieren
[SpecFor]crusher
Otto-Normal-Poster
Threadstarter




Beiträge: 97

hmm ich weiß nur das ich mir nen GB gezogen habe un darin mit templates gearbeitet wurde..
ich werde dann und wann den code mal posten ...

  Profil   E-Mail   Website   Editieren   Zitieren
Philipp Gérard
Foren-Team




Beiträge: 1502

Vars in ein Array laden (z.B.):

1: 
2: 
3: 
4: 
5: 
6:
$charray = array(
	"{title}" => $news["title"],
	"{datum}" => $news["datum"],
	"{news}" => $news["news"],
	"{who}" => $news["who"]
);


Später mit "strtr" Zeichen ersetzen:

1: 
2: 
3:
$outvar .=strtr($template, $charray);


und denn:

1: 
2: 
3:
echo $outvar;


Das ist jetzt kein komplettes Script, aber so habe ich es bisher immer gemacht, und es klappt...


---
Arbeit ist das Feuer der Gestaltung. - Marx

  Profil   E-Mail   Website   Editieren   Zitieren
Philipp Gérard
Foren-Team




Beiträge: 1502

ahja, das template mit
1: 
2: 
3:
join(, file($tplfile));



---
Arbeit ist das Feuer der Gestaltung. - Marx

  Profil   E-Mail   Website   Editieren   Zitieren
[SpecFor]crusher
Otto-Normal-Poster
Threadstarter




Beiträge: 97

wow cool danke so wollte ichs haben

  Profil   E-Mail   Website   Editieren   Zitieren
Manticor
Quasselstrippe




Beiträge: 240

Aber die eigentlich Frage, die mich interessieren würde, ist noch nicht beantwortet.

Wie mache ich das mit Templates für ganz Seiten am besten? Wenn ich es parse, kann ich es dann komplett in einen langen String packen oder läuft das bei PHP irgendwann über?
Wie verwalte ich die Templatebefehle und parse möglichst effektiv/schnell.
Was ist zu empfehlen? Parsen zu Laufzeit oder "vorparsen"?
Hat jemand mal ein Organimgramm parate, wie Template, Parser und eingesetzter PHP-Code ineinandergreifen?

Ist jetzt ziemlich viel, aber ich würde gerne die Prinzipien verstehen und nicht nur eine Teillösung für ein Spezialproblem sehen .

Viele Grüsse,
Manti

_________________




---

  Profil   Website   Editieren   Zitieren
[SpecFor]crusher
Otto-Normal-Poster
Threadstarter




Beiträge: 97

also bei mir is des so, ich finde die lösung mit templates interessant, weil ich dann schön html und php getrennt habe. ich könnte es auch in einem script feddig bauen, nur dann steigt man im nachhinein sicher nt mehr durch 1000zeilen code so leicht durch.
außerdem kann ich im template die sachen eben mal kurz anpassen anstatt ne halbe stunde im code rumzuwurschteln.
noch dazu eignen sich templates deshalb hervorragend zu geschützten seiten, weil man kann ja nun keine kompletten html seiten einbinden, die wären ja sofort von außen zugänglich..

  Profil   E-Mail   Website   Editieren   Zitieren
Manticor
Quasselstrippe




Beiträge: 240

Aber das beantwortet leider nicht meine Frage.
Die Vorteile von Templates sind mir bekannt, aber die programmiertechnische Seite eher weniger.

Ich kann ja mal versuche zu erzählen, wie ich es mir vorstelle, vielleicht kann dann ja jemand Fehler in meiner Vorstelleung auftun.

Ich habe ein Template, welches eine HTML-Datei mit besonders gezeichneten Keyords ist, wo später dynamisch erzeugter Inhalt eingesetzt werden soll.
Ich habe weiterhin ein Skript, welches den Inhalt erzeugt.
Ich habe ein weiteres Skript, das das Template nach Keywords parst und den dynmaischen Inhalt aus dem ersten Skript dort einsetzt, eine echte HTML-Datei erzeugt und diese ausgibt.

Stimmt das?
Wenn ja, wie funktioniert der Parser? In fertigen Klassen muss ich ja leider nur $foo->machallesfürmich() eingeben und sehe nicht so richtig dahinter.
Und obige Fragen bleiben auch noch.



---

  Profil   Website   Editieren   Zitieren
Philipp Gérard
Foren-Team




Beiträge: 1502

templates funktionieren im grunde so:

du definierst variablen in dokumenten, welche später dynamisch durch aus einer datenbank ausgelesenen texte/bilder/whatever ausgetauscht werden.

der sinn ist klar, trennung von design & code. für größere sachen musst du einstein fragen


---
Arbeit ist das Feuer der Gestaltung. - Marx

  Profil   E-Mail   Website   Editieren   Zitieren
Philipp Gérard
Foren-Team




Beiträge: 1502

der parser funktioniert wie o.g.

---
Arbeit ist das Feuer der Gestaltung. - Marx

  Profil   E-Mail   Website   Editieren   Zitieren
Manticor
Quasselstrippe




Beiträge: 240

So, habe jetzt wohl die Lösung, damit ich verstanden werde.

Nicht wie nutze ich eine Templateklasse, sondern wie progge ich selber eine?


---

  Profil   Website   Editieren   Zitieren
[SpecFor]crusher
Otto-Normal-Poster
Threadstarter




Beiträge: 97

??
so wie oben..
denk ich, hab die frage net verstanden...

  Profil   E-Mail   Website   Editieren   Zitieren
koelle
Pixelschubser




Beiträge: 1

Hi,

ich bin auch grad dabei ein Template System zu entwickeln. Habe aber ein Problem bei der Ausgabe von Datenbankeinträgen. Hab mal versucht innerhalb der while-Schleife zu assignen.

while ($row = $db->fetchObject())
{
$tpl->assign("title",$row->title);
}

Dann ersetzt er mir auch die Templateholder durch Inhalte, aber immer nur den ersten auf einer Seite. Hab schon lange gegoogelt, konnte aber kein gutes Tutorial finden, wie man Datenbankeinträge ausgibt.
Kennt da jemand eines

  Profil   E-Mail   Editieren   Zitieren
Seite 1 | 2  

Antworten
Forum » PHP & MySQL » tutorials für templates

Aktuelle Beiträge zur Hilfe im Forum für Homepage - tutorials für templates im Forum Homepage Hosting AntwortenLetztes Posting
Cybersicherheit für Unternehmen
in "PHP & MySQL"
3 18.11.2024 14:05 von Gaswer
Wirtschaftslage in der Ukraine
in "PHP & MySQL"
3 22.10.2024 15:04 von Gaswer
Rangliste (Ohne Mysql) (Kompliziertes Ordner System)
in "PHP & MySQL"
3 19.07.2021 06:00 von newtopblog
kleines problem mit phpadmin
in "PHP & MySQL"
5 11.04.2021 22:22 von Zavylon
Counter mit PHP
in "PHP & MySQL"
4 22.03.2021 16:29 von Robeni
Fehlermeldung beim Importieren der Datenbank in phpmyadmin
in "PHP & MySQL"
0 02.08.2019 22:14 von iFuchs
CMS für Online Shop
in "PHP & MySQL"
18 26.05.2019 13:29 von raiserle
Regestrierungproblem
in "PHP & MySQL"
3 28.11.2018 13:20 von norbertofahey
PHP Datum ausgeben?
in "PHP & MySQL"
1 19.10.2018 10:04 von Klaus1973
PHP befehl ausführen
in "PHP & MySQL"
11 16.08.2018 09:08 von Klaus1973
Visual Composer selber programmieren?
in "PHP & MySQL"
0 22.01.2017 23:45 von Redji



Besucher : 8143552    Heute : 46     Gestern : 729     Online : 184     22.12.2024    3:03      0 Besucher in den letzten 60 Sekunden        
Nach oben