Denkanstos Schleifen verarbeitung in der Template klasse

Dieses Thema im Forum "Webmaster Hilfe / Programmierer Forum" wurde erstellt von splasch, 18.11.2008.

  1. #1 splasch, 18.11.2008
    splasch

    splasch Erfahrener Benutzer

    Dabei seit:
    29.01.2007
    Beiträge:
    901
    Zustimmungen:
    0
    Vorwort:

    Es soll in der Template später kein php code vorkommen.Die Lösungen mit Teilweisen php code im Template files sind mir bekannt oder die Variante den Schleifen Teil mit html mischen und in ein Array legen und diesen dann durch den Platzhalter zu tauschen.

    Denkansatz:

    Wie were es wenn man vorgebene Platzhalter für Schleifen im Template benutz.Die einen Anfang und ein Ende haben als kenzeichner im Template file.
    zb.( {start Schleife B} {$Platzhalter} {end Schleife B} )

    Nun müßte man das Template file Einlesen die Stelle suchen zwischen start schleife und end Schleife und den Teil Rausfiltern. Den Schleifen durchgang ausführen dabei jedes mal den Platzhalter ersetzen. Den Bearbeiteten Teil wieder in der zuvor gefunden Stelle ersetzen und anschließen die Restlichen Platzhalter oder Schleifen ersetzen.

    Weitere Ideen oder Vorschläge zu Problem Lösung sind erwünscht.

    Mfg Splasch
     
  2. AdMan

    schau mal hier: Windows-Wartungs-Tool. Viele Probleme lassen sich damit einfach beheben. Oftmals ist der PC dann auch schneller!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren.
  3. #2 splasch, 23.11.2008
    splasch

    splasch Erfahrener Benutzer

    Dabei seit:
    29.01.2007
    Beiträge:
    901
    Zustimmungen:
    0
    Danke hat sich erledigt.
    Problem wurde gelöst und in php code umgesetzt.

    Mfg Splasch
     
  4. Nico

    Nico Ehemaliges Teammitglied

    Dabei seit:
    28.10.2005
    Beiträge:
    6.675
    Zustimmungen:
    0
    Ich hab das damals gelöst mit <if[bedingung]><then>lala</then><else>lala</else></if>

    Tags...

    einfach <if[ mit <?php if ( ersetzt etc.
     
  5. #4 splasch, 23.11.2008
    splasch

    splasch Erfahrener Benutzer

    Dabei seit:
    29.01.2007
    Beiträge:
    901
    Zustimmungen:
    0
    Hi Nico

    Das geht viel einfach mit 2 foreach Schleifen und preg_replace.
    Verschachtelung tiefe ist dabei unbegrenz habs aber nur mal auf 2 Ebene getestet.

    Meine Lösungsweg sah so aus:

    Ein Gedanke davon ist nur die Schleifen Vorgänge zu Prashen wenn auch welche erwartet werden.
    So muß nicht immer alles fein gefiltert werden sondern es reicht eine grobe Filterung aus was sich natürlich dann
    Posetiv auf die Performenc auswirkt.
    So wird dann nur fein Gefiltern wenn es auch nötig ist. Der Performec gewinn wirkt sich daher nur aus wenn in den Templates files keine Schleifen vorgesehen sind.

    Wenn Schleifenplatzhalter vorhanden sind dann muß man mit einer geringen mehr Auslastung rechnen.

    Gestestete Template vorlage sieht so aus 2 ebene Test Verschachtelung:
    (Mit Platzhaltern und Schleifen Platzhaltern sowie einbinden weitere Templats files)
    Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de">
    <head>
    <title>Mein Templatesystem:: {$title}</title>
    <meta http-equiv="Content-Type" content="text/xhtml; charset=ISO-8859-1" />
    </head>
    <body>
    <h1>Template Test</h1>
    Hallo {$name}. Der Aktuelle Timestamp lautet: {$time}
    {* Ein Template einbinden *}
    
    {loop=hallo}
    [url="{$link}"]{$linkname}[/url]
    [b]gjgh{$lk}[/b]
    
     {loop=mux}
      [i]{$nix} {$ni}[/i]
    
     {loop=mux end}
    {loop=hallo end}
    
    {loop=einfach}
    <h4>{$long}</h4>
    {loop=einfach end}
    
    {include="othertemplate"}
    {include="nocheine"}
    {include="othertemplate"}
    </body>
    </html>
    
    Das ganze Funktioniert auch Dadelos.

    Das Ausgabe Ergebniss kann sich sehen lassen
    Bsp.

    Template Test
    Hallo Das ist der Inhalt des eingebundenen Templates...
    Das ist der Inhalt des noch einer Templates...
    . Der Aktuelle Timestamp lautet: 1227473884 Ausgabe1 gjghbau1
    one 1
    two 2
    five 5
    Ausgabe2 gjghbau2
    one 1
    two 2
    five 5
    Ausgabe3 gjghbau3
    one 1
    two 2
    five 5

    Einfach
    Zweifach
    Dreifach
    Das ist der Inhalt des eingebundenen Templates...
    Das ist der Inhalt des noch einer Templates...
    Das ist der Inhalt des noch einer Templates...
    Das ist der Inhalt des eingebundenen Templates...
    Das ist der Inhalt des noch einer Templates...

    Dazu noch die einfach Bedinung der Template Steuerung.

    PHP:
    <?php
    // Das Templatesystem einbinden
    include("template.php");
    $basisTpl="templates"#Basis Template Verzeichniss vorgeben

    // Eine neue Instanz der Template Klasse erzeugen
    $tpl = new Template($basisTpl.'\index.tpl');
    // Das Template laden

    //Schleifen Test 
    $test['link'][]= 'wert1';
    $test['link'][] = 'wert2';                
    $test['link'][] = 'wert3';
    $test['linkname'][]="Ausgabe1";    
    $test['linkname'][]="Ausgabe2";    
    $test['linkname'][]="Ausgabe3";    

    $test['lk'][]= 'bau1';
    $test['lk'][] = 'bau2';                
    $test['lk'][] = 'bau3';

    $tpl->set_loop("hallo",$test);

    //Schleifen Test 
    $tet['nix'][]= 'one';
    $tet['nix'][] = 'two';                
    $tet['nix'][] = 'five';        

    $tet['ni'][]= ' 1';
    $tet['ni'][] = ' 2';                
    $tet['ni'][] = ' 5';    

    $tpl->set_loop("mux",$tet);
    unset (
    $tet);
    $tet['long'][]= 'Einfach';
    $tet['long'][] = 'Zweifach';                
    $tet['long'][] = 'Dreifach';

    $tpl->set_loop("einfach",$tet);

    //Einfacher Schleifen test



    // Dem Platzhalter $titel den Text "Willkommen" zuweisen
    $tpl->title="Willkommen";

    // Dem Platzhalter $name den Text "Benutzer" zuweisen
    //$tpl->assign("name", "Benutzer");
    $tpl->name='{include="othertemplate"}';

    // Dem Platzhalter $time den aktuellen Timestamp zuweisen
    $tpl->time=time();
    //var_dump($tpl);
    // Und das fertige Template ausgeben
    echo $tpl->getTpl();
    ?>
    Mfg Splasch
     
  6. AdMan

    Es ist generell erstmal empfehlenswert alle ggf. veralteten oder fehlerhaften Treiber zu scannen und auf neue zu aktualisieren. Hier kannst du einen Treiber-Scanner downloaden. Das erspart oftmals viel Ärger und hilft gegen diverse Probleme.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren.
Thema: Denkanstos Schleifen verarbeitung in der Template klasse
Besucher kamen mit folgenden Suchen
  1. templates for schleife

    ,
  2. for-schleife template

    ,
  3. php eigene template klasse mit schleifen und if

    ,
  4. php einfachste template ,
  5. php loops in template system implementieren
Die Seite wird geladen...

Denkanstos Schleifen verarbeitung in der Template klasse - Ähnliche Themen

  1. Java: Instanz einer Klasse per Methode anderer Klasse erstellen

    Java: Instanz einer Klasse per Methode anderer Klasse erstellen: Moin! Ein Freund und ich wollten ein Spiel entwickeln (simples Spiel, ua. mit BlueJ). Wir wollen, dass wenn man eine Instanz von...
  2. Probleme mit Java - If Schleife

    Probleme mit Java - If Schleife: Hallo Leute, bin gerade dabei Java zu lernen und dabei sollten wir ein Programm schreiben, was die Konvertierung primitiver Datentypen...
  3. In Liferay Templates neuen Seiten zuordnen

    In Liferay Templates neuen Seiten zuordnen: Guten Tag, Ich habe von einem Kollegen eine bereits angefangene Liferay Homepage erhalten und versuche diese nun zu vervollständigen. Bin...
  4. Joomla Template kaufen

    Joomla Template kaufen: Hallo zusammen, ich bin auf der Suche nach einem schönen, modernen und animierten Template für einen PC-Service. Natürlich könnte ich ein...
  5. Java - Objektvariable an eine andere Klasse weitergeben?

    Java - Objektvariable an eine andere Klasse weitergeben?: Hi, ich habe eine Klasse Point erstellt. In dieser gibt es die Variablen double x,y, und z. Für alle gibt es eine eigene getter und setter...