Druckbare Version des Themas
Hier klicken um das Thema im Original Format zu betrachten.
CMS - Der Dirigent > DeDi-Entwicklung > Plugin Entwicklung > Frage zum Backend
Geschrieben von: bratzi am 06. Oct 2003 - 13:21
Hallo,

ich versuche mich gerade einen (vorhandenen) Veranstaltungakalender als Plugin umzuschreiben. Die Ausgabe über ein entsprechendes Modul habe ich schon soweit hinbekommen ;-) (stolzbinwieoscar).

Die gesamten Skripts liegen im Verzeichnis backend/plugis/calendar.

Der Kalender hat eine Adminseite die ich nun gerne ins Backend bringen möchte. Habe mal anhand des Newsletter-Plugins versucht die Tabelleneinträge nachzuvollziehen > ... booooo eh ;-).

Kann mir vieleicht jemdand verständlich erklären welche Tabelleneinträge nötig sind und welchen Sinn die haben? Ich möchte eingentlich nur die Seite backend/plugis/calendar/admin/calendar.admin.php ind den Backend-Frame laden. Userrechte usw können gerne später kommen ;-))

Danke ... auch wenn die Beta zur Zeit viel Strass macht ;-)

P.S. Wenn ich den Kalender fertig habe dann stell ich Ihn hier gerne zur Verfügung! Ist keine Eigenentwicklung.

Geschrieben von: Philipp am 06. Oct 2003 - 22:32
Hallo!

ok, ich versuche mal alles notwendige zusammen zu bekommen tongue.gif

1. Du musst zuerst dem Adminscript des Kalenders mit einem Link im Backend versehen. Hierzu kannst Du entweder einen komplett neuen Menüpunkt in der obersten Ebene schaffen, oder einfach nur den Link in eine der bereits bestehenden Kategorien (Design, Administration usw.) packen. Die Kategorie sollte für den benutzer dann sichbar werden, wenn er die entsprechenden Rechte hat den neuen, oder einen bereits existierenden Unterpunkt in dieser Kategorie zu wählen. Dazu später mehr...

1.1 Wenn Du einen neuen Menüpunkt hinzufügen willst - nennen wir ihn meinetwegen PlugIns - suchst Du Dir in der Tabelle dedi_beckendmenu die Zeile mit dem kleinsten Wert in der Spalte "idbackendmenu", die in der Spalte "entry_langstring" den Wert empty_dummy enthält. Das sollte ohne installierte PlugIns die idbackendmenu 5 sein.
Diese bearbeitest Du wie folgt:

1.1.1 sortindex auf die gewünschte Position stellen, also 50 um den Punkt ganz rechts anzuzeigen.
1.1.2 langstring eingeben. hier am besten nav_5_0, wenn 5 deine idbackendmenu, ansonsten entsprechend.

1.2 Wenn Du den neuen Menüpunkt einen bereits existierenden Punkt unterordnen willst kannst Du die vorherigen Arbeitschritte überspringen.
Du musst nun den Link erstellen, der das Script als solches aufruft. Dazu erstellst Du in der Tabelle dedi_beckendmenu eine neue Zeile mit folgendem Inhalt.

