---
title: "Data processors"
manual: "TypoScript Explained"
version: "main"
permalink: "https://docs.typo3.org/permalink/t3tsref:dataprocessing@main"
source: "DataProcessing/Index.rst"
rendered: "2026-09-19T06:55:14+00:00"
---

# Data processors {#dataprocessing}

[dataProcessing](https://docs.typo3.org/permalink/t3tsref:fluidtemplate-dataprocessing@main) is a property of
[FLUIDTEMPLATE](https://docs.typo3.org/permalink/t3tsref:cobj-fluidtemplate@main) and [PAGEVIEW](https://docs.typo3.org/permalink/t3tsref:cobj-pageview@main).

The property adds one or multiple processors to manipulate the `$data`
variable of the currently rendered content object, like tt_content or page.
The sub-property `dataProcessing.options` can be used to pass
parameters to the processor class.

There are several data processors available to allow flexible processing,
for example for comma-separated values, related files or related records.

-   [comma-separated-value](https://docs.typo3.org/permalink/t3tsref:comma-separated-value-data-processor@main)
-   [database-query](https://docs.typo3.org/permalink/t3tsref:database-query-data-processor@main)
-   [files](https://docs.typo3.org/permalink/t3tsref:files-data-processor@main)
-   [flex-form](https://docs.typo3.org/permalink/t3tsref:flex-form-data-processor@main)
-   [gallery](https://docs.typo3.org/permalink/t3tsref:gallery-data-processor@main)
-   [language-menu](https://docs.typo3.org/permalink/t3tsref:language-menu-data-processor@main)
-   [menu](https://docs.typo3.org/permalink/t3tsref:menu-data-processor@main)
    -   [Browse](https://docs.typo3.org/permalink/t3tsref:browse-navigation-previous-and-next-links@main)
    -   [Categories](https://docs.typo3.org/permalink/t3tsref:categories@main)
    -   [Directory](https://docs.typo3.org/permalink/t3tsref:directory-menu-menu-of-subpages@main)
    -   [Keywords](https://docs.typo3.org/permalink/t3tsref:keywords-menu-of-related-pages@main)
    -   [Language](https://docs.typo3.org/permalink/t3tsref:pure-typoscript-language-menu-for-backward-compatibility@main)
    -   [List](https://docs.typo3.org/permalink/t3tsref:list-menu@main)
    -   [Rootline / Breadcrumb](https://docs.typo3.org/permalink/t3tsref:rootline-breadcrumb-menu@main)
    -   [Updated](https://docs.typo3.org/permalink/t3tsref:updated-hmenu@main)
    -   [Userfunction](https://docs.typo3.org/permalink/t3tsref:user-function-menu-for-backward-compatibility@main)
-   [page-content](https://docs.typo3.org/permalink/t3tsref:page-content-data-processor@main)
-   [record-transformation](https://docs.typo3.org/permalink/t3tsref:record-transformation-data-processor@main)
-   [site](https://docs.typo3.org/permalink/t3tsref:site-data-processor@main)
-   [site-language](https://docs.typo3.org/permalink/t3tsref:site-language-data-processor@main)
-   [split](https://docs.typo3.org/permalink/t3tsref:split-data-processor@main)
-   [Custom data processors](https://docs.typo3.org/permalink/t3tsref:custom-data-processors@main)

## About the examples {#dataprocessing-about-examples}

All examples listed here can be found in the TYPO3 Documentation Team
extension [examples](https://extensions.typo3.org/extension/examples/).

Once the extension t3docs/examples is installed the examples are available
as content elements:

![](../Images/ManualScreenshots/DataProcessors.png)

All examples listing here depend on
[Create a custom content element type (CType)](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/ContentElements/AddingYourOwnContentElements.html#adding-your-own-content-elements).  Data processors can
also be used in rendering page templates. In this case TypoScript context
would be the page record and all fields of the `pages` table
are available.

All examples base on `lib.contentElement`, which is provided by
the system extension [fluid_styled_content](https://docs.typo3.org/c/typo3/cms-fluid-styled-content/main/en-us/Index.html).

In this system extension it is defined as follows:

**EXT:site_package/Configuration/Sets/Main/setup.typoscript**

```typoscript
lib.contentElement >
lib.contentElement = FLUIDTEMPLATE
lib.contentElement {
  templateName = Default
  // ...
}

```

The extension `examples` also sets the paths to the additional templates:

**EXT:examples/Configuration/TypoScript/DataProcessors/General.typoscript**

```typoscript
lib.contentElement {
  templateRootPaths.200 = EXT:examples/Resources/Private/Templates/ContentElements/
  partialRootPaths.200 = EXT:examples/Resources/Private/Partials/ContentElements/
  layoutRootPaths.200 = EXT:examples/Resources/Private/Layout/
}

```
