Template-System will nicht so ganz

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

  • Template-System will nicht so ganz

    Hallo,

    ich schreibe gerade an einem Simplen Template System

    PHP-Code:
    public function display($template)
      {
        
    $this->parse($template);
      }
      
      private function 
    replace_assigns($code)
      {
        return 
    preg_replace('#\{([a-z0-9\-_]*?)\}#is', ((isset($this->assigns[1])) ? $this->assigns[1] : '') , $code);
      }
      
      private function 
    parse($template)
      {
        
    $content file_get_contents($this->template_dir $template '.html');
        
    $content $this->replace_assigns($content);
        echo 
    $content;
      } 
    Mein Problem ist, das die variable: {test} => "testsatz"

    im template nicht ersetzt wird... und dann hätt ich noch die frage ob es eine performantere (hoffe das ist richtig so) Methode gibt um das ganze zu ersetzen und auszugeben.

    Vielen Dank!
    Mfg Tobias Dosch

  • #2
    ich mag mich ja irren .. aber sollte man dem template script nicht ZWEI variablen übergeben?? einmal den "variablen-namen" in der html datei .. und durch was sie ersetzt werden soll?
    Gruß
    Uzu

    private Homepage

    Kommentar


    • #3
      $this->assigns = array(); !!!

      das heißt: $this->assigns['test'] = 'testsatz';

      und da innerhalb einer classe ja auf variablen zugegriffen werden kann muss ich nichts übergeben.. auser den html code... der rest wird ja von der jeweiligen funktion dann gehohlt...
      Mfg Tobias Dosch

      Kommentar


      • #4
        PHP-Code:
        return preg_replace('#{([a-z0-9-_]*?)}#is', ((isset($this->assigns[1])) ? $this->assigns[1] : '') , $code); 
        Ähm? In deinem pattern steht nichts von "test". wieso sollte gerade dieser Platzhalter ersetzt werden?

        Die Funktion display($template) ist natürlich auch ziemlich überflüssig.

        Kommentar


        • #5
          $this->assigns = array(); !!!
          Das kann man anhand deines Scriptest vermuten, konkrete Werte verheimlichst du aber. Also beim besten willen kein Grund hier rumzuschreien.

          und da innerhalb einer classe ja auf variablen zugegriffen werden kann muss ich nichts übergeben.. auser den html code...
          Dann würd ich mir die Übergabe des HTML-Codes doch erst recht sparen.

          Kommentar


          • #6
            das mit der variable test war nur ein beispiel... natürlich sollen alle ersetzt werden... der code ist eigentlich richtig ich weiß nurnich worans hakt.. aber ich schau mir einfach andere tpl systeme an wie die das machen
            Mfg Tobias Dosch

            Kommentar


            • #7
              Der Code ist nicht annähernd richtig!

              http://regexp-evaluator.de/evaluator...5077/#ergebnis

              Da siehst du was er macht.

              Woher soll der Code nun wissen, dass er "test" mit "testsatz" oder "Foo" mit "Bar" ersetzen soll? Raten?

              aber ich schau mir einfach andere tpl systeme an wie die das machen
              Setzt doch einfach was fertiges ein oder verzichte ganz darauf.

              Kommentar

              Lädt...
              X