jives
And the science gets done
|
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?
|
orpheus
in a nutshell
|
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? post mal das was du schon hast, ohne genauere angaben kann ich dir schwer helfen... oder sag mir genau WAS du brauchst...
|
jives
And the science gets done
|
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
|
noledge
CWNE #540
|
hm... i versteh ned ganz was du meinst... echo "hello $user";
|
jives
And the science gets done
|
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.
|
noledge
CWNE #540
|
Schon, nur müsste ich da die ganze Tabelle auch mit echo ausgeben wieso musst die ganze tabelle mit echo ausgeben?! <?php
// dein php code
?>
<table>
//deine tabelle
<?php echo "hello $user"; ?>
//weiter in deiner tabelle
</table>
|
Philipp
Here to stay
|
echo <<<template
<table cellspacing="0" width="75%" align="center">
<tr><td>
<font size="3" face="Arial">Hello $user!</font>
</td></tr>
</table>
template;
|
Tex
got r00t?
|
es gibt auch spezielle template-klassen, mit denen du den php-code komplett vom design trennen kannst. ich mach das meistens mit it[x]
|
jives
And the science gets done
|
@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: <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>
2. test.php: Soll jetzt den Inhalt von test.htm ausgeben, mit reinem PHP. Am besten wäre eine Funktion. 3. test.htm <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>
Thx 4 helping me
|
bernhard
Little Overclocker
|
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.
|
jives
And the science gets done
|
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.
|
Tex
got r00t?
|
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.
|
jives
And the science gets done
|
Und wie geb ich das Template dann aus?
|
Tex
got r00t?
|
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.
|
Tex
got r00t?
|
<?
// 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();
?>
ist ein kurzes beispiel zu "integrated templates"... es gibt natürlich noch viel mehr möglichkeiten.
|