# 6. TSconfig für Seiten und Benutzer

TSconfig ist von der Syntax her an TypoScript angelegt und dient der Konfiguration des Backend auf Seiten- und Nutzerbasis.

Eine vollständige Referenz ist unter https://docs.typo3.org/typo3cms/TSconfigReference/Index.html zu finden.

Wie bei TypoScript auch, gibt es hier Conditions. Grundsätzlich ist TSconfig in User- und Page-TSconfig unterteilt.

## 6.1. PageTS Beispiel

Durch die Vererbung können hier einzelne Seitenbereiche im Backend angepasst werden. So z.B. die erlaubten Datensätze, Labels etc. Außerdem ist dies wichtig für ein sauberes Caching. Hier kann eingestellt werden welche Caches mit geleert werden sollen. So kann z.B. die Startseite bei neuen News geleert werden.

Wird in den Seiteneigenschaften hinterlegt. Kann zudem bei Benutzern hinterlegt werden.

Beispiel:

    mod {
        wizards {
            newContentElement {
                wizardItems {
                    common {
                        show := removeFromList(table)
                    }
                }
            }
        }
    }

    TCEFORM {
        tt_content {
            CType {
                removeItems = table
            }
        }
    }

Alternativ per PHP für alle, z.B. in `typo3conf/AdditionalConfiguration.php`. Zu beachten ist hier die Ladereihenfolge.

    <?php

    \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPageTSConfig('');

Kann im Module Info im Dropdown unter Page TSConfig kontrolliert werden. Dies bietet auch einen guten Anhaltspunkt für das Überschreiben der Wizards.

## 6.2. UserTS Beispiel

Kann nicht vom Nutzer selbst gesetzt werden, aber per Modul Backend users oder List.

Kann alle Werte aus PageTS gezielt überschreiben, siehe https://docs.typo3.org/typo3cms/TSconfigReference/UserTsconfig/Field/Index.html#relationship-to-values-set-in-page-tsconfig.

Kann einem Nutzer oder einer Nutzergruppe hinterlegt werden.

    options {
        pageTree {
            showPageIdWithTitle = 1
            showDomainNameWithTitle = 1
            showPathAboveMounts = 1
            searchInAlias = 1
        }
    }

Alternativ per PHP für alle, z.B. in `typo3conf/AdditionalConfiguration.php`:

    <?php

    \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addUserTSConfig('
        options {
            pageTree {
                backgroundColor {
                    1 = #74d1ff5c
                }
            }
        }
    ');

## 6.3. Admin Panel

Muss beim Nutzer aktiviert werden, sowie im Frontend.

UserTS:

    ADMPANEL {
        enable {
            all = 1
        }
    }

TypoScript:

    config {
        admPanel = 1
    }

## 6.4. Eingabefelder ausblenden

Oft brauchen Redakteure nicht alle Eingabefelder. So werden manche schlicht nicht verwendet. Um hier Fehler und Irritationen zu vermeiden können diese deaktiviert werden. Dazu reicht folgendes TSconfig beim Nutzer:

    page {
        tt_content {
            newUntil {
                disabled = 1
            }
        }

        TCEFORM {
            tt_content {
                CType {
                    removeItems = header
                }
            }
        }
    }

Da die Felder über PageTS konfiguriert werden, wir aber die Einstellungen auf Nutzerebene hinterlegen, müssen wir dies mit `page` prefixen, siehe: https://docs.typo3.org/typo3cms/TSconfigReference/UserTsconfig/Field/Index.html#relationship-to-values-set-in-page-tsconfig Anschließnd kann dann ein einzelnes Feld deaktiviert werden, oder Einträge aus einem Dropdown entfernt werden. Dies findet man hier dokumentiert: https://docs.typo3.org/typo3cms/TSconfigReference/PageTsconfig/TCEform/Index.html#tceform-confobj