<?php
 
class View{
 
 
    // Pfad zum Template
 
    private $path = 'templates/recursivetemplates';
 
    // Name des Templates, in dem Fall das Standardtemplate.
 
    private $template = 'overview';
 
 
    /**
 
     * Enthält die Variablen, die in das Template eingebetet
 
     * werden sollen.
 
     */
 
    private $_ = array();
 
 
    /**
 
     * Ordnet eine Variable einem bestimmten Schlüssel zu.
 
     *
 
     * @param String $key Schlüssel
 
     * @param String $value Variable
 
     */
 
    public function assign($key, $value){
 
        $this->_[$key] = $value;
 
    }
 
 
 
    /**
 
     * Setzt den Namen des Templates.
 
     *
 
     * @param String $template Name des Templates.
 
     */
 
    public function setTemplate($template = 'default'){
 
        $this->template = $template;
 
    }
 
 
 
    /**
 
     * Das Template-File laden und zurückgeben
 
     *
 
     * @param string $tpl Der Name des Template-Files (falls es nicht vorher 
 
     *                         über steTemplate() zugewiesen wurde).
 
     * @return string Der Output des Templates.
 
     */
 
    public function loadTemplate(){
 
        $tpl = $this->template;
 
        // Pfad zum Template erstellen & überprüfen ob das Template existiert.
 
        $file = $this->path . DIRECTORY_SEPARATOR . $tpl . '.php';
 
        $exists = file_exists($file);
 
 
        if ($exists){
 
            // Der Output des Scripts wird n einen Buffer gespeichert, d.h.
 
            // nicht gleich ausgegeben.
 
            ob_start();
 
 
            // Das Template-File wird eingebunden und dessen Ausgabe in
 
            // $output gespeichert.
 
            include $file;
 
            $output = ob_get_contents();
 
            ob_end_clean();
 
                
 
            // Output zurückgeben.
 
            return $output;
 
        }
 
        else {
 
            // Template-File existiert nicht-> Fehlermeldung.
 
            return 'could not find template';
 
        }
 
    }
 
}
 
?>
 
 |