Inhaltsverzeichnis
Anleitung für Entwickler
Plugins und Anwendungen erstellen
Anleitung für Entwickler
Plugins und Anwendungen erstellen
Allgemeines
YANA (diese Anwendung) ist ein Komponenten-Framework. Es
erlaubt das Schreiben
verschiedener Plugins, welche Hand in Hand arbeiten.
Auf diese Weise bleiben dem Programmierer viele Arbeiten
erspart. Sie müssen sich beispielsweise keine Sorgen um die
Passwortabfrage machen. Es gibt bereits Plugins, welche das
zuverlässig für Sie erledigen. Auch das
Administrationsmenü ist bereits fix und fertig. Sie
müssen es nicht neu schreiben, sondern sie brauchen es einfach
nur verwenden. Falls eine Komponente nicht gefällt, kann sie
ausgetauscht oder entfernt werden. Falls eine Funktion fehlt, kann sie
hinzugefügt werden, ohne andere Plugins verändern zu
müssen.
Das Schreiben eines neuen Plugins wird einfacher unter
Verwendung des YANA-SDK. Dabei handelt es sich um einen Assistenten,
welcher alle erforderlichen Informationen abfragt und dann
vollautomatisch eine neue Anwendung für Sie erstellt. Diese
müssen Sie lediglich noch Ihren Bedürfnissen anpassen.
Installation des YANA-SDK
Es wird dringend
empfohlen, das SDK nur auf Webservern zu installieren, welche
für den öffentlichen Zugriff gesperrt sind.
Beispielsweise auf einer lokalen Arbeitsstation, welche nicht
über Netzwerk erreichbar ist. Das SDK dient
ausschließlich dem Zweck der Entwicklung neuer Anwendungen
für das Framework. Um es sinnvoll einsetzen zu
können, ist es erforderlich, dass der Benutzer lokal an dem
jeweiligen Rechner arbeiten kann und Lese- sowie Schreibrechte
für die Verzeichnisse und Dateien des Frameworks besitzt, auf
dem das SDK installiert ist. Beziehungsweise in der Lage ist,
über eine Remote-Verbindung mit diesen Rechten wie ein lokaler
Nutzer zu arbeiten.
Bei unsachgemäßer Nutzung können
lokal gespeicherte Anwendungen für das Framework
gelöscht oder überschrieben werden. Es wird daher
dringend empfohlen, regelmäßig Sicherheitskopien der
gespeicherten Dateien anzulegen.
Um das SDK zu installieren
gehen Sie wie folgt vor:
- Installieren und konfigurieren sie das YANA-Framework wie
in der Anleitung
beschrieben.
- Stellen Sie sicher, dass das Programm Schreibrechte für die Verzeichnisse "plugins" und "skins/default" besitzt.
- Melden Sie sich als Administrator an und rufen Sie das Administrationsmenü der Anwendung auf.
- Suchen Sie im Menü "Plugins" den Eintrag "Software
Development Kit" und aktivieren Sie dieses Plugin. Speichern Sie Ihre
Änderungen.
- Um das SDK zu starten, wählen Sie den Eintrag "Software Development Kit" aus der Sitemap der Anwendung.
Software Developement Kit
(YANA-SDK)
Das SDK unterstützt den Entwickler durch eine grafische
Oberfläche. Die grafische Oberfläche führt
dabei durch vier Schritte, in denen Aussehen, Verhalten und allgemeine
Informationen zur Anwendung und zum Urheber bereitgestellt werden
können.
Schritt 1: allgemeine Informationen
Vorbereitend müssen zunächst allgemeine
Informationen
gegeben werden. Siehe Abbildung oben.
- Name der
Software: ein beliebieger Text.
- ID-Kennung:
eine eindeutige Bezeichnung, bitte nur alphanumerische Zeichen (A-Z und
0-9) verwenden
- Versionsdatum:
wird automatisch erzeugt, kann aber von Hand geändert werden
- Versionsnummer:
eine Zahl vom Typ "float", welche die aktuelle Version
repräsentiert
- Beschreibung:
ein beliebiger Text. HTML ist NICHT gestattet.
- Grafik:
wählen Sie aus der Liste ein Icon, welches die Anwendung
repräsentiert

Anschliessend können Sie einige Informationen zu
Ihrer Person eintragen
- Name des
Autors: Ihr Name
- Kontaktadresse
für Rückfragen: beliebiger Text. Am
besten eine Mailadresse. Sie können das Feld frei lassen,
falls Sie möchten.
- Homepageadresse
für Updates: eine gültige URL. Wenn Sie
eine Webseite haben auf der Sie Updates für diese Anwendung
bereitstellen möchten, geben Sie hier die Adresse an.

