Ankündigung

Einklappen
Keine Ankündigung bisher.

template klasse

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • template klasse

    hi leute,

    ein kumpel hat mal vor ewigen zeiten eine template klasse geschrieben, ich hab sie auch schon mal benutzt.. wollte sie eigentlich jetzt wieder anwenden und ich bekomme folgenden fehler!!
    PHP-Code:
    Fatal errorCall to undefined method Tpl::setVar() in /test/index.php on line 8 
    die methode setVar()( ist aber vorhanden, hat auch die richtigen rechte und trotzdem wird sie nicht angesprochen.. hier der quellcode der klasse:

    PHP-Code:
    class Tpl {
        
    // Attribute
        
    private $delStart;
        private 
    $delEnd;
        private 
    $content '';
        private 
    $error ''

        
    // Konstruktor
        
    function __construct($file ''$delStart '{'$delEnd '}')
        {
            
    $this->loadTplFile($file$delStart$delEnd);
        }
        
        
    // Destruktor
        
    function __destruct()
        {
            if(!
    $this->checkError())
            {
                
    $this->getTpl();
            }
            else
            {
                
    $this->printError();
            }
        }
        
        
    // Templatedatei Laden
        
    private function loadTplFile($file$delStart$delEnd)
        {
            
    // atttribute setzen
            
    $this->delStart $delStart;
            
    $this->delEnd   $delEnd;
            
            if(
    $file)
            {
                
                if(
    is_readable($file))
                {
                    
    // datei öffnen
                    
    $tmp fopen($file'r');
                    
                    
    // auslesen der datei
                    
    while(!feof($tmp))
                    {
                        
    $this->content .= fgets($tmp4096);
                    }
                    
                    
    //datei schließen
                    
    fclose($tmp);
                }
                else
                {
                    
    // fehlerausgabe deklarieren 
                    
    $this->error .= '
    Die Templatedatei konnte nicht gelesen werden. Überprüfen Sie ob der Server die richtigen Rechte besitzt.'
    ;
                }
            }
            else
            {
                
    // fehlerausgabe deklarieren
                
    $this->error .= '
    Um die Funktion richtig nutzen zu können, müssen sie eine Templatedatei angeben.'
    ;
            }
        }
        
        
    // Platzhaler ersetzen
        
    public function setTpl($char ''$value '')
        {
            if(
    $char)
            {
                
    $this->content str_replace($this->delStart.$char.$this->delEnd$value$this->content);
            }
            else
            {
                
    $this->error .= '
    Es wurde ein Wert für einen nicht angegeben Platzhalter verwendedt.'
    ;
            }
        }
        
        
    // Erzeugte Datei ausgeben
        
    private function getTpl()
        {
            echo 
    $this->content;
        }
        
        
    // Auf fehler prüfen
        
    private function checkError()
        {
            return (bool)
    $this->error;
        }
        
        
    // Fehler ausgeben
        
    private function printError()
        {
                
    $str  "

    \n"
    ;
                
    $str .= "[b]Error[/b]
    \n"
    ;
                
    $str .= "\t".$this->error."\n";
                
    $str .= "</p>\n";
                
                
    //fehler ausgeben
                
    echo $str;
        }

    aufgerufen wirds so...

    PHP-Code:
    require_once('Template.php'); // Klasse laden
    $Tpl = new Tpl('test.html'); // Neues Objekt erzeugen

    // DEKLARATIONEN

    $Tpl->setVar('headline''überschrift'); 
    wieso kommt dieser fehler.. ich probiere jetzt schon seit mehreren stunden.. mein kumpel kann ich leider net fragen, denn der ist im urlaub!!

    vielleicht kann mir jemand von euch helfen!!

    vg
    pat

  • #2
    wo steht da was von setVar?!
    Ich sehe da nur "setTpl" aber keine setVar function oO

    Kommentar


    • #3
      oh man.. DANKE.. so blind wie ich kann man echt net sein.. so ist das, wenn man die ganze zeit auf das selbe schaut ...

      Kommentar

      Lädt...
      X