Neue TCA-Pallette zu bestehender Tabelle hinzufügen

TCA-Paletten sind bei der Backend Konfiguration von TYPO3 ein hilfreiches Mittel, um zusammengehörige Felder zusammenzufassen. Auch können Paletten zum verstecken von Feldern dienen.

Bei den nicht-versteckten TCA Paletten werden die zu einer Palette gehörigen Felder einfach nur nebeneinander dargestellt.

echte TCA-Palette

Beispiel: Breite und Höhe eines Bildes in tt_content.

Der zweite Typ von Paletten sind die Erweiterungspaletten. Diese werden im TYPo3 Backend nur dann sichtbar, wenn auf das Handsymbol rechts neben dem Feld geklickt wurde. Andernfalls bleiben die Felder der Erweiterungspalette im TYPO3 Backend versteckt. Wurde ein Haken bei „Zweite Optionspalette anzeigen“ gesetzt, sind diese Felder ebenfalls sichtbar. Ein Beispiel:

zweite Optionspalette

Eine neue TCA Palette in eigener TYPo3 Extension erzeugen

Paletten liegen bei TYPO3 immer an folgender Position im TCA-Array:

$TCA[$tabellen_name]['palettes'][$paletten_nr]['showitem']

Bei der Definition zusätzlicher Paletten ist es wichtig, darauf zu achten, dass keine bestehenden Paletten überschrieben werden.  Der folgende Code erzeugt beispielhaft eine neue Palette in tt_content:

// TCA von tt_content laden
t3lib_div::loadTCA('tt_content');
// Neue Felder hinzufügen
t3lib_extMgm::addTCAcolumns('tt_content',$tempColumns,1);
//Höchste existierende Palettennummer ermitteln und um 1 erhöhen
$palettenNr = max(array_keys($TCA['tt_content']['palettes'])) + 1;
// Neue Palette erzeugen
$TCA['tt_content']['palettes'][$palettenNr] = array();
$TCA['tt_content']['palettes'][$palettenNr]['showitem'] ='tx_magimgtitles_title_image_width, tx_magimgtitles_title_image_height';

Möchte man diese Palette nun als ständig sichtbare Palette ins TYPO3 Backen einfügen, so geht das über diesen Code:

$TCA['tt_content']['palettes'][$palette]['canNotCollapse']='1';
t3lib_extMgm::addToAllTCAtypes('tt_content','--palette--;LLL:EXT:magimgtitles/locallang_db.xml:tt_content.tx_magimgtitles_title_image;'.$palette.'', '', 'after:header');

Als zweite Optionspalette so:

t3lib_extMgm::addToAllTCAtypes('tt_content','tx_magimgtitles_title_image;;'.$palette.';;1-1-1', '', 'after:header');

Veröffentlicht unter TYPO3 Technik
4 Kommentare auf “Neue TCA-Pallette zu bestehender Tabelle hinzufügen
  1. Hey, sehr netter Beitrag, hat mir gerade weitergeholfen nicht stundenlang zu suchen müssen 🙂

    PS: TYPO3 – nicht TYPo3 😉

    LG aus einem verschneiten Österreich!

  2. Stefan sagt:

    Bernhard, nicht Benhard 😉
    LG aus dem herbstlichen Österreich!

  3. Markus sagt:

    eher Taipo-drei

  4. Deividas sagt:

    Backend, nicht Backen 🙂

    Was ist $palette in:
    t3lib_extMgm::addToAllTCAtypes(‚tt_content‘,’tx_magimgtitles_title_image;;‘.$palette.‘;;1-1-1′, “, ‚after:header‘);
    ???

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*