- Priorität der Ausführung:
Dieser Wert bestimmt, in welcher Reihenfolge Plugins
ausgeführt werden. Sicherheitsrelevante Plugins
(Passwortabfragen etc.) sollten eine höhere Priorität
haben, dadurch werden sie ausgeführt, bevor andere Plugins an
der Reihe sind. Andere Plugins (Log-Files etc.) sollten eine
niedrigere Priorität haben.
Gültige Werte für den Typ der
Anwendung sind:
„default“, „primary“,
„config“, „read“,
„write“, „security“.
- die Mitglieder der Gruppe „security“
werden immer
ausgeführt und haben eine höhere
Ausführungspriorität als alle anderen Plugins. Diese
Gruppe dient für Plugins zur Nutzerauthentifikation.
- Die Gruppe „config“ behandelt
ausschliesslich
Ereginisse vom Typ „default“,
„security“ oder „config“. Sie
ist gedacht für Plugins welche Funktionen zum Editieren von
Konfigurationsdateien bereitstellen. Üblicherweise dienen
diese Plugins als Erweiterungen anderer Plugins. Es besteht also eine
Abhängigkeit. Diese Abhängigkeit kann unter anderem
dadurch ausgedrückt werden, indem definiert wird, dass beide
Plugins zum gleichen Paket gehören.
- Die Gruppe „write“ behandelt Ereignisse
vom Typ
„write“, „security“ oder
„default“. Sie ist gedacht für Plugins,
welche ausschliesslich Schreibzugriffe auf dem Dateisystem oder einer
Datenbank durchführen. Diese Gruppe wird
erfahrungsgemäß in der Praxis eher selten verwendet.
Sie ist aus Gründen der Vollständigkeit hier
erwähnt.
- Die Gruppe „read“ behandelt Ereignisse
vom Typ
„read“, „security“ oder
„default“. Sie ist gedacht für Plugins,
welche ausschliesslich Lesezugriffe auf dem Dateisystem oder einer
Datenbank durchführen. Diese Gruppe wird eher selten verwendet.
- Die Gruppe „primary“ behandelt alle
Ereignisse
außer „config“. Sie ist gedacht
für Plugins welche als Hauptprogramme fungieren.
- Die Gruppe Die Gruppe „default“
behandelt alle
Ereignisse außer solche vom Typ
„security“, „config“ und
„primary“. Sie ist gedacht für
„sonstige“ Plugins, beziehungsweise als
Lösung für Entwickler, welche sich unsicher
darüber sind, in welche Gruppe sie Ihr Plugin einordnen
sollten.
- benötigt
das Plugin: ID-Kennung eines Plugins, welches erforderlich
ist, damit dieses funktioniert. Benutzen Sie dieses Feld, wenn Sie eine
bestehende Anwendung durch neue Funktionen erweitern wollen. Das
Auswahlmenü dient nur als Hilfestellung. Es muss nicht
unbedingt eine der IDs dieses Menüs verwendet werden.
- gehört
zu Paket: benutzen Sie dieses Feld um
auszudrücken, dass zwei Plugins zusammen gehören.
Tragen Sie dazu in dieses Feld das gemeinsame "Package" ein, zu dem
beide gehören.
- erzeuge
Konfigurationsdatei (veraltet): Klicken Sie hier, falls
eine Datei
"settings.config" im Programmverzeichnis erzeugt werden soll. In dieser
Datei können Sie später von Hand eigene Optionen
eintragen. (wird selten benötigt) Diese Option ist veraltet
und nur aus Kompatibilitätsgründen enthalten.
Verwenden Sie diese sparsam.
Schritt 2: Schnittstelle editieren
Der zweite Schritt erlaubt dem Entwickler eigene Aktionen zur
die
Schnittstelle hinzuzufügen.
Falls Sie nur eine einfache Datenbankanwendung erstellen
wollen, können Sie diesen Schritt übergehen. Die
meisten
Standardaktionen, wie das Anzeigen von Datenbankeinträgen,
Suche, Editieren, Löschen oder Einfügen,
müssen nicht von Hand geschrieben werden. Diese
Aktionen erzeugt das SDK automatisch.
Wenn Sie andere Aktionen festlegen möchten,
können Sie hier deren Schnittstelle definieren. Dazu
können Vorlagen
verwendet werden, welche das SDK vorgibt. Ein händische
Erstellung ist ebenfalls möglich. Die Schnittstellen
können auch nachträglich von Hand verändert
werden.

Für einige Standardaktionen gibt es Vorlagen, welche
benutzt werden können. Schauen Sie in die Auswahlliste. Wenn
eine Option ausgewählt wurde, erscheint zum Vergleich eine
Liste der erzeugten Aktionen. Sie können sich die gesamte
Schnittstelle anschauen, indem Sie die Option "Schnittstelle von Hand
nachbearbeiten" auswählen.