1.2.1 idbackendmenu --> kannst du wenn Du mit phpMyAdmin arbeitest freilassen, da dieser Wert durch autoincrement automatisch gesetzt wird. Ansonsten einfach den Wert um eins grösser setzen, als den höchsten dieser Spalte.
1.2.2 parent --> gibt den darüberliegenden Strukturpunkt an und wäre im oben beschriebenen Beispiel 5 (nav_5_0), ansonsten einfach schauen, in welchem Menü der Punkt gezeigt werden soll und entsprechend setzen (zb. 3 für "Einstellungen", weil nav_3_0 )
1.2.3 idclient -> Wert ist immer 0, weil 0 sozusagen die client_id des Backends ist (??)
1.2.4 sortindex --> bestimmt die Reihenfolge der Anzeige bei mehreren Menüpunkten, also bei einem neu angelegten Obermenü am besten 10, ansonsten schauen, wo der Punkt erscheinen soll und einen entsprechenden Wert wählen.
1.2.5 entry_langstring --> Hier wird ein Kürzel festgelegt, dem später der Name des Menüpunktes zugeordnet wird. Um im System von DeDi zu bleiben am besten "nav_NummerdesObermenüs_SounsovielterUnterpunkt" eingeben, also im Falle eines neu erstellten Obermenüs nav_5_1.
1.2.6 entry_url --> URL zu der aufzurufenden Seite in der Form main.php?area=plugin&dedi_plugin=verzeichnis_ab_plugins/script.php, wäre in Deinen speziellen Fall main.php?area=plugin&dedi_plugin=calender/dateiname.php
1.2.7 url_target --> hier bin ich mir nicht ganz sicher. Ich glaube wenn es sich bei der aufgerufenen Seite um ein Frameset handelt gehört hier der Wert "frame" rein, ansonsten "single". Wird in Deinem Fall wohl "single" sein.
1.2.8 entry_validate --> hier werden die benötigten Rechte festgelegt, um den Punkt auswählen zu können. Für den Fall, das die nur ein Admin können soll einfach "$perm->is_admin()" einfügen. Wenn Du die Rechte auch einzelnen Gruppen zuordnen können willst, musst Du hier eine neuen Rechtenamen angeben (zb. "$perm->have_perm(bratzi_kalender)") diese Rechte musst du später dann noch definieren und dann kannst Du sie in den Gruppen freischalten...später mehr dazu

So, jetzt folgt ein schneller Wechsel in die Tabelle dedi_values....

Dort musst du zuerst einmal die Namen, die im Menü angezeigt werden sollen definieren. Um das ganze ein wenig abzukürzen hier das fertige INSERT

QUOTE
INSERT INTO `dedi_values` VALUES ('', 0, 0, 'lang', 'nav_5_0', '', '', '', 'PlugIns', 0, NULL, NULL, 'txt', NULL, NULL, 0);


Hier musst Du die Roten Werte entsprechend anpassen. Dies Wäre der Insert für den Menüpunkt in der ersten Ebene. Der für den darunterliegenden sähe netsprechend so aus

QUOTE
INSERT INTO `dedi_values` VALUES ('', 0, 0, 'lang', 'nav_5_1', '', '', '', 'Kalender', 0, NULL, NULL, 'txt', NULL, NULL, 0);


Wenn Du keine neues zu bestimmendes Recht geschaffen hast wars das im Prinzip schon, wenn Du die Anzeige des Menüpunktes an ein den Gruppen zuzuordnendes Recht gekoppelt hast, Dir also im oben stehenden Punkt 1.2.8 einen neuen Rechtenamen ausgedacht hast, musst Du auch diesen noch definieren.

Dazu benötigst Du folgende Inserts:

QUOTE
INSERT INTO `dedi_values` VALUES ('', 0, 0, 'user_perms', 'dedi_access', 'area_plug_pluginname', '', '', 'group_area_plug_pluginname', 0, NULL, NULL, 'txt', NULL, NULL, 0);


Hier wird der Name den Du dem neu definierten Recht gegeben hast festgelegt und der dazugehörige Langstring, der im nächsten Insert festgelegt wird.

QUOTE
INSERT INTO `dedi_values` VALUES ('', 0, 0, 'lang', 'group_area_plug_pluginname', '', '', '', 'Dein Text bei der Zuweisung der Gruppenrechte', 0, NULL, NULL, 'txt', NULL, NULL, 0);


Hier wird also dem Recht nur eine Name gegeben, so dass Du später bei der Zuweisung der Gruppenrechte sehen auswählen kannst.

Jetzt sollte eigentlich alles funktionieren biggrin.gif
Hoffe ich habe das alles einigermaßen brauchbar erklären können - wenn nicht bitte korrigieren - und habe nichts wesentliches vergessen...

Viel Spaß damit

Philipp

Geschrieben von: kfo am 07. Oct 2003 - 00:09
lecker - vielen dank für die tipps! smile.gif

kann den thread mal jemand pinnen?

mfg
k.

Geschrieben von: STam am 07. Oct 2003 - 01:02
Hi,

super Tut smile.gif

