SplitProcessor

The SplitProcessor allows to split values separated with a delimiter from a single database field. The result is an array that can be iterated over. Whitespaces are automatically trimmed.

Options

if
Required

false

Data type

if condition

Default

''

Only if the condition is met the data processor is executed.

fieldName
Required

true

Data type

string / stdWrap

Default

''

Name of the field to be used.

as
Required

false

Data type

string

Default

defaults to the fieldName

The variable name to be used in the Fluid template.

delimiter
Required

false

Data type

string / stdWrap

Default

Line Feed

Example

","

The field delimiter, a character separating the values.

filterIntegers
Required

false

Data type

boolean / stdWrap

Default

0

Example

1

If set to 1, all values are being cast to int.

filterUnique
Required

false

Data type

boolean / stdWrap

Default

0

Example

1

If set to 1, all duplicates will be removed.

removeEmptyEntries
Required

false

Data type

boolean / stdWrap

Default

0

Example

1

If set to 1, all empty values will be removed.

Example: Splitting a URL

Please see also About the examples.

TypoScript

With the help of the SplitProcessor the following scenario is possible:

EXT:examples/Configuration/TypoScript/DataProcessors/Processors/SplitProcessor.typoscript
tt_content {
    examples_dataprocsplit =< lib.contentElement
    examples_dataprocsplit {
        templateName = DataProcSplit
        # Before TYPO3 v12.1 you have to specify the fully-qualified class name of the processor
        # dataProcessing.10 = TYPO3\CMS\Frontend\DataProcessing\SplitProcessor
        # Since TYPO3 v12.1 one can also use the available alias
        dataProcessing.10 = split
        dataProcessing.10 {
            as = urlParts
            delimiter = /
            fieldName = header_link
            removeEmptyEntries = 0
            filterIntegers = 0
            filterUnique = 0
        }
    }
}

New in version 12.1: One can use the alias split instead of the fully-qualified class name \TYPO3\CMS\Frontend\DataProcessing\SplitProcessor.

The Fluid template

In the Fluid template then iterate over the split data:

EXT:examples/Resources/Private/Templates/ContentElements/DataProcSplit.html
<html data-namespace-typo3-fluid="true" xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers">
   <h2>Data in variable urlParts</h2>
   <f:debug inline="true">{urlParts}</f:debug>

   <h2>Output</h2>
   <f:for each="{urlParts}" as="part" iteration="i">
      <span class="text-primary">{part}</span>
      <f:if condition="{i.isLast} == false">/</f:if>
   </f:for>

</html>

Output

The array now contains the split strings:

../../../_images/SplitProcessor.png