FlatFusion ist ein Content Management System (CMS), welches es ermöglicht, den Inhalt und das Design von Webseiten getrennt voneinander zu editieren und zu pflegen.
Die Links und die Menüstruktur werden in einer zentralen Datei abgelegt. Für das Aussehen der einzelnen Menüs und der einzelnen Seiten können beliebige Menüvorlagen bzw. Seitenvorlagen benutzt werden.
Die meisten CMS-Systeme basieren auf PHP, Python, Perl oder einer anderen Programmiersprache, die in der Regel direkt auf dem Webserver ausgeführt wird. Manche CMS-Systeme benötigen zusätzlich eine Datenbank, um ihre Daten darin zu speichern.
Das bedeutet, der Webserver eines Providers muß als Voraussetzung die Programmiersprache des gewählten CMS unterstützen und falls nötig eine Datenbank bereitstellen. Bevor das CMS läuft, muss man es auf dem Webserver installieren, eventuell Zugriffsrechte vergeben und weitere Einstellungen vornehmen.
Sollen die Webseiten vor dem Hochladen auf den Server getestet werden, so muss zusätzlich ein lokaler Webserver auf dem Rechner installiert und alles ein zweites Mal eingerichtet werden.
Oben genannte CMS-Systeme werden auch Web Content Management Systeme genannt. Sie setzen die einzelnen Menüvorlagen, Seitenvorlagen und Inhalte erst zur Laufzeit online zur fertigen HTML-Datei zusammen, die dann an den Browser geschickt wird.
FlatFusion dagegen ist ein Desktop Content Management System. Was heißt das konkret und wo sind die Vorteile?
FlatFusion ist komplett in Java geschrieben, daher sollte es prinzipiell auf jedem System laufen, für das eine aktuelle Java-Runtime Umgebung zur Verfügung steht.
FlatFusion wurde mit Hilfe des kostenlosen Oracle JDeveloper der Firma Oracle Corporation erstellt. JDeveloper ist ein eingetragenes Warenzeichen der Firma Oracle Corporation.
Getestet wurde FlatFusion unter folgenden Betriebssystemen:
heruntergeladen werden.
3. Installation Zunächst sollte geprüft werden, ob die Java-Umgebung korrekt arbeitet.Unter beiden Systemen sollte die Ausgabe etwa so aussehen; die Versionsnummern dürfen nicht kleiner als 1.4.1 sein:
java version "1.4.2_05"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_05-141.3)
Java HotSpot(TM) Client VM (build 1.4.2-38, mixed mode)
Eine Meldung wie "command not found" deutet darauf hin, daß der Java-Interpreter nicht gefunden wurde. Möglicherweise ist Java nicht korrekt installiert oder die Pfade zur Runtime-Umgebung falsch gesetzt. Für Installationshinweise bitte die Dokumentation von Sun bzw. von Apple lesen.
Installation Windows:
Einfach den heruntergeladenen Installer ausführen und den Anweisungen darin folgen.
Installation Mac OS X:
Damit FlatFusion funktioniert, müssen zuerst die entsprechenden Dateien angelegt werden, welche die Verwaltungsinformationen und die einzelnen Website-Teile enthalten, die FlatFusion zur Generierung benötigt. Eine einzelne Seite wird nicht mehr einer einzelnen HTML-Datei abgelegt, sondern logisch getrennt in verschiedenen Teildateien gespeichert. FlatFusion setzt dann bei der Generierung alle diese Informationen wieder zu einer HTML-Seite zusammen.
Grundsätzlich gibt es vier verschiedene Dateitypen, mit denen FlatFusion arbeitet.Die einzelnen Dateien und ihr Aufbau und Inhalt wird nachfolgend genauer erklärt.
3.1 Die Seitenstruktur-Datei
ist die wichtigste Datei überhaupt, denn sie enthält alle Informationen über den Aufbau der Seite. Hier wird abgespeichert, welche Menüs es gibt, wie die einzelnen Menüpunkte heißen, die Links dazu werden hier gepflegt. Weiterhin ist in der Seitenstrukturdatei hinterlegt, welche HTML-Seite und welches Menü mit welchem Template generiert wird.
Kurz gesagt enthält die Seitenstruktur-Datei alle Informationen, die FlatFusion braucht, um die komplette Webseite zu erstellen. Sie wird durch die Dateiendung '.struc' gekennzeichnet.
Wie ist die Seitenstruktur-Datei aufgebaut? Nachfolgend als Beispiel die Seitenstruktur-Datei von software.mortaxx.net:
# --- Hauptmenue --- 00 0001 ]News ]/software/index.htm ]main.menu ]main.tpl ]<b>X</b> 0002 ]Produkte ]/software/jwb.htm ]main.menu ]main.tpl ]<b>X</b> 0003 ]Downloads ]/software/dldjwb.htm ]main.menu ]main.tpl 0004 ]Registrierung ]/software/regjwb.htm ]main.menu ]main.tpl 0005 ]Impressum ]/software/impressum.htm ]main.menu ]main.tpl 0006 ]Über ]/software/about.htm ]main.menu ]main.tpl 0007 ]Kontakt ]/software/kontakt.htm ]main.menu ]main.tpl # --- Submenue Ebene 1 - Produkte 010002 01000201 ]JWorkPlan ]/software/jwb.htm ]sub1.menu ]sub1.tpl 01000202 ]FlatFusion ]/software/ff.htm ]sub1.menu ]sub1.tpl # --- Submenue Ebene 1 - Downloads --- 010003 01000301 ]JWorkPlan ]/software/dldjwb.htm ]sub1.menu ]sub1.tpl 01000302 ]FlatFusion ]/software/dldff.htm ]sub1.menu ]sub1.tpl # --- Submenue Ebene 1 - Registrierung --- 010004 01000401 ]JWorkPlan ]/software/regjwb.htm ]sub1.menu ]sub1.tpl 01000402 ]FlatFusion ]/software/regff.htm ]sub1.menu ]sub1.tpl 01000490 ]Registrierung JWorkPlan ausgefuehrt ]/software/regjwbpr.htm ]# ]sub1.tpl 01000491 ]Registrierung FlatFusion ausgefuehrt ]/software/regffpr.htm ]# ]sub1.tpl # --- Blindseite fuer - Kontakt --- 010007 01000790 ]Kontaktformular ausgefuehrt ]/software/kontaktpr.htm ]# ]main.tpl # --- Subebene 2 fuer Menuepunkt 010201 - Test --- 0201000201 020100020101]Benutzerhandbuch ]/sw_de/handbjwb.html ]sub2.menu ]sub2.tpl 020100020102]Lizenz (EULA) ]/sw_de/lizenzjwb.html ]sub2.menu ]sub2.tpl 020100020103]Screenshot 1 ]/sw_de/sc1jwb.html ]sub2.menu ]sub2.tpl 020100020104]Screenshot 2 ]/sw_de/sc2jwb.html ]sub2.menu ]sub2.tpl *
Kommentarzeilen:
In die Datei können beliebige Kommentare eingefügt werden. Alle Zeilen, die mit einem "#" beginnen, gelten als Kommentar und werden beim Generieren von FlatFusion ignoriert.
Menü-Ebenen:
Ziffern am Beginn einer Zeile ohne weitere Angaben dahinter sind die sogenannten Menüebenen-Nummern. An einer solchen Nummer erkennt FlatFusion, daß nachfolgend ein neues Menü beginnt. Beim Einfügen der Menüs in die Templates erkennt FlatFusion an der Nummernvergabe auch noch, welches Menü in ein Template eingesetzt werden muß und welches nicht. Prinzipiell können die Nummern beliebig gewählt werden. Es wird jedoch dringend empfohlen, eine bestimmte Systematik einzuhalten, da sonst das Einfügen der Menüs in die Templates fehlschlagen kann:
Es ist unbedingt darauf zu achten, daß die Menüs korrekt nach der Menü-Ebene aufsteigend eingetragen werden. Das heißt: Immer zuerst das Hauptmenü, dann alle Menüs der ersten Submenüebene aufsteigend, dann die zweite Submenüebene und so weiter. Ist die Reihenfolge falsch, kann es zu Generierungsproblemen kommen, da FlatFusion die Ebenen dann nicht richtig bestimmen kann.
Menüdefinition:
Nach einer Menüebenen-Nummer folgt der Aufbau des eigentlichen Menüs. Jeder Eintrag eines Menüs ist nach dem gleichen Schema aufgebaut:
Menünummer - Bezeichnung des Menüpunkts - Link - Menütemplate - Seitentemplate
Diese Spalten sind Pflichtspalten und müssen vorhanden und gefüllt sein. Nach dem Namen des Seitentemplates können bis zu fünf weitere, nicht zwingend erforderliche Spalte stehen (siehe Beispiel oben bei Hauptmenüpunkt 0001 und 0002). In diese Spalten kann beliebiger HTML-Code eingetragen werden, der dann von FlatFusion bei dem jeweiligen Menüpunkt durch einen Platzhalter mit eingefügt werden kann (siehe CODEINC-Tag).
Die einzelnen Einträge werden durch das Zeichen "]" "eckige Klammer zu" getrennt. Zur besseren Übersicht können die Einträge durch Leerzeichen oder Tabs ausgerichtet werden.
- Die Menünummer muß mit der vorher festgelegten Menüebenen-Nummer beginnen. Danach können beliebige Ziffern folgen, um die einzelnen Menüpunkte durchzunummerieren.Datei-Ende: Das Ende der Seitenstruktur-Datei wird durch eine Zeile markiert, die mit "*" beginnt.
3.2 Das Menü-Template
Im Menü-Template wird das Aussehen und Layout für einen einzelnen Menüpunkt festgelegt. Es darf daher nur eine einzige Zeile ohne Zeilenumbruch enthalten. FlatFusion verarbeitet alle Menüpunkte einer Menüebene nacheinander und setzt die einzelnen Einträge zum kompletten Menü zusammen. In der Seitenstruktur-Datei gibt man daher für die Menüpunkte einer Menüebene normalerweise immer dasselbe Template an. Im Prinzip ist es natürlich aber auch möglich, verschiedene Templates zu verwenden.
Nachfolgend als Beispiel das Template für das Hauptmenü von software.mortaxx.net:
<td align="center" width="150" valign="middle" height="30" bgcolor="#EEEEEE"><a class="meinecssklasseinaktiv" href="{#LINK#}" style="font-family:Verdana,Arial,Helvetica,sans-serif; font-size:12px;">{#NAME#}</a></td>
Innerhalb des Menütemplates sind vier Platzhalter (Tags) erlaubt, die dann bei der Generierung von FlatFusion mit den aktuellen Inhalten aus der Seitenstruktur-Datei ersetzt werden:
{#LINK#} - Dieser Tag wird von FlatFusion jeweils durch den Link ersetzt, den man in der Seitenstruktur-Datei eingetragen hat.
{#NAME#} - Dieser Tag wird von FlatFusion jeweils durch den Text ersetzt, den man als Beschreibung des Menüpunkts in der Seitenstruktur-Datei hinterlegt hat.
{#CODEINC1#} - {#CODEINC5#} - Sind in der Seitenstruktur-Datei nach dem Namen des Seitentemplates noch weitere Spalten mit beliebigem Text/(HTML-)Code angegeben, so werden diese an Stelle des entsprechenden CODEINC-Tags bei dem jeweiligen Menüpunkt eingefügt. Kann dazu verwendet werden um bei verschiedenen Menüpunkten eines Menüs z.B. noch unterschiedliche Formatieranweisungen einzubinden. Die einzelnen Spalten sind wiederum durch das Zeichen "]" "eckige Klammer zu" trennen. CODEINC1 steht für die erste optionale Spalte, CODEINC2 für die zweite usw.
Ist in der Seitenstruktur-Datei kein Code für die jeweilige Spalte hinterlegt, so wird das Tag einfach ignoriert und entfernt.
{#ACTIVE#}: Dieses Tag wird dazu verwendet, den jeweils aktiven Link in einem Menü zu kennzeichnen. Beim Generieren der einzelnen Webseiten erkennt FlatFusion aus den Menü-Nummern und Menüebenen-Nummern dann, welche Links für diese Seite als aktiv zu kennzeichnen sind.
Beispiel:
Im Template sind zwei unterschiedliche CSS-Klassen für das <a> Tag definiert:<style type="text/css"> a.meinecssklasseaktiv:link { COLOR:#000000; TEXT-DECORATION:bolder; font-weight:bolder;} a.meinecssklasseaktiv:visited { COLOR:#000000; TEXT-DECORATION:none; font-weight:bolder;} a.meinecssklasseaktiv:hover, a.meinecssklasseaktiv:active, a.meinecssklasseaktiv:focus { COLOR:#000000; TEXT-DECORATION:underline; font-weight:bolder;} a.meinecssklasseinaktiv:link { COLOR:#5b609a; TEXT-DECORATION:none; } a.meinecssklasseinaktiv:visited { COLOR:#777777; TEXT-DECORATION:none; } a.meinecssklasseinaktiv:hover, a.meinecssklasseinaktiv:active, a.meinecssklasseinaktiv:focus { COLOR:#000000; TEXT-DECORATION:none; } </style>Im Menü-Template fügen wir nun das {#ACTIVE#}-Tag ein:
... <a class="{#ACTIVE#}" href="{#LINK#}" ...
Damit der aktive Link auch gekennzeichnet wird, muß dies in den Projekteinstellungen entsprechend eingestellt sein (siehe Punkt 6 "Einstellungsdialoge"). Bei der Generierung ersetzt FlatFusion das {#ACTIVE#}-Tag für jeden Menüpunkt entweder durch den Code, der in den Projekteinstellungen bei aktiv oder bei inaktiv hinterlegt ist. In dem Beispiel wird dann der CSS-Klassenname für den aktiven oder inaktiven Link eingefügt.
Wichtig: Damit die Erkennung des aktiven Links richtig funktioniert, müssen die Menünummern und Menüebenen-Nummern nach dem gleichen System aufgebaut werden, welches bereits für das Einsetzen der richtigen Menüs in das Template beschrieben wurde (siehe Punkt 3.1 "Seitenstrukturdatei" - Menüebenen).
3.3 Das Seiten-Template
Im Seiten-Template wird das Aussehen und Layout für eine einzelne HTML-Seite festgelegt. Im Prinzip sollte das Seiten-Template sätlichen HTML-Code, der für das Grundgerüst einer HTML-Seite benötigt wird. Es sollte hier alle Elemente enthalten sein, die auf mehreren oder allen Seiten gleich aussehen sollen. Nachfolgend wieder als Beispiel auszugsweise das Template für die Hauptseite von software.mortaxx.net:
<HTML> <HEAD> <TITLE>{#TITLE#}</TITLE> <style type="text/css"> ... CSS Anweisungen ... </style> <META ... Meta-Anweisungen ... </HEAD> <body onload="highlightCurrentPageLink()"> <table width="900" border="0" cellspacing="0" cellpadding="0" align="center" bgcolor="#2a37ea"> <tr> <td> <table width="900" border="0" cellspacing="1" cellpadding="0" align="center"> <tr> <td align="center" height="40" bgcolor="#EEEEEE" colspan="7"> <p style="font-family:Verdana,Arial,Helvetica,sans-serif; font-size:18px;"> mortaxx Softworks: Software von Christian Hecht</p></td> </tr> <tr> {#MENU00#} {#MENU010002#} {#MENU010003#} {#MENU010004#} </tr> </table> {#CONTENT#} </td> </tr> </table> {#FOOTER#=footer.htm} </BODY> </HTML>
Wie man sieht, handelt es sich im Prinzip um ein normales HTML-Gerüst. Auch in der Template-Datei gibt es wieder entsprechende Platzhalter (Tags), um an den gewünschten Stellen Teile einzufügen:
Um das gleiche Template für viele oder sogar alle Seiten einer Webseite nutzen zu können, ist es möglich, den Menüplatzhalter mehrfach mit verschiedenen Menünummern anzugeben (siehe Quelltext oben). Die Menüs werden dann an den entsprechenden Stellen eingefügt. Befinden sich in einem Template mehrere Menü-Tags der gleichen Menüebene, so setzt FlatFusion automatisch nur das richtige Menü ein, die anderen Einträge werden ignoriert.
Theoretisch kann ein einziges Template für die ganze Webseite genutzt werden, es empfiehlt sich jedoch, mindestens pro Untermenüebene ein eigenes Template zu haben.
Es kann auch vorkommen, daß das Menü zwar komplett generiert, aber trotzdem nicht an dieser Stelle im Template eingefügt werden soll. Dieser Fall tritt in Verbindung mit dem MENUINC-Tag auf, welches in der Content-Datei verwendet werden kann (siehe 3.4. Content-Datei). Damit das ACTIVE-Tag ersetzt und der aktive Link ermittelt weren kann, muß das Menü auf jeden Fall in der Template-Datei stehen. Falls man das fertig generierte Menü nicht an der Position im Template, sondern später in der Content-Datei benutzen will, so kann man dies im Template kennzeichnen. Man setzt dann einfach hinter die schließende geschweifte Klammer ein AT-Zeichen (Klammeraffe). Der Eintrag sieht dann z.B. so aus: {#MENU0201000201#)@. Das Ausblenden eines Menüs sollte nur erfolgen, wenn es dann auch wirklich mit dem MENUINC-Tag in der Content-Datei benutzt wird.
3.4 Die Content-Datei
Die Content-Datei enthält, wie der Name schon sagt, den eigentlichen Inhalt der jeweiligen Seite. Sie kann aber nicht nur Text, sondern natürlich auch wieder HTML-Code enhalten. Es sollte jedoch darauf geachtet werden, soviel HTML-Code wie möglich in die Templates und Menü-Templates zu verlagern. Nachfolgend wieder ein Beispiel, wie eine solche Datei aussehen kann:
<table width="900" border="0" cellspacing="1" cellpadding="5" align="center"> <tr> <td width="900" bgcolor="#EEEEEE" align="justify" style="font-family:Verdana,Arial,Helvetica,sans-serif; font-size:12px;"> <p align="center"><b>Herzlich willkommen bla blubb usw.</b></p> <p> ... Weiterer Text ... <br> <p> <a href="{#LNKMENU0104#}">Zum Hauptmenü</a><br> <p><hr noshade size="1"></p> {#FILEINC#=include.htm} {#MENUINC0201000201#} </td> </tr> </table>
Auch hier sieht man, daß es wieder ganz normales HTML ist, in dem dann die Seiten-Texte eingebettet werden. Auch in der Content-Datei stehen einige Platzhalter zur Verfügung, um die Flexibilität zu erhöhen.
Windows:
Die vom Installer angelegte Programmverknüpfung im Programme-Menü auswählen oder die FlatFusion.exe im Installationsverzeichnis aufrufen.
MacOS X:
Das JAR-File mit Doppelklick ausführen.
Das Hauptfenster von FlatFusion enthält nur wenige Elemente, die schnell erklärt sind:
Über das Hauptmenü von FlatFusion verwaltet man die Projekt-Dateien und nimmt Einstellungen vor. Nachfolgend die einzelnen Menüpunkte im Überblick:
Projekt Einstellungen: Der Dialog ist identisch mit 'Neues Projekt' (siehe oben). Der Name des Projektes kann allerdings nicht geändert werden.
Für weitere Fragen zur Bedienung, Anregungen oder Verbesserungsvorschläge, Fehlermeldung oder sonstige Hinweise kann eine Anfrage per Mail an support@mortaxx.net gestellt werden.
Ich werden mich bemühen, eingehende Anfragen schnellstmöglich zu bearbeiten. Ein Anspruch des Anwenders auf zeitnahe Bearbeitung besteht jedoch nicht.
(c) 2005 by Christian Hecht