---
title: "TCEFORM"
manual: "TypoScript Explained"
version: "main"
permalink: "https://docs.typo3.org/permalink/t3tsref:pagetceformflexformsheet@main"
source: "PageTsconfig/TceForm.rst"
rendered: "2026-09-19T06:55:14+00:00"
---

# TCEFORM {#pagetceformflexformsheet}

Allows configuration of how edit forms are rendered in page
tree branches in the backend. Can also configure individual tables (for example,
from extensions). You can enable and disable options, blind options in selector boxes, etc.

See the core API document section [FormEngine](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/FormEngine/Index.html#FormEngine) for more
details on how records are rendered in the backend.

## Applying properties {#tceform-apply-properties}

The properties listed below apply in various contexts which are explained in each
property. A full property path depends on the property and where it is
applied. In general, a more specific property path overrides a less specific one:

Some properties apply to single fields and are usually set by table or
by table and record type. Property paths such as
`TCEFORM.[tableName].[fieldName].[propertyName]` configure fields for all types
and `TCEFORM.[tableName].[fieldName].types.[typeName].[propertyName]` configure fields
for specific types, see the
[TCA type section](https://docs.typo3.org/m/typo3/reference-tca/main/en-us/Types/Index.html#types) for details on types.

Setting property paths should become
clearer after you have read through the properties below and looked at the examples.

[Watch this video on YouTube](https://www.youtube.com/watch?v=B3IQq7pIJ_o)

### Applying properties to FlexForm fields {#tceformapplypropertiesflexform}

<!-- TODO: no Markdown rendering for "deprecated" -->

Using a comma-separated value for [dataStructureKey] is deprecated and
will stop working in TYPO3 v15.

Other properties also apply to [FlexForm](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/FlexForms/Index.html#flexforms) fields,
in this case the full property path including the data structure key has to
be set:

```typoscript
# TCEFORM.[tableName].[fieldName].[dataStructureKey].[flexSheet].[flexFieldName with escaped dots].[propertyName]
TCEFORM.tt_content.pi_flexform.sfregister_create.sDEF.settings\.fields\.selected.addItems.ZZZ = ZZZ
```

The sheet name (sDEF) must be given only if the FlexForm has a sheet.

The `[dataStructureKey]` is set to the CType for content elements and the type for all
other tables that have a type field defined.  See
[TCA reference: Using FlexForms](https://docs.typo3.org/m/typo3/reference-tca/main/en-us/ColumnsConfig/Type/Flex/AboutDataStructures.html#columns-flex-ds-pointer)
for details.

The flexFieldName is the name of the property in the FlexForm. If it contains
dots `.`, these must be escaped with backslash.

Some properties apply to whole FlexForm sheets, their property path is
`TCEFORM.[tableName].[fieldName].[dataStructureKey].[flexSheet].[propertyName]`.

## Properties {#tceform-properties}

-   [addItems](https://docs.typo3.org/permalink/t3tsref:additems@main)
-   [altLabels](https://docs.typo3.org/permalink/t3tsref:altlabels@main)
-   [PAGE_TSCONFIG_ID](https://docs.typo3.org/permalink/t3tsref:page-tsconfig-id@main)
-   [PAGE_TSCONFIG_IDLIST](https://docs.typo3.org/permalink/t3tsref:page-tsconfig-idlist@main)
-   [PAGE_TSCONFIG_STR](https://docs.typo3.org/permalink/t3tsref:page-tsconfig-str@main)
-   [colorPalette](https://docs.typo3.org/permalink/t3tsref:colorpalette@main)
-   [config](https://docs.typo3.org/permalink/t3tsref:config@main)
-   [config.treeConfig](https://docs.typo3.org/permalink/t3tsref:config-treeconfig@main)
-   [description](https://docs.typo3.org/permalink/t3tsref:description@main)
-   [disabled](https://docs.typo3.org/permalink/t3tsref:disabled@main)
-   [disableNoMatchingValueElement](https://docs.typo3.org/permalink/t3tsref:disablenomatchingvalueelement@main)
-   [fileFolderConfig](https://docs.typo3.org/permalink/t3tsref:filefolderconfig@main)
-   [itemsProcFunc](https://docs.typo3.org/permalink/t3tsref:itemsprocfunc@main)
-   [keepItems](https://docs.typo3.org/permalink/t3tsref:keepitems@main)
-   [label](https://docs.typo3.org/permalink/t3tsref:label@main)
-   [noMatchingValue_label](https://docs.typo3.org/permalink/t3tsref:nomatchingvalue-label@main)
-   [removeItems](https://docs.typo3.org/permalink/t3tsref:removeitems@main)
-   [sheetDescription](https://docs.typo3.org/permalink/t3tsref:sheetdescription@main)
-   [sheetShortDescr](https://docs.typo3.org/permalink/t3tsref:sheetshortdescr@main)
-   [sheetTitle](https://docs.typo3.org/permalink/t3tsref:sheettitle@main)
-   [suggest](https://docs.typo3.org/permalink/t3tsref:suggest@main)

### addItems {#tceform-additems}

-   **addItems**

    -   *Type:* plain text label or [label reference](https://docs.typo3.org/permalink/t3coreapi:label-reference)

    Change the list of items in [TCA type=select](https://docs.typo3.org/m/typo3/reference-tca/main/en-us/ColumnsConfig/Type/Select/Index.html#columns-select) fields. Using this property,
    items can be added to the list. Note that the added elements might be removed if the selector represents
    records: If the select box is a relation to another table. In that case only existing records
    will be preserved.

    The subkey `icon` will allow to add your own icons to new values.

    The subkey `group` can be used to insert a new element into an
    existing select item group by settings the value to the group identifier.
    The grouping is usually displayed in select fields with groups available.

    This property is available for various levels:

    -   **table level, example:**

        `TCEFORM.tt_content.header_layout.addItems`

    -   **table and record type level, example:**

        `TCEFORM.tt_content.header_layout.types.textpic.addItems`

    -   **Flex form field level, example:**

        `TCEFORM.tt_content.pi_flexform.myext_pi1.sDEF.settings.myfield.addItems`

        Where `sDEF` is the sheet name. For a description
        see the section [Applying properties to FlexForm fields](https://docs.typo3.org/permalink/t3tsref:tceformapplypropertiesflexform@main) on this page.

    > [!WARNING]
    > Do not add page types this way (using `TCEFORM.pages.doktype.addItems`), instead the proper
    > PHP API should be used to do this, see [Core APIs](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/PageTypes/Index.html#page-types) for details.

#### Example: Add header layout option {#tceform-additems-example}

**EXT:site_package/Configuration/page.tsconfig**

```typoscript
TCEFORM.tt_content.header_layout {
  # Add another header_layout option:
  addItems.1525215969 = Another header layout
  # Add another one with localized label, icon and group
  addItems.1525216023 = LLL:my_extension.messages:header_layout
  addItems.1525216023.icon = EXT:my_extension/Resources/Public/Icons/icon.png
  addItems.1525216023.group = special
}

```

Instead of adding files by path, icon identifiers should be used.

### altLabels {#tceform-altlabels}

-   **altLabels**

    -   *Type:* plain text label or [label reference](https://docs.typo3.org/permalink/t3coreapi:label-reference)

    This property applies to [TCA type=select](https://docs.typo3.org/m/typo3/reference-tca/main/en-us/ColumnsConfig/Type/Select/Index.html#columns-select),
    [TCA type=check](https://docs.typo3.org/m/typo3/reference-tca/main/en-us/ColumnsConfig/Type/Check/Index.html#columns-check) and [TCA type=radio](https://docs.typo3.org/m/typo3/reference-tca/main/en-us/ColumnsConfig/Type/Radio/Index.html#columns-radio).

    This property allows you to enter alternative labels for the items in the list. For a single checkbox or radio
    button, use `default`, for multiple checkboxes and radiobuttons, use an integer for their position starting at 0.

    This property is available for various levels:

    -   **table level:**

        `TCEFORM.[tableName].[fieldName].altLabels`

    -   **table and record type level:**

        `TCEFORM.[tableName].[fieldName].types.[typeName].altLabels`

    -   **Flex form field level, example:**

        `TCEFORM.tt_content.pi_flexform.myext_pi1.sDEF.settings.myfield.altLabels`

        Where `sDEF` is the sheet name. For a description
        see the section [Applying properties to FlexForm fields](https://docs.typo3.org/permalink/t3tsref:tceformapplypropertiesflexform@main) on this page.

#### Example: Override labels for document types {#tceform-altlabels-example}

**EXT:site_package/Configuration/page.tsconfig**

```typoscript
TCEFORM.pages.doktype {
  # Set a different item label
  altLabels.1 = STANDARD Page Type
  altLabels.254 = Folder (for various elements)
  # Sets the default label for Recycler via "locallang":
  altLabels.255 = LLL:my_extension.tca:recycler
}

```

![The Page types with modified labels](../Images/ManualScreenshots/List/PagesDoktypeDifferentLabels.png)

> [!NOTE]
> If the item has an **empty** value, the syntax is slightly different and an additional dot must be provided,
> like on this example:

**EXT:site_package/Configuration/page.tsconfig**

```typoscript
TCEFORM.tt_content.space_before_class.altLabels.. = foo
```

Note the *double dot* after `altLabels`.

### PAGE_TSCONFIG_ID {#tceform-page-tsconfig-id}

-   **PAGE_TSCONFIG_ID**

    -   *Type:* integer

    This option allows to provide a value for dynamic SQL-WHERE parameters. The
    value is defined for a specific field of a table. For usage with flexform
    fields, the entire path to a sub-field must be provided.

> [!NOTE]
> This value can be used for the TCA property [foreign_table_where](https://docs.typo3.org/m/typo3/reference-tca/main/en-us/ColumnsConfig/Type/Select/Single/Index.html#columns-select-properties-foreign-table-where)
> and for the `addWhere` part of the [suggest wizard](https://docs.typo3.org/permalink/t3tsref:pagetceformsuggest@main).

#### Example: Substitute a marker in a plugin FlexForm {#tceform-page-tsconfig-id-example}

**EXT:site_package/Configuration/page.tsconfig**

```typoscript
TCEFORM.tt_content.pi_flexform.myext_pi1.sDEF.myField.PAGE_TSCONFIG_ID = 22
```

In this example, the value will substitute the marker in a plugin FlexForm.

**EXT:site_package/Configuration/page.tsconfig**

```typoscript
TCEFORM.tx_myextension_table.myfield.PAGE_TSCONFIG_ID = 22
```

This example might be used for a record in an extension. It refers to a
table called `tx_myextension_table` and the field `myfield`. Here the marker will
be substituted by the value `22`.

### PAGE_TSCONFIG_IDLIST {#tceform-page-tsconfig-idlist}

-   **PAGE_TSCONFIG_IDLIST**

    -   *Type:* list of integers

    See above.

#### Example: Substitute a list of IDs in a plugin FlexForm {#tceform-page-tsconfig-idlist-example}

**EXT:site_package/Configuration/page.tsconfig**

```typoscript
TCEFORM.tt_content.pi_flexform.myext_pi1.sDEF.myField.PAGE_TSCONFIG_IDLIST = 20,21,22
```

In this example, the value will substitute the marker in a plugin FlexForm.

**EXT:site_package/Configuration/page.tsconfig**

```typoscript
TCEFORM.tx_myextension_table.myfield.PAGE_TSCONFIG_IDLIST = 20,21,22
```

This example might be used for a record in an extension. It refers to a
table called `tx_myextension_table` and the field `myfield`. Here the marker will
be substituted by the list of integers.

### PAGE_TSCONFIG_STR {#tceform-page-tsconfig-str}

-   **PAGE_TSCONFIG_STR**

    -   *Type:* string

    See above.

#### Example: Substitute a string in a plugin FlexForm {#tceform-page-tsconfig-str-example}

**EXT:site_package/Configuration/page.tsconfig**

```typoscript
TCEFORM.tt_content.pi_flexform.myext_pi1.sDEF.myField.PAGE_TSCONFIG_STR = %hello%
```

In this example, the value will substitute the marker in a plugin FlexForm.

**EXT:site_package/Configuration/page.tsconfig**

```typoscript
TCEFORM.tx_myextension_table.myfield.PAGE_TSCONFIG_STR = %hello%
```

This example might be used for a record in an extension. It refers to a
table called `tx_myextension_table` and the field `myfield`. Here the marker will
be substituted by the given value.

### colorPalette {#pagetsconfigtceformcolorpalette}

-   **colorPalette**

    -   *Type:* string

    Assign a [color palette](https://docs.typo3.org/permalink/t3tsref:pagecolorpalettes@main) to a specific field of a
    table, for all fields within a table or a global configuration affecting all
    color pickers within [FormEngine](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/FormEngine/Index.html#FormEngine). If no palette
    is defined, FormEngine falls back to all configured colors.

#### Example: Assign a palette to a field {#pagetsconfigtceformcolorpalette-example}

**EXT:my_sitepackage/Configuration/page.tsconfig**

```typoscript
# Assign a palette to a specific field
TCEFORM.tx_myextension_table.myfield.colorPalette = messages

# Assign a palette to all color pickers used in a table
TCEFORM.tx_myextension_table.colorPalette = key_colors

# Assign global palette
TCEFORM.colorPalette = main

```

### config {#pagetsconfigtceformconfig}

-   **config**

    This setting allows to override TCA field configuration. This will influence configuration settings in
    `$GLOBALS['TCA'][<tableName>]['columns'][<fieldName>]['config'][<key>]`, see
    [TCA reference](https://docs.typo3.org/m/typo3/reference-tca/main/en-us/Columns/Index.html#columns-properties-config) for details.

    Not all configuration options can be overridden, the properties are restricted and depend on the
    [field type](https://docs.typo3.org/m/typo3/reference-tca/main/en-us/ColumnsConfig/Index.html#columns-types). The array
    `typo3/sysext/backend/Classes/Form/Utility/FormEngineUtility.php->$allowOverrideMatrix`
    within [FormEngine code](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/FormEngine/Index.html#FormEngine) defines details:

    **typo3/sysext/backend/Classes/Form/Utility/FormEngineUtility.php**

    ```php
    'input' => ['size', 'max', 'readOnly'],
    'number' => ['size', 'readOnly'],
    'email' => ['size', 'readOnly'],
    'link' => ['size', 'readOnly'],
    'password' => ['size', 'readOnly'],
    'datetime' => ['size', 'readOnly'],
    'color' => ['size', 'readOnly'],
    'uuid' => ['size', 'enableCopyToClipboard'],
    'text' => ['cols', 'rows', 'wrap', 'max', 'readOnly'],
    'json' => ['cols', 'rows', 'readOnly'],
    'check' => ['cols', 'readOnly'],
    'select' => ['size', 'autoSizeMax', 'maxitems', 'minitems', 'readOnly', 'treeConfig', 'fileFolderConfig'],
    'category' => ['size', 'maxitems', 'minitems', 'readOnly', 'treeConfig'],
    'group' => ['size', 'autoSizeMax', 'maxitems', 'minitems', 'readOnly', 'elementBrowserEntryPoints'],
    'folder' => ['size', 'autoSizeMax', 'maxitems', 'minitems', 'readOnly', 'elementBrowserEntryPoints'],
    'inline' => ['appearance', 'behaviour', 'foreign_label', 'foreign_selector', 'foreign_unique', 'maxitems', 'minitems', 'size', 'autoSizeMax', 'symmetric_label', 'readOnly'],
    'file' => ['appearance', 'behaviour', 'maxitems', 'minitems', 'readOnly'],
    'imageManipulation' => ['ratios', 'cropVariants'],
    ```

    The reason that not all properties can be changed is that
    internally, the [DataHandler](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/DataHandler/Database/Index.html#datahandler-basics) performs database
    operations which require finalized [TCA](https://docs.typo3.org/m/typo3/reference-tca/main/en-us/Index.html#start) definitions
    that are accessed without this TSconfig getting interpreted. This mismatch
    would then lead to inconsistencies.

    An `input` or `text` TCA field can *not* enable the
    [RTE](https://docs.typo3.org/c/typo3/cms-rte-ckeditor/main/en-us/Introduction/Index.html#introduction) via the
    `config.enableRichtext` option due to similar reasons in respect
    to the DataHandler.

    Also, if for example the `max` definition of a field is made
    larger than the TCA definition of that field, you may need to to change
    the file `ext_tables.sql` (see [ext_tables.sql](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ExtensionArchitecture/FileStructure/ExtTablesSql.html#ext-tables-sql))
    to adjust column definitions, especially when using the
    [Auto-generated structure](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ExtensionArchitecture/FileStructure/ExtTablesSql.html#auto-generated-db-structure).

    The property `config` is available for these levels:

    -   **table level, example:**

        `TCEFORM.tt_content.header.config.max`

    -   **table and record type level, example:**

        `TCEFORM.tt_content.header.types.textpic.config.max`

    -   **Flex form field level, example:**

        No current TYPO3 version allows to override the configuration of
        Flex form fields, even though this was previously documented here.
        This may change in future versions.

### config.treeConfig {#pagetsconfigtceformconfigtreeconfig}

-   **config.treeConfig**

    -   *Type:* int

    The `treeConfig` sub properties of [TCEFORM.config](https://docs.typo3.org/permalink/t3tsref:pagetsconfigtceformconfig@main) are dedicated to the TCA config type
    `select` with [renderType=selectTree](https://docs.typo3.org/m/typo3/reference-tca/main/en-us/ColumnsConfig/Type/Select/Tree/Index.html#columns-select-rendertype-selectTree). A couple of
    [treeConfig](https://docs.typo3.org/m/typo3/reference-tca/main/en-us/ColumnsConfig/Type/Select/Tree/Index.html#columns-select-properties-treeconfig) properties can be overriden on page TSconfig level, see their detailed description
    in the [TCA reference](https://docs.typo3.org/m/typo3/reference-tca/main/en-us/ColumnsConfig/Type/Select/Tree/Index.html#columns-select-properties-treeconfig):

    **EXT:site_package/Configuration/page.tsconfig**

    ```typoscript
    config.treeConfig.startingPoints = 1,42
    config.treeConfig.appearance.expandAll = 1
    config.treeConfig.appearance.maxLevels = 2
    config.treeConfig.appearance.nonSelectableLevels = 1

    ```

    This property is available for various levels:

    -   **table level, example:**

        `TCEFORM.tt_content.myField.config.treeConfig.startingPoints`

    -   **table and record type level, example:**

        `TCEFORM.tt_content.header.types.config.treeConfig.startingPoints`

    -   **Flex form field level, example:**

        No current TYPO3 version allows to override the configuration of
        Flex form fields, even though this was previously documented here.
        This may change in future versions.

### description {#tceform-description}

![A common input field in the TYPO3 backend](../Images/ManualScreenshots/Input1.png)

-   **description**

    -   *Type:* string

    This property sets or overrides the TCA property
    [TCA description](https://docs.typo3.org/m/typo3/reference-tca/main/en-us/Columns/Index.html#columns-properties-description), which allows to
    define a description for a TCA field, next to its label.

    **EXT:site_package/Configuration/page.tsconfig**

    ```typoscript
    TCEFORM.tt_content.header.description = override description
    ```

    As already known from other properties, this can also be configured for a
    specific language.

    **EXT:site_package/Configuration/page.tsconfig**

    ```typoscript
    TCEFORM.tt_content.header.description.de = override description for DE
    ```

    The option can be used on a per record type basis, too.

    **EXT:site_package/Configuration/page.tsconfig**

    ```typoscript
    TCEFORM.tt_content.header.types.textpic.description = override description for textpic
    ```

    Also referencing language labels is supported.

    **EXT:site_package/Configuration/page.tsconfig**

    ```typoscript
    TCEFORM.tt_content.header.description = LLL:my_extension.messages:override_description
    ```

### disabled {#tceform-disabled}

-   **disabled**

    -   *Type:* boolean

    If set, the field is not displayed in the backend form of the record.
    However, the field can still be set by other means. For example if
    this property is set:
    `TCEFORM.tt_content.colPos.disabled = 1` the **Column** field
    will not be displayed in the content elements form. The
    content element can still be moved to another column which internally also
    sets the field `colPos`. Fields with the TSconfig property
    `TCEFORM.<table>.<field>.disabled` therefore show the same
    behaviour as fields of the TCA type [passthrough](https://docs.typo3.org/m/typo3/reference-tca/main/en-us/ColumnsConfig/Type/Passthrough/Index.html#columns-passthrough).

    -   **table level, example:**

        `TCEFORM.tt_content.header.disabled`

    -   **table and record type level, example:**

        `TCEFORM.tt_content.header.types.textpic.disabled`

    -   **Flex form sheet level. If set, the entire tab is not rendered, example:**

        `TCEFORM.tt_content.pi_flexform.myext_pi1.sDEF.disabled`

        Where `sDEF` is the sheet name. For a description
        see the section [Applying properties to FlexForm fields](https://docs.typo3.org/permalink/t3tsref:tceformapplypropertiesflexform@main) on this page.

    -   **Flex form field level, example:**

        `TCEFORM.tt_content.pi_flexform.myext_pi1.sDEF.settings.myfield.disabled`

        Where `sDEF` is the sheet name. For a description
        see the section [Applying properties to FlexForm fields](https://docs.typo3.org/permalink/t3tsref:tceformapplypropertiesflexform@main) on this page.

#### Example: Disable editing of the page title {#tceform-disabled-example}

**EXT:site_package/Configuration/page.tsconfig**

```typoscript
TCEFORM.pages.title {
  # The title field of the pages table is not editable
  disabled = 1
}

```

### disableNoMatchingValueElement {#pageformenginedisablenomatchingelement}

-   **disableNoMatchingValueElement**

    -   *Type:* boolean

    This property applies only to items in [TCA type=select](https://docs.typo3.org/m/typo3/reference-tca/main/en-us/ColumnsConfig/Type/Select/Index.html#columns-select) fields.
    If a selector box value is not available among the options in the box, the default behavior
    of TYPO3 is to preserve the value and to show a label which warns about this special state:

    ![A missing selector box value is indicated by a warning message](../Images/ManualScreenshots/List/SelectInvalidValue.png)

    If disableNoMatchingValueElement is set, the element "INVALID VALUE" will not be added to the list.

    This property is available for various levels:

    -   **table level, example:**

        `TCEFORM.tt_content.header_layout.disableNoMatchingValueElement`

    -   **table and record type level, example:**

        `TCEFORM.tt_content.header_layout.types.textpic.disableNoMatchingValueElement`

    -   **Flex form field level, example:**

        `TCEFORM.tt_content.pi_flexform.myext_pi1.sDEF.settings.myfield.disableNoMatchingValueElement`

        Where `sDEF` is the sheet name. For a description
        see the section [Applying properties to FlexForm fields](https://docs.typo3.org/permalink/t3tsref:tceformapplypropertiesflexform@main) on this page.

#### Example: Disable "INVALID VALUE ..." label {#pageformenginedisablenomatchingelement-example}

**EXT:site_package/Configuration/page.tsconfig**

```typoscript
TCEFORM.pages.doktype {
  # "INVALID VALUE ..." label will never show up
  disableNoMatchingValueElement = 1
}

```

Now the selector box will default to the first element in the selector box:

![Instead of show a warning message the system choose the first element in the selector box](../Images/ManualScreenshots/List/SelectNoInvalidValue.png)

### fileFolderConfig {#filefolderconfig}

-   **fileFolderConfig**

    -   *Type:* array

    The special [fileFolder configuration options](https://docs.typo3.org/m/typo3/reference-tca/main/en-us/ColumnsConfig/Type/Select/Single/Index.html#columns-select-properties-fileFolderConfig)
    for TCA columns of type [TCA type=select](https://docs.typo3.org/m/typo3/reference-tca/main/en-us/ColumnsConfig/Type/Select/Index.html#columns-select) can
    be used to fill a select field with files (images / icons) from a defined
    folder.

    The `fileFolderConfig` TCA configuration can be overridden with page
    TSconfig, allowing administrators to use different folders or different file
    extensions, per site.

    The same sub properties as in the `fileFolderConfig` TCA configuration are
    available:

    **EXT:site_package/Configuration/page.tsconfig**

    ```typoscript
    fileFolderConfig {
      folder = 'EXT:styleguide/Resources/Public/Icons'
      allowedExtensions = 'svg'
      depth = 1
    }

    ```

    This property is available for various levels:

    -   **table level:**

        `TCEFORM.[tableName].[fieldName].fileFolderConfig.folder`

    -   **table and record type level:**

        `TCEFORM.[tableName].[fieldName].types.[typeName].fileFolderConfig.folder`

    -   **Flex form field level, example:**

        `TCEFORM.tt_content.pi_flexform.myext_pi1.sDEF.settings.myfield.fileFolderConfig.folder`

        Where `sDEF` is the sheet name. For a description
        see the section [Applying properties to FlexForm fields](https://docs.typo3.org/permalink/t3tsref:tceformapplypropertiesflexform@main) on this page.

### itemsProcFunc {#itemsprocfunc}

-   **itemsProcFunc**

    -   *Type:* custom

    This property applies only to items in [TCA type=select](https://docs.typo3.org/m/typo3/reference-tca/main/en-us/ColumnsConfig/Type/Select/Index.html#columns-select) fields. The properties of
    this key is passed on to the [itemsProcFunc](https://docs.typo3.org/m/typo3/reference-tca/main/en-us/ColumnsConfig/Type/Select/Single/Index.html#columns-select-properties-itemsprocfunc) in the
    parameter array by the key "TSconfig".

    This property is available for various levels:

    -   **table level:**

        `TCEFORM.[tableName].[fieldName].itemsProcFunc`

    -   **table and record type level:**

        `TCEFORM.[tableName].[fieldName].types.[typeName].itemsProcFunc`

    -   **Flex form field level, example:**

        `TCEFORM.tt_content.pi_flexform.myext_pi1.sDEF.settings.myfield.itemsProcFunc`

        Where `sDEF` is the sheet name. For a description
        see the section [Applying properties to FlexForm fields](https://docs.typo3.org/permalink/t3tsref:tceformapplypropertiesflexform@main) on this page.

### keepItems {#tceform-keepitems}

-   **keepItems**

    -   *Type:* list of values

    Change the list of items in [TCA type=select](https://docs.typo3.org/m/typo3/reference-tca/main/en-us/ColumnsConfig/Type/Select/Index.html#columns-select) fields. Using this property,
    all items except those defined here are removed.

    This property is available for various levels:

    -   **table level, example:**

        `TCEFORM.tt_content.header_layout.keepItems`

    -   **table and record type level, example:**

        `TCEFORM.tt_content.header_layout.types.textpic.keepItems`

    -   **Flex form field level, example:**

        `TCEFORM.tt_content.pi_flexform.myext_pi1.sDEF.settings.myfield.keepItems`

        Where `sDEF` is the sheet name. For a description
        see the section [Applying properties to FlexForm fields](https://docs.typo3.org/permalink/t3tsref:tceformapplypropertiesflexform@main) on this page.

#### Example: Show only standard and spacer pages {#tceform-keepitems-example}

**EXT:site_package/Configuration/page.tsconfig**

```typoscript
TCEFORM.pages.doktype {
  # Show only standard and "Spacer" page types
  keepItems = 1, 199
}

```

### label {#tceform-label}

-   **label**

    -   *Type:* plain text label or [label reference](https://docs.typo3.org/permalink/t3coreapi:label-reference)

    This allows you to enter alternative labels for any field. The value can be
    a plain text label or [label reference](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/Localization/Labels/Index.html#label-reference)
    to a localization file, the system will then look up the selected backend user language and tries
    to fetch the localized string if available. However, it is also possible to override these by
    appending the language key and hard setting a value, for example `label.de = Neuer Feldname`.

    This property is available for various levels:

    -   **table level, example:**

        `TCEFORM.[tableName].[fieldName].label`

    -   **table and record type level, example:**

        `TCEFORM.[tableName].[fieldName].types.[typeName].label`

    -   **Flex form field level, example:**

        `TCEFORM.tt_content.pi_flexform.myext_pi1.sDEF.settings.myfield.label`

        Where `sDEF` is the sheet name. For a description
        see the section [Applying properties to FlexForm fields](https://docs.typo3.org/permalink/t3tsref:tceformapplypropertiesflexform@main) on this page.

#### Example: Override the label of a field {#tceform-label-example}

**EXT:site_package/Configuration/page.tsconfig**

```typoscript
TCEFORM.pages.title {
  label = LLL:my_extension.messages:table.column
  label.default = New Label
  label.de = Neuer Feldname
}

```

### noMatchingValue_label {#tceform-nomatchingvalue-label}

-   **noMatchingValue_label**

    -   *Type:* plain text label or [label reference](https://docs.typo3.org/permalink/t3coreapi:label-reference)

    This property applies only to items in [TCA type=select](https://docs.typo3.org/m/typo3/reference-tca/main/en-us/ColumnsConfig/Type/Select/Index.html#columns-select) fields, it allows defining
    a different label of the [noMatchingValue](https://docs.typo3.org/permalink/t3tsref:pageformenginedisablenomatchingelement@main) element.

    It is possible to use the placeholder `%s` to insert the value. If the property is set to empty,
    the label will be blank.

    This property is available for various levels:

    -   **table level, example:**

        `TCEFORM.tt_content.header_layout.noMatchingValue_label`

    -   **table and record type level, example:**

        `TCEFORM.tt_content.header_layout.types.textpic.noMatchingValue_label`

    -   **Flex form field level, example:**

        `TCEFORM.tt_content.pi_flexform.myext_pi1.sDEF.settings.myfield.noMatchingValue_label`

        Where `sDEF` is the sheet name. For a description
        see the section [Applying properties to FlexForm fields](https://docs.typo3.org/permalink/t3tsref:tceformapplypropertiesflexform@main) on this page.

#### Example: Replace "INVALID VALUE ..." label with another string {#tceform-nomatchingvalue-label-example}

**EXT:site_package/Configuration/page.tsconfig**

```typoscript
TCEFORM.pages.doktype {
  # Different "INVALID VALUE ..." label:
  noMatchingValue_label = VALUE "%s" was not available!
}

```

![An invalid selector box value is indicated by a warning message](../Images/ManualScreenshots/List/SelectInvalidValueDifferentLabel.png)

### removeItems {#tceform-removeitems}

-   **removeItems**

    -   *Type:* list of values

    Change the list of items in [TCA type=select](https://docs.typo3.org/m/typo3/reference-tca/main/en-us/ColumnsConfig/Type/Select/Index.html#columns-select) fields. Using this property,
    single items can be removed, leaving all others.

    This property is available for various levels:

    -   **table level, example:**

        `TCEFORM.tt_content.header_layout.removeItems`

    -   **table and record type level, example:**

        `TCEFORM.tt_content.header_layout.types.textpic.removeItems`

    -   **Flex form field level, example:**

        `TCEFORM.tt_content.pi_flexform.myext_pi1.sDEF.settings.myfield.removeItems`

        Where `sDEF` is the sheet name. For a description
        see the section [Applying properties to FlexForm fields](https://docs.typo3.org/permalink/t3tsref:tceformapplypropertiesflexform@main) on this page.

#### Example: Remove "Recycler" and "Spacer" page types {#tceform-removeitems-example}

**EXT:site_package/Configuration/page.tsconfig**

```typoscript
TCEFORM.pages.doktype {
  # Remove "Recycler" and "Spacer" page types
  removeItems = 199, 255
}

```

### sheetDescription {#tceform-sheetdescription}

-   **sheetDescription**

    -   *Type:* plain text label or [label reference](https://docs.typo3.org/permalink/t3coreapi:label-reference)

    Specifies a description for the sheet shown in the FlexForm.

    This property is only available on flex form sheet level, for example
    `TCEFORM.tt_content.pi_flexform.myext_pi1.sDEF.sheetDescription`.

    Where `sDEF` is the sheet name. For a description
    see the section [Applying properties to FlexForm fields](https://docs.typo3.org/permalink/t3tsref:tceformapplypropertiesflexform@main) on this page.

### sheetShortDescr {#tceform-sheetshortdescr}

-   **sheetShortDescr**

    -   *Type:* plain text label or [label reference](https://docs.typo3.org/permalink/t3coreapi:label-reference)

    Specifies a short description of the sheet used as link title in the tab-menu.

    This property is only available on flex form sheet level, example:
    `TCEFORM.tt_content.pi_flexform.myext_pi1.sDEF.sheetShortDescription`.

    Where `sDEF` is the sheet name. For a description
    see the section [Applying properties to FlexForm fields](https://docs.typo3.org/permalink/t3tsref:tceformapplypropertiesflexform@main) on this page.

### sheetTitle {#tceform-sheettitle}

-   **sheetTitle**

    -   *Type:* plain text label or [label reference](https://docs.typo3.org/permalink/t3coreapi:label-reference)

    Set the title of the sheet / tab in a FlexForm configuration.

    This property is only available on flex form sheet level, example:
    `TCEFORM.tt_content.pi_flexform.myext_pi1.sDEF.sheetTitle`.

    Where `sDEF` is the sheet name. For a description
    see the section [Applying properties to FlexForm fields](https://docs.typo3.org/permalink/t3tsref:tceformapplypropertiesflexform@main) on this page.

#### Example: Rename the first tab of the FlexForm plugin {#tceform-sheettitle-example}

**EXT:site_package/Configuration/page.tsconfig**

```typoscript
TCEFORM.tt_content.pi_flexform.myext_pi1.sDEF {
  # Rename the first tab of the FlexForm plug-in configuration
  sheetTitle = LLL:my_extension.messages:tt_content.pi_flexform.myext_pi1.sDEF
}

```

### suggest {#pagetceformsuggest}

Configuration of the suggest wizard that is available and often enabled
for [TCA type=group](https://docs.typo3.org/m/typo3/reference-tca/main/en-us/ColumnsConfig/Type/Group/Index.html#columns-group) fields.

![A configured suggest wizard](../Images/ManualScreenshots/List/TcaTypeGroupSuggest.png)

The properties listed below are available on various levels. A more specific setting overrides
a less specific one:

-   **Configuration of all suggest wizards in all tables for all target query tables:**

    `TCEFORM.suggest.default`

-   **Configuration of all suggest wizards in all tables looking up records from a specific target table:**

    `TCEFORM.suggest.[queryTable]`

-   **Configuration of one suggest wizard field in one table for all target query tables:**

    `TCEFORM.[tableName].[fieldName].suggest.default`

-   **Configuration of one suggest wizard field in one table for a specific target query table:**

    `TCEFORM.[tableName].[fieldName].suggest.[queryTable]`

-   **Configuration of one suggest wizard field in a flex form field of one table for all target query tables:**

    `TCEFORM.[tableName].[fieldName].[dataStructureKey].[sheetName].[flexFieldName].suggest.default`

-   **Configuration of one suggest wizard field in a flex form field of one table for a specific target query table:**

    `TCEFORM.[tableName].[fieldName].[dataStructureKey].[sheetName].[flexFieldName].suggest.[queryTable]`

#### suggest.additionalSearchFields {#tceform-suggest-additionalsearchfields}

-   **suggest.additionalSearchFields**

    -   *Type:* string

    Comma-separated list of fields the suggest wizard should also search in. By default the wizard looks only in the
    fields listed in the [label](https://docs.typo3.org/m/typo3/reference-tca/main/en-us/Ctrl/Index.html#ctrl-reference-label) and [label_alt](https://docs.typo3.org/m/typo3/reference-tca/main/en-us/Ctrl/Index.html#ctrl-reference-label-alt)
    of TCA [ctrl properties](https://docs.typo3.org/m/typo3/reference-tca/main/en-us/Ctrl/Index.html#ctrl-reference).

#### suggest.addWhere {#tceform-suggest-addwhere}

-   **suggest.addWhere**

    -   *Type:* string

    Additional WHERE clause (with AND at the beginning).

    Markers possible for replacement:

    -   ###THIS_UID###
    -   ###CURRENT_PID###
    -   [###PAGE_TSCONFIG_ID###](https://docs.typo3.org/permalink/t3tsref:tceform-page-tsconfig-id@main)
    -   [###PAGE_TSCONFIG_IDLIST###](https://docs.typo3.org/permalink/t3tsref:tceform-page-tsconfig-idlist@main)
    -   [###PAGE_TSCONFIG_STR###](https://docs.typo3.org/permalink/t3tsref:tceform-page-tsconfig-str@main)

##### Example: limit storage_pid to the children of a certain page {#tceform-suggest-addwhere-example}

**EXT:site_package/Configuration/page.tsconfig**

```typoscript
TCEFORM.pages.storage_pid.suggest.default {
    addWhere = AND pages.pid=###PAGE_TSCONFIG_ID###
}
```

#### suggest.cssClass {#tceform-suggest-cssclass}

-   **suggest.cssClass**

    -   *Type:* string

    Add a CSS class to every list item of the result list.

    **EXT:site_package/Configuration/page.tsconfig**

    ```typoscript
    TCEFORM.suggest.pages {
      # Configure all suggest wizards which list records from table "pages"
      # to add the CSS class "pages" to every list item of the result list.
      cssClass = pages
    }

    ```

#### suggest.hide {#tceform-suggest-hide}

-   **suggest.hide**

    -   *Type:* boolean

    Hide the suggest field. Works only for single fields.

##### Example: Hide the suggest field for the storage_pid {#tceform-suggest-hide-example}

**EXT:site_package/Configuration/page.tsconfig**

```typoscript
TCEFORM.pages.storage_pid.suggest.default {
    hide = 1
}
```

#### suggest.maxPathTitleLength {#tceform-suggest-maxpathtitlelength}

-   **suggest.maxPathTitleLength**

    -   *Type:* positive integer

    Maximum number of characters to display when a path element is too long.

##### Example: Limit the suggest field to 30 characters {#tceform-suggest-maxpathtitlelength-example}

**EXT:site_package/Configuration/page.tsconfig**

```typoscript
TCEFORM.suggest.default {
    maxPathTitleLength = 30
}
```

#### suggest.minimumCharacters {#tceform-suggest-minimumcharacters}

-   **suggest.minimumCharacters**

    -   *Type:* positive integer
    -   *Default:* 2

    Minimum number of characters needed to start the search. Works only for single fields.

##### Example: Start the suggest search after 3 characters {#tceform-suggest-minimumcharacters-example}

**EXT:site_package/Configuration/page.tsconfig**

```typoscript
TCEFORM.pages.storage_pid.suggest.default {
    minimumCharacters = 3
}
```

#### suggest.pidDepth {#tceform-suggest-piddepth}

-   **suggest.pidDepth**

    -   *Type:* positive integer

    Expand pidList by this number of levels. Only has an effect, if pidList has a value.

##### Example: Set search depth for suggest field {#tceform-suggest-piddepth-example}

**EXT:site_package/Configuration/page.tsconfig**

```typoscript
TCEFORM.suggest.default {
  pidList = 6,7
  pidDepth = 4
}

```

#### suggest.pidList {#tceform-suggest-pidlist}

-   **suggest.pidList**

    -   *Type:* list of values

    Limit the search to certain pages (and their subpages). When pidList is empty all pages will be included
    in the search as long as the backend user is allowed to see them.

##### Example: Limit suggest search to records on certain pages {#tceform-suggest-pidlist-example}

**EXT:site_package/Configuration/page.tsconfig**

```typoscript
TCEFORM.suggest.default {
  # sets the pidList for a suggest fields in all tables
  pidList = 1,2,3,45
}

```

#### suggest.receiverClass {#tceform-suggest-receiverclass}

-   **suggest.receiverClass**

    -   *Type:* Fully Qualified PHP class name
    -   *Default:* `\TYPO3\CMS\Backend\Form\Element\SuggestDefaultReceiver`

    PHP class alternative receiver class - the file that holds the class should be derived
    from `\TYPO3\CMS\Backend\Form\Element\SuggestDefaultReceiver`.

#### suggest.renderFunc {#tceform-suggest-renderfunc}

-   **suggest.renderFunc**

    -   *Type:* string

    > [!IMPORTANT]
    > <!-- TODO: no Markdown rendering for "versionchanged" -->
    >
    > PHP functions called via TypoScript must now use the PHP
    > attribute #[AsAllowedCallable]
    > (\TYPO3\CMS\Core\Attribute\AsAllowedCallable).

    User function to manipulate the displayed records in the result.

#### suggest.searchCondition {#tceform-suggest-searchcondition}

-   **suggest.searchCondition**

    -   *Type:* string

    Additional WHERE clause (no AND needed to prepend).

##### Example: Only search on pages with doktype=1 {#tceform-suggest-searchcondition-example}

**EXT:site_package/Configuration/page.tsconfig**

```typoscript
TCEFORM.pages.storage_pid.suggest.default {
  # Configure the suggest wizard for the field "storage_pid" in table "pages"
  # to search only for pages with doktype=1
  searchCondition = doktype=1
}

```

#### suggest.searchWholePhrase {#tceform-suggest-searchwholephrase}

-   **suggest.searchWholePhrase**

    -   *Type:* boolean
    -   *Default:* 0

    Whether to do a `LIKE=%mystring%` (searchWholePhrase = 1) or a
    `LIKE=mystring%` (to do a real find as you type).

##### Example: Search only for whole phrases {#tceform-suggest-searchwholephrase-example}

**EXT:site_package/Configuration/page.tsconfig**

```typoscript
TCEFORM.pages.storage_pid.suggest.default {
  # Configure the suggest wizard for the field "storage_pid" in table "pages" to search only for whole phrases
  searchWholePhrase = 1
}

```
