Erweiterung zum mmTemplate

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

  • Erweiterung zum mmTemplate

    Hi habe mal ne frage zu der oben gezeigten tpl klasse, was muss ich an dieser funktion ändern, da sie im mmTemplate läuft?

    Mfg TheBlackAngel



    PHP-Code:
    # parse_if_block()
     #
     # IF-Bloecke verarbeiten
     #
     # Parameter: 1. Name des IF-Blocks (das, was nach dem IF steht)
     #            2. Statuscode (true  => Inhalt anzeigen
     #                           false => Inhalt nicht anzeigen
     #
     # Rueckgabe: -nichts- (Template-Objekt wird modifiziert)

     
    function parse_if_block($name,$state)
     {
      while(
    strpos($template,"{IF ".$name."}") !== false)
      {
       
    # Das alles hier ist nicht wirklich elegant geloest...
       # ... aber solange es funktioniert... ;-)

       
    $start    strpos($template,"{IF ".$name."}");
       
    $tpl_tmp  substr($template,$start);
       
    $splitted explode("{ENDIF}",$tpl_tmp);

       
    $block ""# Kompletter bedingter Block
       
    $ifs   0;  # IF-Zaehler (wird fuer jedes IF erhoeht und fuer jedes ENDIF erniedrigt)

       # {IF}

       
    for($x=0;$x<sizeof($splitted);$x++)
       {
        
    $ifs += substr_count($splitted[$x],"{IF"); # Zum Zaehler jedes Vorkommen von IF hinzuzaehlen
        
    $ifs--;                                    # Zaehler um 1 erniedrigen
        
    $block .= $splitted[$x]."{ENDIF}";         # Daten zum Block hinzufuegen

        
    if($ifs == 0)
        {
         
    # Zaehler wieder 0, also haben wir das Ende des IF-Blocks gefunden :-))

         
    break;
        }
       }

       
    $if_block substr($block,strlen($name)+5,-7); # Alles zwischen {IF} und {ENDIF}

       # {ELSE}

       
    $else_block ""# Alles ab {ELSE}
       
    $ifs        0;  # IF-Zaehler

       
    $splitted explode("{ELSE}",$if_block);

       for(
    $x=0;$x<sizeof($splitted);$x++)
       {
        
    $ifs += substr_count($splitted[$x],"{IF");     # Zum Zaehler jedes Vorkommen von IF hinzuzaehlen
        
    $ifs -= substr_count($splitted[$x],"{ENDIF}"); # Vom Zaehler jedes Vorkommen von ENDIF abziehen

        
    if($ifs == 0)
        {
         
    # Zaehler 0, also haben wir das Ende des IF-Abschnitts gefunden

         # Aus dem Rest den ELSE-Block zusammenbauen

         
    for($y=$x+1;$y<sizeof($splitted);$y++)
         {
          
    $else_block .= "{ELSE}".$splitted[$y];
         }

         if(
    $else_block)
         {
          
    $if_block   substr($if_block,0,strlen($if_block)-strlen($else_block));
          
    $else_block substr($else_block,6);
         }

         break;
        }
       }

       
    # Block durch die jeweiligen Daten ersetzen

       
    $replacement = ($state) ? $if_block $else_block;

       
    $template str_replace($block,$replacement,$template);
      }

      
    $this->set_template($template);
     } 

Lädt...
X