InhaltsverzeichnisAnleitung für EntwicklerPlugins 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:

1. Installieren und konfigurieren sie das YANA-Framework wie in der Anleitung beschrieben.
2. Stellen Sie sicher, dass das Programm Schreibrechte für die Verzeichnisse "plugins" und "skins/default" besitzt.
3. Melden Sie sich als Administrator an und rufen Sie das Administrationsmenü der Anwendung auf.
4. Suchen Sie im Menü "Plugins" den Eintrag "Software Development Kit" und aktivieren Sie dieses Plugin. Speichern Sie Ihre Änderungen.
5. 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.

- Typ der Anwendung:

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:

1. Öffnen Sie die Datei "index.php" in Ihrem Browser
2. Öffnen Sie das Administrationsmenü. Sie müssen Administratorrechte besitzen. Achten Sie darauf, dass der Expertenmodus gewählt ist.
3. Wählen Sie im rechten Menü die Schaltfläche "Liste neu laden".
4. 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)
5. Speichern Sie Ihre Änderungen.
6. Melden Sie sich ab.
7. 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)

© 2001, 2002, 2003, 2004, 2005, 2006Thomas Meyer, www.all-community.de/pub