Entwickler-Checkliste für Module

Die folgende Checkliste soll Entwicklern dadurch behilflich sein, dass sie Antworten auf wiederkehrende Fragestellungen vorab sinnvoll festlegt bzw. entsprechende Möglichkeiten aufzeigt.

Bitte nutzt die Möglichkeit, die folgenden Punkte mit uns zu diskutieren.

Modulname und Allgemeines

Ein Modul muss einen eindeutigen, englischen (wenn möglich) Namen tragen.

Beispiele:

  • Google Sitemaps
  • Newsletter
  • Search
  • Gallery

Der Name eines Moduls darf nicht veränderbar sein (z.B. in den Moduleinstellungen).

Jedes Release eines Moduls sollte mit einer eindeutigen Versionsnummer gekennzeichnet sein. Diese Vesionsnummer sollte sowohl in dem ausgelieferten Archiv als auch im Verzeichnis nach dem Entpacken zu sehen sein.

Beispiele:

  • mod_google_sitemaps-4.1.zip
  • mod_gallery-1.0.0.zip

Module können von Bartels.Schöne eine eindeutige ModulId zugewiesen bekommen. Eine Id ist zwingend erforderlich für Module, die eine Registrierungsfunktion beinhalten. Diese Id darf ausschließlich von Bartels.Schöne vergeben werden, da eine eigenständige Wahl zu Problemen bei der Modulregistrierung führt.

Module sollten sich (falls sinnvoll) mehrfach installieren lassen.

Module sollten keine manuelle Änderungen am ConPresso-Code erfordern, da sich die Änderungen verschiedener Module überschneiden und negativ beeinflussen könnten. Außerdem werden Update von ConPresso dadurch erschwert.

Readme

Module sollten jeweils zwei kurze Readme-Dateien (README_english.txt, README_deutsch.txt) nach vorgegebenem Muster mitliefern.

Inhalt:

  • Einleitung
  • Lizenzinformationen
  • Installationsvoraussetzungen
  • Installationsvorbereitung
  • Modulinstallation
  • Support
  • Copyright

Beispiele: Attach:README_deutsch.txt, Attach:README_english.txt

Installation/Deinstallation eines Moduls

Bei der Installation bzw. Deinstallation eines Moduls sollten eindeutige Meldungen und Hinweise benutzt werden:

Legt ein Modul während der Installation neue Artikeltemplates an, so sollte der Autor des Artikeltemplates nach dem Muster "Setup Modul Modulname" bezeichnet werden.

Beispiele:

  • Setup Modul Newsletter
  • Setup Modul Guestbook

Registrierung eines Moduls

Das Eintragen der Lizenzdaten sollte auf der Seite "Moduleinstellungen" an oberster Position stattfinden.

Es sollten die folgenden Meldungen ausgegeben werden:

Balu: Diskussion? zu Möglichkeiten bei fehlender Lizenz

Weitere Hinweise zur Lizensierung von Modulen.

Copyright

Ein Modul kann verschiedene Informationen in der Fußzeile ausgeben:

  • Link zur Produktseite: $MOD['productlink']
  • Produktname: $MOD['product']
  • Produktversion: $MOD['version']
  • Link zum Hersteller: $MOD['producerlink']
  • Hersteller: $MOD['producer']

Diese Informationen dürfen jedoch nur auf reinen Modulseiten ausgegeben werden.

Weitere Hinweise zum Seitenlayout im ConPresso Backend.

Skins

Module sollten Skins unterstützen und daher für Grafiken und CSS-Dateien, die das Backend betreffen ein Verzeichnis "_skin/conpresso" direkt unterhalb des Modulverzeichnisses für das ConPresso Standard-Skin enthalten.

Verzeichnisstruktur

Die enthaltenen Unterverzeichnisse sollten sinnvoll und in englischer Sprache benannt werden.

Benötigt ein Modul zusätzliche CSS-Informationen für die Anpassung des Modul-Frontends, so sollten diese in einer zusätzlichen Stylesheet-Datei unter dem Namen "mod_name.css" im Hauptverzeichnis des Moduls abgelegt werden.

Steffen: oder Einstellungen in den Moduleinstellungen?
Balu: Die Einbindung von CSS durch Module wird auf jeden Fall mit Seitentemplates geregelt werden.

Lokale Header- und Footer-Dateien sollten unter den Namen "_local_header.php.dist" und "_local_footer.php.dist" im Modulverzeichnis enthalten sein.

Sprachen

Module sollten mindestens in englischer Sprache (Basissprache) und zusätzlich in deutscher Sprache verfügbar sein.

Module sollten sich an den im ConPresso Backend verwendeten Sprachstandardisierungen orientieren. Dies erleichtert die Übersetzung.

Steffen: Standardisierung erklären, feststehende Begriffe erklären?

Hilfe

Das Verzeichnis "_manual" sollte eine Online-Hilfe nach vorgegebenem Muster enthalten.

  • [?] im Kopf eines Abschnitts linken auf eine kurze Erklärung des Abschnitts (Intro).
  • [?] hinter jeder Option linken auf die richtige Position in der Hilfe.

Sofern diese Form der Dokumentation als zu aufwendig angesehen wird, kann eine Beschränkung auf jeweils ein [?] im Kopf des Abschnitts erfolgen.

Für die Erstellung der Online-Hilfe in Form einer HTML-Seite kann das folgende Template verwendet werden.

Steffen: Balu, bitte Muster erstellen

Platzhalter/Artikeltemplates

Steffen: Hier müssen wir noch Ideen für Vorgaben sammeln?.

Lizenz für Module

Grundsätzlich ist es selbstverständlich jedem Entwickler eines Moduls freigestellt, unter welcher Lizenz er sein Modul veröffentlicht.

Abhängig ist dies sicher in besonderer Weise davon, ob das Modul verkauft werden soll oder kostenlos abgegeben wird.

Freuen würden wir uns natürlich über die Übernahme des ConPresso Lizenzmodells mit einer Trennung von kommerzieller und nichtkommerzieller Nutzung. In diesem Fall kann das Modul unter der ConPresso Lizenz veröffentlicht werden.

Es gibt auch bereits Module, die vollständig kostenfrei abgegeben werden. Diese Module besitzen zwar auch eine ModulId, enthalten jedoch keine Registrierungsfunktion.