andreas: Navigation mit Smarty

Beitrag lesen

hallo torsten,

ich erlaube mir den ersten teil zu überspringen, da das ein recht unüberschaubares gebilde ist, für das es zu entwursten jetzt zu spät ist.

werden kann, d.h. also, ich kann nur auf HTML verlinken, was ist aber wenn ich auf PHP-Dateien verlinken will?
das musst du natürlich vorher einplanen. i.d.r. hast du (oder solltest du) zu jeder anzuzeigenden php-seite eine korrespondierende html-seite haben. ausgenommen, es gibt oft die gleiche struktur für mehrere seiten (zb. newsmeldungen), dann hast du für alle newsmeldungen nur ein template (html datei).

dieser Link verweist mich auf ein Kontakt-Formular, dieses Kontakt-Formular braucht aber PHP-Code!

wie eben gesagt.
ich glaube, man kann es als üblich bezeichnen, dass einfach das ganze menu mit einem array gefüllt wird. damit hast du (bei der erstellung des array) die möglichkeit, alle links passend auszugeben. der array wiederum kann einfach in einer datei gespeichert sein, oder aus der db kommen, oder xml - was das herz begehrt.

wichtig ist dabei, dass die auslagerung der menupunkte deshalb erfolgt, damit sie dynamisch anpassbar sind. wenn du eine seite mit 5 menupunkten hast, dann brauchst du die nicht in einem array übergeben. in dem fall kannst du die links auch einfach in dem template 'hart vercoden'. wenn du allerdings eben erwähnte newsmeldungen intergrierst, ist ein dynamisches menu äusserst angebracht, da du in dem fall das menu aus der datenbankabfrage der newsmaldungen erzeugst.

Ich könnte zwar den kompletten PHP-Code der auf der kompette Website benötigt wird in die index.php hauen und es dann wenn es gebraucht wird mittels  $smarty->assign() an die jeweiligen Templates übergeben. Das würde allerdings eine sehr lange Ladezeit in Ansrpuch nehmen.

das hier erscheint mir schleierhaft. definitiv ist es aber eine schlechte idee.

Vielleicht ist mein Ansatz auch falsch!?

das ist er. versuch mal die herangehensweise (auf dem papier):
* jede seite bekommt eine html datei
* gemeinsamkeiten zwischen den einzelnen html seiten erkennen und mit möglichst null html-code in eine php-logik verpacken
* ähnliche html seiten zusammenfassen zu einem gemeinsamen template. dabei entsteht oft ein logikanteil in den templates, was nicht ausarten darf. besonders bei smarty besteht die gefahr, dass zu viel anwendungslogik im template landet.

andere leute schreiben da bücher drüber, reicht also erstmal. es gibt nämlich abendbrot ;)

andreas