Improving TYPO3’s Backend Experience

One frequently mentioned flaw of TYPO3 is its extensive backend. With its different modules, tiny buttons and massive range of functions it can be pretty hard to navigate, especially for new users. Although TYPO3 7.0 brought us some design improvements to the backend, let’s be honest: It’s still pretty complicated.

That is why admins and developers should care about improving and simplifying the backend experience. It can avoid errors and helps unexperienced users to focus on their task.

Fortunately TYPO3 allows us to customize some attributes of the backend with TSconfig – not to be confused with regular TypoScript. The following options can be defined in the TSconfig field of a page and inherit to its subpages just like TypoScript does.

Hide unused fields

TYPO3 comes with a lot of features that require their own fields in the backend. While they all serve their purpose, in most cases you don’t need all of them. For non-admin users this can be solved with permissions, but if you just don’t need the fields, you can hide them for everyone:

TCEFORM.tt_content.section_frame.disabled = 1  

This also works for fields that are part of a flexform:

TCEFORM.tt_content.pi_flexform.table.sDEF.acctables_tfoot.disabled = 1  

One easy way to find out the field names is to simply inspect the backend form using your browser’s development tools and to look for the name attribute of the form field. Another way is to look them up in the TCA section of the Configuration backend module.

Adjust available select options

You can also remove select options that aren’t needed:

TCEFORM.tt_content.header_layout.removeItems = 5,6  

By using combinations of addItems and keepItems you can rename and reorder existing options and add new ones:

TCEFORM.tt_content.header_layout {  
    # Remove all existing options
    keepItems =
    # Replace with customized options
    addItems {
        1 = Level 1 (only use once)
        0 = Level 2
        3 = Level 3
        100 = Hidden

You can even specify those changes based on the element’s type. The following example adds different layout options for text and image elements:

TCEFORM.tt_content.layout {  
    # Remove existing options
    keepItems =
    types {
        # Layout options for text elements
        text.addItems {
            1 = Text layout 1
            2 = Text layout 2

        # Layout options for image elements
        image.addItems {
            3 = Image layout 1
            4 = Image layout 2

Adjust field labels

You cannot only rename select options, you can also rename field labels to better explain their purpose for your website:

TCEFORM.pages.description.label = My alternative field label  

In both cases you can use a language file instead:

TCEFORM.pages.description.label = LLL:fileadmin/path/to/language/locallang.xlf:pages.description.label  

Adjust default values

You can also modify the default value for each field:

TCAdefaults.tt_content.image_zoom = 1  

Limit record types for folders

In case you’ve created a sysfolder that should only contain certain record types, you can limit the allowed database tables in that folder:

mod.web_list.allowedNewTables = tx_my_custom_record  

Clear page caches on edit

Sometimes you have a sysfolder with records that will be shown on pages in the frontend. With the following command you can instruct TYPO3 to clear the cache of one or multiple pages once a record in the folder changes:

TCEMAIN.clearCacheCmd = 5, 8, 20  

There are a few other options described in the reference.

Configure permissions

If you want to simplify the backend for non-admins even further, you should really look into TYPO3’s powerful permission system. It allows you to give members of a group limited access to:

  • backend modules (e. g. only the Page module)
  • record types (e. g. only pages, tt_content and news)
  • fields
  • file storages

In case you have any other tweaks that can improve the backend experience, feel free to contact me. I’m always interested in learning new things.