Andun
Da ich die anderen Threads nicht voll spammen will frage ich hier:
Wofür braucht man die Templates? Man kann doch gleich alles mit php und html kombinieren.
MMB
Die Trennung von PHP- und HTML-Code ist sinnvoll, weil du dann nicht durcheinanderkommst mit HTML- und PHP-Befehlen. Die Dateien werden kleiner, aber man hat mehr.
Wenn man das Script weiter gibt, dann ist es für den Empfänger besser, wenn das Script Templates benutzt, es im Desgin ein bisschen an zu passen.
Du kannst das ja mal ausprobieren, du wirst die Vorteile sicher bemerken.
Andun
hört sich gut an.
Wie kann ich das lernen?
neonator
ist eigentlich ganz einfach...
du hast zum beispiel ein templates-ordner, in dem ordner hast du die datei
head.html:
| code: |
1:
2:
3:
4:
5:
6:
7:
|
<html>
<head>
<title>$page_title</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
|
|
dann hast du die funktion, um das template auszugeben (index.php):
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
|
<?php function printHead() {
$page_title = "Andun's little page";
eval("echo "".getTemplate("head.html")."";");
}
function getTemplate($filename) {
$templateFolder = "templates/";
return implode("",file($templateFolder.$filename));
} ?> |
|
lies es mal durch.. vielleicht verstehst dus ja gleich
-> index.php
-> templates/head.html
das ist so das grund system... jedenfalls mach' ich das so
jones
Andun
hört sich gut an.
Aber
1. Was bringt die funktion eval?
2.Wo ist der Unterschied zw. echo und print?
-----
Edit:
1. Das weiß ich jetzt schon. Wandelt Text in PHP um.
Andun
Ich musste zu erst noch die
<? und ?>
setzten. Jetzt kommt aber folgendes wenn ich unter die functionen noch den Aufrauf
printHead();
schreibe:
Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in C:\Documents and Settings\xxx\Desktop\minixampp\htdocs\my\mow\index.php(4) : eval()'d code on line 4
MMB
| Zitat: |
Original von Andun
2.Wo ist der Unterschied zw. echo und print? |
Es gibt keinen Unterschied.
Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in C:\Documents and Settings\xxx\Desktop\minixampp\htdocs\my\mow\index.php(4) : eval()'d code on line 4
Das kann daran liegen, dass du beim eval einen fehler drin hast. Was steht denn in der Zeile 4?
Andun
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
|
<?
function printHead() {
$page_title = "Andun's little page";
eval("echo "".getTemplate("head.html")."";");
}
function getTemplate($filename) {
$templateFolder = "templates/";
return implode("",file($templateFolder.$filename));
}
printHead();
?> |
|
neonator
der fehler liegt eigentlich an den " in der head.html...
hab noch was vergessen:
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
|
<?
function printHead() {
$page_title = "Andun's little page";
eval("echo "".getTemplate("head.html")."";");
}
function getTemplate($filename) {
$templateFolder = "templates/";
return str_replace(""",""",implode("",file($templateFolder.$filename)));
}
printHead();
?> |
|
zu der eval(): wenn du variablen in den code einbaust, wie die $page_title, dann werden die mit eval() ersetzt... ist etwa gleich, wie du in einem string eine variable einbaust...
jones
MMB
| Zitat: |
Original von Andun
| php: |
1:
2:
3:
4:
5:
6:
|
<?
function printHead() {
$page_title = "Andun's little page";
eval("echo "".getTemplate("head.html")."";");
}
?> |
|
|
Diese Function würde ich nicht so lassen. Ich würde das eher als eins prasen. Also den Header in ne Variable schreiben und alles andere auch und dann am Ende einmal mit echo (oä) ausgeben.
Andun
Das ist alles etwas kompliziert.
Kann hier mal jemand ein beispiel posten?
Andun
Juhu, ich hab mein erstes Template hingekriegt.
Das hab ich aber nur dank der icq hilfe von MMB.
Auch hier noch mal ein dankeschön.
ThiefMaster
Ich würde aber empfehlen, die Funktion zum Auslesen des Templates nur den zu evaluierenden Code zurücklgeben zu lassen und den Aufruf dann so zu machen:
| php: |
1:
2:
|
<?php $variable_die_ins_template_soll="bla";
eval(printTemplate("templatename")); ?> |
|
Andun
Ich hab das jetzt so gemacht. (mit MMB`s hilfe)
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
|
<?
$Ueberschrift = "Hallo";
$News = "news";
function getTemplate($filename) {
$templateFolder = "templates/";
return str_replace(""",""",implode("",file($templateFolder.$filename)));
}
eval("\$header = "".gettemplate("header.html")."";");
eval("\$footer = "".gettemplate("footer.html")."";");
eval("echo "".gettemplate("body.html")."";");
?> |
|