|
|
|
Template Class
Zurück zur Übersicht Mit dieser Klasse lassen sich Templates laden und Platzhalter durch vorgegebene Werte ersetzen.
Moin,
ich habe mich durchaus gewundert, dass neben den tollen Codeschnipseln keine Template Klasse vorhanden ist.
Da ich sowieso bisher noch keine Codeschnipsel gepostet habe, wird es nun Zeit. Ich präsentiere eine meiner Klassen aus meinem Framework, die Template Klasse.
Im Prinzip ist an ihr nichts besonders, aber dafür unkompliziert. Hier ist schonmal das ganze Skript:
| PHP |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
|
<?php
/*
* Simple Template Klasse
*
* Has been written by Dennis S.
* (c) 2010 bcreator.de
*/
//
// Template Properties: important functions for creating Templates
//
interface TProperties
{
/*
* @function replace(string find, string replace)
* @example replace("string_to_find", "to_replace")
*/
public function replace($find,$replace);
/*
* @function addFile(string File)
* @example addFile("Path/Filename.ext")
*/
public function addFile($File);
/*
* @function init()
* @description it returns the complete source
*/
public function init();
}
class Template implements TProperties
{
/*
* NOTICE: You can change here your schemes for replacing content
* WARNING: DO NOT CHANGE OR REMOVE THE [FILE_NAME] OR [REPLACE_DATA]
*/
const FILE_INCLUDE = '{include:[FILE_NAME]}'; // TMP - Include scheme -> {include:file.ext}
const TO_REPLACE_DATA = '{[REPLACE_DATA]}'; // Replace - scheme -> {replace}
/*
* Variable for the whole source
*/
protected $Source;
/*
* contruct class
*/
public function __construct($File)
{
// Check if file exists
if(file_exists($File))
{
$this -> Source = file_get_contents($File);
return true;
}
else
{
return false;
}
}
/*
* replace function
*/
public function replace($find,$replace)
{
$scheme = str_replace('[REPLACE_DATA]',$find,self::TO_REPLACE_DATA);
$this -> Source = str_replace($scheme,$replace,$this -> Source);
}
/*
* addFile function
*/
public function addFile($File)
{
if(file_exists($File))
{
$scheme = str_replace('[FILE_NAME]',$File,self::FILE_INCLUDE);
$this -> Source = str_replace($scheme,file_get_contents($File),$this -> Source);
return true;
}
else
{
return false;
}
}
/*
* init function
*/
public function init()
{
if($this -> Source !== null)
return $this -> Source;
}
}
?>
|
|
Bei den Kommentaren ist eigentlich schon alles erklärt, wie man die einzelnen Funktionen der Klasse bedient. Ein Beispiel werde ich aber trotzdem schreiben.
Als erstes müssen wir die Klasse "öffnen":
| PHP |
1:
2:
3:
4:
5:
|
<?php
...
$tpl = new Template('(Pfad)/BasisTemplate.ext');
...
?>
|
|
Zweiter Schritt wäre dann die einzelnen Funktionen zu verwenden, ich werde beide vorstellen:
| PHP |
1:
2:
3:
|
$tpl -> replace('title','Meine Seite'); // {title} wird zu Meine Seite
$tpl -> addFile('Test/Datei.tpl'); // {include:Test/Datei.tpl} wird durch den Content der Datei Test/Datei.tpl ersetzt
|
|
Letzter Schritt wäre dann nur noch zu Debuggen, also das Ergebnis auszugeben:
Ihr könnt gerne Fragen an mich stellen,
Schöne Grüße
Dennis S.
Kommentare
Zurück zur Übersicht
Autor bcreator.de
|
|
|
|