zu:QUOTE
1.1 Wenn Du einen neuen Menüpunkt hinzufügen willst - nennen wir ihn meinetwegen PlugIns - suchst Du Dir in der Tabelle dedi_beckendmenu die Zeile mit dem kleinsten Wert in der Spalte "idbackendmenu", die in der Spalte "entry_langstring" den Wert empty_dummy enthält

... glaube ich das die 'empty_dummy' von den Cores mit absicht Reserviert wurden (für eigene Projekte) und also nicht benutzt werden sollten!

zu:QUOTE
1.1.1 sortindex auf die gewünschte Position stellen, also 50 um den Punkt ganz rechts anzuzeigen.

... und Punkt 1.2.4 - der sortindex gilt nur in der entsprechenden Menüebene.

zu:QUOTE
1.2.3 idclient -> Wert ist immer 0, weil 0 sozusagen die client_id des Backends ist (??)

... ist zu sagen das das die Einstellung ist für welche Clients das Menü gilt. Man kann also für verschiedene Clients verschiedene Menüs stricken und auch so en Modul nur in einem Client zur verfügung stellen!

  • 0 = alle Clients
  • x = nur dieser Client

... wobei man, wenn man das Menü für verschiedene Clients konfigurieren will natürlich auch für jeden Client eine neue Zeile (Eintrag) braucht.

Und noch was zu den DeDi-Values

Ich schreib das mal der einfacheren Übersicht halber untereinander wink.gif

INSERT INTO -> Der Mysql Insert-Befehle
`dedi_values` -> in welche Tabelle
VALUES ( -> was wohin...
'', -> AutoId
0, -> für welchen Client gilt diese Definition (so)
0, -> für welche Sprache gilt diese Definition
'perms_backend_general', -> Gruppenname der Definition, hier 'Allgemeine Einstellungen'
'dein_rechte_name', -> der Name des Wertes also eine Variablenbezeichnung, hier sollte man eindeutige Bezeichnungen nach Php setzen
'', -> weitere Wertzuweisungen, aus dem ein Array gebildet wird
'', -> weitere Wertzuweisungen
'', -> weitere Wertzuweisungen
'lang_perm_dein_rechte_name', -> der eigentliche Wert
0, -> ein Sortindex der für die Reihenfolge der Values gilt, zB: im Backend unter Einstellungen
NULL, -> hier der Lang Value für die Übersetzung des Values im Backend unter Einstellungen
NULL, -> hier der Lang Value für die Übersetzung des Gruppennamens im Backend unter Einstellungen
'txt', -> die Angabe über den Typ des Eingabefeldes/Wertes im Backend unter Einstellungen
NULL, -> k/a
NULL, ->k/a
0 -> der mit wichtigste Wert, bestimmt ob dieses Value im Backend unzter Einstellungen sichtbar ist
);


So und nun noch die freudige Mitteilung das die Beta das wohl alles per Klick & Run abfrühstückt rolleyes.gif

Gruss, STam

Geschrieben von: bjoern am 07. Oct 2003 - 06:20
so, gepinnt smile.gif

Das mit den empty_dummy Einträgen ist sehr wichtig und hat folgende Bewandnis:

Das Menü ist nach dem "parent"- Prinzip aufgebaut, was so viel heißt, dass jeder Menüpunkt seinen Vorgänger eine Ebene höher kennt. Also der Punkt Module weiß, dass er zu Layout gehört. Dies geschieht über eine Nummer. Jeder Menüeintrag hat seine, eigene, eindeutige Nummer.

Jetzt kommt der Knackpunkt:
Jeder neu eingefügte Menüpunkt kriegt eine neue Nummer per autoincrement von der Datenbank zugewiesen (was soviel bedeutet wie: Es wird auf die höchst verfügbare Nummer in der Datenbank immer eins hinaufaddiert). Dadurch, dass das ein automatischer Prozess ist, kann die Nummer nicht vorrausgesagt werden.

Wenn wir uns jetzt wieder ins Gedächtnis rufen, dass ein Untermenü immer die Nummer des Hauptmenüs wissen muß, haben wir ein Problem. Den dadurch, dass die Nummern automatisch vergeben werden, kann nicht sicher gesagt werden, wer den nur Vorgänger von wem ist (wer für sich selber entwickelt wird da noch keine Probleme bekommen, aber sobald mehrere DEDI- Installationen ins Spiel kommen, knallt es).

