Hilfer bei eigenem tpl parser

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

  • Hilfer bei eigenem tpl parser

    Hallo hab mir mal nen eigenen tpl parser geschrieben (ist nicht gerade der beste aber sollte erstmal reichen) jetzt fehlt mir nurnoch eine sache wo ich momentan kein plan hab wie ich die einbauen soll und zwar möchte ich auch schleifen parsen können (für z.B News die aus der Db ausgelesen werden und mehrere angezeigt werden)

    naja hier mal mein code

    PHP-Code:
    <?php
    class tpl {

    var 
    $path;
    var 
    $contents;
    var 
    $content;
    var 
    $handle;

    ############         Für das Parsen von normalen dateien             ##########################
     
    function load ($template
     {
      
    $pfad "template/";
      
    $end ".tpl";
      
      
    $this->path $pfad.$template.$end;
      
    $this->handle = @fopen($this->path,"r");
       if (!
    $this->handle)
       {
       echo 
    "Konnte Datei <font color=\"red\">($this->path)</font> nicht öffnen";
       exit();
       }
       
    $this->contents implode("",file($this->path));
       
    fclose ($this->handle);
     }

     function 
    replace($search,$replace)
     {
      
    $this->contents str_replace("{\$".$search."}"$replace,$this->contents);
     } 
     
      function 
    get()
     {
      echo 
    $this->contents;
     } 

              }

    ############         Für das Parsen von db daten           ##########################
              
    function sql_load($table,$where)
     { 
      
    $this->sql "SELECT content from ".$table." where name ='".$where."'";
      
    $this->sql_query =mysql_query($this->sql);
      while(
    $row mysql_fetch_object($this->sql_query))
      {
      
    $this->content =$row->content;
      }

     }
     
     function 
    sql_replace ($search,$replace)
     {
      
    $this->content str_replace("{\$".$search."}"$replace$this->content);
     }
       
       function 
    sql_get()
     {
      echo 
    $this->content;
     }           
    ?>

  • #2
    1. Ist es Absicht, Dateien in $contents und DB-Inhalte in $content zu halten?

    2. Warum ruft sql_replace() nicht einfach replace() auf? Analog sql_get() und get() - da sehe ich nämlich auch keinen Unterschied.

    3. Wie sehen Schleifen in deinen Templates aus? Wenn du dir das überlegt hast (woher etwa die Laufvariable kommt etc.), kommst du wahrscheinlich selbst drauf.
    Oder schau einfach wie andere Templateklassen das machen.

    Kommentar


    • #3
      Original geschrieben von onemorenerd
      1. Ist es Absicht, Dateien in $contents und DB-Inhalte in $content zu halten?

      2. Warum ruft sql_replace() nicht einfach replace() auf? Analog sql_get() und get() - da sehe ich nämlich auch keinen Unterschied.

      3. Wie sehen Schleifen in deinen Templates aus? Wenn du dir das überlegt hast (woher etwa die Laufvariable kommt etc.), kommst du wahrscheinlich selbst drauf.
      Oder schau einfach wie andere Templateklassen das machen.
      werde ich noch umändern das es abgefragt wird war bloß auf die schnelle erstmal so geschrieben werde es mir mal angucken und mich hiernochmal melden
      mfg
      et

      Kommentar


      • #4
        Haben diverse Threads zu diversen engines. Guck doch mal da rein. Vielleicht kannst du die Schleifenmodelle ja auf dein System transportieren.

        Kommentar


        • #5
          Warum benutzt man fopen, wenn man das File eh mit file() einliest? Und warum nicht file_get_contents()?
          h.a.n.d.
          Schmalle

          http://impressed.by
          http://blog.schmalenberger.it



          Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
          ... nur ohne :-)

          Kommentar


          • #6
            Hab mir das selber bei anderen Template-engines noch gar ned angesehen. Selber verwende ich HTML-Kommentare zum definieren von Loops im Template, die lassen sich problemlos im HTML-Code an beliebiger Stelle integrieren und vertragen sich IMHO mit jedem HTML-Editor.

            Dann einfach mit explode() am Kommentar exploden und den mittleren Teil inkrementiel mit den DB-Ergebnisen ersetzen und zum Schluss alles raushauen.

            Bestimmt nicht ne profimäßige vorgehensweise wie die bekannten Template-engines (das was ich da mache hat den Namen Template-engine wahrscheinlich gar ned verdient), kommt aber mit weniger als 50 Zeilen Code aus, reicht mir in 95% der Fälle vollkommen aus und die Geschwindigkeit ist soweit ich es beurteilen kann hervorragend.

            Gruss
            Quetschi
            Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
            Schön - etwas Geschichte kann ja nicht schaden.
            Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

            Kommentar

            Lädt...
            X