Pluginentwicklung
Aus DeDi-Help
| Version vom 15:33, 31. Aug. 2004 (bearbeiten) Bjoern (Diskussion | Beiträge) ← Zum vorherigen Versionsunterschied |
Aktuelle Version (09:49, 6. Okt. 2009) (bearbeiten) (Entfernen) Eppi (Diskussion | Beiträge) |
||
| (Der Versionsvergleich bezieht eine dazwischen liegende Version mit ein.) | |||
| Zeile 1: | Zeile 1: | ||
| - | Plugins sind Backenderweiterungen von DeDi und bringen Funktionaltt innerhalb von DeDi ein die nicht vom Core abgedeckt wird, dahingehend wurden Plugins viel Funktionalitt ausgestattet. | + | Plugins sind Backenderweiterungen von DeDi und bringen Funktionaltät innerhalb von DeDi ein die nicht vom Core abgedeckt wird, dahingehend wurden Plugins viel Funktionalität ausgestattet. |
| Zeile 5: | Zeile 5: | ||
| - | Grundstzlich haben wir zwei zustnde von Plugins: gespeichert und installiert | + | Grundsätzlich haben wir zwei zustände von Plugins: gespeichert und installiert |
| Wobei ein installiertes Plugin immer auch ein gespeichertes Plugin ist | Wobei ein installiertes Plugin immer auch ein gespeichertes Plugin ist | ||
| - | Installierte Plugins knnen natrlich auch deinstalliert werden, was abhngig vom Speicherort einer lschung gleichkommt! | + | Installierte Plugins können natürlich auch deinstalliert werden, was abhöngig vom Speicherort einer Löschung gleichkommt! |
| Wir definieren auch zwei Speicherorte: Client (Projekt) und Store (Datenbank) | Wir definieren auch zwei Speicherorte: Client (Projekt) und Store (Datenbank) | ||
| Plugins im Store sind nicht installiert sondern nur gespeichert. Plugins in einem Client sind immer installiert! | Plugins im Store sind nicht installiert sondern nur gespeichert. Plugins in einem Client sind immer installiert! | ||
| Zeile 18: | Zeile 18: | ||
| Der Pluginname, Kennzeichnet das Verzeichnis des Plugins und ist in jedem Fall eindeutig und einmalig! | Der Pluginname, Kennzeichnet das Verzeichnis des Plugins und ist in jedem Fall eindeutig und einmalig! | ||
| - | Die Source eines Plugins ist das eigentliche Herzstck, dort gibt es einiges zu finden: | + | Die Source eines Plugins ist das eigentliche Herzstück, dort gibt es einiges zu finden: |
| - die pluginname.dediplug Datei beinhaltet alle weiterzugebenen Konfigurationsdaten eines Plugins (siehe auch Module) | - die pluginname.dediplug Datei beinhaltet alle weiterzugebenen Konfigurationsdaten eines Plugins (siehe auch Module) | ||
| - | - die pluginname_meta.php, ist die Steuerungsklasse fr viele Funktionen | + | - die pluginname_meta.php, ist die Steuerungsklasse für viele Funktionen |
| - | - das 'meta' Verzeichnis beinhaltet .meta Dateien die sowohl Php als auch Sql-Statements enthalten knnen | + | - das 'meta' Verzeichnis beinhaltet .meta Dateien die sowohl Php als auch Sql-Statements enthalten können |
| - das 'module' Verzeichnis beinhaltet Module die vom Plugin mitinstalliert werden | - das 'module' Verzeichnis beinhaltet Module die vom Plugin mitinstalliert werden | ||
| - | Ein Plugin kann das Backendmen erweitern, eigene Konfiguration/Values/Langstrings/Rechte und Tabellen mitbringen! | + | Ein Plugin kann das Backendmenü erweitern, eigene Konfiguration/Values/Langstrings/Rechte und Tabellen mitbringen! |
| - | Die Steuerung dieser Funktionalitt bernimmt die pluginname_meta.php. Die Klasse ist erweiterbar und um eigene Code zu ergnzen. | + | Die Steuerung dieser Funktionalität übernimmt die pluginname_meta.php. Die Klasse ist erweiterbar und um eigene Code zu ergänzen. |
| - | Generell wird sie von DeDi in der aktuellen Version verffentlicht. | + | Generell wird sie von DeDi in der aktuellen Version veröffentlicht. |
| - | Das gesammte Filehandlig und Verbindung zu DeDi whrend einer Installation/Deinstallation/Update bernimmt diese Klasse. | + | Das gesammte Filehandlig und Verbindung zu DeDi während einer Installation/Deinstallation/Update übernimmt diese Klasse. |
| - | Ein Plugin kann in den .meta Dateien Sql-Statements oder Php verwenden um eigene Aktionen wrend der Installation/Deinstallation/Update auszufhren. Installation/Deinstallation/Update knnen auch Clientabhngig konfiguriert werden, so das fr jeden Client eine eigene Installation gilt, generell gilt eine Plugininstallation fr alle Clients! | + | Ein Plugin kann in den .meta Dateien Sql-Statements oder Php verwenden um eigene Aktionen wärend der Installation/Deinstallation/Update auszuführen. Installation/Deinstallation/Update können auch Clientabhängig konfiguriert werden, so das für jeden Client eine eigene Installation gilt, generell gilt eine Plugininstallation für alle Clients! |
| - | Als SQL-Statements knnen auch Blcke abgegeben werden die von DeDi einzeln abgearbeitet werden. | + | Als SQL-Statements können auch Blöcke abgegeben werden die von DeDi einzeln abgearbeitet werden. |
| - | Einige Variablen stehen bei der Entwicklung der Statements zur verfgung: | + | Einige Variablen stehen bei der Entwicklung der Statements zur Verfügung: |
| - | *{plug_client_prefix} <-> 'dedi_plug_x_' wird in beide Richtungen bersetzt | + | *{plug_client_prefix} <-> 'dedi_plug_x_' wird in beide Richtungen übersetzt |
| - | *{plug_prefix} <-> 'dedi_plug_' wird in beide Richtungen bersetzt | + | *{plug_prefix} <-> 'dedi_plug_' wird in beide Richtungen übersetzt |
| - | *{client_prefix} <-> 'client_x_' wird in beide Richtungen bersetzt | + | *{client_prefix} <-> 'client_x_' wird in beide Richtungen übersetzt |
| - | *{table_prefix} <-> 'dedi_' wird in beide Richtungen bersetzt | + | *{table_prefix} <-> 'dedi_' wird in beide Richtungen übersetzt |
| - | *{client_id} -> x wird nur in eine Richtung bersetzt | + | *{client_id} -> x wird nur in eine Richtung übersetzt |
| - | *{now} -> x wird nur in eine Richtung bersetzt | + | *{now} -> x wird nur in eine Richtung übersetzt |
| - | Zu den Plugins gibt es auch den Pluginmanager, der intern das entwickeln von Plugins untersttzt. | + | Zu den Plugins gibt es auch den Pluginmanager, der intern das entwickeln von Plugins unterstützt. |
| Zeile 49: | Zeile 49: | ||
| - | Ebenfalls knnen dort komfortabel alle Einstellungen zu Pluginrechten und Backendmen gepflegt werden (diese Einstellungen sind nur im Store mglich!). | + | Ebenfalls können dort komfortabel alle Einstellungen zu Pluginrechten und Backendmenü gepflegt werden (diese Einstellungen sind nur im Store möglich!). |
| Zu den Rechten gibt es noch eine erweiterung die Tage die sich auf folgendes bezieht: | Zu den Rechten gibt es noch eine erweiterung die Tage die sich auf folgendes bezieht: | ||
| Zeile 58: | Zeile 58: | ||
| - | Achtung: nderung! | + | Achtung: Änderung! |
| Zeile 72: | Zeile 72: | ||
| - | Alle Einstellungen eines Plugin werden Systemweit ausgelesen und zur Verfgung gestellt im Array $pluginname_var, also ist ein bergreifendes arbeiten von Modulen und Plugins mglich. | + | Alle Einstellungen eines Plugin werden Systemweit ausgelesen und zur Verfügung gestellt im Array $pluginname_var, also ist ein übergreifendes arbeiten von Modulen und Plugins möglich. |
| - | Plugins werden als pluginname.tar Datei weitergegeben, auch ein Verzeichnisimport ber Administration->Plugins->'neues Plugin erstellen'->'Verzeichnis importieren' ist mglich um ein Plugin zu importieren das selbst erstellt oder per FTP hochgeladen wurde. | + | Plugins werden als pluginname.tar Datei weitergegeben, auch ein Verzeichnisimport über Administration->Plugins->'neues Plugin erstellen'->'Verzeichnis importieren' ist möglich um ein Plugin zu importieren das selbst erstellt oder per FTP hochgeladen wurde. |
| Ein Plugin das per .tar Datei hochgeladen oder per Verzeichnis importiert wurde wird immer im Store gespeichert! | Ein Plugin das per .tar Datei hochgeladen oder per Verzeichnis importiert wurde wird immer im Store gespeichert! | ||
| Zeile 82: | Zeile 82: | ||
| - | nderungen/Erweiterungen sind vorbehalten. Das ist nur eine vorlufige Dokumentation! | + | Änderungen/Erweiterungen sind vorbehalten. Das ist nur eine vorläufige Dokumentation! |
| Die gesammte Entwicklung/Erweiterung ist nicht abgeschlossen und befindet sich teilweise in der jetzigen Beta im Test, abweichungen sind BUGS! | Die gesammte Entwicklung/Erweiterung ist nicht abgeschlossen und befindet sich teilweise in der jetzigen Beta im Test, abweichungen sind BUGS! | ||
| - | Einige Teilbereiche werden erst zur folgenden Beta/Final freigeschaltet und sind somit noch nicht zugnglich (Stichwort: Plugin-Manager, Online-Repository). | + | Einige Teilbereiche werden erst zur folgenden Beta/Final freigeschaltet und sind somit noch nicht zugänglich (Stichwort: Plugin-Manager, Online-Repository). |
| Gruss, STam | Gruss, STam | ||
| + | |||
| + | [[Category:Entwicklung]] | ||
Aktuelle Version
Plugins sind Backenderweiterungen von DeDi und bringen Funktionaltät innerhalb von DeDi ein die nicht vom Core abgedeckt wird, dahingehend wurden Plugins viel Funktionalität ausgestattet.
Vorweg einiges an Begrifflichkeit.
Grundsätzlich haben wir zwei zustände von Plugins: gespeichert und installiert
Wobei ein installiertes Plugin immer auch ein gespeichertes Plugin ist
Installierte Plugins können natürlich auch deinstalliert werden, was abhöngig vom Speicherort einer Löschung gleichkommt!
Wir definieren auch zwei Speicherorte: Client (Projekt) und Store (Datenbank)
Plugins im Store sind nicht installiert sondern nur gespeichert. Plugins in einem Client sind immer installiert!
Installierte Plugins sind nur scheinbare Instanzen eines Parents im Store. In wirklichkeit gibt zu jedem installiertem Plugin nur die entsprechnden Informationen in der Datenbank, die Source das eigentliche Plugin bleibt immer gleich und wird unter 'plugins/' gespeichert!
Der Pluginname, Kennzeichnet das Verzeichnis des Plugins und ist in jedem Fall eindeutig und einmalig!
Die Source eines Plugins ist das eigentliche Herzstück, dort gibt es einiges zu finden:
- die pluginname.dediplug Datei beinhaltet alle weiterzugebenen Konfigurationsdaten eines Plugins (siehe auch Module)
- die pluginname_meta.php, ist die Steuerungsklasse für viele Funktionen
- das 'meta' Verzeichnis beinhaltet .meta Dateien die sowohl Php als auch Sql-Statements enthalten können
- das 'module' Verzeichnis beinhaltet Module die vom Plugin mitinstalliert werden
Ein Plugin kann das Backendmenü erweitern, eigene Konfiguration/Values/Langstrings/Rechte und Tabellen mitbringen!
Die Steuerung dieser Funktionalität übernimmt die pluginname_meta.php. Die Klasse ist erweiterbar und um eigene Code zu ergänzen.
Generell wird sie von DeDi in der aktuellen Version veröffentlicht.
Das gesammte Filehandlig und Verbindung zu DeDi während einer Installation/Deinstallation/Update übernimmt diese Klasse.
Ein Plugin kann in den .meta Dateien Sql-Statements oder Php verwenden um eigene Aktionen wärend der Installation/Deinstallation/Update auszuführen. Installation/Deinstallation/Update können auch Clientabhängig konfiguriert werden, so das für jeden Client eine eigene Installation gilt, generell gilt eine Plugininstallation für alle Clients!
Als SQL-Statements können auch Blöcke abgegeben werden die von DeDi einzeln abgearbeitet werden.
Einige Variablen stehen bei der Entwicklung der Statements zur Verfügung:
- {plug_client_prefix} <-> 'dedi_plug_x_' wird in beide Richtungen übersetzt
- {plug_prefix} <-> 'dedi_plug_' wird in beide Richtungen übersetzt
- {client_prefix} <-> 'client_x_' wird in beide Richtungen übersetzt
- {table_prefix} <-> 'dedi_' wird in beide Richtungen übersetzt
- {client_id} -> x wird nur in eine Richtung übersetzt
- {now} -> x wird nur in eine Richtung übersetzt
Zu den Plugins gibt es auch den Pluginmanager, der intern das entwickeln von Plugins unterstützt.
Values
Sind Werte/Parameter eines Plugins die in der dedi_value gespeichert werden, das ganze ist wie eine erweiterung der Systemeinstellung von DeDi zu verstehen. Ein Plugin kann also seine eigenen Einstellungen mitbringen und auch verwalten (unter Administration->Plugins->'Plugin konfigurieren').
Ebenfalls können dort komfortabel alle Einstellungen zu Pluginrechten und Backendmenü gepflegt werden (diese Einstellungen sind nur im Store möglich!).
Zu den Rechten gibt es noch eine erweiterung die Tage die sich auf folgendes bezieht:
Zugriffs-Rechte (in Verbindung mit dedi_access) und Area-Rechte eines Plugins area_plug_pluginname
Achtung: Änderung!
Wobei 'pluginname' der root_name des Verszeichnisses ist in dem Das Plugin gespeichert ist.
1. Unterebene der Rechte
plug_pluginname
2. Unterebene der Rechte
pluginname
Alle Einstellungen eines Plugin werden Systemweit ausgelesen und zur Verfügung gestellt im Array $pluginname_var, also ist ein übergreifendes arbeiten von Modulen und Plugins möglich.
Plugins werden als pluginname.tar Datei weitergegeben, auch ein Verzeichnisimport über Administration->Plugins->'neues Plugin erstellen'->'Verzeichnis importieren' ist möglich um ein Plugin zu importieren das selbst erstellt oder per FTP hochgeladen wurde.
Ein Plugin das per .tar Datei hochgeladen oder per Verzeichnis importiert wurde wird immer im Store gespeichert!
....................
Änderungen/Erweiterungen sind vorbehalten. Das ist nur eine vorläufige Dokumentation!
Die gesammte Entwicklung/Erweiterung ist nicht abgeschlossen und befindet sich teilweise in der jetzigen Beta im Test, abweichungen sind BUGS!
Einige Teilbereiche werden erst zur folgenden Beta/Final freigeschaltet und sind somit noch nicht zugänglich (Stichwort: Plugin-Manager, Online-Repository).
Gruss, STam