Deshalb gibt es die empty_dummys oder anders ausgedrückt die idbackensmenu 1-19. Diese haben feste Zahlen und stellen grundsätzlich immer die Menüebene 0 (Hauptmenü) dar. Zur Zeit (für die Beta) gibt es da folgende feste, sich nicht mehr änderne Einträge:

id | bereich
-------------
01 Redaktion
02 Layout
03 Administration
04 Plugins

Die Nummern 5- 17 sind noch nicht vergeben, allerdings reserviert, benutzt diese bitte nicht. Wir werden die Nummern zuteilen, wenn es neue Hauptpunkte gibt, die nach unserer Auffassung einen eigenen Hauptpunkt verdienen, bzw. wo es sinn macht (z.B. Shop, Dokumentenmanagment, CRM,....).

Die Nummern 18 und 19 sind zur freien Verfügung für eigene Anpassungen. Entwickelt ihr nur für euch, nehmt diese Nummern. Dann seit ihr auch auf der sicheren Seite, wenn ihr neue, offizielle Plugins einbindet.

Geschrieben von: bratzi am 09. Oct 2003 - 21:26
An alle erstmal herzlichst DANKE! Das ist ja ne antwort so umfangreich wie in den ersten DeDi Tagen ;-). Habs leider heute erst geschafft mit dem Kalender weiter zu machen (muss für eppi schreiben ;-)). Ich werde das mal probieren (hoffe ich hab alles verstanden), wollte mich nur kurz darauf melden ;-)

Geschrieben von: STam am 09. Oct 2003 - 23:06
Hi,

hier noch ein kleiner zusatz:

Wenn du Rechte für ein Plugin vergibst dann solltest du die Gruppe 'perms_backend_plugin' nutzen.
Dann werden diese 'Plugin-Rechte' auch auf der Seite für Plugin-Rechte angezeigt biggrin.gif

Gruss, STam

Geschrieben von: st-cb am 21. Oct 2003 - 10:50
@ bratzi

bist du mit deinem Veranstaltungakalender schon weiter gekommen?

Geschrieben von: Philipp am 21. Oct 2003 - 21:58
QUOTE
Wenn du Rechte für ein Plugin vergibst dann solltest du die Gruppe 'perms_backend_plugin' nutzen.
Dann werden diese 'Plugin-Rechte' auch auf der Seite für Plugin-Rechte angezeigt


Das es diese Seite für Plugin Rechte gibt hab ich gestern auch festgestellt... unsure.gif
Habe es zuerst auch damit versucht und mich stundenlang gewundert, warum ich die Rechte nirgends vergeben kann...
Naja, wer lesen kann ist klar im Vorteil... tongue.gif

Geschrieben von: mvsxyz am 17. Jan 2004 - 16:10
Was für ein Zufall, ich arbeite auch an einem Event-Kalender. biggrin.gif

Meine install.sql sieht so aus:

mehr CODE
#Tabellen dedi_calender, dedi_calender_org erzeugen
CREATE TABLE dedi_calender (
 idevent int(6) NOT NULL auto_increment,
 idclient int(6) NOT NULL default '0',
 deactivated int(1) NOT NULL default '0',
 date int(10) NOT NULL default '0',
 duration int(3) NOT NULL default '0',
 time int(1) NOT NULL default '0',
 description text,
 organizer int(6) NOT NULL default '',
 PRIMARY KEY  (idevent),
 UNIQUE KEY id (idevent),
 KEY idclient (idclient)
) TYPE=MyISAM;

CREATE TABLE dedi_calender_org (
 idorganizer int(6) NOT NULL auto_increment,
 idclient int(6) NOT NULL default '0',
 deactivated int(1) NOT NULL default '0',
 name varchar(255) default NULL,
 street varchar(255) default NULL,
 zip int(5) NOT NULL default '0',
 city varchar(255) default NULL,
 email varchar(255) default NULL,
 internet varchar(255) default NULL,
 special text,
 PRIMARY KEY  (idorganizer)
) TYPE=MyISAM;

