PHP-Einfach.de
  • PHP Tutorial
  • MySQL Tutorial
  • Für Fortgeschrittene
  • Webhosting
  • Jobs
  • Forum

Codeschnipsel

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
/*
 * 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
...
$tpl = new Template('(Pfad)/BasisTemplate.ext');
...
?>


Zweiter Schritt wäre dann die einzelnen Funktionen zu verwenden, ich werde beide vorstellen:


$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:

$tpl -> init();


Ihr könnt gerne Fragen an mich stellen,

Schöne Grüße
Dennis S.

Kommentare

Autor bcreator.de

Zurück zur Übersicht
Autor: Nils Reimers
Zurück: URLs im Text identifizieren

Für Fortgeschrittene

  • Objektorientierte Programmierung
  • PHP Sicherheit
  • Script-Beispiele
  • Codeschnipsel
  • Stellenmarkt

Ungelesene Artikel

» PDF per PHP erstellen – PDF-Rechnung
» Welchen Webspace-Tarif wählen?
» Was kostet Webhosting?
» Vermeidbare Fehler bei der Wahl des Webspace-Angebots
» Lohnt sich ein eigener Server? Vor- & Nachteile
... mehr
Mit freundlicher Unterstützung von:
  • finanzcheck.de
  • kredite.info

Newsletter

Impressum | Datenschutz | Auf PHP-Einfach.de werben

© PHP-Einfach.de 2003 - 2018

Um dich beim Lernen von PHP und MySQL zu unterstützen verwenden wir Cookies. OK Weitere Infos