Zum Inhalt springen

Optionales Tabellenfeld in anderer Ext.

Erstellt am 8. Februar 2011 · 6 Antworten · letzte Antwort am 9. Februar 2011

Tags: Frage

wolfi02 ·

Hallo,

ich stehe vor dem Problem, dass ich in meiner Extension dem Admin während der Installation die Option geben möchte in einer anderen DB-Tabelle ein zusätzliches Feld einfügen zu lassen.

Aktuell fallen mir 2 Optionen dazu ein:
1. in den Konstanten eine Variable setzten und dann bei dem Aufruf der Ext. prüfen, ob dass Feld in der entsprechenden Tabelle existiert. Fall nicht und die Option TRUE liefert das Feld anlegen.
=> Nachteil, bei hohen Seitenaufrufen wird das System langsam

2. Mein Favorit, aber ich weiß nicht wie das umzusetzten ist. Beim installieren erhält der Admin die Möglichkeit die entsprechende Option zu setzten. Wenn diese gesetzt ist, wird während der Ext. Installation gleich das nötige DB-Feld mit installiert.

Hat jemand dazu vll. noch Anregungen wie man so etwas umsetzten kann? Oder gibt es bereits Lösungen zu dem Thema?

Lg Christian

stefan.​busemann ·

Hi Wolfi,

Du könntest das über die Funktion extUpdate erledigen, wie z.B. tt_news ein Updatescript anbietet beim Umstieg von älteren Versionen.

Grüße

Stefan

aemka ·

Schau dir doch einfach eine beliebige andere Extension an, die Datenbankfelder mitbringt. So lange sie richtig in ext_tables.sql, ext_tables.php, tca.php eingetragen sind, bietet der extension manager dir automatisch beim installieren der extension die option an, das feld in der datenbank anzulegen, wenn es noch nicht existiert.

wolfi02 ·

Hallo,

@aemka, das ist sicherlich eine der einfachsten, aber unschönen Lösungen. Meine Idee war, dass der Admin selbst entscheiden kann, ob er das zusätzliche DB-Feld haben möchte. Bei deiner Lösung wird das Feld immer angelegt, ob es jemand haben möchte oder nicht.

@stefan, das ist eine gute Idee. Ich werde gleich mal schauen, wie bei tt_news die Option verbaut ist. Vielen Dank.

aemka ·
wolfi02 schrieb

@aemka, das ist sicherlich eine der einfachsten, aber unschönen Lösungen. Meine Idee war, dass der Admin selbst entscheiden kann, ob er das zusätzliche DB-Feld haben möchte. Bei deiner Lösung wird das Feld immer angelegt, ob es jemand haben möchte oder nicht.

Nein, der admin muss das Datenbankfeld bei der Extension-Installation natürlich nicht anlegen. Er kann den Haken dafür ja auch weg machen, bevor er der "make updates" / "Aktualisierungen durchführen" button klickt.

wolfi02 ·

Hallo aemka,

sorry dann habe ich dich missverstanden.

So wie du es gerade beschreibst möchte ich es auch gern machen. Allerdings weiß ich gerade nicht, wie ich TYPO3 dazu bewegen kann dieses Feld an zulegen.

Die Checkbox dafür kann man in der Datei ext_conf_template.txt erzeugen lassen. Aber woher weiß TYPO3 dann, was gemacht werden soll?

aemka ·
aemka schrieb

Schau dir doch einfach eine beliebige andere Extension an, die Datenbankfelder mitbringt. So lange sie richtig in ext_tables.sql, ext_tables.php, tca.php eingetragen sind, bietet der extension manager dir automatisch beim installieren der extension die option an, das feld in der datenbank anzulegen, wenn es noch nicht existiert.

Das ist schon alles - schau es dir doch mal bei einer extension an die datenbankfelder hat. Mehr musst du nicht tun. Der Rest passiert von alleine.