Details

[tocbox|]Die Datei index.php eines Plugins enthält eine PHP-Klasse. Diese muss genau so benannt sein wie das Plugin-Verzeichnis.
Sie muss die im Folgenden aufgeführten Funktionen enthalten, kann aber natürlich um eigene Funktionen erweitert werden.
Desweiteren kann das Plugin natürlich auch andere Dateien und Unterverzeichnisse enthalten, z.B. weitere PHP-Scripte und -Klassen, Stylesheet, Templates et cetera.

Hinweis

Dem Downloadpaket von moziloCMS liegt das DEMOPLUGIN bei, in dem man die hier aufgeführten Details sehr schön "am lebenden Objekt" nachvollziehen kann. Für offene Fragen steht natürlich auch das mozilo-Supportforum zur Verfügung.

Pflicht-Funktionen

getContent($value)

Diese Funktion gibt die eigentliche Plugin-Ausgabe zurück - also das, womit zur Ausführung der Plugin-Platzhalter ersetzt wird.
Der String-Parameter $value entspricht dem Wert bei erweiterten Plugin-Variablen: {Pluginname|Wert}. Ist der Plugin-Platzhalter nicht erweitert ({Pluginname}), enthält $value einen Leerstring ("").
Man kann den $value-Parameter nutzen, muss es aber nicht.
Standardmäßig ist nur ein Parameter nutzbar. Benötigt man mehrere, empfiehlt es sich, sie kommasepariert entgegenzunehmen und dann in der Pluginlogik mit der Funktion explode() wieder zu vereinzeln.

getConfig()

In moziloCMS installierte Plugins können im moziloAdmin-Reiter "Plugins" konfiguriert werden. Die dafür zur Verfügung stehenden Eingabe-Elemente (Textfelder, Auswahllisten etc.) werden nicht von Hand in HTML kodiert, sondern in der Plugin-Funktion getConfig() definiert; die Funktion gibt die Konfigurationsoptionen des Plugins als Array zurück.

Soll der Benutzer Plugin-Optionen setzen können, stehen die im Folgenden aufgelisteten Eingabeelemente zur Verfügung. Verwendet werden sie als assoziative Arrays mit den dazu beschriebenen Schlüsseln.
Mit ihrem Namen als Schlüssel bilden die Arrays das assoziative Array $config, was letztlich der Rückgabewert der Funktion getConfig() ist.

Soll das Plugin keine Konfigurationsoptionen anbieten, ist das zurückgegebene Array einfach leer:
return array();

Die im moziloAdmin vom Benutzer konfigurierten Werte für ein Plugin werden beim Speichern der Plugin-Einstellungen in dessen plugin.conf geschrieben. Dabei wird der Name des Eingabeelements als Schlüssel verwendet. Beispiel: Das Textfeld heißt "texteingabe"; gibt der Benutzer "abc" ein und speichert die Plugin-Einstellungen, wird in der Pluginkonfiguration folgende Zeile angelegt bzw. überschrieben: texteingabe = abc

