Archiv verlassen und diese Seite im Standarddesign anzeigen : Einfache Design-Templates für PHP-Dateien benutzen
Dominic Guhl
18.05.2007, 16:30:07
Hallo!
Die Outputs meiner PHP-Scripts möchte ich in Design-Templates integrieren, sodass z.B. die Schrift ein CSS-Design hat und Gestaltungselemente schon vorhanden sind. Das Design bleibt immer gleich.
Ich möchte allerdings PHP möglichst von den immergleichen HTML-Statements trennen und ich möchte das Design nicht in jeder PHP-Datei neu speichern, damit es flexibel änderbar bleibt.
(Wie) kann man PHP veranlassen, eine template.html-Datei zu benutzen?
Kennt ihr dafür einen guten Weg?
Dominic Guhl
19.05.2007, 17:54:51
Danke, ich habe schon Quellen gefunden. Thread kann geschlossen werden.
feuervogel
19.05.2007, 18:45:37
Danke, ich habe schon Quellen gefunden. Thread kann geschlossen werden.
kannst du diese eventuell mal nennen? weil wenn du nicht einfach nur eine template-engine wie smarty oder ktemplate suchst, würde mich schon mal interessieren, was du meinst.
meikel
19.05.2007, 20:54:20
Quelle + Templates:
kannst du diese eventuell mal nennen?
Google?
weil wenn du nicht einfach nur eine template-engine wie smarty oder ktemplate suchst, würde mich schon mal interessieren, was du meinst.
Das:
(Wie) kann man PHP veranlassen, eine template.html-Datei zu benutzen?
Die Frage ist ein wenig [zensiert <g>] formuliert, aber das ist eindeutig:
Die Outputs meiner PHP-Scripts möchte ich in Design-Templates integrieren, sodass z.B. die Schrift ein CSS-Design hat und Gestaltungselemente schon vorhanden sind. Das Design bleibt immer gleich.
Genau sowas erldigen die üblichen Templateklassen...
Dominic Guhl
03.07.2007, 08:30:27
Ja, der Lösungsweg...
Also, ich habe zuerst eine Klasse geschrieben, die Funktionen zur Extraktion bereitstellt.
<?php
// Diese Klasse parst Templates
class CTemplate
{
var $strTemplate;
function Load($file_path)
{
$fp = fopen($file_path,"r"); // Datei zum Lesen öffnen, Zeiger setzen
$this->strTemplate = fread($fp,filesize($file_path)); // und einlesen... dabei muss die Dateigröße angegeben werden
fclose($fp); // Zeiger löschen
}
function Replace($needle, $replacement)
{
$this->strTemplate = str_replace("%".$needle."%",$replacement,$this->strTemplate);
}
function Display() // Ausgabe des Templates
{
echo $this->strTemplate;
}
}
?>
Hierbei handelt es sich im Einzelnen um
eine Loader-Methode
eine Parser-Methode
eine Ausgabe-Methode
Der Loader-Methode muss ein Dateiname übergeben werden, damit sie eine Datei öffnen und auslesen kann. Der Inhalt der Datei steht dann vollständig in der Variable $strTemplate.
Die Replace-Methode bekommt eine "Nadel" (needle) und einen "Ersatz" (Replacement) übergeben. Die Nadel ist der Text, der mit dem Replacement ersetzt werden soll. Beispielsweise würde der Aufruf
$CTemplate->Replace("title", "Seitentitel")
bewirken, dass die Zeichenfolge %title% ersetzt wird durch Seitentitel. Statt der % Zeichen kann auch jede beliebige andere Zeichenfolge als Nadelkopf dort stehen. Es eignet sich auch, HTML-Dateien im WYSIWYG-Editor vorzufertigen und dann in ein Template zu parsen, indem man einfach die Nadel "<body>" benutzt.
Die Verwendung setzt voraus, dass in der Template-Datei die needle-Zeichenfolge vorhanden ist, z.B. in der Form %title%. Es genügt, diese Nadel an passender Stelle im Template zu platzieren.
Dann wird die geparste Datei mit dem ersetzten Text ausgegeben.
Zugegeben, das System ist sehr einfach und hat auch Nachteile, aber es genügt für kleine Zwecke. Für eine Forum-Software oder ein CMS ist es nicht zu empfehlen.
vBulletin® v3.8.3, Copyright ©2000-2012, Jelsoft Enterprises Ltd.