+ Antworten
Ergebnis 1 bis 7 von 7

Thema: Template/css/loop...

  1. #1
    TP-Senior glen macht alles soweit korrekt Avatar von glen
    Registriert seit
    Aug 2003
    Beiträge
    130

    Template/css/loop...

    Hi,
    ich hab' mal begonnen mir anzuschauen wie Templates funktionieren. Gerade erst am Anfang und habe ein paar Fragen.

    Fakten:
    Ich habe eine index.php und eine index.tpl

    1) In welche Datei und WIE binde ich eine externe css-Datei ein? Geht das ganz normal wie bei einer HTML datei mit <link rel... ?

    2) Ich habe von einer Loop-Schleife gehört, die ziemlich hilfreich und wichtig sein soll, doch bei google etc finde ich nur Do-Loop- oder While-Loop- oder gar Do-While-Loop-Schleifen. Doch ich habe ganz klar von Loop-Schleife gehört. Wie funktioniert diese ?

    3) Ich lese z.b. in einer board.php per mysql_query Daten aus einer Datenbank aus. Wie binde ich dies dann, wie sonst bei einem Board(zumindenst bei mir , in eine while-Schleife und vorallem DANN in die board.tpl ein, sodass dennoch alles richtig funktioniert?


    Danke euch für eure Hilfe!

    Grüße
    Charisma is important for me

  2. #2
    TP-Specialist Dennis The Menace bringt sich richtig ein Dennis The Menace bringt sich richtig ein Avatar von Dennis The Menace
    Registriert seit
    Nov 2004
    Ort
    Ich komme aus dem Zauberwald
    Beiträge
    2.035
    1) In welche Datei und WIE binde ich eine externe css-Datei ein? Geht das ganz normal wie bei einer HTML datei mit <link rel... ?
    Japp, wobei dass dann in der Regel in die Templatedatei gehört.

    2) Ich habe von einer Loop-Schleife gehört, die ziemlich hilfreich und wichtig sein soll, doch bei google etc finde ich nur Do-Loop- oder While-Loop- oder gar Do-While-Loop-Schleifen. Doch ich habe ganz klar von Loop-Schleife gehört. Wie funktioniert diese ?
    Naja, als Loop-Schleife bezeichnet man eine Schleife, die im Schleifenaufruf keine eigene Abbruchbedingung hat. In anderen Worten, eine Endloschleife; eine Abbruchbedingung findet sich dann nur innerhalb der Schleife. Emulieren lässt sich dass mit while(true): endwhile;
    Schon hättest du in PHP eine Endlosschleife.

    Wie man sie in Tempaltes einsetzen kann, kommt ganz darauf an, wie die Template Engine, die du verwendest, arbeitet.

    3) Ich lese z.b. in einer board.php per mysql_query Daten aus einer Datenbank aus. Wie binde ich dies dann, wie sonst bei einem Board(zumindenst bei mir , in eine while-Schleife und vorallem DANN in die board.tpl ein, sodass dennoch alles richtig funktioniert?
    Es gib endlich viele Template Engines. In jeder Funktioniert das anders, daher kann ich dir nur das Grundprinzip erklären, bis du uns verrätst, welche Templateengine du verwendest.

    Das Grundprinzip sieht dahingehend aus, dass du im Template sogenannte Platzhalter hast, deren Inhalt du erst beim Auslesen setzt

    Code:
    //BeispieltempalteDatei titel.tpl
    
     <div id="title">
      <h1><span>{-title-}</span></h1>
      <p><span>{-untertitel-}</span></p>
     </div>
    Die Templateengine läd dann diese Datei, ersetzt die vordefinierten Platzhalter [zu erkennen an den {-*-} mit dem Text deiner Wahl, Z.b. Daten aus einer Datenbank.
    Zwei Dinge sind Unbestreitbar:
    • In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.
    • Die Erde ist eine Scheibe!
    Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
    Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!

  3. #3
    TP-Senior glen macht alles soweit korrekt Avatar von glen
    Registriert seit
    Aug 2003
    Beiträge
    130
    Ich blöd.
    ALso ich arbeite mit Smarty! ^^

    Das mit den Platzhaltern verstehe ich, aber z.b.:

    in der board.tpl befindet sich dann die Tabelle
    Code:
    <table border="0" class="{cycle values="table1,table2"}">
    <tr><td>&nbsp;</td><td> Foren </td><td> Beiträge </td><td> Themen </td><td> letzter Beitrag </td></tr>
    <tr><td> {platz1}</td><td> {$forum.name} </td><td> {$forum.anzahl} </td><td> {...} </td><td> {...} </td></tr>
    </table>
    <br>
    (grob)
    Woher weiß er dann, dass er die Tabelle, wie es bei einer while-Schleife ja ist, immer solange wiederholen muss, bis keine Daten mehr da sind? Er trägt doch dann wenn überhaupt nur alle $Platz1 z.b. in die eine Zelle rein und wiederholt die Tabelle nicht laufend?

    Verständlich dieses Problem?

    Dank euch und dir
    Charisma is important for me

  4. #4
    TP-Specialist Dennis The Menace bringt sich richtig ein Dennis The Menace bringt sich richtig ein Avatar von Dennis The Menace
    Registriert seit
    Nov 2004
    Ort
    Ich komme aus dem Zauberwald
    Beiträge
    2.035
    Woher weiß er dann, dass er die Tabelle, wie es bei einer while-Schleife ja ist, immer solange wiederholen muss, bis keine Daten mehr da sind? Er trägt doch dann wenn überhaupt nur alle $Platz1 z.b. in die eine Zelle rein und wiederholt die Tabelle nicht laufend?
    Genau dafür gibt es halt schleifen. Tue das und das solange, bis keine Daten mehr vorhanden sind. Sowas lässt sich natürlich über PHP direkt lösen, wobei man als Autor einer moderneren Template Engine natürlich will, dass man das auch im Template selbst definieren kann. Was Smarty gewiss können wird.

    Nur - leider habe ich von Smarty 0 Plan und es noch nie benutzt noch irgendwelchen Code davon gesehen, sonst würde ich dir jetzt sogar erklären, wie es mit Smarty geht. Hier im Forum gibts aber einige, die sich damit scheinbar auskennen. Also - hab ein paar Minuten Geduld Oder entwickle eine eigene Templateengine - das macht wesentlich mehr Spass
    Zwei Dinge sind Unbestreitbar:
    • In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.
    • Die Erde ist eine Scheibe!
    Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
    Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!

  5. #5
    TP-Senior glen macht alles soweit korrekt Avatar von glen
    Registriert seit
    Aug 2003
    Beiträge
    130
    Zitat Zitat von Dennis The Menace
    Genau dafür gibt es halt schleifen. Tue das und das solange, bis keine Daten mehr vorhanden sind. Sowas lässt sich natürlich über PHP direkt lösen, wobei man als Autor einer moderneren Template Engine natürlich will, dass man das auch im Template selbst definieren kann...

    Nur - leider habe ich von Smarty 0 Plan und es noch nie benutzt noch irgendwelchen Code davon gesehen, sonst würde ich dir jetzt sogar erklären, wie es mit Smarty geht...
    Nochmal hi

    Mit PHP kenn ich mich ja generell eigentlich gut aus und kenne daher generell auch Schleifen. Aber bei meinem Beispiel z.B. war die Tabelle ja gar nicht in die Schleife integriert, sondern nur die Daten aus der DB. Und deswegen meine Frage("Woher weiß die Tabelle, dass sie sich auch dauernd wiederholen muss, obwohl sie nicht in dieser Schleife ist?"). Vielleicht schwer verständlich - könnt ich verstehen
    Dank dir trotzdem. Du kannst ja auch nicht alles wissen & können !

    EIgene Templateengine...hehe...0 chance

    Dann warte ich noch was.

    Tschüüß!
    Charisma is important for me

  6. #6
    TP-Specialist Dennis The Menace bringt sich richtig ein Dennis The Menace bringt sich richtig ein Avatar von Dennis The Menace
    Registriert seit
    Nov 2004
    Ort
    Ich komme aus dem Zauberwald
    Beiträge
    2.035
    ("Woher weiß die Tabelle, dass sie sich auch dauernd wiederholen muss, obwohl sie nicht in dieser Schleife ist?")
    Naja, dass gibst du halt im Template selber mit an. Du makierst halt den Beginn der Tabelle und das Ende der Tabelle.

    Code:
    //In einem Phantasietemplate könnte das wie folgt aussehen
    
     <table>
      {-foreach 'select * from tabelle where inhalt <> ""'-}
       <tr>
        <tb>{-inhalt-der-datenbank-}</tb>
       </tr>
       {-end of foreach-}
      </tabelle>
    In der Templateengine, die ich verwende, funktioniert das z.b. ein wenig anders. Bsp:

    Code:
    //Tempalte Metatext.html
    <meta http-equiv="Pragma" content="no-cache" />
    <meta http-equiv="Expires" content="-1" />
    <meta http-equiv="Cache-Control" content="no-cache" />
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <meta name="generator" content="<cmd: call kernel with Version>" />
    <meta name="revisit-after" content="7 days" />
    <meta name="robots" content="index,follow,noarchive" />
    <cmd: foreach getConf with metatext>
    Am Ende dieses Templates wird halt eine Foreach Schleife ausgeführt. Im Hintergrund funktioniert das nun so, dass er die Funktion getConf aufruft, aps parameter "metatext" übergibt, und für jeden Eintrag, den das array zurückgibt, das Element Metatext.html aufruft und den Inhalt einträgt.

    Code:
    //Das Element Metatext.html
    <meta name="<cmd: call getTemp with key>" content="<cmd: call getTemp with value>" />
    Sinn dieser Engine war es, drei verschiedene Arten von "Templates" zu kreieren. Einmal Sites, Templates und Elements. Mit jenen wird dann im Code unterschiedlich umgegangen.
    Geändert von Dennis The Menace (21.01.2005 um 22:32 Uhr)
    Zwei Dinge sind Unbestreitbar:
    • In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.
    • Die Erde ist eine Scheibe!
    Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
    Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!

  7. #7
    TP-Senior glen macht alles soweit korrekt Avatar von glen
    Registriert seit
    Aug 2003
    Beiträge
    130
    Hat sich wohl vorerst erledigt mein Problem

    Danke Dennis!

    //edit: Wo ist denn der "Erledigt"-Button hin?
    Charisma is important for me

+ Antworten

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51