Loop in Templateklasse

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

  • Loop in Templateklasse

    Hallo,
    ich habe eine kleine Templateklasse.
    Leider habe ich da ein Problem mit den Loops.
    PHP-Code:
    PHP-Code:
    function compile_loop($name$replaces)
        {
        
            
    $open "\{loop name=\"$name\"}";
            
    $close "\{/loop name=\"$name\"}";
            
            
    $start_pos strpos($this->content$open);
            
    $close_posstrpos($this->content$close);
           
            if(
    $start_pos == false && $close_pos == false) die("Der Loop <b>\"$name\"</b> wurde nicht gefunden");
            elseif(
    $start_pos == false && $close_pos == true) die("Der Loop <b>\"$name\"</b> wurde nicht ge&ouml;ffnet");
            elseif(
    $start_pos == true && $close_pos == false) die("Der Loop <b>\"$name\"</b> wurde nicht geschlossen");
            
    $buffer substr($this->content$start_pos strlen($open), $close_pos - ($start_pos strlen($open)));
               
    $compiled "";

            if (
    count($replaces)) {
             foreach(
    $replaces as $array) {
                 foreach (
    $array as $k => $v) {
                        
    $tag '{$'.$k.'['.$name.']}';
                         
    $tmp str_replace($tag$v$buffer);
                      }
                    
    $compiled .= $tmp;
                }
            }
            
    $this->content str_replace($open $buffer $close$compiled$this->content);
        } 
    In meinem template sieht das Ganze so aus:
    HTML-Code:

    {loop name="test"}
    <div class="out1">{$inhalt[test]}</div>
    {/loop name="test"}


    Aufrufen tue ich das mit:
    PHP-Code:
    PHP-Code:
    while($rsmysql_fetch_array($resultMYSQL_ASSOC)){
        
    array_push($kk, Array(
                 
    "inhalt" =>$rs["irgendwas"]
                    )
                );
            }
    $tpl->compile_loop("test",$kk); 
    Das Funktioniert auch super.
    Jetzt habe ich aber das Problem, dass ich mehrere Sachen aus einer DB hole und das Alles gerne in einem Loop ausgeben würde.
    Mein html würde dann so aussehen
    HTML-Code:

    {loop name="test"}
    <div class="out1">{$inhalt[test]}</div>
    <div class="out1">{$name[test]}</div>
    <div class="out1">{$status[test]}
    </div> {/loop name="test"}


    Mein Array sieht dann so aus:
    PHP-Code:
    PHP-Code:
    while($rsmysql_fetch_array($resultMYSQL_ASSOC)){
        
    //Ordnername
        
    array_push($kk, Array(
                 
    "inhalt" =>$rs["inhalt"],
                    
    "name" => $rs["name"],
                
    "status"=>$rs["staus"]
                
                    )
                );
            }
    $tpl->compile_loop("test",$kk); 
    Das Problem dabei ist, dass nur jeweils der letzte teil des Arrays in meinem Template erscheint.
    Egal was ich versuche ich schaffe es nicht die function so umzubauen, dass sie mit dem mehrdimensionalen Array zurecht kommt.
    Kann mir da wer helfen??

    Danke vorab
Lädt...
X