<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to developerModuleTrees</title><link>https://sourceforge.net/p/babesk/wiki/developerModuleTrees/</link><description>Recent changes to developerModuleTrees</description><atom:link href="https://sourceforge.net/p/babesk/wiki/developerModuleTrees/feed" rel="self"/><language>en</language><lastBuildDate>Tue, 29 Oct 2013 16:39:29 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/babesk/wiki/developerModuleTrees/feed" rel="self" type="application/rss+xml"/><item><title>developerModuleTrees modified by Pascal Ernst</title><link>https://sourceforge.net/p/babesk/wiki/developerModuleTrees/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v3
+++ v4
@@ -1,27 +1,66 @@
 Module
-------
+======
 Module definieren die einzelnen Funktionen des Programmes.
 Sie sind die Grundlage dafür, dass Babesk flexibel und erweiterbar ist.

-Der Baum
---------
 Die Module sind hierarchisch angeordnet, also als Baum.

+Abgebildet wird der Baum auf zwei Wegen; 
+Einerseits in der **Datenbank** in der Tabelle "Modules", 
+andererseits im Sourcecode direkt als **Klassen-Hierarchie**.
+
+Die Datenbank-Darstellung
+-------------------------
+Ausgehend von **root**, dem Anfang des Baumes, werden die Module in 
+"**Subprograms**", Unterprogramme, unterteilt. 
+Diese sind Codetechnisch voneinander getrennt und werden normalerweise benutzt 
+um unterschiedliche Oberflächen (Administrator-, Weboberfläche) zu erstellen.
+
+Dann erst kommt die eigentliche **Modulaufteilung** in der Datenbank.
+Module können beliebig tief verschachtelt werden. Ein Modul das unter einem 
+anderen Modul steht, ist eine Unterfunktion dessen. "Mahlzeiten hinzufügen" 
+würde man als Untermodul von "Mahlzeiten" definieren können.
+
+Die Klassen-Hierarchie-Darstellung
+----------------------------------
+Die Klasse "Module" definiert die Grundlagen eines Modules. Von diesem erben
+alle Module, die kein Modul über sich haben (Auch Headmodules genannt). Die
+Untermodule erben von ihrem jeweiligen Übermodul. Dies erlaubt den Modulen,
+Funktionalität für alle ihre Untermodule bereitzustellen.
+**HINWEIS**
+Die jeweiligen Untermodule *müssen* von ihren übergeordneten Modulen erben,
+sonst kann das Programm sie nicht finden und bricht mit einem Fehler die
+Ausführung ab.
+
+Die Ausführung
+--------------
+Ausgeführt werden die Module normalerweise, indem man entweder per GET oder 
+POST der Variablen "module" den Modulpfad zuweist. 
+Getrennt werden die Einzelnen Level mit "|". Sie beginnen mit dem Subprogram.
+Auf Groß/Kleinschreibung wird geachtet.
+Beispiel:
+example.com/index.php?module=administrator|Babesk|Meals|AddMeal
+Das Hinzufügen des Subprograms am Anfang dient momentan noch keinen 
+praktischen Zweck, was sich aber in zukünftig ändern wird.
+
+Versionen von Babesk vor dem 1. November 2013:
+----------------------------------------------
 Die **erste Ebene** ist der **root**, von dem alles ausgeht;
 Er darf nicht verändert werden und muss immer "root" heißen.

 Die **zweite Ebene** sind **Subprograms**; Sie sind Codetechnisch voneinander
 getrennt. Beispiel: Web-Bereich und Administrator-Bereich.

-Die **dritte Ebene** sind **Headmodules** (Kopfmodule). Hier werden die eigentlichen
-Programme definiert, wie zum Beispiel das Bargeldlose Bestellsystem oder das
-Kurswahlsystem.
+Die **dritte Ebene** sind **Headmodules** (Kopfmodule). 
+Hier werden die eigentlichen Programme definiert, wie zum Beispiel das 
+Bargeldlose Bestellsystem oder das Kurswahlsystem.
 Jedes Headmodule muss eine eigene Klasse sein, die von der Klasse HeadModule
 erbt.

-Die **vierte Ebene** besteht aus **Modules** (Module). Auf sie werden die Aufgaben
-eines Headmodules feingradiger verteilt. Beispielsweise wird das Bestellsystem 
-in  "bestellte Mahlzeiten anzeigen" und "Bestellen" unterschieden.
+Die **vierte Ebene** besteht aus **Modules** (Module). 
+Auf sie werden die Aufgaben eines Headmodules feingradiger verteilt. 
+Beispielsweise wird das Bestellsystem in "bestellte Mahlzeiten anzeigen" 
+und "Bestellen" unterschieden.
 Jedes Module muss eine eigene Klasse sein, die von der Klasse Module erbt.

 Die fünfte und tiefere Ebenen sind **Submodules** (Untermodule). 