# Menüeinträge ins backendmenü hinzufügen
# rootnode id 6 in dedi_backendmenu is reserved for
DELETE FROM dedi_backendmenu WHERE idbackendmenu=18;
INSERT INTO dedi_backendmenu VALUES ('18', 0, 0, 180, 'nav_calender', 'root', 'single', '$perm->have_perm(\'1\', \'area_plugin\')');
INSERT INTO dedi_backendmenu VALUES ('', 18, 0, 10, 'nav_calender_main', 'main.php?area=plugin&dedi_plugin=calender/main.php', 'single', '$perm->have_perm(\'1\', \'plugin\', \'calender\')');
INSERT INTO dedi_backendmenu VALUES ('', 18, 0, 20, 'nav_calender_org', 'main.php?area=plugin&dedi_plugin=calender/main_org.php', 'single', '$perm->have_perm(\'2\', \'plugin\', \'calender\')');

# Pluginrecht definieren key1 = Pluginname, value = Name für Sprachstring
INSERT INTO dedi_values VALUES ('', 0, 0, 'perms_backend_plugin', 'calender', '', '', '', 'calender', '', NULL, NULL, 'txt', NULL, NULL, 0);
INSERT INTO dedi_values VALUES ('', 0, 0, 'lang', 'plugin', 'calender', '0', '', 'Event-Kalender', 0, NULL, NULL, 'txt', NULL, NULL, 0);
INSERT INTO dedi_values VALUES ('', 0, 0, 'lang', 'plugin', 'calender', '1', '', 'Kalender', 0, NULL, NULL, 'txt', NULL, NULL, 0);
INSERT INTO dedi_values VALUES ('', 0, 0, 'lang', 'plugin', 'calender', '2', '', 'Veranstalter', 0, NULL, NULL, 'txt', NULL, NULL, 0);

# Sprachstrings für Navigation
INSERT INTO dedi_values VALUES ('', 0, 0, 'lang', 'nav_calender', '', '', '', 'Event-Kalender', 0, NULL, NULL, 'txt', NULL, NULL, 0);
INSERT INTO dedi_values VALUES ('', 0, 0, 'lang', 'nav_calender_main', '', '', '', 'Kalender', 0, NULL, NULL, 'txt', NULL, NULL, 0);
INSERT INTO dedi_values VALUES ('', 0, 0, 'lang', 'nav_calender_org', '', '', '', 'Veranstalter', 0, NULL, NULL, 'txt', NULL, NULL, 0);


So weit so gut. Das ganze wird auch als neuer Menü-Punkt angezeigt, wenn ich jedoch auf meine Tabelle zugreifen will bekomme ich nur MySQL-Fehlermeldungen.
Hab mal testweise $dedi_db mit

mehr CODE
foreach($dedi_db as $key => $wert) {
 echo $key." => ".$wert."<br>";
}

ausgegeben und ich musste sehen, dass meine neue Tabelle gar nicht angezeigt wird und ich somit auch nicht mit

mehr CODE
$sql = "SELECT * FROM ".$dedi_db['calender']." WHERE idclient='$client' ORDER BY date DESC";
$db->query($sql);

auf meine Tabelle zugreifen. Was mache ich falsch? blink.gif
Ich bin in Sachen MySQL absoluter Newbie und habe noch nie per PHP etwas für/mit einer MySQL-DB programmiert. rolleyes.gif

Geschrieben von: hk-cons am 17. Jan 2004 - 16:36
Es gibt ne Datei, in der stehen alle DeDi-Tabellen drin ... backend/inc/config.php

Geschrieben von: Eppi am 18. Jan 2004 - 18:56
trag aber die tabelle am besten nicht dort ein, sondern schreib den ganzen namen in deinen sql-befehl.

Geschrieben von: mvsxyz am 18. Jan 2004 - 19:41
Wo finde ich den?/Wie mach ich das?
So hats ja schließlcih auch funktioniert... smile.gif

Geschrieben von: Eppi am 18. Jan 2004 - 19:44
wo findest du wen? schreib doch erstmal einfach "hallo" in die datei. eine php-datei kann doch auch aus normalem html bestehen.

