Wie wird ein Plugin ausgelesen
Plugins müssen immer unter bin/page/integrity/plugins/<meinPluginName> definiert werden.
Beim ersten Initialisieren des Objekts werden über die Funktion get_scripts() innerhalb von lib/page/functions.php alle benötigten Javascript Files mit dem Namen plugin.js ausgelesen und in das Frame geladen.
Innerhalb von lib/base werden in der Ego_Integrity.php alle plugin.php Dateien ausgelesen.
Die typische Hierarchie lautet wie folgt:
- bin/page/integrity/plugins/<meinPluginName>
- bin/page/integrity/plugins/<meinPluginName>/plugin.js
- bin/page/integrity/plugins/<meinPluginName>/plugin.php
Plugin.php
die Class Extension befindet sich immer innerhalb eines Namespaces mit dem Namen Integrity. Aus diesem Grund muss am Anfang immer das Namespace Integrity definiert werden.
Der nächste Schritt wäre es, seine Klasse zu definieren.
Wichtig hierbei ist es, dass der Anfangsbuchstabe der Klasse immer groß ist und dem Parent Verzeichnis entspricht.
Ebenfalls zu beachten ist es, dass man aus seinem Namespace hinausgehen muss um die Ego_Integrity erweitern zu können. Gleichzeitg muss das auch für Methoden der Ego_System Klasse gemacht werden, da diese außerhalb des Namespaces Integrity ist.
Innerhalb der Ego_Integrity.php werden alle plugin Dateien durchgegangen und innerhalb dessen die Methode fix() ausgeführt. Deshalb muss auch hier die Methode fix() heißen.
Existiert innerhalb des Pugins keine fix() Methode, so wird logischerweiße eine "Call to undefined method" Exception geworfen.

Innerhalb der fix Methode kann nun die Prüfung erfolgen.
Diese Methode liefert kein Return Value, da diese eine Erweiterung der Ego_Integrity ist. Stattdessen wird über self::$errors[] die Variable der Ego_Integrity Klasse gefüllt.

Key | Priorität | Beschreibung |
---|---|---|
orient | wichtig | Die Orientierung in dem der Block existiert |
index | wichtig | Der Index in dem der Block existiert |
key | wichtig | Der Name des Blocks |
plugin | wichtig | Dies ist die zu aufrufende Javascript Funktion |
autofix | nicht wichtig |
true => wird als Warnung behandelt |
Plugin.js
Innerhalb der plugin.js muss man die addPlugin Funktion aufrufen.
Die addPlugin erwartet 2 Parameter.
Parameter 1 ist der Name der Javascript Funktion welche über den Parameter "plugin" aufgerufen wird. Deswegen ist es auch wichtig das die Bezeichnung hier identisch ist.
Parameter 2 ist die zu ausführende Funktion.

Nach der Definierung der add_Plugin, müssen mindestens 3 Funktionen mit folgenden Namen hinzugefügt werden.

this.fix
In der this.fix Funktion wird logischerweiße der erhaltene Fehler behoben. Das korrigierte Node muss immer zurückgeliefert werden!
error:
der zu behebende Fehler. Dieser wird automatisch übergeben, weshalb jener immer definiert werden muss
fix_contentpan:
fix_contentpan ist das Dojo Contentpane von dem der korrigierte Wert für den Fix entnommen werden muss. Definieren muss man ihn, einsetzen wiederum nicht.

this.getErrorString
Hier wird der Text definiert welcher im Integritätsprüfer Dialog angezeigt werden soll.
Es kann ebenfalls error übergeben werden, um beispielsweiße den Text mit den Parametern zu erweitern.
Es muss ebenfalls ein String zurückgeliefert werden.

this.createInput
Innerhalb der Funktion wird das entsprechende Input Feld zum eintragen des neuen Wertes festgelegt.
fix_contentpan:
Das Dojo Contentpan in dem das Input Feld geladen wird
error:
falls nötig, kann dies ebenfalls definiert werden.