@@ -35,6 +74,12 @@
 ---------------

 Wenn man ein Modul nicht sieht oder keinen Zugriff drauf hat, ist es entweder
- 1. Nicht in der Tabelle Modules vorhanden
- 2. Die Usergruppe(n ) haben keine Rechte darauf oder
- 3. Es ist nicht aktiviert
+
+* Nicht in der Tabelle Modules vorhanden
+* Die Usergruppe(n ) haben keine Rechte darauf
+* Es ist nicht aktiviert
+
+Weitere Probleme beim Ausführen eines Modules können enstehen wenn
+
+* Das Modul im Sourcecode nicht korrekt von den übergeordneten Modulen erbt
+* Klein- und Großschreibung nicht beachtet wird
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Pascal Ernst</dc:creator><pubDate>Tue, 29 Oct 2013 16:39:29 -0000</pubDate><guid>https://sourceforge.net6e6d3f93b5a2bdbb38bfae8a0f14d9fec0d56e7f</guid></item><item><title>developerModuleTrees modified by Pascal Ernst</title><link>https://sourceforge.net/p/babesk/wiki/developerModuleTrees/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -1,4 +1,3 @@
-
 Module
 ------
 Module definieren die einzelnen Funktionen des Programmes.
@@ -31,3 +30,11 @@
 zum Beispiel "Zeige Bestätigungsdialog an".
 Sie zu verarbeiten ist die Aufgabe des Modules, somit benötigen die keine
 eigene Klasse.
+
+Troubleshooting
+---------------
+
+Wenn man ein Modul nicht sieht oder keinen Zugriff drauf hat, ist es entweder
+ 1. Nicht in der Tabelle Modules vorhanden
+ 2. Die Usergruppe(n ) haben keine Rechte darauf oder
+ 3. Es ist nicht aktiviert
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Pascal Ernst</dc:creator><pubDate>Sat, 03 Aug 2013 19:58:22 -0000</pubDate><guid>https://sourceforge.net0c98cb3f1a4f7ead8439a04e4648de3b21a7af47</guid></item><item><title>developerModuleTrees modified by Pascal Ernst</title><link>https://sourceforge.net/p/babesk/wiki/developerModuleTrees/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -0,0 +1,33 @@
+
+Module
+------
+Module definieren die einzelnen Funktionen des Programmes.
+Sie sind die Grundlage dafür, dass Babesk flexibel und erweiterbar ist.
+
+Der Baum
+--------
+Die Module sind hierarchisch angeordnet, also als Baum.
+
+Die **erste Ebene** ist der **root**, von dem alles ausgeht;
+Er darf nicht verändert werden und muss immer "root" heißen.
+
+Die **zweite Ebene** sind **Subprograms**; Sie sind Codetechnisch voneinander
+getrennt. Beispiel: Web-Bereich und Administrator-Bereich.
+
+Die **dritte Ebene** sind **Headmodules** (Kopfmodule). Hier werden die eigentlichen
+Programme definiert, wie zum Beispiel das Bargeldlose Bestellsystem oder das
+Kurswahlsystem.
+Jedes Headmodule muss eine eigene Klasse sein, die von der Klasse HeadModule
+erbt.
+
+Die **vierte Ebene** besteht aus **Modules** (Module). Auf sie werden die Aufgaben
+eines Headmodules feingradiger verteilt. Beispielsweise wird das Bestellsystem 
+in  "bestellte Mahlzeiten anzeigen" und "Bestellen" unterschieden.
+Jedes Module muss eine eigene Klasse sein, die von der Klasse Module erbt.
+
+Die fünfte und tiefere Ebenen sind **Submodules** (Untermodule). 
+Hier wird die Funktionalität des Modules noch weiter unterteilt.
+Diese dienen dazu, dem Modul zu vermitteln was es genau tun soll,
+zum Beispiel "Zeige Bestätigungsdialog an".
+Sie zu verarbeiten ist die Aufgabe des Modules, somit benötigen die keine
+eigene Klasse.
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Pascal Ernst</dc:creator><pubDate>Mon, 22 Jul 2013 16:26:48 -0000</pubDate><guid>https://sourceforge.net531f3c8f37b5174655701a12805cd2be319be7cd</guid></item><item><title>developerModuleTrees modified by Pascal Ernst</title><link>https://sourceforge.net/p/babesk/wiki/developerModuleTrees/</link><description/><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Pascal Ernst</dc:creator><pubDate>Mon, 22 Jul 2013 15:58:22 -0000</pubDate><guid>https://sourceforge.nete1dc2d048c70fdd5ec78b02f7a38495a7df7c55c</guid></item></channel></rss>