Geschrieben von: mvsxyz am 18. Jan 2004 - 20:42
Jetzt ist die Verwirrung komplett. blink.gif Also nochmal ganz von vorne:
hkcons hat mir geraten meine neuangelegten Tabellen unter backend/inc/config.php zu registrieren, damit ich sie z.B. über $dedi_db['calender'] auslesen kann. Das funktioniert auch ganz wunderbar. Ich kann neue Termine anlegen, löschen, usw.
Nun hast du aber gesagt ich solle die Tabellen am besten nicht dort eintragen, sondern einen ganzen Namen in meinen SQL-Befehl eintragen.

Nun meine Frage: Was meinst du mit Namen in meinen SQL-Befehl eintragen? Welchen Namen in welchen SQL-Befehl? rolleyes.gif

Das letzte ist mir schon klar. In meiner Plugin-Datei (main.php) steht ja auch PHP- mit HTML-Code gemischt drin. biggrin.gif

Geschrieben von: Eppi am 18. Jan 2004 - 21:30
nicht QUOTE
$sql = "SELECT * FROM ".$dedi_db['calender']." WHERE idclient='$client' ORDER BY date DESC";
sondern QUOTE
$sql = "SELECT * FROM dedi_calender WHERE idclient='$client' ORDER BY date DESC";


dadurch wird das plugin nicht mit dedi vermischt. sonst muß ja jeder, der das plugin installieren will auch diese einträge in der besagten datei einfügen.

gruß, paul

Geschrieben von: mvsxyz am 18. Jan 2004 - 21:59
Das hat geholfen. Danke! smile.gif

Geschrieben von: bratzi am 24. Aug 2004 - 15:13
Hi,

altes Thema aber immer noch nicht verstanden. Ich habe ein Plugin installiert und will nun einen Frame im Backend > Plugins > Mein Plugin integrieren:


mehr CODE

<?
if ( $perm->have_perm(1, 'area_newsletter', 0) ) {

echo "<html>

    <head>
    <title>Newsletter</title>
    </head>

    <frameset framespacing=\"0\" border=\"0\" frameborder=\"0\" cols=\"196,*\">
    <frame name=\"Inhalt\" target=\"Hauptframe\" src=\"plugins/newsletter/navigation.php\" scrolling=\"auto\" noresize>
    <frame name=\"Hauptframe\" src=\"plugins/newsletter/admin.php\" scrolling=\"auto\">
    </frameset>

    </html>";
  }
 
?>


Leider bekomme ich im Backend nichts angezeigt. Ich hab irgendwie verstanden das wohl mehr Rechte abgefragt werden müssen, aber wie? Kann mir jemand den Code oben als Beispiel ergänzen/modifizieren damit ich das auch endlich mal verstehe ? unsure.gif Einzelne Seiten oder IFrames bekomme ich ja schon ins backend, so weit bin ich scho (siehe confixx Plugin), nur bei Frameseiten gibts irgendwie Probleme.

Thx ... (wenns klappt gibt es bal ne schnelle Newsletter-Lösung als Plugin wink.gif )

Geschrieben von: Olaf am 24. Aug 2004 - 16:35
Schau dir doch mal die inc.con_editframe.php an, gleich am Anfang. Weiß nicht obs dir hilft.

Geschrieben von: bratzi am 24. Aug 2004 - 16:45
hm, ja / nein danke. Hab ich mir schon in einem anderen Plugin angeschaut aber ncht wirklich hinbekommen das es läuft. Steig da halt nicht wirklich durch, bin kein Coder wink.gif

Geschrieben von: bjoern am 27. Aug 2004 - 10:47

mehr CODE
<?
//Um die Rechte kümmern wir uns, wenn das Plugin erst einmal läuft
//if ( $perm->have_perm(1, 'area_newsletter', 0) ) {

//allgemeines dedi- System initialisieren - Plugin/diese Datei muß im Ordner backend/plugins/[mein_plugin]/[diese_datei.php] liegen
require_once ('../../inc/inc.init_external.php');

echo "<html>

   <head>
   <title>Newsletter</title>
   </head>

   <frameset framespacing=\"0\" border=\"0\" frameborder=\"0\" cols=\"196,*\">
   <frame name=\"Inhalt\" target=\"Hauptframe\" src=\"plugins/newsletter/navigation.php\" scrolling=\"auto\" noresize>
   <frame name=\"Hauptframe\" src=\"plugins/newsletter/admin.php\" scrolling=\"auto\">
   </frameset>

   </html>";
