Unterschied zwischen *.php und *.tpl ?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
attribut
ausgabe
befehl
beispiel
beitrag
dein
description
email
endung
farbe
flasche
funktion
hochladen
jeweiligen anwender
programmierung
relativ
richtig verstehe
sicherheit
style
username
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Und was genau steht in tpl Datein drinne?
Muss ich angsat haben, dass sie mir den den Code versauen k?nnen? -
Es ist doch bei einem Template-System komplett egal, welche Endung die Template-Dateien haben. Wichtig ist, was du daraus machst. Wenn du nicht richtig f?r die Sicherheit sorgst, kann das >>p?se<< enden. Mann kann ja auch einfach eine .txt Datei nehmen. Der Inhalt wird ja einfach nur von dem Parser durchlaufen und mit Inhalt aus einer Datenbank oder so gef?llt. Es w?re nur schon zu besseren Erkennung der Template-Dateien besser, wenn du sie mit *.tpl benennen w?rdest. Au?erdem w?rdest du dir damit viel Arbeit ersparen f?r die Sicherheit zu sorgen. ;)
Edit:
Es kommt immer darauf an, wie du es machst... -.- Ich glaube du solltest dich erstmal mehr mit diesem Thema auseinandersetzen, vor allem mit dem Thema Sicherheit, bevor du ein eigenes Forum programmieren willst. -.-
Grunds?tzlich funktionieren Template-Systeme so, dass man den Code komplett vom Design trennt. D.h. man hat eine Art Grundger?st in einer Template-Datei und dann hat man noch ausf?hrenden Code, der zum Beispiel Posts aus der Datenbank ausliest. Der "Template-Parser" f?gt das dann zusammen. Diesen Parser musst du dir allerdings selbst schreiben. Meistens ist es so, dass man einfach Schl?sselbegriffe in der Template-Datei durch Inhalt ersetzen l?sst und das dann ausgegeben wird.
Beitrag ge?ndert am 3.05.2006 14:47 von i-spacke -
Also das habe ich aus einer bbcode.tpl Datei:
<!-- BEGIN ulist_open --><ul><!-- END ulist_open -->
<!-- BEGIN ulist_close --></ul><!-- END ulist_close -->
<!-- BEGIN olist_open --><ol type="{LIST_TYPE}"><!-- END olist_open -->
<!-- BEGIN olist_close --></ol><!-- END olist_close -->
<!-- BEGIN listitem --><li><!-- END listitem -->
<!-- BEGIN quote_username_open --><div align="center"><table width="90%" align="center" cellspacing="1" cellpadding="2" border="0" class="quote">
<tr>
<td class="quote_user" align="left">{USERNAME} {L_WROTE}:</td>
</tr>
<tr>
<td class="quote" align="left"><!-- END quote_username_open -->
<!-- BEGIN quote_open --><div align="center"><table width="90%" cellspacing="1" cellpadding="2" border="0" align="center" class="quote">
<tr>
<td class="quote_user" align="left">{L_QUOTE}:</td>
</tr>
<tr>
<td class="quote" align="left"><!-- END quote_open -->
<!-- BEGIN quote_close --></td>
</tr>
</table></div><!-- END quote_close -->
<!-- BEGIN code_open --><div align="center"><table width="90%" align="center" cellspacing="1" cellpadding="2" border="0" class="code">
<tr>
<td class="code_header" align="left">{L_CODE}:</td>
</tr>
<tr>
<td class="code" align="left"><!-- END code_open -->
<!-- BEGIN code_close --></td>
</tr>
</table></div><!-- END code_close -->
<!-- BEGIN b_open --><span style="font-weight: bold"><!-- END b_open -->
<!-- BEGIN b_close --></span><!-- END b_close -->
<!-- BEGIN u_open --><span style="text-decoration: underline"><!-- END u_open -->
<!-- BEGIN u_close --></span><!-- END u_close -->
<!-- BEGIN i_open --><span style="font-style: italic"><!-- END i_open -->
<!-- BEGIN i_close --></span><!-- END i_close -->
<!-- BEGIN color_open --><span style="color: {COLOR}"><!-- END color_open -->
<!-- BEGIN color_close --></span><!-- END color_close -->
<!-- BEGIN size_open --><span style="font-size: {SIZE}px; line-height: normal"><!-- END size_open -->
<!-- BEGIN size_close --></span><!-- END size_close -->
<!-- BEGIN img --><img src="{URL}" border="0" /><!-- END img -->
<!-- BEGIN url --><a href="{URL}" target="_blank">{DESCRIPTION}</a><!-- END url -->
<!-- BEGIN email --><a href="mailto:{EMAIL}">{EMAIL}</a><!-- END email -->
Also wenn ich das jetzt richtig verstehe, gibt es Hauptfunkrion die kann man nicht ?ndern. Und die tpl sind einfach nur f?r die Ausgabe zust?ndig.
Habe ich das richtig verstanden?
Danke -
Also in diesem Fall ist es wahrscheinlich so, dass je nachdem was gebraucht wird die passenden Tags aus der Datei "gezogen" werden.
Also der Parser liest ein, was er braucht (dies geschieht mit Hilfe der Kommentare) und dann ersetzt er zum Beispiel {USERNAME} mit dem Namen und gibt das dann aus oder zur Ausgabe frei. (preg_replace('`\{USERNAME\}`Us, $username, $text) zum Beispiel.)
Das einzige, was in so einem Fall eigentlich passieren kann ist, dass das Design bei dem jeweiligen Anwender durch irgendwelche flaschen Template-Dateien nicht richtig angezeigt wird, aber das ist ja dann ihr Problem und nicht deins. ;) -
Wie kann ein Phraser denn an Komentaren erkennen wo sein Tag ist?
Und woher wei? er das er bei {COLOR} die Farbe rein machen muss? -
Um das herauszufinden solltest du PHP lernen... -_____-
Sagen wir mal du hast einen Text. In diesem text kommt ein BBCode wie zum Beispiel Text[/b ] vor. Der Parser findet diesem BBCode. Dann nimmt er einfach den Inhalt und packt ihn hier zwischen.
<!-- BEGIN b_open --><span style="font-weight: bold"><!-- END b_open -->
<!-- BEGIN b_close --></span><!-- END b_close -->
Wie man das ganze anstellt ist eigentlich relativ einfach, aber wenn du das noch nicht kannst, dann solltest du das auch nicht probieren bevor du es gut kannst. Am besten w?re es, wenn man eine Template-Parser-Klasse schreibt, aber naja...
P.s: Wo er was reinmachen muss, wei? er zum Beispiel durch solch einen Befehl.
preg_replace('`{COLOR}`Us, $color, $text);
http://www.php.net/manual/de/function.preg-replace.php
Edit: Leerzeichen zu dem BBCode hinzugef?gt.
Beitrag ge?ndert am 3.05.2006 15:10 von i-spacke -
Achja sorry, so habe ich auch meinen BBCode Funktion geschrieben.
Klar.
Vergessen sorry... -
An f?r sich w?rde es sich auch anbieten den Usern einfach die M?glichkeit zu geben eigene .css Dateien einzubinden.
CSS kann ein Layout total verwandeln, es ist also ziehmlich m?chtig und trotzdem absolut ungef?hrlich f?r den Server.
Entscheident bei der Programmierung des Forums ist dann nat?rlich, dass die Attribute id="" und class="" h?ufig benutzt werden, damit man mit CSS leicht darauf zugreifen kann.
Eventuell k?nnte man es auch in Erw?gung ziehen den Usern das Einbinden von .js Dateien zu erm?glichen. -
JS einbinden zu lassen w?re zu gef?hrlich. Das mit dem CSS kann man sehr gut mit Templates kombinieren und eigentlich wird das auch gemacht. Templates sind ja nur daf?r da, Felxilibit?t zu garantieren und Code von HTML zu trennen. CSS ist ja dann einfach nur einen weitere Methode die Seite zu gestalten.
Aber mal nebenbei, wenn ich eine Seite mache, dann m?chte ich damit doch auch etwas bestimmtes bewirken, oder? Warum sollte ich es dann zulassen, dass User ihren eigenen Style hochladen k?nnen. Klar kann man denen vielleicht ein paar zu Verf?gung stellen, aber naja.... -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage