From 7d5a90e88fa057b0ae1ce45fb4a952638c971f33 Mon Sep 17 00:00:00 2001 From: twoldanski <66474451+twoldanski@users.noreply.github.com> Date: Mon, 2 Oct 2023 13:46:15 +0200 Subject: [PATCH] [TASK] Typoscript improvements (#643) - Align latest parseFunc with TYPO3 core changes - change default parsing of rte with correct parseFunc - add helper for handling inline helpers --- .../DataProcessing/DatabaseQueryProcessor.php | 2 +- .../ContentElement/Shortcut.typoscript | 23 +------ .../TypoScript/ContentElement/Text.typoscript | 2 +- .../ContentElement/Textmedia.typoscript | 2 +- .../ContentElement/Textpic.typoscript | 2 +- .../ParseFunc.typoscript | 66 ++++++++++++------- .../Helpers/RenderChildren.typoscript | 44 +++++++++++++ Configuration/TypoScript/setup.typoscript | 2 + Documentation/Developer/Index.rst | 2 +- 9 files changed, 95 insertions(+), 50 deletions(-) rename Configuration/TypoScript/{ContentElement => Helpers}/ParseFunc.typoscript (73%) create mode 100644 Configuration/TypoScript/Helpers/RenderChildren.typoscript diff --git a/Classes/DataProcessing/DatabaseQueryProcessor.php b/Classes/DataProcessing/DatabaseQueryProcessor.php index 6ef97268..7bc1cd64 100644 --- a/Classes/DataProcessing/DatabaseQueryProcessor.php +++ b/Classes/DataProcessing/DatabaseQueryProcessor.php @@ -37,7 +37,7 @@ * bodytext = TEXT * bodytext { * field = bodytext - * parseFunc =< lib.parseFunc_links + * parseFunc =< lib.parseFunc_RTE * } * link = TEXT * link { diff --git a/Configuration/TypoScript/ContentElement/Shortcut.typoscript b/Configuration/TypoScript/ContentElement/Shortcut.typoscript index f7ac85bf..eef56788 100755 --- a/Configuration/TypoScript/ContentElement/Shortcut.typoscript +++ b/Configuration/TypoScript/ContentElement/Shortcut.typoscript @@ -3,7 +3,7 @@ tt_content.shortcut { fields { content { fields { - shortcut = COA + shortcut =< lib.renderChildren shortcut { 10 = RECORDS 10 { @@ -13,27 +13,6 @@ tt_content.shortcut { tt_content.stdWrap.wrap = |###BREAK### } } - stdWrap { - innerWrap = [|] - split { - token = ###BREAK### - cObjNum = 1 |*|2|*| 3 - 1 { - current = 1 - stdWrap.wrap = | - } - - 2 { - current = 1 - stdWrap.wrap = ,| - } - - 3 { - current = 1 - stdWrap.wrap = | - } - } - } } } } diff --git a/Configuration/TypoScript/ContentElement/Text.typoscript b/Configuration/TypoScript/ContentElement/Text.typoscript index 1f64fb10..2e2dd796 100755 --- a/Configuration/TypoScript/ContentElement/Text.typoscript +++ b/Configuration/TypoScript/ContentElement/Text.typoscript @@ -6,7 +6,7 @@ tt_content.text { bodytext = TEXT bodytext { field = bodytext - parseFunc =< lib.parseFunc_links + parseFunc =< lib.parseFunc_RTE } } } diff --git a/Configuration/TypoScript/ContentElement/Textmedia.typoscript b/Configuration/TypoScript/ContentElement/Textmedia.typoscript index e6b503bc..679cfd29 100755 --- a/Configuration/TypoScript/ContentElement/Textmedia.typoscript +++ b/Configuration/TypoScript/ContentElement/Textmedia.typoscript @@ -10,7 +10,7 @@ tt_content.textmedia { bodytext = TEXT bodytext { field = bodytext - parseFunc =< lib.parseFunc_links + parseFunc =< lib.parseFunc_RTE } gallery = TEXT gallery { diff --git a/Configuration/TypoScript/ContentElement/Textpic.typoscript b/Configuration/TypoScript/ContentElement/Textpic.typoscript index c74828b4..416fd1db 100755 --- a/Configuration/TypoScript/ContentElement/Textpic.typoscript +++ b/Configuration/TypoScript/ContentElement/Textpic.typoscript @@ -10,7 +10,7 @@ tt_content.textpic { bodytext = TEXT bodytext { field = bodytext - parseFunc =< lib.parseFunc_links + parseFunc =< lib.parseFunc_RTE } gallery = TEXT gallery { diff --git a/Configuration/TypoScript/ContentElement/ParseFunc.typoscript b/Configuration/TypoScript/Helpers/ParseFunc.typoscript similarity index 73% rename from Configuration/TypoScript/ContentElement/ParseFunc.typoscript rename to Configuration/TypoScript/Helpers/ParseFunc.typoscript index 903b0758..a000bad2 100755 --- a/Configuration/TypoScript/ContentElement/ParseFunc.typoscript +++ b/Configuration/TypoScript/Helpers/ParseFunc.typoscript @@ -6,22 +6,15 @@ lib { makelinks { http { keep = {$styles.content.links.keep} - extTarget.data = parameters:target + extTarget = {$styles.content.links.extTarget} } + mailto { keep = path } } + tags { - link = TEXT - link { - current = 1 - typolink { - parameter.data = parameters : allParams - extTarget.data = parameters:target - } - parseFunc.constants = 1 - } a = TEXT a { current = 1 @@ -29,14 +22,24 @@ lib { parameter.data = parameters:href title.data = parameters:title ATagParams.data = parameters:allParams - target.data = parameters:target - extTarget.data = parameters:target + # the target attribute takes precedence over config.intTarget + target.ifEmpty.data = parameters:target + # the target attribute takes precedence over the constant (styles.content.links.extTarget) + # which takes precedence over config.extTarget + # do not pass extTarget as reference, as it might not be set resulting in the string being + # written to the target attribute + extTarget { + ifEmpty < config.extTarget + ifEmpty.override = {$styles.content.links.extTarget} + override.data = parameters:target + } } } } + allowTags = {$styles.content.allowTags} denyTags = * - sword = | + # @deprecated since TYPO3 v12, remove with v13 constants = 1 nonTypoTagStdWrap { HTMLparser = 1 @@ -51,19 +54,22 @@ lib { parseFunc_RTE < lib.parseFunc parseFunc_RTE { # Processing