Skip to content

[!!!][TASK] Remove default parseFunc configuration for FSC #1319

@TYPO3IncTeam

Description

@TYPO3IncTeam

ℹ️ View this commit on Github
👥 Authored by Benni Mack benni@typo3.org
✔️ Merged by Garvin Hicking garvin@hick.ing

Commit message

[!!!][TASK] Remove default parseFunc configuration for FSC

Since TYPO3 v13 we have the most basic parseFunc
and parseFunc_RTE configured available everywhere
for Backend and Frontend in EXT:frontend/ext_localconf.php

For this reason, some double options and outdated settings
for web development within Fluid Styled Content have been
removed.

It should be debated if the default lib.ParseFunc_RTE should
add the

element.

In addition, allowTags is completely gone now.
"allowTags := addToList(wbr)" will not work properly anymore,
so we need to write this down.

Resolves: #107438
Releases: main
Change-Id: If3c0255b12193e93ae47be11d579916e0cb084e8
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/89326
Reviewed-by: Garvin Hicking garvin@hick.ing
Tested-by: Georg Ringer georg.ringer@gmail.com
Tested-by: core-ci typo3@b13.com
Tested-by: Garvin Hicking garvin@hick.ing
Reviewed-by: Georg Ringer georg.ringer@gmail.com

➕ Added files

14.0/Breaking-107438-DefaultParseFuncConfigurationForFluidStyledContentRemoved.rst
..  include:: /Includes.rst.txt

..  _breaking-107438-1736592000:

============================================================================
Breaking: #107438 - Default parseFunc configuration for Fluid Styled Content
============================================================================

See :issue:`107438`

Description
===========

Since TYPO3 v13, the most basic `lib.parseFunc` and `lib.parseFunc_RTE`
configuration is available at any time in :file:`EXT:frontend/ext_localconf.php`.

The default parseFunc configuration that was previously provided by
`EXT:fluid_styled_content` has been removed to avoid duplicate settings
and outdated configurations. This unifies the parseFunc behavior across
both EXT:frontend and EXT:fluid_styled_content.

The `allowTags` syntax is no longer set by default, as HTML sanitization
is handled by the htmlSanitizer properly for some time. All HTML tags are
now allowed by default to appear in frontend output, with the htmlSanitizer
controlling which tags and attributes are permitted.

Note that the `allowTags` directive itself is not removed. It can still be
set to restrict frontend output.

The conceptual idea is: The backend (RTE and its htmlParser/Processing) performs
scrubbing of unwanted content already, and controls what is stored as content. The
frontend output (parseFunc) should only further restrict output via `allowTags` in
cases where the content might come from outside sources (or maybe Extbase frontend handling).

Impact
======

Custom TypoScript configurations using `allowTags` syntax will no longer
work as expected. Specifically:

- `allowTags := addToList(wbr)` will not properly add the `wbr` tag anymore,
  but instead would restrict allowed tags to ONLY `wbr`.
- Default CSS classes on HTML elements (like `<table class="contenttable">`)
  are no longer automatically added by parseFunc configuration
- The parseFunc configuration in EXT:fluid_styled_content no longer provides
  custom link handling options like `extTarget` and `keep` parameters

Affected installations
======================

TYPO3 installations that use:

- Custom TypoScript configurations with `allowTags` syntax that relies on the
  former default configuration
- Extensions or sites relying on the **specific** parseFunc configuration
  previously provided by EXT:fluid_styled_content
- Custom configurations expecting automatic CSS class additions to HTML elements
- Sites depending on specific external link handling behavior from FSC parseFunc


Migration
=========

If you need to allow specific HTML tags, fully configure the `allowTags`
option without relying on prior default configuration:

**Before (no longer working):**

..  code-block:: typoscript

    lib.parseFunc_RTE.allowTags := addToList(wbr)

**After:**

..  code-block:: typoscript

    lib.parseFunc_RTE.allowTags = b,span,i.em,wbr...

For custom CSS classes on HTML elements, use CSS or add the classes
through other means like Fluid templates or custom TypoScript processing.

If you require the previous link handling behavior, you need to explicitly
configure the parseFunc settings:

..  code-block:: typoscript

    lib.parseFunc_RTE {
        makelinks {
            http {
                extTarget = _blank
                keep = path
            }
        }
    }

..  index:: TypoScript, ext:fluid_styled_content, ext:frontend, NotScanned

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions