Loops in Templateklasse

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

  • Loops in Templateklasse

    Hallo,

    ich versuche mich grade an einer kleinen Templateklasse. Soweit klappt auch alles ganz gut. Es seie denn es ist mehr als ein Datensatz in der DB vorhanden. Dann wird nur einer bei der Ausgabe angezeigt. Leider stehe ich grade auf dem Schlauch und\oder sehe den Wald vor lauter Bäumen nicht.

    Wie teile ich meiner function prep() mit das sie für jeden Datensatz eine zusätzliches section element hinzufügen soll. Momentan wird ja immer der alte Überschrieben.

    PHP-Code:
    class dcont {

        var 
    $path="templates";
        var 
    $tpl "notpl";
        var 
    $sections;
        var 
    $loop;
        
    // Get Code
        
    function dcont($tpl)
        {
            
            if(!
    file_exists($tpl)){
                die(
    'Das Template "'.$tpl.'" konnte nicht gefunden werden!');
            }else{
            
    $html implode (''file ("$tpl"));
            
    preg_match_all('/<!--DYCONT ([a-z0-9A-Z_]+)-->(.*?)<!--End ([a-z0-9A-Z_]+)-->/is',$html$matches);
            
    $split_source = array();
            for (
    $k=0$k<count($matches[0]); $k++)
              
    $split_source[$matches[1][$k]] = $matches[2][$k];
            
    $this->sections = array();
            
    $this->sections $split_source;
            return 
    $this->sections;
            }
            
        }

        function 
    prep($item$content$sect)
        {
            
    $rplcstr "{".$item."}";
            
    $this->sections[$sect] = str_replace($rplcstr$content$output);
            
        }
        
        function 
    out()
        {
               foreach(
    $this->sections AS $key=>$val){
            echo 
    $val;
            }
        }
        

    Gesteuert wird so:

    PHP-Code:
        $cont = new dcont("templates/aktienkaufen.tpl");
        while(
    $row $sql->fetch()){ 
        
    $fname $row["name"];
        
    $wert $row["wert"];
        
    $verf $row["aktien"];
        
    $trend_val $row["trend"];
        if(
    $trend_val == "+-0"){ $t_class "fliesstext_bold_farb_gr"; }elseif(substr($trend_val01) == "-"){ $t_class "fliesstext_bold_farb"; }else{ $t_class "fliesstext_bold_farb_g"; }
        
    $pfad '<img src="'.$row["logo"].'">';

                        
    $cont->prep("firmenlogo"$pfad"Zeilen");                    
                        
    $cont->prep("firmenname"$fname"Zeilen");    
                        
    $cont->prep("tendenz""<span class=".$t_class.">".$trend_val."</span>""Zeilen");            
                        
    $cont->prep("preis"round($wert,2)." Coins""Zeilen");
                        
    $cont->prep("vorhandene_aktien"$verf." Stück""Zeilen");    
                        
    $cont->prep("kauflink",  $kauflink"Zeilen");                    
        }
        
    $cont->out(); 
    Hat einer ne Idee?
    The Human Mirror - Mein Blog!
    www.sonicsense.de - The future of music!

  • #2
    Sry für Überlänge. Kann meinen Beitrag nicht editieren.
    The Human Mirror - Mein Blog!
    www.sonicsense.de - The future of music!

    Kommentar


    • #3
      Zunächst halte ich es für außerordentlich fragwürdig in Zeiten von Smarty etc. noch neue Template-Klasse zu bauen, aber dafür gibt´s bestimmt trifftige Gründe.

      Zu deiner Frage:
      Entweder du hängst die Ergebnisse an die Section an...
      PHP-Code:
      $this->sections[$sect] .= str_replace($rplcstr$content$output); 
      oder du musst das Array mehrdimensional machen...
      PHP-Code:
      var $intSectionCounter// Klassengobaler Section-Zähler

      function prep($item$content$sect)   {
              
      $rplcstr "{".$item."}";
              
      $this->sections[$sect][$this->intSectionCounter] = str_replace($rplcstr$content$output);
              
      $this->intSectionCounter++;

      und nun noch die Methode out() anpassen. Die erste Methode ist wohl einfacher.
      Ich denke, also bin ich.
      Manche sind trotzdem!

      Kommentar

      Lädt...
      X