Webseite Modular aufbauen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
array
art
bank
beschreiben
bild
code
datei
datum
dokument
element
erzeugen
header
info
lade
modul
sprache
text
url
verwalten
vorliegen
-
Hi
ich habe ein CMS erstellt, mit dem man beliebig viele (unterschiedliche) Webseiten verwalten kann.
Die Webseiten liegen alle auf einem Server, nur in verschiedenen Unterordnern.
In diese Unterordner kommen so eine Art Templatedateien.
In diesen Dateien ist im prinziep immer gleichviel HTML und PHP Code enthalten. Ich lade XML-Daten aus der Daten bank, wandle sie in ein Array und verteile sie mit Shorttags in der PHP-Datei.
Jetzt hab ich immer etwa folgenden Grundaufbau:
<body> <div class="page"> <div class="header"></div> <ul class="navigation"></ul> <div class="text"> <h1>TITEL</h1> <h2>SUBTITEL</h2> <div class="info"> TEXT </div> </div> <div class="Footer"></div> <a title="Irgendwas" href="#" class="createdBy"></a> </div> </body>
Jetzt kommt aber noch dazu, das man in dem CMS auch 4 Felder frei hat, um Bilder einzusetzen.
Diese Bilder können entweder frei im div.page-Element stehen, oder im Text oder überall.
<div class="image left"> <img src="" title="" alt=""/> <img src="" title="" alt=""/> <img src="" title="" alt=""/> <img src="" title="" alt=""/> </div>
Momentan, muss ich immer, sobald auch nur die kleinste Grundgerüständerung vorhanden ist,
die Templatedatei neu schreiben, anstatt das ich eine Zentrale Datei nutzen kann.
So, HTML ist ja eine Sprache die den semantischen Aufbau beschreibt.
Jetzt bräuchte ich eine Sprache die HTML zusammensetzt. Das heißt ich gebe es in etwa so an:
html-> head-> ->script:pfat-zum-JS ->css:pfat-zum-CSS ->meta ->diverse-angaben0 body-> ->div.header ->div.images.left ->ul.navigation ->menuepunkte ->ul.pdf_files_1 ->div.text ->h1 ->h2 ->div.info ->ul.pdf_files_2 ->ul.other_files ->div.news ->ul.newslist ->div.footer
Es beschreibt einfach nur grundlegenst den aufbau von HTML
In-Das-Element-Soll->das hier geschrieben werden BEISPIEL:
->div.text ->h1 ->h2 ->div.info ->ul.pdf_files_2 ->ul.other_files
Erzeugt:
<div class="text"> <h1></h1> <h2></h2> <div class="info"> <ul class="pdf_files_2"></ul> <ul class="other_files"></ul> </div> </div>
->h2 würde also ein Modul beschreiben das ich irgendwo gespeichert habe,
es könnte so aussehen:
h2{<h2>{-content-title-}</h2>}
Das wäre die Datei "modul.code" oder so
Dann wird das einfach interpretiert und mit den entsprechenden Daten aus dem Array $data_array["content"]["title"] gefüllt.
Nur mir fehlt die richtige Idee das Umzusetzen.
Fällt euch dazu was ein?
Grüsse
Color
Beitrag zuletzt geändert: 3.6.2010 13:50:21 von color -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Wo steht das ich XML hab?
Das Ganze hat nix mit XML HTML oder SGML was auch immer zu tun,
es soll nur beschreiben welche Elemente in einem Dokument vorkommen sollen und wie sie Verschachtelt sind.
Ich hab mir jetzt ein Konzept dafür ausgedacht, jetzt rätzel ich noch am RegEx rum.
Grüsse
Color -
Also, ich blicke das Problem nicht ganz.
Aber so weit wie ich das verstanden habe, solltest du dir mal Template Inheritance ansehen. (Siehe Twig) Das setzt natürlich vorraus, dass du Twig als Templatesystem benutzen wirst (ich kenne zumindest keine andere Templateengine für PHP, die Vererbung unterstützt und stabil ist.) -
Also das von dir beschriebene Verhalten erinnert mich doch sehr an ein DOM, was durch XML zu beschreiben ginge. Im Prinzip scheint dir nur mehr nach einer anderen Art zu sein das zu beschreiben als mit HTML hab ich das richtig verstanden?
Ansonsten muss ich sagen klingt das für mich auch nach einem klassischen Templateproblem.
Beitrag zuletzt geändert: 4.6.2010 15:31:16 von sektor -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage