28.07.2011

Backendformular mit Kategorienbaum

Seit einiger Zeit gibt es die Option, TCEFORM-Selectfelder in Backendformularen mit einer Baumstruktur zu versehen. Viele kennen das vom Kategorienbaum in tt_news.

Select Feld mit der Option "tree" im TYPO3 Backend

Select Feld mit der Option "tree" im TYPO3 Backend

In der neuen Variante unter Verwendung von ExtJS gibt es ein Eingabefeld mit Filterfunktion. Außerdem Buttons zum Ein- und Ausklappen des Baums. Wer schon mal mit Hunderten Kategorien gaearbeitet hat, wird das zu schätzen wissen.

Definiert ist die Konfigurations-Option "tree" für den Typ "select" in der Datei:

typo3_src/t3lib/class.t3lib_foldertree.php

In der Dokumentation Core API ist die Tree-Variante noch nicht enthalten.

Die Anwendung ist denkbar einfach:

tca.php

'tx_myext_domain_model_category'] = array(
     ...
     'columns' => array(
        ...
    'parent_category' => array(
            'exclude' => 0,
            'label' =>  'LLL:EXT:myext/Resources/Private/Language/locallang_db.xml:tx_myext_domain_model_category.parent_category',
            'config' => array(
                'type' => 'select',
                'renderMode' => 'tree',
                'treeConfig' => array(
                    'parentField' => 'parent_category',
                    'appearance' => array(
                      'expandAll' => true,
                    'showHeader' => true,
                    ),
                ),
                'foreign_table' => 'tx_myext_domain_model_category',
                'foreign_table_where' => 'ORDER BY tx_myext_domain_model_category.title',
                'size' => 5,
                'autoSizeMax' => 20,
                'minitems' => 0,
                'maxitems' => 1,
                'wizards' => array(
                    '_PADDING' => 1,
                    '_VERTICAL' => 0,
                    'edit' => array(
                        'type' => 'popup',
                        'title' => 'Edit',
                        'script' => 'wizard_edit.php',
                        'icon' => 'edit2.gif',
                        'popup_onlyOpenIfSelected' => 1,
                        'JSopenParams' => 'height=350,width=580,status=0,menubar=0,scrollbars=1',
                    ),
                    'add' => Array(
                        'type' => 'script',
                        'title' => 'Create new',
                        'icon' => 'add.gif',
                        'params' => array(
                            'table'=> 'tx_myext_domain_model_category',
                            'pid' => '###CURRENT_PID###',
                            'setValue' => 'prepend'
                         ),
                        'script' => 'wizard_add.php',
                    ),
                ),
            ),
        ),
    ),
 
Getestet in TYPO3 4.5.3

Kategorie: Backendformulare, Extensionentwicklung, Entwickler