![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Benutzer
Registriert seit: 18.06.2006
Ort: Straubing
Beiträge: 85
|
Hallo ich habe mir mal das Templatesystem von Corvin heruntergeladen und hab aber jetzt eine Frage.
Auf meiner alten Seite habe ich die Seiten immer includet damit ich einen Link wie index.php?site=123 bekomme. Dazu habe ich folgenden Code benutzt! PHP-Code:
Mfg. Berti |
|
|
|
|
|
Nach oben #2 |
|
Mensch
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.720
|
hm... kleiner Trick mit dynamischen Content:
Code:
// template....
{include file="{$content}"}
// template
__________________
I did it my way - Senseless-Blog |
|
|
|
|
|
Nach oben #3 |
|
Benutzer
Registriert seit: 18.06.2006
Ort: Straubing
Beiträge: 85
|
Mh, funktiniert noch nicht ganz. Ich habe jetzt mal die index.php wie folgt verändert:
PHP-Code:
HTML-Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="de"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>{$title}</title> <link rel="stylesheet" type="text/css" href="{L_CSS_SCREEN}"> </head> <body> {* Ein Template einbinden *} {include file="{$content}"} </body> </html> Kann es sein, dass man keine 2 Templates in einander schreiben darf. Also kein {include file="{$content}"}? Geändert von Berti (04.10.2006 um 15:15 Uhr). |
|
|
|
|
|
Nach oben #4 |
|
Erfahrener Benutzer
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 756
|
Hi.
Ich kenn das Template-System zwar nicht, aber wenn du {$content} bereits mit dem Inhalt belegst (und nicht mit dem Namen der einzubindenden Datei), dann sollte diese Variable dann doch nicht als file-Attribut einer {include} -Anweisung übergeben werden, sonden direkt ausgegeben werden. Also entweder machst du den Include aus dem Template heraus (was ja nicht zu functionieren scheint) oder du machst ihn direkt in PHP und schreibst das Ergebnis in eine Variable {$content}, die du dann eben direkt ausgibst. Basti |
|
|
|
|
|
Nach oben #5 |
|
Mensch
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.720
|
{$content} soll nicht den inhalt der Datei bekommen, sondern, wie Basti meint, den Namen der Datei!
Allerdings empfehle ich noch eine Anpassung des Templates... PHP-Code:
Ich habe z.b. einfach nur den Kontent über eine Variable festgelegt. {$content} wurde per assign() mit '{include file="templatename.tpl"}' eingebunden. Das sollte mit der Erweitung klappen.
__________________
I did it my way - Senseless-Blog |
|
|
|
|
|
Nach oben #6 |
|
Erfahrener Benutzer
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 756
|
Hi.
Da ich dem Template-Tutorial nicht schreiben darf, hier mal noch ein Anregung (abgesehen davon, dass ich den Anstatz, Werte innerhalb von Templates zu erstezen, anstatt Templates in PHP umzuschreiben an sich ungünstig finde). Ich finde es ungeschickt, das Template- (und Sprachdateien-) Verzeichnis beim bauen des Templates angeben zu müssen, denn diese Werte ändern sich ja nicht von Template zu Template: PHP-Code:
|
|
|
|
|
|
Nach oben #7 | ||||
|
Neuer Benutzer
Registriert seit: 26.11.2006
Beiträge: 1
|
Zitat:
Hallo Warren, bei mir "zu Hause" klappt das leider nicht so richtig. Fehlermeldung: Zitat:
Ich habe Corvins Klasse etwas modifieziert, an PHP 4 angepasst und diese Funktion verändert: PHP-Code:
Zitat:
Zitat:
Die index.php, die ich verwende, sieht so aus: PHP-Code:
Doch, klar benutze ich die - diese index.php wird includet, die Ausgabe erfolgt in einem anderen Skript. Im Template selbst sieht´s so aus: Code:
{include file="header.tpl"}
<div id="box_left">
{include file="box_left.tpl"}
</div>
<div id="box_right">
{include file="box_right.tpl"}
</div>
<div id="box_center">
{include file="{$htmlcontent}"}
</div>
{include file="footer.tpl"}
muss? Ich habe jetzt alles ausprobiert, was mir dazu eingefallen ist, und jetzt weiss ich wirklich nicht weiter. Ausser selber eine komplett neue Funktion zu schreiben für den Include, aber das würde ich mir gerne als allerletzte Option offenhalten Gruss Udo |
||||
|
|
|
|
|
Nach oben #8 |
|
Erfahrener Benutzer
Registriert seit: 08.01.2006
Ort: Mannheim
Beiträge: 480
|
Ja, des Problem liegt ja daran, das beim ersten Aufruf schon versucht wird das Template {$htmlcontent} zu laden.
Da es das Template nicht gibt kommt der fehler. Man müsste also noch die Funktion replacefunctions() so anpassen, das wenn der Dateiname mit "{" er die Funktion überspringt. Weiter weiß ich selber allerdings auch gerade nicht. Würde mich aber auch freuen, wenn es dafür eine Lösung gäbe.
__________________
Jan info.malte-gerth.de ================================= Nutzt bitte lieber Jabber statt ICQ: malte.gerth@jabber.cz |
|
|
|
|
|
Nach oben #9 | |||
|
Mensch
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.720
|
Zitat:
So sollte die Engine arbeiten:
ist halt etwas tricky und daher nur eine einfache engine die einem mehr das grundverständnis beibringen soll und so noch nicht für den großeinsatz gedacht ist
__________________
I did it my way - Senseless-Blog |
|||
|
|
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [PHP] Ein eigenes Templatesystem schreiben | Corvin | Tutorials | 42 | 19.03.2008 17:58 |
| Schleifen im Templatesystem | Stefan125 | PHP-Programmierung | 4 | 19.07.2007 02:36 |
| Templatesystem von Corvin in PHP4? | bl-25 | PHP-Programmierung | 9 | 04.04.2007 14:54 |
| Templatesystem - Foreach-Schleifen | ex³ | PHP-Programmierung | 9 | 23.04.2006 13:52 |
| Templatesystem | Alpha Centauri | PHP-Programmierung | 2 | 09.04.2006 19:35 |