Templates

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

  • Templates

    Ich habe eine Seite die ich als Template angelegt habe.

    Wie bekomme ich es hin das er mir die {daten} zeilenweise ausgibt, den rest aber so lässt?

    Wenn ich das jetzt so mach wie unten aufgeliestet dann schreibt er mir für jeden Datensatz diese Template hin.

    Die Template soll so aussehen:

    Code:
    <table cellspacing=1 cellpadding=3 width="100%" 
          align=center border=0 class="t4">
      <tr> 
        <td> 
          <table cellspacing=1 cellpadding=3 width="100%" 
          align=center border=0 class="t4">
            <tbody> 
            <tr> 
              <th align=left colspan="2"> 
                <div align=center> 
                  <center>
                  </center>
                </div>
                <b>.: </b>Die Tutorials</th>
            </tr>
            </tbody> 
          </table>
        </td>
      </tr>
      <tbody> 
      <tr> 
        <td>
          <table cellspacing="2" cellpadding="3" align="center" width="100%">
            <tr> 
              <td bgcolor="#FFFFFF"> 
                <table width="100%" border="0" cellspacing="1" cellpadding="2" class="genh1" bgcolor="#CCCCCC">
                  <tr> 
                    <td bgcolor="#FFFFFF" width="12"><img src="./images/icon1.gif" width="15" height="15"></td>
                    <td bgcolor="#FFFFFF" width="100" class="topictext">{RUBRIK}</td>
                    <td bgcolor="#FFFFFF"><span class="topictitle">{COUNTER}</span></td>
                    <td bgcolor="#FFFFFF" width="50" class="topictext"> 
                      <div align="center">{VISITS}</div>
                    </td>
                    <td bgcolor="#FFFFFF" width="100" class="topictext"> 
                      <div align="center">{USER}</div>
                    </td>
                    <td bgcolor="#FFFFFF" width="100" class="topictext"> 
                      <div align="center">{DATUM}</div>
                    </td>
                  </tr>
                </table>
            </tr>
          </table>
        </td>
      </tr>
      <tr> 
        <td bgcolor="#FFFFFF"> 
          <div align="right"><a href="#top" class="nav">Nach oben</a></div>
        </td>
      </tr>
      </tbody> 
    </table>
    In einer anderen Datei habe ich Variablen festgelegt die die {Platzhalter} mit Daten füllen.

    Diese sieht so aus:

    Code:
    $topic = $row['topic'];
    
    $template = implode("",file("templates/meineDatei.htm"));
    $template = str_replace("{TOPIC}", $topic, $template);
    
    usw.
    Dann habe ich noch eine Datei wo alle Funktionen abgelegt sind die ich für die HP verwende.

    Die Funktion macht z.B. eine Abfrage der Daten und übergibt diese dann an die Datei mit den Variablen wo dann die Platzhalter mit Daten gefüllt werden.:

    Code:
    function xy() 
    
    	{
    	global $db;
    	$db->query("SELECT ....");
    					
                //Daten anzeigen    
                    while($row =  $db->data()) 
                {
                    include("./inc/beispiel.php");
                    echo ($template);
                }
    
      	}
    in der ruhe liegt die kraft

  • #2
    Du hast zwei Möglichkeiten.

    erstens:
    a) zweites Template "meineZeile.htm" erstellen
    Inhalt = die Zeile, die wiederholt werden soll
    b) die entsprechende Zeile in "meineDatei.htm" durch "{daten}" ersetzen
    c) in function xy das Haupttemplate laden
    d) in beispiel.php die Platzhalter in "meineZeile.htm" jeweils durch die Daten ersetzen und im Array $daten speichern
    e) am Ende von funktion xy "{daten}" durch implode('', $daten) ersetzen
    und das ganze auf einmal ausgeben


    zweitens:
    a) Zeile mit "{:loop}" und "{:/loop}" markieren
    b) die Zeile ausschneiden und durch "{daten}" ersetzen
    anschließend bei (1d) weiter machen

    Allerdings solltest du dann das Ergebnis in einer anderen Variable speichern als $template bzw. $zeile; z.B. $ergebnis oder so
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      Das mit ein einer extra Template zumachen habe ich bereits versucht, da hat er mir aber keine Daten mehr angezeigt.

      Ein weiteres Problem ist, das der Aufbau der Seite sehr lange dauert. Ist das bei Euch auch so?

      Hängt das ev. mit der SQL Abfrage zusammen.

      Hier ist mal die Seite: Link zur Test Version
      in der ruhe liegt die kraft

      Kommentar


      • #4
        Original geschrieben von maffy
        Ein weiteres Problem ist, das der Aufbau der Seite sehr lange dauert. Ist das bei Euch auch so?
        kommt drauf an, was für dich "lange" heißt.

        Hängt das ev. mit der SQL Abfrage zusammen.
        Könnte sein, vermutlich liegt es aber an den verschachtelten Tabellen. Der Inhalt der Seite wird recht flott an den Browser gesendet; der fängt aber erst mit dem Seitenaufbau an, wenn die äußerste Tabelle abgeschlossen ist.

        ein einfacher Test, ob´s dopch an der Query liegt:
        Lass dir mal vor und direkt hinter der Query microtime() ausgeben.
        mein Sport: mein Frühstück: meine Arbeit:

        Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

        Kommentar

        Lädt...
        X