CMS - Der Dirigent » Entwicklung » DeDi-Entwicklung
Neue Umfrage | neues Thema | Antworten
Seiten: (3) [1] 2 3 ( Zum ersten neuen Beitrag )
Eigenes Plugin, wo finde ich Dokus
« Älteres Thema | Neueres Thema » Thema abonnieren | Thema versenden | Thema drucken
visioncom | Geschrieben am: 25. Feb 2005 - 11:32 |
Member Gruppe: Members Beiträge: 276 Mitgliedsnummer: 686 Mitglied seit: 29. Jul 2004 |
Hallo Zusammen Ich möchte nun entlich ein eigenes Plugin erstellen. Wie gehe ich dabei am besten vor? Habe schon einige Masken generiert die danach im Plugin eingebunden werden sollen! Was für Datenbankeinträge muss ich machen, damit ich im Backend einen eingenen Navigationpunkt erhalte? Was muss ich tun um in diesem Menu verschiedene Unterpunkte zu bekommen?Sind das alles Datenbankeinträge oder reicht es, wenn ich unter backend/plugins/xyz speziele Files erstelle? Bis jetzt habe ich nur eine Datei in meinem pluginorderner. (xyz.dediplug) Diese habe ich von einem anderen Plugin kopiert und angepasst. (So viel ich bis jetzt gelesen habe, kann ich meine Modul auch mit den Berechtigungen aus der Benutzer/Gruppen-Verwaltung ausstatten!?) Gruss Chris |
mvsxyz | Geschrieben am: 25. Feb 2005 - 12:00 |
Member Gruppe: Tester Beiträge: 1503 Mitgliedsnummer: 341 Mitglied seit: 16. Oct 2003 |
Also erstmal musst du dir darüber im Klaren sein, ob dein Plugin in Dedi (Statistik-Plugin) oder quasi "standalone" in einem Frame angezeigt (News-System oder PMA) werden soll. Als nächstes musst du wissen, ob das Plugin Multi-Client-Fähig sein soll. Das Plugin wird also von jedem Projekt als neues Plugin behandelt. Wenn nein, dann würden sich die Daten der einzelnen Projekte überschneiden. Nach diesen beiden Kriterien richtet sich erstmal die Installation des Plugins (meta-Ordner + meta-Dateien). Ich habe es so gemacht, dass ich mir das passende Plugin als Vorlage kopiert habe, die Grundstruktur angepasst und den Rest eingefügt habe. Also ich versuche mich mal mit einer kleinen Anleitung. ALLGEMEINES 1. Neuen Ordner unter backend/plugins anlegen. Der Name des Ordners ist gleichzeitig der Pluginname (im folgenden immer rot markiert und heißt pluginname) und sollte klein und ohne Sonderzeichen geschrieben werden. 2. Kopieren der Dateien aus der Pluginvorlage.tar (backend/tpl) in den neuen Ordner 3. Dateiname von Pluginvorlage.php in pluginname_meta.php 4. In der Datei {pluginname} durch pluginname (den Ordnernamen) ersetzen. 5. Wenn das Plugin im Multi-Client-Modus betrieben wird die Einstellung QUOTE var $multi_client = false; auf true setzen. 6. Die Meta-Dateien im Ordner Meta anpassen. (siehe unten) (7. Es wird im Folgenden von einer Startdatei mit dem Namen index.php ausgegangen) BACKEND-MENÜPUNKT Multi-Client mit Frame in die install_client.meta QUOTE # Menüeintrag ins backendmenü hinzufügen INSERT INTO {table_prefix}backendmenu VALUES ('', 1, {client_id}, 10, 'nav_pluginname', 'plugins/pluginname/index.php?is_frame_plugin=true', 'frame', '$perm->have_perm(\'area_plug_pluginname\')'); Multi-Client ohne Frame in die install_client.meta QUOTE # Menüeintrag ins backendmenü hinzufügen INSERT INTO {table_prefix}backendmenu VALUES ('', 1, {client_id}, 10, 'nav_pluginname', 'main.php?area=plugin&dedi_plugin=pluginname/index.php', 'single', '$perm->have_perm(\'1\', \'plugin\', \'pluginname\')'); Single-Client mit Frame in die install.meta QUOTE # Menüeintrag ins backendmenü hinzufügen INSERT INTO {table_prefix}backendmenu VALUES ('', 1, 0, 10, 'nav_pluginname', 'plugins/pluginname/index.php?is_frame_plugin=true', 'frame', '$perm->have_perm(\'area_plug_pluginname\')'); Single-Client ohne Frame in die install.meta QUOTE # Menüeintrag ins backendmenü hinzufügen INSERT INTO {table_prefix}backendmenu VALUES ('', 1, 0, 10, 'nav_pluginname', 'main.php?area=plugin&dedi_plugin=pluginname/index.php', 'single', '$perm->have_perm(\'1\', \'plugin\', \'pluginname\')'); Sprachstring für alle Varianten in die install.meta QUOTE # Sprachstring für Menüeintrag INSERT INTO {table_prefix}values VALUES ('', 0, 0, 'lang', 'nav_pluginname', '', '', '', 'Angezeigter Name Deines Plugins', 0, NULL, NULL, 'txt', NULL, NULL, 0); Pluginname: sollte immer kleingeschrieben werden und dient als Erkennungsmerkmal für Dedi (wie eine ID) Projekt-ID: entscheidet über Multi- oder Single-Client-Fähigkeit. {client_id} wird beim installieren durch die aktuelle Projekt-ID ersetzt in dem das Plugin installiert wird. Steht dort eine 0 gilt dieser Punkt unabhängig von der aktuellen Projekt-ID (wird immer angezeigt). Menü-Ebene: Mit dieser Zahl bestimmst du wo dein Menüpunkt erscheinen soll. 0 = neuer Menüpkt (wie Redaktion, Design, Administration) 1 = Unterpunkt für Redaktion 2 = Unterpunkt für Design 3 = Unterpunkt für Administration 4 = Unterpunkt für Plugins Sortierung: Je größer die Zahl, umso weiterhinten erscheint dein Eintrag im Untermenü. Zahlen in 10-Schritten hochzählen (10, 20, 30, ...) RECHTE QUOTE (So viel ich bis jetzt gelesen habe, kann ich meine Modul auch mit den Berechtigungen aus der Benutzer/Gruppen-Verwaltung ausstatten!?) Rechte eines Moduls kannst du nicht vorinstallieren. Die Rechte kannst du nur in der Modul-Konfig selber anpassen. Du meinst bestimmt, dass man die Rechte die in einem Plugin verfügbar sind, installiert (vgl. News-System). Das machst du über den folgenden Code in der install.meta: QUOTE # Sprachstring für Menüeintrag INSERT INTO {table_prefix}values VALUES ('', 0, 0, 'lang', 'nav_pluginname', '', '', '', 'Angezeigter Name Deines Plugins', 0, NULL, NULL, 'txt', NULL, NULL, 0); QUOTE #newssystem access recht - Menüpunkt unter Plugins-> dein Plugin wid angezeigt oder ausgeblendet INSERT INTO {table_prefix}values VALUES ('', 0, 0, 'user_perms', '{table_prefix}access', 'area_plug_pluginname', NULL, NULL, 'plug', 125, 'group_area_plug_pluginname', '', 'txt', NULL, NULL, 0); QUOTE #newssystem rechte INSERT INTO {table_prefix}values VALUES ('', 0, 0, 'user_perms', 'area_plug_pluginname', '1', NULL, NULL, '1', 10, 'group_area_plug_pluginname_1', '', 'txt', NULL, NULL, 0); INSERT INTO {table_prefix}values VALUES ('', 0, 0, 'user_perms', 'area_plug_pluginname', '2', NULL, NULL, '2', 20, 'group_area_plug_pluginname_2', '', 'txt', NULL, NULL, 0); INSERT INTO {table_prefix}values VALUES ('', 0, 0, 'user_perms', 'area_plug_pluginname', '3', NULL, NULL, '4', 30, 'group_area_plug_pluginname_3', '', 'txt', NULL, NULL, 0); INSERT INTO {table_prefix}values VALUES ('', 0, 0, 'user_perms', 'area_plug_pluginname', '4', NULL, NULL, '8', 40, 'group_area_plug_pluginname_4', '', 'txt', NULL, NULL, 0); QUOTE # Sprachstring für Rechte (Haupteintrag) INSERT INTO {table_prefix}values VALUES ('', 0, 0, 'lang', 'group_area_plug_pluginname', '', '', '', 'Bereich Plugin / Angezeigter Name Deines Plugins', 0, NULL, NULL, 'txt', NULL, NULL, 0); QUOTE # Sprachstring für Rechte (Untereinträge) INSERT INTO {table_prefix}values VALUES ('', 0, 0, 'lang', 'group_area_plug_pluginname_1', '', '', '', 'Angezeigter Titel des 1. Rechte-Punktes', 0, NULL, NULL, 'txt', NULL, NULL, 0); INSERT INTO {table_prefix}values VALUES ('', 0, 0, 'lang', 'group_area_plug_pluginname_2', '', '', '', 'Angezeigter Titel des 2. Rechte-Punktes', 0, NULL, NULL, 'txt', NULL, NULL, 0); INSERT INTO {table_prefix}values VALUES ('', 0, 0, 'lang', 'group_area_plug_pluginname_3', '', '', '', 'Angezeigter Titel des 3. Rechte-Punktes', 0, NULL, NULL, 'txt', NULL, NULL, 0); INSERT INTO {table_prefix}values VALUES ('', 0, 0, 'lang', 'group_area_plug_pluginname_4', '', '', '', 'Angezeigter Titel des 4. Rechte-Punktes', 0, NULL, NULL, 'txt', NULL, NULL, 0); rot: Pluginname sollte immer kleingeschrieben werden und dient als Erkennungsmerkmal für Dedi (wie eine ID) orange: Zahlen in 10-Schritten hochzählen (10, 20, 30, ...) blau: Zahlen in einer Schritten hochzählen (1, 2, 3, 4, ...) grün: Zahlen immer vordoppeln (1, 2, 4, 8, 16, 32,...) Und im Plugin selber musst du folgendes einbauen um die Rechte abzufragen. Bsp. für das 1. Recht: QUOTE if ($perm->have_perm(1, 'area_plug_pluginname', 0)) { //dein code } Wenn ich jetzt keinen Fehler gemacht habe, dann sollte das so funktionieren. Bearbeitet von mvsxyz am 25. Feb 2005 - 13:00 -------------------- |
visioncom | Geschrieben am: 25. Feb 2005 - 13:05 |
Member Gruppe: Members Beiträge: 276 Mitgliedsnummer: 686 Mitglied seit: 29. Jul 2004 |
@mvsxyz Besten Dank für dein promtes Posting! Ich werde es gleich testen! Danke nochmals! Greetz Chris |
STam | Geschrieben am: 25. Feb 2005 - 13:30 |
freelancer Gruppe: Members Beiträge: 1285 Mitgliedsnummer: 173 Mitglied seit: 03. Jun 2003 |
... nicht das ich mich einmischen will. Ein neues Plugin (Punkte oben 1.-4.) erreicht man auch durch: Administration->Plugins->neues Plugin Fotostory: ... diese Funktion nutzt die von mvsxyz erwähnte 'Pluginvorlage.tar'. Dachte ja nur so am Rande, Gruss, STam EDIT: Bilder .jpg Bearbeitet von STam am 26. Feb 2005 - 09:51 -------------------- ... to watch out for sefrengo.de
|
mvsxyz | Geschrieben am: 25. Feb 2005 - 13:35 |
Member Gruppe: Tester Beiträge: 1503 Mitgliedsnummer: 341 Mitglied seit: 16. Oct 2003 |
Na, wenn das funktioniert, dann ist das doch super. Damit habe ich auch gleich noch etwas dazu gelernt. @stam: Aber Rechte und Backendmenue-Punkt muss ich immer noch per Hand in die Meta-Dateien eintragen? (Ich meine damit nicht das Eingabeformular im BE sondern eine "richtige" Automatik.) Kannst du bei den Bildern beim nächsten Mal vielleicht das schwarz im Bild lassen? Danke. -------------------- |
STam | Geschrieben am: 25. Feb 2005 - 13:41 |
freelancer Gruppe: Members Beiträge: 1285 Mitgliedsnummer: 173 Mitglied seit: 03. Jun 2003 |
@mvsxyz, QUOTE Aber Rechte und Backendmenue-Punkt muss ich immer noch per Hand in die Meta-Dateien eintragen? ... ja leider wurde da die Entwicklung eingestellt es war ja geplant das ganze Menügeführt zu gestalten, allerdings in einem Developer-Plugin(das dann seperat Released hätte_werden_sollen) das DeDi um diese Funktionalität erweitert hätte. QUOTE Kannst du bei den Bildern beim nächsten Mal vielleicht das schwarz im Bild lassen? ... seltsam, die Bilder hab ich in ner VMware gemacht. Hier sehen sie noch gut aus gruss, STam -------------------- ... to watch out for sefrengo.de
|
visioncom | Geschrieben am: 25. Feb 2005 - 13:46 |
Member Gruppe: Members Beiträge: 276 Mitgliedsnummer: 686 Mitglied seit: 29. Jul 2004 |
Habe jetzt alle Daten sauber erstellt. Nun wollte ich das Plugin in den DeDi importieren dabei ergibt es folgenden fehler: QUOTE Warning: is_dir(): Stat failed for /srv/www/htdocs/DeDi/backend/plugins/inserateVerwaltungocs/DeDi/backend/plugins/inserateVerwaltung/srv/www in /srv/www/htdocs/DeDi/backend/inc/class.plugin_meta.php on line 233 ... kann mir bei diesem Fehler jemand sagen, was das soll? thanx chris |
STam | Geschrieben am: 25. Feb 2005 - 13:51 |
freelancer Gruppe: Members Beiträge: 1285 Mitgliedsnummer: 173 Mitglied seit: 03. Jun 2003 |
QUOTE (visioncom @ 25. Feb 2005 - 14:46) class.plugin_meta.php on line 233 ... tsss, das passiert dann wenn man das falsch macht Machs so wie ich das beschrieben hab! Gruss, STam P.S.: und kürze mal deinen Post .... -------------------- ... to watch out for sefrengo.de
|
visioncom | Geschrieben am: 25. Feb 2005 - 13:58 |
Member Gruppe: Members Beiträge: 276 Mitgliedsnummer: 686 Mitglied seit: 29. Jul 2004 |
@STam Eintrag gekürzt Ich habe es jetzt auf deine Weise versucht und folgende Metadaten verwendet: QUOTE # encode '{table_prefix}' with your Settings # Menüeintrag ins backendmenü hinzufügen INSERT INTO {table_prefix}backendmenu VALUES ('', 0, 0, 50, 'nav_inserateVerwaltung', 'plugins/inserateVerwaltung/index.php?is_frame_plugin=true', 'frame', '$perm->have_perm(\'area_plug_inserateVerwaltung\')'); # Sprachstring für Menüeintrag INSERT INTO {table_prefix}values VALUES ('', 0, 0, 'lang', 'nav_inserateVerwaltung', '', '', '', 'Inserateverwaltung', 0, NULL, NULL, 'txt', NULL, NULL, 0); Leider wird kein Neuer Menueintrag eingefügt! Kannst du mir sagen, warum? greetz Chris |
STam | Geschrieben am: 25. Feb 2005 - 14:26 |
freelancer Gruppe: Members Beiträge: 1285 Mitgliedsnummer: 173 Mitglied seit: 03. Jun 2003 |
@visioncom, QUOTE Leider wird kein Neuer Menueintrag eingefügt! Dir fehlt die Rechteverwaltung. CODE INSERT INTO {table_prefix}backendmenu VALUES ('', 0, 0, 50, 'nav_inserateVerwaltung', 'plugins/inserateVerwaltung/index.php?is_frame_plugin=true', 'frame', '$perm->have_perm(\'area_plug_inserateVerwaltung\')'); ... erzeugt einen Eintrag im Backendmenue mit den Rechten 'area_plug_inserateVerwaltung'.QUOTE INSERT INTO {table_prefix}values VALUES ('', 0, 0, 'lang', 'nav_inserateVerwaltung', '', '', '', 'Inserateverwaltung', 0, NULL, NULL, 'txt', NULL, NULL, 0); ... erzeugt den Langstring für Diesen Backendmenue Entrag.Aber wo sind Deine Rechte? Wenn du einen Menuepunkt im Backendmenue mit Rechten schützt, dann musst du auch jemanden diese Rechte geben! Also: QUOTE INSERT INTO {table_prefix}values VALUES ('', 0, 0, 'user_perms', 'dedi_access', 'area_plug_inserateVerwaltung', NULL, NULL, 'plug_inserateVerwaltung,inserateVerwaltung', 10, 'group_area_plug_inserateVerwaltung', '', 'txt', NULL, NULL, 0); ... erzeugt den Rechteeintrag und:QUOTE INSERT INTO {table_prefix}values VALUES ('', 0, 0, 'lang', 'group_area_plug_inserateVerwaltung', '', '', '', '<b>Darf die Inserate Verwaltung benutzen</b>', 0, NULL, NULL, 'txt', NULL, NULL, 0); ... den Langeintrag dafür Gruss, STam P.S.: und die andere Fehlermeldung ist weg? Wäre ja erwähnenswert, aber Bitte gerne geschehen P.S.: im zweifelsfall muss ich dich fragen ob du die aktuelle Version hast? Und dann könnte auch noch ein 'Seite neu Laden' im Browser helfen! Bearbeitet von STam am 25. Feb 2005 - 14:35 -------------------- ... to watch out for sefrengo.de
|
STam | Geschrieben am: 25. Feb 2005 - 14:56 |
freelancer Gruppe: Members Beiträge: 1285 Mitgliedsnummer: 173 Mitglied seit: 03. Jun 2003 |
QUOTE Eigenes Plugin, wo finde ich Dokus Plugin-Entwicklung Plugins -> Frage zum Backend ... Gruss, STam -------------------- ... to watch out for sefrengo.de
|
visioncom | Geschrieben am: 25. Feb 2005 - 15:03 |
Member Gruppe: Members Beiträge: 276 Mitgliedsnummer: 686 Mitglied seit: 29. Jul 2004 |
@ STam Leider funktioniert es immer noch nicht! Habe das Plugin deinstalliert + Datenbankeinträge gelöscht! Nun abe ich das Plugin neu installiert Hier meine install-Meta-Daten: QUOTE #encode '{table_prefix}' with your Settings # encode '{table_prefix}' with your Settings # Menüeintrag ins backendmenü hinzufügen INSERT INTO {table_prefix}backendmenu VALUES ('', 0, 0, 50, 'nav_inserateVerwaltung', 'plugins/inserateVerwaltung/index.php?is_frame_plugin=true', 'frame', '$perm->have_perm(\'area_plug_inserateVerwaltung\')'); # Sprachstring für Menüeintrag INSERT INTO {table_prefix}values VALUES ('', 0, 0, 'lang', 'nav_inserateVerwaltung', '', '', '', 'Inserateverwaltung', 0, NULL, NULL, 'txt', NULL, NULL, 0); # Rechteverwaltung INSERT INTO {table_prefix}values VALUES ('', 0, 0, 'user_perms', '{table_prefix}access', 'area_plug_inserateVerwaltung', NULL, NULL, 'plug_inserateVerwaltung,inserateVerwaltung', 10, 'group_area_plug_inserateVerwaltung', '', 'txt', NULL, NULL, 0); # Langsstring INSERT INTO {table_prefix}values VALUES ('', 0, 0, 'lang', 'group_area_plug_inserateVerwaltung', '', '', '', '<b>Darf die Inserate Verwaltung benutzen</b>', 0, NULL, NULL, 'txt', NULL, NULL, 0); Leider erscheint jedoch der Menupunkt nicht im Backend! (login als "admin") PS: Der Fehler "class.plugin_meta.php on line 233" ist verschwunden! Danke für deine Mühe STAM! gruss Chris |
STam | Geschrieben am: 25. Feb 2005 - 16:12 |
freelancer Gruppe: Members Beiträge: 1285 Mitgliedsnummer: 173 Mitglied seit: 03. Jun 2003 |
...ändere mal: QUOTE INSERT INTO {table_prefix}backendmenu VALUES ('', 1, 0, 50, 'nav_inserateVerwaltung', 'plugins/inserateVerwaltung/index.php?is_frame_plugin=true', 'frame', '$perm->have_perm(\'area_plug_inserateVerwaltung\')'); ... es scheint da noch einen Bug zu geben, allerdings liegt das daran das mit der 'VALUES ('', 0,' vorher das Menue in die oberste Ebene gelegt wird. Dein Menue hatte aber keine Unterebenen, das mag DeDi nicht!Die 'VALUES ('', 1,' stellt dein Menue unter 'Redaktion' ein! Wenn du wissen willst wie man Unterebenen anlegt schau dir das Plugin 'DeDiTodo' an Gruss, STam Bearbeitet von STam am 25. Feb 2005 - 16:23 -------------------- ... to watch out for sefrengo.de
|
STam | Geschrieben am: 25. Feb 2005 - 16:15 |
freelancer Gruppe: Members Beiträge: 1285 Mitgliedsnummer: 173 Mitglied seit: 03. Jun 2003 |
... und bevor du fragst, hier ist eine passende 'uninstall.meta' CODE #encode '{table_prefix}' with your Settings #Menüeintrag löschen DELETE FROM {table_prefix}backendmenu WHERE entry_langstring LIKE 'nav_inserateVerwaltung%'; #Sprachstrings, Values und Pluginrechte löschen DELETE FROM {table_prefix}values WHERE group_name = 'inserateVerwaltung'; DELETE FROM {table_prefix}values WHERE key1 LIKE '%inserateVerwaltung%' OR key2 LIKE '%inserateVerwaltung%'; DELETE FROM {table_prefix}perms WHERE type LIKE '%inserateVerwaltung%' OR id LIKE '%inserateVerwaltung%'; Gruss, STam -------------------- ... to watch out for sefrengo.de
|
visioncom | Geschrieben am: 25. Feb 2005 - 17:25 |
Member Gruppe: Members Beiträge: 276 Mitgliedsnummer: 686 Mitglied seit: 29. Jul 2004 |
@STam Danke! Das habe ich bereits selber hingekriegt. Aber Danke... Nun funktioniert alles so, wie ich mir das vorgestellt habe! .. Danke allen für die rasche Unterstützung .. Gruss, Chris |
Thema wird von 0 Benutzer gelesen (0 Gäste und 0 Anonyme Benutzer)
0 Mitglieder:
35 Antworten seit 25. Feb 2005 - 11:32
Thema abonnieren | Thema versenden | Thema drucken