Smarty-Templates
the-FoX
- php
Hallo alle zusammen,
gibt es da draussen vieleicht jemanden unter Euch, der mir helfen kann betreffend der Smarty-Engine ? :-)
Ich möchte ein kleines Content-Management-System für meine Seite basteln, das meinen Bedürfnissen angepasst ist. Letztens hab ich die die Smarty-Template-Engine gefunden und war begeistert. Man kann sehr viel damit machen, aber so ganz steig ich da noch nicht durch :-( sonst würd ich ja auch nciht hier um Hilfe bitten ;-)
Jetzt möchte ich gerne ein Menü, das ich aus einer beliebigen SQL-Datenbank auslese mittels Templates darstellen.
Ich möchte es aber unabhängig davon machen, wie tief die Menüstruktur ist. Wie tief diese Struktur angezeigt werden soll soll im Template definiert werden können.
Jetzt dachte ich mir, ich bau mir ein Array auf, das das Menü enthält, welches ich dann mittels der Smarty-Engine in einer Loop durchgehe. Nur so recht fällt mir nix ein, was mir gefällt.
Wichtig ist halt, dass ich zu jedem Menüeintrag einen text und einen Link habe und den Level, auf dem sich das Menü befindet (also zum Beispiel dargestellt durch die Einschubsweite:
Menu1
menu2
Menu3)
Mir schwebt sowas vor, dass ich für jeden Level quasi eine Zeile im Template definiere.
Vieleicht hat ja jemand von Euch schon mehr Erfahrungen mit der Smarty-Template-Engine. Würd mich über Antworten freuen.
Ciao the-FoX
Servus!
gibt es da draussen vieleicht jemanden unter Euch, der mir helfen kann betreffend der Smarty-Engine ? :-)
Ich hoffe es ;)
Ich möchte ein kleines Content-Management-System für meine Seite basteln, das meinen Bedürfnissen angepasst ist. Letztens hab ich die die Smarty-Template-Engine gefunden und war begeistert. Man kann sehr viel damit machen, aber so ganz steig ich da noch nicht durch :-( sonst würd ich ja auch nciht hier um Hilfe bitten ;-)
Hab auch ein kleines CMS damit geschrieben und verwende Smarty für fast alle Projekte...
Schau dir einmal www.borgmistelbach.ac.at an, das Menü ist aus 2 MySQL-Tabellen zusammengebaut, mit "nested sections" (so nennen die Smarties das), ebenso der Terminkalender (www.borgmistelbach.ac.at/termine/).
Ich schick dir gerne die Codestellen und Templates gerne zu, das ist doch einiges, melde dich bei mir...
Grüße, Stefan
Hallo,
die MySQL-Datenbank sollte so aussehen:
+-----+---------------+--------------+-------+
| pos | text | link | level |
+-----+---------------+--------------+-------+
| 1 | Menue1 | menue1.php | 0 |
| 2 | Menue2 | menue2.php | 1 |
| 3 | Menue3 | menue3.php | 0 |
+-----+---------------+--------------+-------+
dann wuerde ich es mit fetch-array in ein array einlesen:
$rows = array ();
while ($row = mysql_fetch_array($res)) {
$rows[] = $row;
}
den array $rows dann an Smarty uebergeben:
$smarty->assign ("Navig", $rows);
dann in der Template z.B. so einen Code schreiben (ich weiss, es ist nicht ganz sauberes HTML wegen , aber es ist nur ein Beispiel)
{section loop=$Navig name=navigloop}
{section loop=$Navig[navigloop].level name=levelloop} {/section}
<a href="{$Navig[navigloop].link}">{$Navig[navigloop].test}</a>
{/section}
Smarty wiederholt den Inhalt der Section naemlich bei einer Loop auf einen Integer so viele mal, wie der Integer gross ist.
Gruesse,
Christian
Hallo,
Anmerkung:
ich hab so was mit einer "hierarchischen" Tabelle (jeder Eintrag hatte einen sogenannten "Vatereintrag") schon realisiert und das ganze dann inkl. Level in einen Array geschrieben. So ein Loesung waere sauberer als die andere, da die Position nicht so einfach verrutschen kann. Wenn Du willst, mail ich die SQL-Anweisungen, den PHP-Code und den Template-Inhalt.
Gruesse,
Christian