# Modulstruktur

Die zu einem Modul gehörenden Dateien sollten in folgender Weise strukturiert sein, damit das Framework korrekt mit dem Modul arbeitet.

&#x20;Nachstehend aufgeführt die empfohlene Ordnerstruktur innerhalb des Moduls. Diese Angaben sind teilweise optional, d.h. sie werden nicht für jedes Modul vollständig benötigt:

![Modulstruktur am Beispiel des Blog-Moduls](https://2547061836-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaV7PHur_BU6MA3-5lA%2F-Lc6e-HYo9Lb0FbfVb7_%2F-Lc6feM1gv7YH0FkhshC%2Fmodulstruktur.png?alt=media\&token=1caf8eed-6dff-4fc4-ba0a-1928e8d2f7dc)

### Modulordner

Der Modulordner sollte einen eindeutigen Namen haben. Dieser Name wird vom Framework in der Modulverwaltung verwendet, um die notwendigen Einstellungen zu ermöglichen.

Der Modulordner sollte enthalten:

`index.php`

Der Modulordner kann enthalten:

`impressum.php`

### Ordner: admin

Der admin - Ordner enthält grundsätzlich die "Sprungverteiler"-Datei `admin.php`. Diese Datei wird benötigt, um die Funktionen im Administrationsbereich (Backend) zu routen.

In der Datei `configuration.xml` wird die Modulkonfiguration im XML-Format hinterlegt. Diese Datei wird vom alaf-Framework gelesen, um den Aufbau des Administrationsbereich (Backend) zu gestalten.

### Ordner: core

Im core - Ordner werden die Dateien abgelegt, die von den Grundfunktionen des alaf-Frameworks aufgerufen werden sollen. Dieses sind z.B.:

| Datei               | Type       | Funktion                                                                                                                                                                                                                                                                                 |
| ------------------- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `admin.menu.php`    | Hook-Datei | Beschreibt die Anordnung und das Aussehen des Modulbezogenen Menüeintrags im Administrationsbereich (Backend)                                                                                                                                                                            |
| `get.config.php`    | Hook-Datei | <p>Hook-Datei zur Bekanntgabe der modulspezifischen Konfigurationsdaten.</p><p>Beispiel: <a href="beispiele/get.config.php">get.config.php</a></p>                                                                                                                                       |
| `cleanup.files.php` | include    | Falls vorhanden, enthält diese Datei 2 array-Variablen (`$deldirs[]` und `$delfiles[]` ), die während der Setup-Funktion die zu löschenden Betriebssystem-Verzeichnisse und -Dateien enthält. *Diese Funktion wird meistens bei Versionswechsel genutzt!*                                |
| `permissions.php`   | Hook-Datei | Hook-Datei zur Bekanntgabe der modulspezifischen Rollen und Berechtigungen.                                                                                                                                                                                                              |
| tabledata.php       | include    | <p>Falls vorhanden, enthält diese Datei Datenbankanweisungen zur Manipulation der Datenbank. Somit können z.B. Standard-Tabelleneinträge erzeugt / geändert werden.<br>Die Ergebnisse werden in der array-Variable <code>$ret\_querys\[]</code> an die Setup-Funktion zurückgegeben.</p> |
| `tabledef.xml`      | XML        | <p>Konfigurationsdatei zur Beschreibung der benötigten Datenbanktabellen / Tabellenänderungen.</p><p>Diese Datei wird während der Setup-Funktion gelesen und interpretiert.</p>                                                                                                          |

### Ordner: includes

Hier liegen die benötigten Include-Dateien für das Modul. Einde detailierte Auflistung folgt ggf.

### Ordner: lang

Enthält die Sprachendateien für die modulbezogenen Bezeichnungen.

### Ordner: templates

Hier sollten die Vorlagedateien (HTML-Templates) abgelegt werden