Eine Schnittstelle enthält folgende Informationen:
- Name der
Aktion: Name der Funktion (beliebig). Es sind nur Zeichen
von A-Z und 0-9 sowie "_" erlaubt. Schauen Sie sich zum Vergleich die
Beispiele an.
- Modus:
sollte üblicherweise "Standard" sein. Der abgesicherte Modus
ist für den Fall, dass Sie absichtlich Default-Werte verwenden
wollen oder müssen.
- Templates:
ID-Kennung des Templates, welches verwendet werden soll. Dies Kennung
wird im Skin festgelegt. Schauen Sie sich die Skin-Dateien im Verzeichnis "skins/default/*.config" an, oder
benutzen Sie das Auswahlmenü als Beispiel!
- Zugriffsbeschränkung:
legt fest, welche Rechte ein Besucher haben muss, damit er diese Aktion
aufrufen kann.
Diese Option dient zur Kontrolle, beziehungsweise als
Alternative Eingabeoberfläche für erfahrene Nutzer.
Sie sehen alle definierten Aktionen und können
Änderungen vornehmen.
Vorsicht! Fehler können dazu führen, dass
das Plugin nicht korrekt erzeugt werden kann.
Schritt 3: GUI generieren
Es kann für Datenbankanwendungen automatisch eine GUI
generiert werden. Dazu wird eine Strukturdatei benötigt,
welche die Datenbank beshreibt. Aus den Informationen dieser Datei
erzeugt das SDK
für jede Tabelle automatisch passende Template-Dateien, sowie
die dazu passenden Aktionen und erzeugt zudem die erforderlichen
Ergänzungen für die Schnittstelle der Anwendung.
Für andere Anwendungen, kann dieser Schritt
übergangen werden.
Die folgenden Aktionen und Templates werden erzeugt: zwei
alternative
Aktionen und Templates zum Anzeigen von Datenbankinhalten, ein Template
zum Editieren und Löschen von Einträgen, sowie drei
dazu gehörende Aktionen, zum Anzeigen, Speichern und Löschen von Einträgen.
Außerdem zwei alternative Templates und passende Aktionen zum
Suchen nach Einträgen. Abschliessend ein Template zum
Erstellen neuer Einträge, sowie zwei passende Aktionen zum
Anzeigen des Formulars und Speichern des neuen Eintrags.

Sollten Sie noch keine Strukturdatei geschrieben haben,
können Sie eine solche Datei erzeugen. Geben Sie Namen
und Pfad der Datei ein (Dateiendung sollte ".config" sein) und klicken
Sie auf die Schaltfläche "abschicken".

Wenn Sie eine Strukturdatei erzeugt oder von Hand geschrieben
haben, geben Sie hier bitte den Pfad dieser Datei an. Klicken Sie auf
"Durchsuchen", wenn Sie sich nicht sicher sind, wo sich diese befindet.
Schritt 4: Installationsroutine erstellen
In diesem Schritt wird eine
SQL-Datei benötigt, welche zuvor
erstellt wurde. Das SDK kann automatisch eine Installationsroutine
erstellen, welche bei bestehender Datenbankverbindung den Inhalt der
SQL-Datei zur Ausführung an das DBMS sendet. Dadurch werden
die für die Anwendung erforderlichen Tabellen
installiert und initialsiert. Das SDK erstellt diese SQL-Datei NICHT
für Sie. Sie können ein externes Programm,
beispielsweise "PHPmyAdmin" verwenden um diese Datei zu erzeugen.
Wählen Sie die Quelldatei im SQL-Format aus, welche die Informationen zur Installation der Datenbank enthält.
Erzeugen der Anwendung
Zum Abschliessen der Konfiguration klicken Sie bitte auf die Schaltfläche "Fertigstellen".
Das SDK produziert als Ausgabe ein Skelett der Anwendung, alle
erforderlichen Templates, sowie alle notwendigen Konfigurationsdateien.
Diese beinhalten insbesondere: Meta-Informationen des Plugins inklusive
Beschreibung der Schnittstelle, Meta-Informationen der verwendeten
Dateien, Meta-Informationen der verwendeten Templates.
Das soeben generierte Plugin ist sofort lauffähig. Sie finden
die entsprechenden Dateien im Verzeichnis "plugins" beziehungsweise
"skins/default", unter der ID-Kennung des Plugins.
Plugin installieren
Um das soeben erzeugte Plugin zu testen:
- Öffnen Sie die Datei "index.php" in Ihrem Browser
- Öffnen Sie das Administrationsmenü. Sie müssen
Administratorrechte besitzen. Achten Sie darauf, dass der Expertenmodus
gewählt ist.
- Wählen Sie im rechten Menü die Schaltfläche "Liste neu laden".
- Suchen Sie Ihr Plugin in der Liste und aktivieren Sie es, durch
Klick auf den Radiobutton neben dem Namen des Plugins (links=an,
rechts=aus)
- Speichern Sie Ihre Änderungen.
- Melden Sie sich ab.
- Der Name der Anwendung erscheint in der
Index-Liste. Klicken Sie darauf um die Anwendung zu starten. (der
Eintrag in der Index-Liste erscheint nur dann, wenn Sie in der
Schnittstelle mindestens 1
Aktion definiert haben, welche den Typ "read" oder "default" und
die Zugriffsbeschränkung "0" (=öffentlich) besitzt. Falls
nicht, müssen Sie den
Namen der gewünschten Aktion über die Adressleiste des
Browsers eingeben: index.php?action=my_action. Dieser Mechanismus ist
dazu gedacht zu verhindern, dass Plugins, die allein nicht
lauffähig sind, oder Adminrechte benötigen, in der
öffentlich zugänglichen Index-Liste erscheinen)