Neuerungen bei Wizards im TCA

Im Fokus dieses Beitrags stehen die Wizards (z.B. RTE, Linkwizard). Manche Änderung im TCA bringt die Weiterentwicklung von TYPO3 auch dort mit sich. Die Migration lässt sich aber leicht bewerkstelligen.

Um auf die Änderungen besser eingehen zu können, wiederhole ich zunächst ein paar Grundlagen, wie es denn früher war bzw. in welchem Rahmen sich die Änderungen bewegen werden.

Aus alten Zeiten…

Im TCA (Table Configuration Array) findet sich in showitems die Liste der anzuzeigenden Felder. Die Liste ist dabei komma-getrennt, wobei jedes Feld wiederum durch Strichpunkt getrennt Optionen haben kann. Das Ganze sieht schemahaft so aus:

$GLOBALS['TCA']['tabellen_name']['types']['0']['showitem'] = '..., wert_1; wert_2; wert_3; wert_4; wert_5,...';
PositionBedeutung
wert_1Feldname
wert_2alternative Feldbeschriftung
wert_3Paletten-ID
wert_4Spezielle Einstellungen für Textfelder
wert_5Darstellungsoptionen

An den Optionen hat sich manches geändert (siehe unten).

Im config-Abschnitt der Felder findet sich die Konfiguration der Wizards. Der Eintrag script gibt dort den Pfad zum jeweiligen Wizard an. Gegebenenfalls sind weitere Parameter mittels params definiert.

 …durchstarten in die Zukunft

Die Feldauflistung in showitem wird übersichtlicher:

  • Die Darstellungsoptionen (wert_5) war in ihrer Bedeutung bereits seit Längerem in den Hintergrund geraten. Mit TYPO3 7.1 wurde dieser Parameter entfernt
  • Die speziellen Einstellungen (wert_4) sind identisch mit der Feld defaultExtras der columns-Felder im Feld-Abschnitt des TCA. Sie können unter gleichem Namen in ein neu eingeführtes Array columnsOverrides eingefügt werden, das sich parallel zum Eintrag showitem dieses Types verbirgt.
  • Das Feld rte_enabled wurde aus tt_content entfernt; eine Abhängigkeit der RTE-Konfiguration vom Status dieses Feldes (wie sie in wert_4 definierbar war) muss demnach entfernt werden

Innerhalb des wizards-Block gibt es script nicht mehr. Mit TYPO3 CMS 6.1 wurde ein Abschnitt module eingeführt, der die einzelnen Wizards mit name und ggf. weiteren Konfigurationswerten (z.B. urlParameters) definiert. In TYPO3 7.4 wird script übrigens gar nicht mehr unterstützt und wirft eine entsprechende Exception.
Desweiteren wurden die Icons für Formularfeld-Wizards in die Extension backend verschoben, weshalb hier eine Pfadanpassung in icon notwendig wird.

 

Beispiele

Genug mit Theorie. Konkreter Code erklärt manchmal ja doch besser:

Beispiel: RTE

Früher:

'columns' => array(
  'aTextField' => array(
    // ...
    'config' => array(
      // ...
      'wizards' => array(
        'RTE' => array(
          'notNewRecords' => 1,
          'RTEonly' => 1,
          'type' => 'script',
          'title' => 'LLL:EXT:cms/locallang_ttc.php:bodytext.W.RTE',
          'icon' => 'wizard_rte2.gif',
          'script' => 'wizard_rte.php',
        )
      )
    )
  ),
  // ...
  'types' => array(
    '0' => array(
      'showitem' => '..., aTextField; labelForATextField; paletteId; richtext:rte_transform[flag=rte_enabled|mode=ts_css]; 3-3-3, rte_enabled; LLL:EXT:cms/locallang_ttc.xml:rte_enabled_formlabel, ...'
    )
  )
)

heute und in Zukunft:

'columns' => array(
  'aTextField' => array(
    // ...
    'config' => array(
      // ...
      'wizards' => array(
        'RTE' => array(
          'notNewRecords' => 1,
          'RTEonly' => 1,
          'type' => 'script',
          'title' => 'LLL:EXT:cms/locallang_ttc.php:bodytext.W.RTE',
          'icon' => 'EXT:backend/Resources/Public/Images/FormFieldWizard/wizard_rte.gif',
          'module' => array(
            'name' => 'wizard_rte',
          )
        )
      )
    )
  ),
  // ...
  'types' => array(
    '0' => array(
      'showitem' => '..., aTextField; labelForATextField; paletteId, ...',
      'columnsOverrides' => array(
        'bodytext' => array(
          'defaultExtras' => 'richtext:rte_transform[mode=ts_css]'
        )
      )
    )
  )
)

Beispiel Link-Wizard

Früher

'columns' => array(
  'header_link' => array(
    // ...
    'config' => array(
      // ...
      'wizards' => array(
        '_PADDING' => 2,
        'link'     => array(
          'type'         => 'popup',
          'title'        => 'LLL:EXT:cms/locallang_ttc.xml:header_link_formlabel',
          'icon'         => 'link_popup.gif',
          'script'       => 'browse_links.php?mode=wizard',
          'JSopenParams' => 'height=300,width=500,status=0,menubar=0,scrollbars=1',
        )
      )
    )
  )
)

heute und in Zukunft:

'columns' => array(
  'header_link' => array(
    // ...
    'config' => array(
      // ...
      'wizards' => array(
        'link' => array(
          'type'         => 'popup',
          'title'        => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:header_link_formlabel',
          'icon'         => 'EXT:backend/Resources/Public/Images/FormFieldWizard/wizard_link.gif',
          'module'       => array(
            'name'          => 'wizard_element_browser',
            'urlParameters' => array(
              'mode' => 'wizard'
            )
          ),
          'JSopenParams' => 'width=800,height=600,status=0,menubar=0,scrollbars=1'
        )
      )
    )
  )
)

Quellen

Hinterlasse einen Kommentar.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.