[Smarty] Verständnisfrage

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [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

    Comment


    • #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?

      Comment


      • #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} 

        Comment


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

          Nochma Danke!!

          Comment


          • #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.

            Comment

            Working...
            X