Dynamik und Template-System vereinen

glowhand

Programmierer
21 April 2006
273
16
Hallo,
stehe vor einem... mehr oder minder großem Problem...
Ich stelle zur Zeit ein Loginsystem auf die Beine, das später durch verschiedene Module erweitert werden kann.
Das Login-System basiert auf Templates. Das Script kann einem Template durch entsprechende Platzhalter Variablen und Unter-Templates hinzufügen, soll aber nicht Pseudo-PHP-Code á la Smarty verwenden.
Nun kommt mir folgendes Problem in dem Sinn: Angenommen, der Nutzer des Scripts fügt im Admin-bereich ein neues Modul hinzu. Es ist ja eigentlich nicht möglich, die Templates zu verändern, da der Nutzer diese beliebig verändert haben könnte...
Beispiel:
Paid4Klick-Modul hinzugefügt... nun muss im Usermenü zusätzlich der Link "bezahlte Banner" erscheinen, von dem das Script vorher noch nichts wusste.
Hat jemand eine Idee, wie man das sauber lösen könnte?

Freue mich auf Anregungen.
 
Zuletzt bearbeitet:
Nabend :eek:)
Wen du kein templatesystem haben möchtest das insich dynamisch ist(smarty o.ä.) sehe ich da noch die möglichkeit das du es so drehst das das menu ansich in einer seperaten datei gespeichert wird die du dann beim hinzufügen eines punktes im adminbereich neu generieren läßt. Diese wird dann über ein include in dem template eingebunden.

evtl gibt es da auch eine JavaScript lösung a'la XMLHeaderRequest, aber in JS bin ich nicht fitgenug um dir da eine aussage zu geben.

Das einfachste währe aber wohl dir ein template-system zuzulegen oder zu schreiben das zumindest einen Block parsen kann.
also Z.B.
Template:
Code:
<div name="menu">
<!-- BLOCK menu -->
<a href="{menu.link}">{menu.title}</a>
<!-- ENDBLOCK menu -->
</div>
PHP:
Code:
$blockData['menu'][] = array("link"=> "/news.php", "title"=> "News");
$blockData['menu'][] = array("link"=> "/profile.php", "title"=> "Profil");
$blockData['menu'][] = array("link"=> "/links.php", "title"=> "Links");
würde dann ergeben:
Code:
<div name="menu">
<a href="/news.php">News</a>
<a href="/profile.php">Profil</a>
<a href="/links.php">Links</a>
</div>
Damit nicht alles kreutz und quer ist empfiehlt es sich wohl auchnoch eine Menu-Position im array zu speichern nach der du selbigen vor dem parsen sortierts.
Im Admin-Menu müsstest du dann halt nur die URL, den Namen und die Menu-Position angeben lassen und speichern.

vllt. hilft dir das ja :eek:)
viel erfolg bei deinem projekt und gutes nächtle.
Gruß,
Whirpool
 
ah danke.
ich werde ein template erstellen, dass den designinhalt eines einzelnen links enthält und die gebrauchten links zb fürs usermenü aus der datenbank holen und das dann zusammengefasst dem haupttemplate zuordnen.
gute idee, danke
 

Ähnliche Themen