Optionales Tabellenfeld in anderer Ext.

  • wolfi02 wolfi02
    R2-D2
    0 x
    108 Beiträge
    0 Hilfreiche Beiträge
    08. 02. 2011, 20:13

    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


  • 1
  • 0 x
    13 Beiträge
    0 Hilfreiche Beiträge
    08. 02. 2011, 20:38

    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

    in2code. Wir leben TYPO3.

    Telefon: +49 (8031) 887 39 83
    http://www.in2code.de

  • aemka aemka
    Jedi-Ratsmitglied
    0 x
    562 Beiträge
    9 Hilfreiche Beiträge
    08. 02. 2011, 22:48

    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.

    http://www.aemka.de/

  • wolfi02 wolfi02
    R2-D2
    0 x
    108 Beiträge
    0 Hilfreiche Beiträge
    09. 02. 2011, 07:52

    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 aemka
    Jedi-Ratsmitglied
    0 x
    562 Beiträge
    9 Hilfreiche Beiträge
    09. 02. 2011, 20:19

    [quote="wolfi02"]
    @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.
    [/quote]

    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.

    http://www.aemka.de/

  • wolfi02 wolfi02
    R2-D2
    0 x
    108 Beiträge
    0 Hilfreiche Beiträge
    09. 02. 2011, 22:14

    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
    Jedi-Ratsmitglied
    0 x
    562 Beiträge
    9 Hilfreiche Beiträge
    09. 02. 2011, 22:48

    [quote="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.
    [/quote]

    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.

    http://www.aemka.de/

  • 1