---
title: "web_layout"
manual: "TypoScript Explained"
version: "main"
permalink: "https://docs.typo3.org/permalink/t3tsref:pagewebpage@main"
source: "PageTsconfig/Mod/WebLayout.rst"
rendered: "2026-09-18T06:55:17+00:00"
---

# web_layout {#web-layout}

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

The main module Web has been renamed to Content.
See Feature: #107628 - Improved backend module naming and structure

Configuration options of the **Content > Layout** module.

-   [allowInconsistentLanguageHandling](https://docs.typo3.org/permalink/t3tsref:allowinconsistentlanguagehandling@main)
-   [BackendLayouts](https://docs.typo3.org/permalink/t3tsref:backendlayouts@main)
-   [defaultLanguageLabel](https://docs.typo3.org/permalink/t3tsref:defaultlanguagelabel@main)
-   [defLangBinding](https://docs.typo3.org/permalink/t3tsref:deflangbinding@main)
-   [hideRestrictedCols](https://docs.typo3.org/permalink/t3tsref:hiderestrictedcols@main)
-   [localization.enableCopy](https://docs.typo3.org/permalink/t3tsref:localization-enablecopy@main)
-   [localization.enableTranslate](https://docs.typo3.org/permalink/t3tsref:localization-enabletranslate@main)
-   [menu.functions](https://docs.typo3.org/permalink/t3tsref:menu-functions@main)
-   [noCreateRecordsLink](https://docs.typo3.org/permalink/t3tsref:nocreaterecordslink@main)
-   [tt_content.preview](https://docs.typo3.org/permalink/t3tsref:tt-content-preview@main)

## allowInconsistentLanguageHandling {#allowinconsistentlanguagehandling}

-   **allowInconsistentLanguageHandling**

    -   *Type:* boolean

    By default, TYPO3 will not allow you to mix translated content and
    independent content in the **Content > Layout** module.
    Content elements violating this behavior will be marked in the
    **Content > Layout** module and there is no UI control (yet)
    allowing you to create independent content elements in a given language.

    If you want to go back to the old, inconsistent behavior, you can toggle it back on using this switch.

### Example: Allow inconsistent language modes {#example-allow-inconsistent-language-modes}

Allows to set TYPO3s **Content > Layout** module back to inconsistent
language mode:

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

```typoscript
mod.web_layout.allowInconsistentLanguageHandling = 1
```

## BackendLayouts {#backendlayouts}

-   **BackendLayouts**

    -   *Type:* array
    -   *no-index:* 1

    Backend Layouts were initially introduced in order to customize the view of
    the **Page** module in TYPO3 Backend for a page, but has then since grown also in
    Frontend rendering to select for example Fluid template files via TypoScript for a page,
    commonly used via [data:pagelayout](https://docs.typo3.org/permalink/t3tsref:confval-data-pagelayout@main).

    See also the dedicated chapter [Backend layouts](https://docs.typo3.org/permalink/t3tsref:backend-layouts@main).

### Example: Define a backend layout {#example-define-a-backend-layout}

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

```typoscript
mod.web_layout.BackendLayouts {
  exampleKey {
    title = Example
    icon = EXT:example_extension/Resources/Public/Images/BackendLayouts/default.gif
    config {
      backend_layout {
        colCount = 1
        rowCount = 2
        rows {
          1 {
            columns {
              1 {
                name = frontend.ttc:colPos.I.3
                colPos = 3
                colspan = 1
                allowedContentTypes = header, tx_myextension_stage
              }
            }
          }
          2 {
            columns {
              1 {
                name = Main
                colPos = 0
                colspan = 1
                identifier = main
                disallowedContentTypes  = tx_myextension_stage, textmedia
              }
            }
          }
        }
      }
    }
  }
}

```

## defaultLanguageLabel {#defaultlanguagelabel}

> [!WARNING]
> Note that this option has largely been superseded by site configuration since **TYPO3 v10** and will only
> work in the Backend for a "NullSite". For instance, a global sysfolder in the page tree without an
> attached site configuration. Once a page tree has a site configuration, the default language label is
> set from the site configuration's language settings and this option will have no effect at all.

-   **defaultLanguageLabel**

    -   *Type:* string

    Alternate label for "Default" when language labels are shown in the interface.

    Overrides the same property from [mod.SHARED](https://docs.typo3.org/permalink/t3tsref:pagetsconfigshareddefaultlanguagelabel@main) if set.

## defLangBinding {#deflangbinding}

-   **defLangBinding**

    -   *Type:* boolean
    -   *Default:* 1

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

    Is not evaluated anymore. Editors will now always see the content
    elements next to each other within the Content > Layout
    module, when in language comparison mode.If set, translations of content elements are bound to the default record in the display. This means that
    within each column with content elements any translation found for exactly the shown default content
    element will be shown in the language column next to.

    This display mode should be used depending on how the frontend is configured to display localization.
    The frontend must display localized pages by selecting the default content elements and for each
    one overlay with a possible translation if found.

## hideRestrictedCols {#hiderestrictedcols}

-   **hideRestrictedCols**

    -   *Type:* boolean
    -   *Default:* false

    If activated, only columns will be shown in the backend that the editor is
    allowed to access. All columns with access restriction are hidden in that case.

    By default columns with restricted access are rendered with a message
    telling *that* the user doesn't have access. This may be useless and
    distracting or look repelling. Instead, all columns an editor doesn't have
    access to can be hidden:

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

    ```typoscript
    mod.web_layout.hideRestrictedCols = 1
    ```

    > [!WARNING]
    > **Attention**
    >
    > This setting will break your layout if you are using backend layouts.

## localization.enableCopy {#localization-enablecopy}

-   **localization.enableCopy**

    -   *Type:* boolean
    -   *Default:* 1

    Enables the creation of copies of content elements into languages in the translation wizard ("free mode").

### Example: Disable free mode button for localization {#example-disable-free-mode-button-for-localization}

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

```typoscript
mod.web_layout {
    localization.enableCopy = 0
}
```

## localization.enableTranslate {#localization-enabletranslate}

-   **localization.enableTranslate**

    -   *Type:* boolean
    -   *Default:* 1

    Enables simple translations of content elements in the translation wizard ("connected mode").

### Example: Disable "connected mode" button for translation {#example-disable-connected-mode-button-for-translation}

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

```typoscript
mod.web_layout {
    localization.enableTranslate = 0
}
```

## menu.functions {#menu-functions}

-   **menu.functions**

    -   *Type:* array

    Disable elements of the "Function selector" in the document header of the module.

    ![The function menu of the Content Layout module](../../Images/ManualScreenshots/Page/FunctionMenuPageModule.png)

    The function keys are numerical:

    -   **Columns**

        1

    -   **Languages**

        2

    > [!WARNING]
    > Blinding Function Menu items is not hardcore access control! All it
    > does is hide the possibility of accessing that module functionality
    > from the interface. It might be possible for users to hack their way
    > around it and access the functionality anyways. You should use the
    > option of blinding elements mostly to remove otherwise distracting options.

### Example: Disable "Languages" from the function menu {#example-disable-languages-from-the-function-menu}

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

```typoscript
# Disables "Languages" from function menu
mod.web_layout.menu.functions {
  2 = 0
}

```

## noCreateRecordsLink {#nocreaterecordslink}

-   **noCreateRecordsLink**

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

    If set, the link in the bottom of the page, "Create new record", is hidden.

## tt_content.preview {#tt-content-preview}

-   **tt_content.preview**

    -   *Type:* boolean

    It is possible to render previews of your own content elements in the
    **Content > Layout** module.

    By referencing a Fluid template you can create a visual representation of your content element,
    making it easier for an editor to understand what is going on on the page.

    The syntax is as follows:

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

    ```typoscript
    mod.web_layout.tt_content.preview.myextension_plugin = EXT:site_mysite/Resources/Private/Templates/Preview/ExamplePlugin.fluid.html
    ```

    This way you can even switch between previews for your plugins by supplying the CType.

    > [!NOTE]
    > This only works if the registered preview renderer for the content type
    > uses Fluid rendering and the rendering is not overridden by using
    > an event listener for the event `\TYPO3\CMS\Backend\View\Event\PageContentPreviewRenderingEvent`.
    >
    > Have a look at `\TYPO3\CMS\Backend\Preview\StandardContentPreviewRenderer`
    > and the various methods for customizing the preview rendering:
    >
    > 1.  [Register a preview renderer](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/ContentElements/CustomBackendPreview.html#ConfigureCE-Preview)
    > 1.  Register an event listener for [PageContentPreviewRenderingEvent](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/Events/Events/Backend/PageContentPreviewRenderingEvent.html#PageContentPreviewRenderingEvent)
    >
    > For checking for event listeners, see the list
    > **System > Configuration > Event Listeners (PSR-14)** (available with installed EXT:lowlevel).

### Example: Define previews for custom content elements {#example-define-previews-for-custom-content-elements}

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

```typoscript
mod.web_layout.tt_content {
  preview.custom_ce = EXT:site_mysite/Resources/Private/Templates/Preview/CustomCe.fluid.html
  preview.table = EXT:site_mysite/Resources/Private/Templates/Preview/Table.fluid.html
  preview.tx_news_pi1 = EXT:site_mysite/Resources/Private/Templates/Preview/TxNews.fluid.html
}

```

-   [Backend layouts](https://docs.typo3.org/permalink/t3tsref:backend-layouts-1@main)
