Usage

Usage example with TYPO3 Fluid Styled Content.

The following code is just an example. If you wish to use it, it should be placed inside your own extension or site distribution.

Add the button to the header field

Configuration/TCA/Overrides/tt_content.php
$GLOBALS['TCA']['tt_content']['columns']['header']['config'] = array_merge_recursive(
    $GLOBALS['TCA']['tt_content']['columns']['header']['config'],
    [
        'fieldControl' => [
            'importControl' => [
                'renderType' => 'addIconTextField',
            ],
        ],
    ]
);
Copied!

Add a typoscript setting

constants.typoscript
plugin.tx_myext {
    settings {
        allowedHeaderTags = <sub><sup><br>
    }
}
Copied!
setup.typoscript
lib.contentElement {
    settings {
        allowedHeaderTags = {$plugin.tx_myext.settings.allowedHeaderTags}
    }
}
Copied!

Allow the tags to be rendered by Fluid

When we have the setting in typoscript, we can access it in fluid and pass it to the stripTags ViewHelper

<f:format.stripTags allowedTags="{settings.allowedHeaderTags}">{header}</f:format.stripTags>
Copied!

Example: Override header partial

Resources/Private/Partials/Header/Header.html
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<f:if condition="{header}">
    <f:switch expression="{layout}">
        <f:case value="1">
            <h1 class="{positionClass}">
                <f:link.typolink parameter="{link}"><f:format.stripTags allowedTags="{settings.allowedHeaderTags}">{header}</f:format.stripTags></f:link.typolink>
            </h1>
        </f:case>
        <f:case value="2">
            <h2 class="{positionClass}">
                <f:link.typolink parameter="{link}"><f:format.stripTags allowedTags="{settings.allowedHeaderTags}">{header}</f:format.stripTags></f:link.typolink>            </h2>
        </f:case>
        <f:case value="3">
            <h3 class="{positionClass}">
                <f:link.typolink parameter="{link}"><f:format.stripTags allowedTags="{settings.allowedHeaderTags}">{header}</f:format.stripTags></f:link.typolink>            </h3>
        </f:case>
        <f:case value="4">
            <h4 class="{positionClass}">
                <f:link.typolink parameter="{link}"><f:format.stripTags allowedTags="{settings.allowedHeaderTags}">{header}</f:format.stripTags></f:link.typolink>            </h4>
        </f:case>
        <f:case value="5">
            <h5 class="{positionClass}">
                <f:link.typolink parameter="{link}"><f:format.stripTags allowedTags="{settings.allowedHeaderTags}">{header}</f:format.stripTags></f:link.typolink>            </h5>
        </f:case>
        <f:case value="6">
            <h6 class="{positionClass}">
                <f:link.typolink parameter="{link}"><f:format.stripTags allowedTags="{settings.allowedHeaderTags}">{header}</f:format.stripTags></f:link.typolink>            </h6>
        </f:case>
        <f:case value="100">
            <f:comment> -- do not show header -- </f:comment>
        </f:case>
        <f:defaultCase>
            <f:if condition="{default}">
                <f:render partial="Header/Header" arguments="{
                    header: header,
                    layout: default,
                    positionClass: positionClass,
                    link: link}" />
            </f:if>
        </f:defaultCase>
    </f:switch>
</f:if>
</html>
Copied!