CMS - Der Dirigent » Entwicklung » DeDi-Entwicklung
Neue Umfrage | neues Thema | Antworten
Pluginentwicklung, Beschreibung der Funktionalität 'Plugin'
« Älteres Thema | Neueres Thema » Thema abonnieren | Thema versenden | Thema drucken
STam | Geschrieben am: 07. Mar 2004 - 14:15 | ||
freelancer Gruppe: Members Beiträge: 1285 Mitgliedsnummer: 173 Mitglied seit: 03. Jun 2003 |
Hier eine vorab Doku (alle Angaben gelten als Ergänzung/Änderung zur Admin-Doku, wenn nicht anders beschrieben) 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 {client_id} -> x wird nur in eine Richtung übersetzt {now} -> x wird nur in eine Richtung übersetzt ALTER TABLE dedi_ ALTER TABLE `dedi_ DELETE FROM dedi_! DELETE FROM `dedi_! UPDATE dedi_! UPDATE `dedi_! REPAIR TABLE `dedi_! OPTIMIZE TABLE `dedi_! DROP TABLE IF EXISTS dedi_! CREATE TABLE dedi_! CREATE TABLE `dedi_! INSERT INTO `dedi_! INSERT INTO dedi_! wird alles durch den entsprechenden Befehl & dem aktuellen DeDi_Prefix ersetzt. 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 Achtung: der Pluginmanager ist noch nicht ganz implementiert! 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 -------------------- ... to watch out for sefrengo.de
|
||
KnudS | Geschrieben am: 08. Mar 2004 - 10:28 | ||
Member Gruppe: Members Beiträge: 95 Mitgliedsnummer: 88 Mitglied seit: 03. Apr 2003 |
hi STam, super sache, so ein Plugin-system. Leider bin ich aus deiner Doku noch nicht recht schlau geworden. was die Praxis angeht. Vielleicht würde es helfen, wenn du es an einem einfachen beispiel erläuterst? Hälst du das für machbar? das wäre fantastisch. grüsse Knuds |
||
saschapi | Geschrieben am: 08. Mar 2004 - 10:38 | ||
Felis silvestris forma catus Gruppe: Members Beiträge: 986 Mitgliedsnummer: 146 Mitglied seit: 22. May 2003 |
@ KnudS: Vielleicht hilft dir ja schon das in der Beta2 mitgelieferte Sample Plugin ein bissl weiter -------------------- DJ & Sascha machen einen Webdesign Podcast
Webdesign für Jedermann, möglichst ohne "Technikgebrabbel" == PoLi arbeitet nicht mehr mit DeDi! |
||
STam | Geschrieben am: 08. Mar 2004 - 12:21 | ||
freelancer Gruppe: Members Beiträge: 1285 Mitgliedsnummer: 173 Mitglied seit: 03. Jun 2003 |
Ja so ist das .... Am besten ersmal basteln Wichtig ist unter anderem das: - der Verzeichnisname eindeutig und einmalig ist! - das in der pluginname_meta.php alle Beispiele aus dem Sample mit dem Pluginnamen ersetzt werden! Also:
Das wars schon im Moment, später wird diese Datei auch automatisch erzeugt! Achtung: die pluginname.dediplug Datei muss nicht selbst erstellt werden! Die wird vom System erzeugt! Gruss, STam Hier noch ein Beispiel:
Angefügte Datei herunterladen
multi_sample.tar ( Anzahl der Downloads: 1648 ) -------------------- ... to watch out for sefrengo.de
|
||
mvsxyz | Geschrieben am: 14. Jun 2004 - 18:48 | ||
Member Gruppe: Tester Beiträge: 1503 Mitgliedsnummer: 341 Mitglied seit: 16. Oct 2003 |
Hallo STam, ich habe durch Zufall (bei meinem Update) mal in den Ordner xml geschaut und wunderbare Dinge gesehen, die mich unheimlich interessieren... Mehr noch als deine Beispieldateien... Ich denke, dass die XML-Dateien für Values und die Online-Repository (wie du bereits sagtest) ist. Doch wie funktionieren denn nun die Values (im BE)? (In der Konfig eines Plugins) Oder nur Aktionen beim Updaten? Was muss ich für "<![CDATA[Text]]>" einsetzten? Sind die Dateien überhaupt per Hand zueditieren? In welchen Ordner kommen sie dann? Damit ich die gleiche Frage nicht noch bei den Modulen stellen muss: Wie funktioniert es da? Sorry wenn ich dich überrenne, aber da kribbelt es mir in den Fingern... -------------------- |
||
mvsxyz | Geschrieben am: 17. Jun 2004 - 20:41 | ||
Member Gruppe: Tester Beiträge: 1503 Mitgliedsnummer: 341 Mitglied seit: 16. Oct 2003 |
STam... Willst du oder darfst du mir nicht antworten? -------------------- |
||
STam | Geschrieben am: 17. Jun 2004 - 20:55 | ||
freelancer Gruppe: Members Beiträge: 1285 Mitgliedsnummer: 173 Mitglied seit: 03. Jun 2003 |
ich will noch nicht... ... STam P.S.: deine Reime sind aber nicht schlecht und
Das ist XML und so definiert mann einen String der Sonderzeichen enthalten kann. zB: bei Php das '<?' welches ohne die Kapselung innerhalb von <![CDATA[...]]> unweigerlich den XML-Parser abschießt oder das XML-Dokument invalid macht. Die Dateien sind noch reine Muster und dazu da später den Dokumentenaustausch (Repository) zu validieren. Ansonsten hab ich nix gesagt... -------------------- ... to watch out for sefrengo.de
|
||
mvsxyz | Geschrieben am: 17. Jun 2004 - 21:25 | ||
Member Gruppe: Tester Beiträge: 1503 Mitgliedsnummer: 341 Mitglied seit: 16. Oct 2003 |
Okay, ich warte jetzt ganz geduldig auf die nächste Version... -------------------- |
||
Thema wird von 0 Benutzer gelesen (0 Gäste und 0 Anonyme Benutzer)
0 Mitglieder:
7 Antworten seit 07. Mar 2004 - 14:15
Thema abonnieren | Thema versenden | Thema drucken