Verfügbare Schlüssel:
für Elementtyp Schlüssel Bedeutung mögliche Werte Pflicht
alle type Art des Eingabe-Elements text (einzeiliges Textfeld)
textarea (mehrzeiliges Textfeld)
password (Passwort-Feld)
checkbox (Checkbox an/aus)
radio (Radiobutton entweder/oder)
select (Auswahlliste)
Pflicht für alle Eingabe-Elemente
alle description Wird im Admin als Beschreibung der Option angezeigt   beliebiger Text Pflicht für alle Eingabe-Elemente
text
password
maxlength maximale Eingabelänge Ganzzahl optional
text
password
size dargestellte Zeichen Ganzzahl optional
text
textarea
password
regex regulärer Ausdruck, auf den die Benutzer-Eingabe passen muss. Passt sie nicht, wird beim Speichern der Plugin-Einstellungen eine Fehlermeldung gezeigt. regulärer Ausdruck, z.B. /^[a-z]{3}$/ optional
text
textarea
password
regex_error eigene Fehlermeldung für nicht auf den RegEx passende Eingaben Text optional
textarea cols Anzahl dargestellter Spalten Ganzzahl Pflicht für textarea
textarea rows Anzahl dargestellter Zeilen Ganzzahl Pflicht für textarea
password saveasmd5 Soll das eingegebene Passwort als MD5-Hash in der plugin.conf abgelegt werden? (Wir empfehlen das.) true / false Pflicht für password
radio
select
descriptions Beschreibungen der einzelnen Radiobutton-Elemente Zwei Möglichkeiten
  • Einfaches Array:
    "descriptions" => array(
        "blau",
        "rot",
        "gruen"
    )
    (Die angezeigten Werte entsprechen dem Wert, der in die plugin.conf geschrieben wird.)
  • Assoziatives Array:
    "descriptions" => array(
        "blau" => "Blau",
        "rot" => "Rot",
        "gruen" => "Grün"
    )
    (Angezeigt wird "Grün", in die plugin.conf gespeichert wird "gruen".
Pflicht für radio und select
select multiple Mehrfachauswahl erlauben true / false optional

Mehrsprachigkeit läßt sich auch realisieren. Dazu wird das Array $config in mehrere Sub-Arrays unterteilt, welche den Sprachcode als Namen bekommen (z.B. "deDE" oder "enEN"). Die Sprachcodes müssen genau denen der CMS-Sprachdateien entsprechen ("language_deDE.conf").
$config['deDE']['janeinoption'] = array(
    "type" => "checkbox",
    "description" => "Ja oder nein?"
);
$config['enEN']['janeinoption'] = array(
    "type" => "checkbox",
    "description" => "Yes or no?"
);
Wird moziloAdmin dann in Englisch betrieben, sind auch die Plugin-Optionen englisch - in einem auf deutsche Sprache konfigurierten moziloAdmin sind sie deutsch. Mit folgendem Konstrukt wird die Standardsprache für den Fall festgelegt, dass die im Admin konfigurierte Sprache nicht im $config-Array vorkommt:
global $ADMIN_CONF;
$language = $ADMIN_CONF->get("language");
if(isset($config[$language])) {
    return $config[$language];
} else {
    return $config['deDE'];
}

getInfo()

Diese Funktion gibt in einem Array die Details zum Plugin zurück. Folgende Werte müssen (in dieser Reihenfolge!) im Array vorhanden sein:
  • Plugin-Name (ggfs. inkl. -Version) (z.B. "FlashGalerie 1.0")
  • für das Plugin benötigte moziloCMS-Version (z.B. "1.12")
  • Kurzbeschreibung, Nutzungshinweise (normaler Text; erlaubt sind die HTML-Elemente <span> und <br />)
  • Name des Autors (z.B. "Max Mustermann")
  • Link zu Plugin-Dokumentation / Website des Autors (z.B. "http://www.mozilo.de")
  • Ein assoziatives Array mit den Platzhaltern für die Auswahlliste "Plugins" in der Editieransicht und einer Kurzbeschreibung dazu. Beispiel für ein Plugin, das sowohl mit als auch ohne Parameter genutzt werden kann:
    array(
        '{ZeitPlugin}' => 'Die aktuelle Uhrzeit',
        '{ZeitPlugin|}' => 'Die aktuelle Uhrzeit in der angegebenen Zeitzone'
    )
    Sollen für das Plugin keine Platzhalter in der Auswahlliste auftauchen, muss das Array einfach leer zurückgegeben werden:
    array()

Das Info-Array kann, genau wie das Config-Array in der Funktion getConfig(), mehrsprachig zurückgegeben werden. Dabei gelten die gleichen Regeln wie beim Config-Array, siehe oben.
Scroll to top