[Smarty] Verständnisfrage

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

  • [Smarty] Verständnisfrage

    Hi!

    Ich habe gerade angefange mit Smarty und versteh es irgendwie nicht. Hoffe ihr könnt da irgendwie Licht ins dunkeln bringen...

    Ich habe zum Beispiel ein while Schleife die Daten aus der Db abhandelt und in eine Tabelle schreibt:

    PHP-Code:
    while($row mysql_fetch_array($result)) {
    echo 
    '<tr><td>Text'.$row[ID].'</td><td>Text'.$row[Daten].'</td></tr>'
    Wie würde ich sowas mit Smarty machen? Müsste ich da nicht auch mit Smarty programmieren? Das würde doch heißen das der Designer auch Plan von programmieren haben müsste, oder?
    Das ganze Script ist auch noch an eine If Abfrage gebunden, was nur die Tabelle ausgibt, wenn $_GET[ID] vorhanden ist....

    Also irgendwie macht mir Smarty momentan kein Sinn, aber ich lasse mich gerne belehren.

    Vielen lieben Dank,

    Florian Keller

  • #2
    Da legst du z.B. ein extra Template an (im beispiel template.tpl) ->

    PHP-Code:
    $body null;
    while(
    $row mysql_fetch_array($result)) {
     
    $smarty->assign('row',$row);
     
    $body .= $smarty->fetch('template.tpl'....);
    }

    $smarty->assign('body',$body);
    # usw. 
    Is aber ein bisschen umständlich...


    Oder aber du speicherst die Daten alle in einem Array...

    PHP-Code:
    $data = array();
    while(
    $row mysql_fetch_array($result)) {
     
    $data[] = $row;

    Und machst dann eine foreach-schleife in deinem Template (siehe Manual).


    Ich hoffe ich konnte helfen

    lg

    Kommentar


    • #3
      ok erst ma vielen dank.

      wenn ich aber die daten in ein array schreibe und die in die .tpl datei einfüge, dann muss ich aber in der php datei das design von der Tabelle machen oder nicht?

      Kommentar


      • #4
        Nö.

        PHP-Code:

        $data 
        = array();
        while(
        $row mysql_fetch_array($result)) {
            
        $data[] = $row;
        }

        $smarty->assign('array'$data); 
        Und im Template:

        PHP-Code:

        {foreach from=$array item=current}
             <
        tr><td>{$current}</td></tr>
        {/foreach} 

        Kommentar


        • #5
          Ok, so funzt das Danke!
          Aber im Prinziep muss ich ja in meiner .tpl datei auch programmieren

          Nochma Danke!!

          Kommentar


          • #6
            Das Prinzip von Smarty, bzw den meisten Templateengines ist ja die Logik vom Layout zu trennen.

            Wenn du jetzt einer Smarty Variablen HTML zuweisen würdest, stellst du das System ja eigentlich auf den Kopf und kannst auch mit normalem PHP/HTML gemisch arbeiten.

            Das bißchen "Programmieren" wie du es nennst bezieht sich in diesem Fall ja nur auf das ausgeben eines Arrays. Das ist für mich kein Programmieren.

            Kommentar

            Lädt...
            X