supercat1510
Erfahrenes Mitglied
Ich versuch momentan Smarty zu lernen und kann's auch zum Teil schon umsetzen.
Mein Testscript ist ein Gästebuch-Backend.
Erst hab ich es recht einfach programmiert und das funktioniert auch schon tadellos - jetzt will ich sämtlichen HTML-Code aus den PHP-Dateien entfernen, bei einem einzelnen Eintrag klappt das auch - nur funktioniert das noch nicht ganz bei der Eintragsliste die ich aus der Datenbank auslese.
So hatte ich das bisher:
Und so versuche ich es jetzt:
gbook_list.tpl
au_gbook.php
Das Problem das ich hierbei habe ist:
1. das ich ein Feld {$guestbook} in meinem Main-Template brauche - ich würd das gerne aber wieder über die {$content} einbinden. Zum anderen scheint er auch das template so nicht zu finden das er hier halt einbinden soll.
2. wenn ich $smarty->display('gbook_list.tpl'); statt fetch nehme zeigt er mir mein Template zwar an, aber über dem Design und mit komischen werten die sich in jeder zeile wiederholen
Ich hab wahrscheinlich nur einen Denkfehler in meinem Script, aber komm momentan grad nicht selber drauf.
Mein Testscript ist ein Gästebuch-Backend.
Erst hab ich es recht einfach programmiert und das funktioniert auch schon tadellos - jetzt will ich sämtlichen HTML-Code aus den PHP-Dateien entfernen, bei einem einzelnen Eintrag klappt das auch - nur funktioniert das noch nicht ganz bei der Eintragsliste die ich aus der Datenbank auslese.
So hatte ich das bisher:
PHP:
$DbCon->DoSql("SELECT gbook_id,name,email,url,text,timestamp FROM ".$tblgbook." ORDER BY gbook_id DESC ");
$gbook_content .= "<table border=\"0\" cellspacing=\"0\" cellpadding=\"5\" width=\"100%\" class=\"zebra\">";
while ($row = $DbCon->GetRes()) {
$gbook_content .= '<tr title="'.htmlspecialchars($row['text']).'">
<td>'.$row['gbook_id'].'</td>
<td>'.$row['name'].'</td>
<td>'.$row['email'].'</td>
<td>'.$row['url'].'</td>
<td>';
$gbook_content .= date_return($row['timestamp']);
$gbook_content .= '</td>
<td>[<a href="index.php?link=au_gbook&job=edit&id='.$row['gbook_id'].'">Edit</a>]</td>
<td>[<a href="index.php?link=au_gbook&job=del&id='.$row['gbook_id'].'">Delete</a>]</td>
</tr>';
}
$gbook_content .= "</table>";
Und so versuche ich es jetzt:
gbook_list.tpl
PHP:
<table border="0" cellspacing="0" cellpadding="5" width="100%">
{foreach name=aussen item=guestbok from=$guestbook}
{foreach key=gid item=gbook from=$guestbok}
<tr title="{$gbook.text}">
<td>{$gid}</td>
<td>{$gbook.name}</td>
<td>{$gbook.email}</td>
<td>{$gbook.url}</td>
<td>{$gbook.timestamp}</td>
<td>[<a href="{$gbook.edit}">Edit</a>]</td>
<td>[<a href="{$gbook.delete}">Delete</a>]</td>
</tr>
{/foreach}
{/foreach}
</table>
au_gbook.php
PHP:
$DbCon->DoSql("SELECT gbook_id,name,email,url,text,timestamp FROM ".$tblgbook." ORDER BY gbook_id DESC ");
$smarty->assign("guestbook", $DbCon->GetRes());
$smarty->fetch('gbook_list.tpl');
Das Problem das ich hierbei habe ist:
1. das ich ein Feld {$guestbook} in meinem Main-Template brauche - ich würd das gerne aber wieder über die {$content} einbinden. Zum anderen scheint er auch das template so nicht zu finden das er hier halt einbinden soll.
2. wenn ich $smarty->display('gbook_list.tpl'); statt fetch nehme zeigt er mir mein Template zwar an, aber über dem Design und mit komischen werten die sich in jeder zeile wiederholen
Ich hab wahrscheinlich nur einen Denkfehler in meinem Script, aber komm momentan grad nicht selber drauf.