FlatFusion is a Content Management system (CMS) that makes it possble to edit and maintain the content and the design of websites separated from each other.
The links and the menu structure are stored in a central file. For the appearance of the single menus and the single pages arbitrary menu templates and/or page templates can be used.
Most CMS systems are based on PHP, Python, Perl or another programming language which is executed normally directly on the webserver. Some CMS systems additionally needs a database in order to store their data in there.
That means, the webserver of a provider must support the programming language of the chosen CMS as prerequisite and provide a database if necessary. Before the CMS can run, you have to install it on the webserver, possibly assign access rights and maintain other settings.
In case that the webpages should be tested before they are uploaded to the server, so a local webserver must be installed additional on the local computer and the configuration settings must be done a second time.
Above mentioned CMS systems are also called Web Content Managementsystems. They merge together the individual menu templates, page templates and content files to the complete HTML-file online at runtime and then the output is sent to the browser.
FlatFusion on the other hand is a Desktop Content Management system. What does this mean and where are the advantages?
FlatFusion is completely written in Java, from that it should run in principle on every system for which a current Java runtime environment (JRE) is available.
FlatFusion was created with the aid of the free Oracle JDeveloper from Oracle Corporation. JDeveloper is a registered trademark of the firm Oracle Corporation
FlatFusion was tested under following operating systems:
In both systems the output should look similar to that, the version numbers must not be smaller as 1.4.1:
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)
A message like "command not found" indicates that the Java interpreter was not found. Possibly Java is not installed correctly or the paths for the Runtime environment are wrongly set. Please read the documentation of Sun and/or Apple for installation instructions.
Windows installation:
Simply execute the downloaded Installer and follow the instructions.
Installation Mac OS X:
Before FlatFusion can work correctly, first the corresponding files which contain the administrative information and the individual web site parts which FlatFusion needs for the generation must be created. An single page is not stored anymore in a single HTML file, but stored logically separated in different sub files. FlatFusion than merges together all these information again during the generation to a HTML page.
Basically there are four different file types with which FlatFusion works.The individual files and their setup and content is declared subsequently in detail.
3.1 The page structure file
is the most important file anyway, because it contains all information about the setup of the page. In this file the used menus are stored, the names of the individual menu items are in there and the links to the single pages are stored hereu as well. Furthermore inside the page structure file is stored which HTML page and which menu will be generated with which template.
In a word the page structure file contains all information which FlatFusion needs to create the complete web site. It is characterised by the file extension '.struc'.
How is the page structure file established? Following as an example the page structure file of software.mortaxx.net:
# --- Main menue --- 00 0001 ]News ]/software/index.htm ]main.menu ]main.tpl ]<b>X</b> 0002 ]Products ]/software/jwb.htm ]main.menu ]main.tpl ]<b>X</b> 0003 ]Downloads ]/software/dldjwb.htm ]main.menu ]main.tpl 0004 ]Register ]/software/regjwb.htm ]main.menu ]main.tpl 0005 ]Imprint ]/software/impressum.htm ]main.menu ]main.tpl 0006 ]About ]/software/about.htm ]main.menu ]main.tpl 0007 ]Contact ]/software/kontakt.htm ]main.menu ]main.tpl # --- Sub menu level 1 - Products 010002 01000201 ]JWorkPlan ]/software/jwb.htm ]sub1.menu ]sub1.tpl 01000202 ]FlatFusion ]/software/ff.htm ]sub1.menu ]sub1.tpl # --- Submenue level 1 - Downloads --- 010003 01000301 ]JWorkPlan ]/software/dldjwb.htm ]sub1.menu ]sub1.tpl 01000302 ]FlatFusion ]/software/dldff.htm ]sub1.menu ]sub1.tpl # --- Sub menu level 1 - Register --- 010004 01000401 ]JWorkPlan ]/software/regjwb.htm ]sub1.menu ]sub1.tpl 01000402 ]FlatFusion ]/software/regff.htm ]sub1.menu ]sub1.tpl 01000490 ]JWorkPlan successfully registered ]/software/regjwbpr.htm ]# ]sub1.tpl 01000491 ]FlatFusion successfully registered ]/software/regffpr.htm ]# ]sub1.tpl # --- Blind page for - Contact --- 010007 01000790 ]Contact form processed ]/software/kontaktpr.htm ]# ]main.tpl # --- Sub menu level 2 for menu item 010201 --- 0201000201 020100020101 ]Users guide ]/software/handbjwb.html ]sub2.menu ]sub2.tpl 020100020102 ]License (EULA) ]/software/lizenzjwb.html ]sub2.menu ]sub2.tpl 020100020103 ]Screenshot 1 ]/software/sc1jwb.html ]sub2.menu ]sub2.tpl 020100020104 ]Screenshot 2 ]/software/sc2jwb.html ]sub2.menu ]sub2.tpl *
Comment lines:
In the file arbitrary comments can be inserted. All lines which begin with a "#" are marked as a comment and will be ignored by FlatFusion during the generation.
Menu levels:
Digits at the beginning of a line without further information behind that are the so-called menu level numbers. FlatFusion recognises by such a number that subsequently a new menu begins. During the insertion of the menus into the templates FlatFusion also still recognises by the number allocation, which menu in a template must be used and which not. In principle the numbers can be chosen arbitrary. It is recommended, however, urgently to keep to a certain systematics since otherwise the insertion of the menus into the templates can fail:
It is absolutely necessary that the menus are entered correctly in acscending order of the menu level. That is: Always first the main menu, then all menus of the first sub menu level in ascending order, then the second sub menu level and so on. In case the order is wrong, it can result in generation problems since FlatFusion can not determine the levels correctly then.
Menu definition:
After a menu level number the definiton of the actual menu follows. Every entry of a menu is build to the same scheme:
Menu number - Name of the menu item - link - menu template - page template
These columns are mandatory columns and must be there and filled. After the name of the page template, there can be up to five additional not urgently necessary columns (see example above at main menu item 0001 and 0002). Here arbitrary HTML code can be input, that then can be added from FlatFusion with the respective menu item through a placeholder (see CODEINC tag).
The individual entries becomes separated through the character "closing square bracket". For the better survey the entries can be positioned with blanks or tabs.
- The menu number must start with the menu level number defined before. After this arbitrary digits can follow in order to number the individual menu items.End of file: The end of the page structure file is marked by a line which begins with "*".
3.2 The menu template
In the menu template is defined the appearance and layout for a single menu item. Therefore it have to contain only a single line without line feed. FlatFusion processes all menu items of a menu level after each other and merges together the single entries to the complete menu. Therefore in the page structure file usually you use always the same template for the menu items of a menu level. In principle it is of course, however, also possible to use different Templates.
Below as an example the template for the main menu of software.mortaxx.net:
<td align="center" width="150" valign="middle" height="30" bgcolor="#EEEEEE"><a class="mycssclassinactive" href="{#LINK#}" style="font-family:Verdana,Arial,Helvetica,sans-serif; font-size:12px;">{#NAME#}</a></td>
Within the menu templates four placeholders (tags) are allowed, that are replaced then by FlatFusion with the current contents during the generation from the page structure file:
{#LINK#} - This tag is replaced by the link that one input in the page structure file by FlatFusion in each case.
{#NAME#} - This tag is replaced by the text that one stored as description of the menu item in the page structure file by FlatFusion in each case.
{#CODEINC1#} - {#CODEINC5#} - If there is arbitrary text/(HTML-)code in the page structure file after the name of the page template in the next five columns, this is inserted instead of the CODEINC tags at the respective menu item. Can be used in order to integrate different formatting statements with different menu items of a menu for example. The single columns also have to be separated by the character "closing square bracket". CODEINC1 represents the first optional colums, CODEINC2 the second and so on.
If there is no code in the page structure file stored for some columns, so the tag is simply ignored and it is removed.
{#ACTIVE#}: This tag is used to mark the in each case active link in a menu. During the generation of the single webpages FlatFusion recognises from the menu numbers and menu level numbers which links are to be marked for this page as active then.
Example:
In the template are defined two different CSS classes for the <:a> tag:<style type="text/css"> a.mycssclassactive:link { COLOR:#000000; TEXT-DECORATION:bolder; font-weight:bolder;} a.mycssclassactive:visited { COLOR:#000000; TEXT-DECORATION:none; font-weight:bolder;} a.mycssclassactive:hover, a.mycssclassactive:active, a.mycssclassactive:focus { COLOR:#000000; TEXT-DECORATION:underline; font-weight:bolder;} a.mycssclassinactive:link { COLOR:#5b609a; TEXT-DECORATION:none; } a.mycssclassinactive:visited { COLOR:#777777; TEXT-DECORATION:none; } a.mycssclassinactive:hover, a.mycssclassinactive:active, a.mycssclassinactive:focus { COLOR:#000000; TEXT-DECORATION:none; } </style>In the menu template we insert now the {#ACTIVE#} tag:
... <a class="{#ACTIVE#}" href="{#LINK#}" ...
In order that the active link is marked then, this must be set in the project properties correspondingly (see point 6 "configuraton dialogs"). During the generation FlatFusion replaces that {#ACTIVE#} tag for every menu item either with the code, that in the project properties for active or at inactive is stored. In the example the CSS class name is inserted then for the active or inactive link.
Important: In order that the recognition of the acting link functions correctly, the menu numbers and menu level numbers have to set up with the same system, that was already described for the insertion of the correct menus into the template (see point 3.1 "Page structure file" - menu levels).
3.3 The page template
In the page template is defined the appearance and layout for a single HTML page. In principle the page template should contain all HTML code that is needed for a basic framework of a HTML page. It should contain all elements, that are supposed to look identically on several or like all pages. Subsequently in extracts again as an example the template for the main page of software.mortaxx.net:
<HTML> <HEAD> <TITLE>{#TITLE#}</TITLE> <style type="text/css"> ... CSS code ... </style> <META ... Meta code... </HEAD> <body> <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 by Christian Hecht</p></td> </tr> <tr> {#MENU00#} {#MENU010002#} {#MENU010003#} {#MENU010004#} </tr> </table> {#CONTENT#} </td> </tr> </table> {#FOOTER#=footer.htm} </BODY> </HTML>
If you can see, in principle it is normal HTML basic framework. In the template file there are also corresponding placeholders (tags) in order to insert parts at the desired places:
In order to be able to use the same template for many or even all pages of a website, it is possible, to declare the menu placeholder repeatedly with different menu numbers (see source code above). The menus are inserted then at the corresponding places. In case there are several menu tags of the same menu level in the template, FlatFusion only uses the correct menu automatically, the other entries are ignored.
In theory one template can be used for the whole website, however, it is recommended, to have an own template for each submenulevel at least.
It also can happen that the menu should be generated completely, but it should not be inserted at that place in the template. This case occurs in contact with the MENUINC tag, which can be used in the content file (see 3.4. "Content file"). In order that that the ACTIVE tag can be replaced and the active link can be detected, the menu must be included in the template file in any case. If you do not want to use the completely generated menu at the position in the template, but later on in the content file, so you can mark this in the template. To do this, simply set then an AT character (Commercial at) behind the closing curly bracket. The entry looks then like this for example: {#MENU0201000201#)@. The masking of a menu should only occur if it is really used then with the MENUINC-day in the content file.
3.4 The content file
The content file contains the actual content of the respective page as the name already says. However, it can not only contain text, but also again HTML code. However it should be regarded to put as much as possible HTML code into the templates and menu templates. Subsequently again an example, as such a file can look like:
<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>Welcome and so on ...</b></p> <p> ... Further text ... <br> <p> <a href="{#LNKMENU0104#}">Back to main menu</a><br> <p><hr noshade size="1"></p> {#FILEINC#=include.htm} {#MENUINC0201000201#} </td> </tr> </table>
Here you can see again that it is normal HTML in which the page texts are embedded then. Also in the content file some placeholders are available in order to increase the flexibility.
Windows:
Select the program entry created by the installer in the program menu or call the FlatFusion.exe in the installation directory.
MacOS X:
Execute the JAR file with double click.
The main window of FlatFusion contains only a few elements which are explained quickly:
In the main menu of FlatFusion you can manage the project files and set the properties. Subsequently the individual menu items overview:
Project properties: The dialogue is identical with 'New project' (see above). The name of the project can not be changed, however.
For further questions to the handling of FlatFusion, proposals or suggestions for improvement, error reports or other notes you can send an inquiry by mail to support@mortaxx.net.
I will process your requests as quickly as possible. A claim for the user to time-near processing does not exist, however.
(c) 2005 by Christian Hecht