PHP-Einfach.de PHP lernen leicht gemacht

Navigation
» Startseite
» Newsübersicht
» Kontakt
» Impressum

Community
» Forum
» Gästebuch

Tutorial
» PHP Tutorial
» MySQL Tutorial
» PHP
» MySQL
» Codeschnipsel

Downloads
» Einführung
» Scripts
» Command Board

Sonstiges
» md5-Generator
» Generator
» Wissenswertes

PHP lernen


Dieses Projekt wird unterstützt von
Lichteffekte Shop

 
Partner:
PHP Forum
Mathe Nachhilfe
Suchmaschinenoptimierung

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:
 PHP 
1:
2:

$tpl -> init();


Ihr könnt gerne Fragen an mich stellen,

Schöne Grüße
Dennis S.

Kommentare

Zurück zur Übersicht

Autor bcreator.de

News
13.08 - » Spam im Gästebuch
Endlich Schluss mit dem Spam

08.12 - » Clanletter 2.0
Clanletter wurde komplett neu programmiert

01.09 - » Command Board 1.0 - 2.0
Das Command Board 1.0 Beta 2.0 ist erschienen


Mehr

Forum
» Entwickler Forum

» insert nach login

» Tabellenzelle zu groß







© PHP-Einfach.de 2003 - 2012