URL: https://www.overclockers.at/coding-stuff/templates_mit_php_31777/page_1 - zur Vollversion wechseln!
Hoi
Ich schaffs einfach net, Templates in php einzubinden. Ich möchte ein Template machen, dass z.B beim Login ein Template aufgerufen wird, mit html UND ein paar php-variablen.
Also zb: Thx $user, du wurdest eingeloggt.
Das ganze halt noch mit html formatiert.
Weiß jemand wie das geht?
Zitat von KaZaaHoi
Ich schaffs einfach net, Templates in php einzubinden. Ich möchte ein Template machen, dass z.B beim Login ein Template aufgerufen wird, mit html UND ein paar php-variablen.
Also zb: Thx $user, du wurdest eingeloggt.
Das ganze halt noch mit html formatiert.
Weiß jemand wie das geht?
Habe tu ich nix, weil ich net weiß wie ich das machen soll.
Sagen wir ich hab ein Formular, bei dem ich mit Username einlogge, dann wird die nächste Seite aufgerufen, die ist reiner php code. Und mit diesem Code will ich dann am Ende ein Template ausgeben (ich denk eine funktion is am besten), in dem nur normales HTML steht. Also zB:
<table cellspacing="0" width="75%" align="center">
<tr><td>
<font size="3" face="Arial">Hello $user!</font>
</td></tr>
</table>
Nur dass er bei der Ausgabe nicht $user ausgeben soll, sondern den Inhalt der Variable $user.
Mah, des is dumm zum erklären, ich versuch mal was zu proggen, damit du siehst was i mein
hm... i versteh ned ganz was du meinst...
echo "hello $user";
Schon, nur müsste ich da die ganze Tabelle auch mit echo ausgeben, was dann wieder eher Pfusch is als sauberes coding und schwerer bearbeitbar. Aber ich möchte in einer eigenen Template-Datei den HTML-Code auslagern, und dann bei Bedarf aufrufen. Nur so, dass auch php-Variablen in dem Code richtig intepretiert werden.
Zitat von KaZaaSchon, nur müsste ich da die ganze Tabelle auch mit echo ausgeben
Code: PHP<?php // dein php code ?> <table> //deine tabelle <?php echo "hello $user"; ?> //weiter in deiner tabelle </table>
Code: PHPecho <<<template <table cellspacing="0" width="75%" align="center"> <tr><td> <font size="3" face="Arial">Hello $user!</font> </td></tr> </table> template;
es gibt auch spezielle template-klassen, mit denen du den php-code komplett vom design trennen kannst. ich mach das meistens mit it[x]
@noli:
Ok, so gehts auch Aber ich hab zB. eine Tabelle mit 5 Spalten und 10 Zeilen, da wird das <?php ?>
1. Lästig
2. Unübersichtlich
3. möcht ich Dateien mit REINEM php
@Phillip
Hmm, das check ich net ganz, was macht dein Code?
@All
Mal sehen ob ich die Erklärung besser hinbekomm
Ich weiß das es sinnfrei is, aber als Beispiel ists zu gebrauchen:
1. Formular:
Code:<html> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="#FFFFFF" text="#000000"> <form name="form1" method="post" action="test.php"> <input type="text" name="user"> <input type="submit" name="Submit" value="Submit"> </form> </body> </html>
Code:<html> <head> <title>Test 1-2-3</title> </head> <body> <table border="1" width="50%" align="center" bdrcolor="blue"> <tr><td> <font face="Arial" size="2">Hello $user!</font> </tr></td> <table> </body> </html>
Im Sinne besserer Trennung von code und template ist folgende Erweiterung von noledges Vorschlag empfehlenswert. Wenn Du die Schnittstelle genau spezifizierst, wird das template damit auch für Dritte ohne besondere Programmierkenntnisse relativ leicht wart- und an besondere Bedürfnisse/Vorlieben anpaßbar, sofern es sich um ein halbwegs überschaubares Projekt handelt (Gästebuch, kleines Forum etc.).
login.php:
<?
$user=verify(login,pass); // Pseudocode; damit "was dasteht".
include("template.php");
?>
template.php:
<html>
<body>
Hallo <? print($user); ?>!
</body>
</html>
Die extension von template.php ist prinzipiell egal, solange der filetyp von PHP geparst wird.
Ich weiß das man es auch so lösen kann, aber ich mag die Methode net Mir ists anders lieber, schon allein von der besseren Editierbarkeit der Templates her.
deshalb auch mein vorschlag mit der eigenen templateklasse!
da kannst du dann zb ein template in der form schreiben:
<table>
<tr>
<td>
Hello {USER}!
</td>
</tr>
</table>
in der php-datei gibst du dann nur an, welchen wert {USER} erhalten soll.
Und wie geb ich das Template dann aus?
du schreibst eine php-datei, die liest eine html-datei (das template) ein und füllt die einzelnen werte, so wie du es willst! ich such schnell ein beispiel, vielleicht ist es dir dann klarer.
Code: PHP<? // IT Templatesystem einbinden include "IT.php"; // Instanz der Templateklasse erzeugen, Pfad zu den Templates angeben $tpl = new IntegratedTemplate("templates/"); // Dokumentvorlage laden - lädt templates/index.html $tpl->loadTemplateFile("index.html"); // Ersetzungen vornehmen $tpl->setVariable("TITLE", "Online-Shop"); // Seite ausgeben $tpl->show(); ?>
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025