Plugin: Software Development Kit (SDK)
Allgemeines
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.
Installation
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.
Falls Sie eine Einführung in die Benutzung des SDK wünschen, finden Sie
diese im Kapitel "Plugins und Anwendungen
erstellen". Ein praktisches Anwendungsbeispiel finden Sie im
Einführungstutorial, in Kapitel 3
"Erstellen eines neuen Plugins".
Vorbereitung
allgemeine Informationen
- Name der
Software:
- ein beliebiger Text.
- Beschreibung:
- ein beliebiger Text. HTML ist NICHT gestattet.
- Grafik:
- wählen Sie aus der Liste ein Icon, welches die Anwendung
repräsentiert
Einige Informationen zu Ihrer Person:
- Autor:
- Ihr Name
- Mailadresse:
- Adresse für Rückfragen.
Sie können das Feld frei lassen, falls Sie möchten.
- Homepage 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 Nutzerauthentifizierung.
- Die Gruppe "config" behandelt ausschließlich Ereignisse
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
ausschließlich 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
ausschließlich 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 "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.
Schnittstelle
Wenn Sie andere Aktionen festlegen möchten, können Sie hier
deren Schnittstelle definieren. Dazu können Vorlagen verwendet werden,
welche das SDK vorgibt. Eine manuelle 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. Diese 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.
Datenbank
Es kann für Datenbankanwendungen automatisch eine GUI
generiert werden. Dazu wird eine Strukturdatei benötigt, welche die
Datenbank beschreibt. 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.
Wenn Sie keine solche Datenbankanwendung
erstellen wollen, kann dieser Schritt übergangen werden.
Automatisch erzeugt werden jeweils: pro Tabelle ein Template zum Anzeigen,
Editieren, Anlegen und Durchsuchen von Datenbankinhalten, sowie der PHP-Code
für die dazu gehörende Aktionen. Außerdem Aktionen, für den Download von Dateien
und Bildern aus der Datenbank. Weiterhin wird eine JavaScript-Datei erzeugt, um
über Ajax Aktionen auf dem Server auslösen zu können. Zuletzt wird die Strukturdatei
selbst im System gespeichert.
Sollten Sie noch keine Strukturdatei geschrieben haben,
können Sie eine solche Datei erzeugen. Benutzen Sie dazu das Plugin "DB-Tools".
Öffnen Sie im Administrationsmenü das Menü "DB-Tools" / "Import".
Wählen Sie eine der Optionen, um eine bereits existierende Datenbank zu importieren.
Falls Sie bis jetzt noch keinerlei Vorlage für die Datenbank zur Verfügung haben, lesen
Sie bitte das Einführungstutorial. Beachten Sie auch
die Beispiele im Kochbuch für Entwickler.
Wenn Sie eine Strukturdatei erzeugt, oder von Hand geschrieben
haben, geben Sie bitte hier den Pfad dieser Datei an. Klicken Sie auf
"Durchsuchen", wenn Sie sich nicht sicher sind, wo sich diese befindet.
Installation (SQL)
Dieser Schritt ist optional.
Das Framework kann (seit Version 2.8.6) die
SQL-Anweisungen für die Installation bei Bedarf automatisch aus der in
Schritt 3 angegebenen Strukturdatei erzeugen. Dies funktioniert für:
MySQL, MS-SQL, PostgreSQL, Oracle Datenbanken, IBM DB2 und MS Access.
Handarbeit ist somit (außer in Ausnahmefällen) unnötig.
Falls für das gewünschte DBMS keine automatische Generierung möglich
ist, können Sie eine handgeschriebene SQL-Installationsdatei
bereitstellen.
Wählen Sie die Quelldatei im SQL-Format aus, welche die
Informationen zur Installation der Datenbank enthält.
Ihre SQL-Installationsdateien finden Sie nach der Generierung
des Plugins im Verzeichnis "config/db/.install/". Dieses enthält für
jedes unterstützte DBMS Unterverzeichnisse. Hierher können Sie auch
nachträglich noch SQL-Dateien von Hand kopieren. Die Datei muss den
gleichen Namen haben wie die Strukturdatei und die Endung ".sql"
besitzen.
Fertigstellen
Zum Abschließen 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.