Druckbare Version des Themas
Hier klicken um das Thema im Original Format zu betrachten. |
CMS - Der Dirigent > DeDi-Entwicklung > Eigenes Plugin |
Geschrieben von: visioncom am 25. Feb 2005 - 11:32 |
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 |
Geschrieben von: mvsxyz am 25. Feb 2005 - 12:00 |
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. |
Geschrieben von: visioncom am 25. Feb 2005 - 13:05 |
@mvsxyz Besten Dank für dein promtes Posting! Ich werde es gleich testen! Danke nochmals! Greetz Chris |
Geschrieben von: STam am 25. Feb 2005 - 13:30 |
... 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 |
Geschrieben von: mvsxyz am 25. Feb 2005 - 13:35 |
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. |
Geschrieben von: STam am 25. Feb 2005 - 13:41 |
@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 |
Geschrieben von: visioncom am 25. Feb 2005 - 13:46 |
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 |
Geschrieben von: STam am 25. Feb 2005 - 13:51 |
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 .... |
Geschrieben von: visioncom am 25. Feb 2005 - 13:58 |
@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 |
Geschrieben von: STam am 25. Feb 2005 - 14:26 |
@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! |
Geschrieben von: STam am 25. Feb 2005 - 14:56 |
QUOTE Eigenes Plugin, wo finde ich Dokus http://forum.der-dirigent.de/index.php?act=ST&f=5&t=1709 http://forum.der-dirigent.de/index.php?act=ST&f=5&t=826 ... Gruss, STam |
Geschrieben von: visioncom am 25. Feb 2005 - 15:03 |
@ 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 |
Geschrieben von: STam am 25. Feb 2005 - 16:12 |
...ä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 |
Geschrieben von: STam am 25. Feb 2005 - 16:15 |
... 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 |
Geschrieben von: visioncom am 25. Feb 2005 - 17:25 |
@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 |
Geschrieben von: visioncom am 28. Feb 2005 - 09:57 |
Hallo Zusammen Ich habe mich am Weekend weiter mit dem Plugin beschäftigt. Nun habe ich aber ein Problem! Bei meinem Plugin habe ich mich für eine Ohne_Frame-Variante entschieden. Nun muss ich aber irgendwie an die User-ID (uid) herankommen. Ich habe das nötige Array auch in dem Entwicklungsmodul endeckt. Aber irgendwie komme ich nich an dieses Array ran. Wahrscheindlich weil dieses nur für den Modulbereich zurverfügung steht. Kann mir jemand sachen wie ich an die Userdaten herankomme? Greetz Chris |
Geschrieben von: mvsxyz am 28. Feb 2005 - 11:13 |
Die User-ID des eingeloggten Benutzer bekommst du über $auth->auth['uid']. Schau dir mal das Modul "Entwicklervariablen" an. Da wird alles an Daten aufgelistet, was du gebrauchen kannst. |
Geschrieben von: visioncom am 01. Mar 2005 - 09:14 |
aha! (Wollte immer über $auth['uid'] zugreifen.) So klappt es! @mvsxyz Danke greetz Chris |
Geschrieben von: HardCastle am 02. Mar 2005 - 12:19 |
Hi folks, brauche auch etwas hilfe beim einbinden eines plugin in dedi. Habe versucht mysqldumper nach eurer anleitung als plugin einzubinden. Klappt auch alles einigermaßen bis auf die tatsache, dass beim aufruf aus dem dedi menü mysqldumper das ganze browserfenster benutzt, also das dedi menü verschwindet. Habe mysqldumper versucht als frameversion einzubinden. Was mache ich falsch? Gruß hardcastle |
Geschrieben von: visioncom am 02. Mar 2005 - 13:59 |
@HardCastle Was machst du den für DB-Einträge bei der Installation? |
Geschrieben von: Eppi am 02. Mar 2005 - 17:53 |
@hardcastle: schau dir mal den html-quellcode des mysqldumper an. hier findest du sicherlich ein js, welches überprüft ob es das oberste enster ist und wenn nicht sich auf die volle größe ausweitet. gruß, paul |
Geschrieben von: HardCastle am 02. Mar 2005 - 18:13 |
@visioncom: db-einträge sind bei dem tool nicht notwendig. @eppi: bin gerad noch auf arbeit, versuche es aber heute abend mal mit deinem tip. Gruß hardcastle |
Geschrieben von: HardCastle am 03. Mar 2005 - 12:56 |
@eppi: hat geklappt mit deinem tip. Aber nun zwei andere probleme: 1. Wie erreiche ich, dass das plugin nicht über die adresszeile erreichbar ist, sondern nur über einen ordentlichen login bei dedi (so wie beim phpmyadmin-plugin). 2. Wie automatisiere ich die installation des plugin über hochladen bzw. installation aus verzeichnis. Händisch klappt eigentlich schon alles (über neues plugin, dateien per ftp in das verzeichnis und dann importieren), mag ich aber niemandem zumuten. Wie werden name, version, beschreibung u. a. bei einer automatischen installation eingetragen? Gruß Hardcastle |
Geschrieben von: Eppi am 03. Mar 2005 - 13:35 |
das hat stam doch eigentlich sehr gut erklärt, sogar mit screenshots gruß, paul |
Geschrieben von: HardCastle am 07. Mar 2005 - 13:15 |
Oooch menne, sobald ich CODE if ($perm->have_perm(1, 'area_plug_MySQLDumper', 0)) { setze, bekomme ich nichts mehr angezeigt.//dein code } Meine install.php: CODE #encode '{table_prefix}' with your Settings # Menüeintrag ins backendmenü hinzufügen INSERT INTO {table_prefix}backendmenu VALUES ('', 4, 0, 30, 'nav_MySQLDumper', 'plugins/MySQLDumper/index.php?is_frame_plugin=true', 'frame', '$perm->have_perm(\'area_plug_MySQLDumper\')'); # Sprachstring für Menüeintrag INSERT INTO {table_prefix}values VALUES ('', 0, 0, 'lang', 'nav_MySQLDumper', '', '', '', 'MySQLDumper', 0, NULL, NULL, 'txt', NULL, NULL, 0); # 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_MySQLDumper', NULL, NULL, 'plug', 125, 'group_area_plug_MySQLDumper', '', 'txt', NULL, NULL, 0); # Sprachstring für Rechte (Haupteintrag) INSERT INTO {table_prefix}values VALUES ('', 0, 0, 'lang', 'group_area_plug_MySQLDumper', '', '', '', 'Bereich Plugin / MySQLDumper', 0, NULL, NULL, 'txt', NULL, NULL, 0); Wie bekomme ich das mit dem access-recht für das plugin hin? Gruß hardcastle |
Geschrieben von: Eppi am 07. Mar 2005 - 13:30 |
das erste recht brauchst du garnicht abfragen, da du dies ja garnicht definiert hast. du hast die abfrage für das accessrecht eigentlich schon eingebaut und zwar über die datenbanktabelle dedi_backendmenu. hier steht $perm->have_perm('area_plug_MySQLDumper') und heißt das das recht auch abgefragt wird. hast du jetzt nach dem installieren einen neuen beitrag bei der rechtevergabe für die gruppe? gruß, paul |
Geschrieben von: STam am 07. Mar 2005 - 22:40 |
... soll heissen QUOTE if ($perm->have_perm(1, 'area_plug_MySQLDumper', 0)) { fragt etwas ab was es nicht gibt!//dein code } Definition von have_perm aus der 'class.user_perms.php': CODE function have_perm($perm_or_area, $type='dedi_access', $id = '0', $parent_id = 0) {} Als Beispiel: CODE $perm->have_perm('area_plug_MySQLDumper', 'dedi_access', '1', 0) würde funktionieren, also auf das erste Recht testen. Allerdings nur wenn du auch ein Recht gespeichert hast: QUOTE #recht INSERT INTO {table_prefix}values VALUES ('', 0, 0, 'user_perms', 'area_plug_MySQLDumper', '1', NULL, NULL, '1', 10, 'group_area_plug_MySQLDumper_1', '', 'txt', NULL, NULL, 0); #lang INSERT INTO {table_prefix}values VALUES ('', 0, 0, 'lang', 'group_area_plug_MySQLDumper_1', '', '', '', ' darf MySQLDumper nutzen, 0, NULL, NULL, 'txt', NULL, NULL, 0); Gruss, STam |
Geschrieben von: Eppi am 07. Mar 2005 - 22:43 |
und $perm->have_perm('area_plug_MySQLDumper') = $perm->have_perm('area_plug_MySQLDumper', 'dedi_access', '0', 0) gruß, paul |
Geschrieben von: HardCastle am 10. Mar 2005 - 13:03 |
So, nun wieder mal eine wasserstandsmeldung. @stam: Hab es erst einmal nach deiner anleitung versucht. Neben dem access-recht noch ein weiteres eingefügt und das recht in der index.php abgefragt. Aber auch hier: jedesmal, wenn ich die abfrage eingeschaltet habe verschwindet mein mysqldumper unter dedi. (arbeite unter dedi-admin auf einem lokalen windows-system apache1. .. /php4. .. /mysql4. .. ) @eppi: Hab es dann nach deiner anleitung probiert, gleiches ergebnis @beide: rechte werden unter admin/gruppen korrekt eingetragen. Irgendwie ein denkfehler? Aber wo? Wie kann ich den direktzugriff über die adresszeile verhindern? Beim phpmyadmin-plugin klappt das doch auch? Hilfesuchend hardcastle |
Geschrieben von: HardCastle am 10. Mar 2005 - 13:13 |
Mir ist da noch was aufgefallen: beim vergleich mit dem phpmyadmin-plugin habe ich festgestellt, dass in der dedi-tabelle dedi_perm ein eintrag da ist, den ich nicht nachvollziehen kann: 152 3 1 dedi_access area_phpmyadmin -1 In der install.meta vom phphmyadmin steht er nicht drin. Wie kommt er dahin und was für eine funktion hat er? hardcastle |
Geschrieben von: HardCastle am 11. Mar 2005 - 16:26 |
So weiter mit dem selbstgespräch! Habe das url-zugriffsproblem gelöst, dank dem tipp von eppi aus dem forum-thema http://forum.der-dirigent.de/index.php?act=ST&f=5&t=4199: CODE include("../../inc/inc.init_external.php"); eingefügt. Rechtesystem klappt auch.Bleiben zwei probleme, um plugin zu veröffentlichen: 1. automatisierte installation (wie bei anderen plugins) klappt nicht. Hab das ganze mit einer MySQLDumper.dediplug versehen CODE <?xml version='1.0' encoding='ISO-8859-1'?> und in ein tar-archiv gepackt.<dediplug version='0.3' date='1110480471'> <name>MySQLDumper</name> <cat>Tools</cat> <version>0.1 dev</version> <author>Burkhard Senst - MySQLDumper von Daniel Schlichtholz & Steffen Kamper</author> <created>1110480443</created> <lastmodified>1110480468</lastmodified> <deletable>1</deletable> <description>Entwicklerversion - NICHT FÜR PRODUKTIVUMGEBUNGEN!</description> <config></config> <repository_id></repository_id> <root_name>MySQLDumper</root_name> <index_file>index.php</index_file> </dediplug> Wenn ich das tar-archiv unter "Administration/Plugins/Plugin importieren" hochladen will, bekomme ich die Fehler meldung: QUOTE Es wurde keine Datei zum hochladen angegeben Es ist dabei egal, ob ich MySQLDumper.tar oder MySQLDumper.dediplugin als dateinamen verwende.Auch bei der anderen variante über erst entpacken, dann hochladen, neues plugin und verzeichnis importieren bekomme ich eine fehlermeldung: QUOTE Parameter ist fehlerhaft. Funktion wird nicht ausgeführt! Wer kann mir da weiterhelfen, wem kann ich das ganze mal zuschicken? 2. Schutz vor auslesen der mysqldumper-konfigurationsdatei MySQLDumper legt bei der installation eine konfigurationsdatei für sein cronjob-script an. Wer MySQLDumper kennt, kann sich leicht über den dateinamen zugriff auf die datei über die adressleiste verschaffen. Da liegen die db-zugriffsparameter, die geschützt werden sollten. Meine idee: kann man mittels php eine rein zufälligen dateinamen erzeugen oder reicht es vielleicht schon aus die datei mit der endung .php zu versehen, damit sie unsichtbar wird? Wünsche allen ein schönes Wochenende, fahre morgen füe eine woche in den urlaub an die nordsee, bin also nicht erreichbar. Wäre schön, wenn sich bis heute abend noch jemand meldet. Gruß hardcastle |
Geschrieben von: schwaiger am 11. Mar 2005 - 22:25 |
hallo hardcastle, hatte dir gestern abend doch noch alle meine daten geschickt (incl meinem plug...)... sorry wenn dus nicht erhalten hasst dass mit dem plug erzeugen ist recht einfach .... wenn es beidir im backend läuft einfach auf dass disketten simbol klicken und dedi erzeugt dir automatisch ne plug datei... mail mir doch einfach wenn du noch hilfe brauchst... lg flo |
Geschrieben von: roberto am 11. Mar 2005 - 22:36 |
QUOTE (HardCastle @ 11. Mar 2005 - 16:26) oder reicht es vielleicht schon aus die datei mit der endung .php zu versehen, damit sie unsichtbar wird? Das sollte eigentlich reichen, weil Dateien mit der Endung ausgeführt werden, statt sie an den Browser zu senden. Vorausgesetzt, der Server hat PHP und ist auch so konfiguriert - versteht sich. Jeder weiß ja auch, wo die config.php von DeDi liegt ... Gehst Du baden an die Nordsee? Harter Kerl ... Heißt ja auch so |
Geschrieben von: HardCastle am 12. Mar 2005 - 03:36 |
so nu ab in urlaub! Probleme behoben und (fast) alle features funktionieren. Hab schwaiger meinen arbeitsstand geschickt, er kann ja nach testung entscheiden, ob er es hier veröffentlicht. Ist aber bis auf weiteres ENTWICKLERVERSION. Vor weiterer intensiver prüfung nicht in produktivumgebungen benutzen. gruß hardcastle |
Geschrieben von: fx4u am 30. Mar 2006 - 13:09 |
Ein RIESEN-Dankeschoen an mvsxyz und STam Ich habe soeben mein erstes Plugin erstellt!!! Dank der hervorragenden Beschreibung von den beiden ist es sogar mir moeglich gewesen, eine eigene kleine Anwendung in DeDi einzubauen. Die Betonung liegt dabei auf "klein" Ich mag DeDi!!! |
Geschrieben von: fx4u am 07. Jul 2006 - 10:53 |
edit |