//  }
 
?>


Wichtig für die richtige Anzeige im Menü:

# Menüeintrag ins backendmenü hinzufügen
QUOTE
INSERT INTO {table_prefix}backendmenu VALUES ('', 4, 0, 20, 'nav_xy', 'plugins/[mein_plugin]/[meine_datei.php]', 'frame', 'true');

Geschrieben von: Eppi am 30. Aug 2004 - 13:25
und funktioniert es? newsletterplugin fertig? smile.gif

gruß, paul

Geschrieben von: chr!s am 18. Oct 2004 - 19:16
Hallo zusammen

Erstmal danke für die tolle Anleitung! Leider läuft bei mir noch nicht alles wie es sollte. Vielleicht kann mir ja jemand weiterhelfen... Ich habe auf der obersten Ebene einen neuen Menupunkt (Link) namens Mitgliederdatenbank eingefügt. Klickt man darauf, erschein ein Submenu dass (momentan nur) einen Link mit dem Namen 'Mitglieder erfassen' enthält. Folgende Einträge habe ich in die Datenbank eingefügt bzw. geändert (erster Eintrag).

Tabelle dedi_backendmenu


mehr CODE

INSERT INTO `dedi_backendmenu` VALUES (19, 0, 0, 190, 'nav_5_0', 'root', 'single', '$perm->have_perm(\'mitgliederdatenbank\')');
INSERT INTO `dedi_backendmenu` VALUES (38, 19, 0, 10, 'nav_5_1', 'main.php?area=plugin&dedi_plugin=mitgliederdatenbank/erfassen.php', 'single', '$perm->have_perm(\'perms_backend_plugin\')');



Tabelle dedi_values


mehr CODE

INSERT INTO `dedi_values` VALUES (4931, 0, 0, 'lang', 'nav_5_0', '', '', '', 'Mitgliederdatenbank', 0, NULL, NULL, 'txt', NULL, NULL, 0);
INSERT INTO `dedi_values` VALUES (4932, 0, 0, 'perms_backend_plugin', 'mitgliederdatenbank', '', '', '', 'lang_perm_mitgliederdatenbank', 0, NULL,
NULL, 'txt', NULL, NULL, 0);
INSERT INTO `dedi_values` VALUES (4933, 0, 0, 'lang', 'lang_perm_mitgliederdatenbank', '', '', '', 'Rechte für Mitgliederdatenbank', 0, NULL, NULL, 'txt', NULL, NULL, 0);
INSERT INTO `dedi_values` VALUES (4936, 0, 0, 'lang', 'nav_5_1', '', '', '', 'Mitglieder erfassen', 0, NULL, NULL, 'txt', NULL, NULL, 0);


Die Links werden mir wie gewünscht angezeigt und auch der Aufruf der Seite klappt. Jedoch treten folgende Probleme auf. Seit ich die neuen Zeilen in die Datenbank eingefügt habe erhalte ich beim laden der Seiten immer einen Javascript-Error. Der Fehler lautet: Nicht abgeschlossene Zeichenfolgenkonstante.
Desweitern werden die Bilder und Stylesheets für die einzubindende Datei (erfassen.php) nicht gefunden. Beim betrachten des Quellcodes hab ich dann festgestellt dass ich zwei Bodys habe. Einen von Dedi selbst und einen von der einzbindenden Datei. Ok ich könnte in die einzubindende Datei so anpassen, dass der Code nur umfasst was zwischen <body> und </body> steht. Doch wie krieg ich dann die verweise auf das separate Stylesheet hin? Habe auch probiert die aufzurufende Seite in einem separaten Frame zu laden (url_target=frame statt single). Die Bilder und das Stylesheet werden trotzdem nicht gefunden und die Dedi Navigation auch im Frame (also 2x) angezeigt.

Kann mir jemand weiterhelfen? Danke für jeden Tipp!

Geschrieben von: Silverfox am 13. Nov 2004 - 16:16
Hi Leutz...

Wie kann ich Konfigurationsoptionen (values) für Plugins erstellen?

Hab mir zwar schon Eppis multi_sample angesehen, aber ne Beschreibung wäre vieleicht ganz Hilfreich.

Powered by Invision Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)