Zum Inhalt springen

default datensätze bei installation?

Erstellt am 28. Juli 2008 · 2 Antworten · letzte Antwort am 31. Juli 2008

Tags: Frage

pranko_janko ·

hallo meine herren,

ich hab nun meine extension soweit fertig und wollte sie nun installieren!

dabei ist mir aufgefallen, dass INSERT statements vom extension manager SQL parser ignoriert werden, stimmt doch?

wie kann ich nun bei der installation bereits datensätze default einfügen?

lg, pranko

Silvio_L ·

Hallo,

Ob es eine "offizielle" Möglichkeit gibt weiß ich nicht, aber du könntest versuchen die ext_emconf.php dazu zu "missbrauchen" denn diese wird ja bei der Installation mit eingebunden. Dazu lege eine Datei mit beliebigen Namen in dein Ext-Verzeichnis. Prüfe in der ext_emconf.php auf das Vorhandensein dieser Datei. Sollte sie existieren führe deine SQL INSERT Anweisungen aus und lösche die Datei.

So sollte sichergestellt sein das die Routine nur 1 Mal ausgeführt wird (bzw jedesmal wenn die Datei existiert).

Habe das nicht getestet, denka aber das könnte funktionieren.

EDIT: Weiß im Moment aber nicht, ob zu dem Zeitpunkt zu dem die emconf eingebunden wird auch schon die Tabellen angelegt wurden...

Ansonsten solltest du es mit der ext_tables versuchen. Die wird ja auch spätesten beim betrachten im BE oder im FE eingebunden und somit dein Code ausgeführt. Wichtig ist halt nur dass das Ganze nichnt ständig ausgeführt wird sondern nur bei oder kurz nach der Installation.

Könnte mir auch vorstellen einfach 2 Versionen der ext_tables anzulegen. Eine mit den INSERT Anweisungen und eine ohne und mit einem anderen Namen. Nach dem Ausführen der INSERT Anweisungen tauscht du diese beiden dann einfach aus.

Gruß
Silvio

pranko_janko ·

danke für den tip ...
das hab ich mir auch shcon durchgedacht nur des problem ist die ext_emconf wird auch jedes mal bei einem update ausgeführt ...
dadurch müsste man eben eine routine schrieben die den table z.b testet ...
is auch kein problem aber ich dacht es gibt eventuell etwas "onboard"

aber danke ... ist eh eine gute idee!