From 8176d920a13433951979834c1ee3266f3b4a38ae Mon Sep 17 00:00:00 2001 From: "lina.wolf" Date: Tue, 19 Oct 2021 14:41:46 +0200 Subject: [PATCH] [FEATURE] Dynamic page based and content based exclusion from parsing solves #166 --- Classes/Hook/ContentPostProcHook.php | 4 ++ Configuration/TCA/Overrides/pages.php | 32 +++++++++ Configuration/TCA/Overrides/tt_content.php | 28 ++++++++ Configuration/TypoScript/constants.txt | 4 +- Configuration/TypoScript/setup.txt | 9 +++ .../ExampleTypoScriptSetup/Index.rst | 61 ++++++++++++++++++ .../Configuration/ExtensionSettings/Index.rst | 27 +++++++- .../Images/ExcludePageFromParsing.png | Bin 0 -> 16150 bytes Documentation/Includes.txt | 1 + .../FluidStyledContent/Layouts/Default.html | 53 +++++++++++++++ Resources/Private/Language/de.locallang.xlf | 16 +++++ Resources/Private/Language/locallang.xlf | 16 +++++ ext_tables.sql | 8 +++ 13 files changed, 256 insertions(+), 3 deletions(-) create mode 100644 Configuration/TCA/Overrides/pages.php create mode 100644 Documentation/Images/ExcludePageFromParsing.png create mode 100644 Resources/Private/Extensions/FluidStyledContent/Layouts/Default.html diff --git a/Classes/Hook/ContentPostProcHook.php b/Classes/Hook/ContentPostProcHook.php index fb96a4a..ee1fd24 100644 --- a/Classes/Hook/ContentPostProcHook.php +++ b/Classes/Hook/ContentPostProcHook.php @@ -78,6 +78,10 @@ protected function parseHtml(TypoScriptFrontendController $typoScriptFrontendCon $isDisableParser = true; } + if ((bool) $typoScriptFrontendController->page['tx_dpnglossary_disable_parser'] === true) { + $isDisableParser = true; + } + if (false === $isDisableParser) { $parsedHTML = $this->parserService->pageParser($typoScriptFrontendController->content); diff --git a/Configuration/TCA/Overrides/pages.php b/Configuration/TCA/Overrides/pages.php new file mode 100644 index 0000000..e0c08a5 --- /dev/null +++ b/Configuration/TCA/Overrides/pages.php @@ -0,0 +1,32 @@ + [ + 'label' => 'LLL:EXT:dpn_glossary/Resources/Private/Language/locallang.xlf:pages.glossary_settings', + 'exclude' => true, + 'config' => [ + 'type' => 'check', + 'renderType' => 'checkboxToggle', + 'items' => [ + [ + 0 => 'LLL:EXT:dpn_glossary/Resources/Private/Language/locallang.xlf:pages.parse_for_glossary', + 1 => '', + 'labelChecked' => 'Enabled', + 'labelUnchecked' => 'Disabled', + 'invertStateDisplay' => true, + ], + ], + ], + ], + ]); + + \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes( + 'pages', + 'tx_dpnglossary_disable_parser', + '', + 'after:php_tree_stop' + ); +}); diff --git a/Configuration/TCA/Overrides/tt_content.php b/Configuration/TCA/Overrides/tt_content.php index 49305f1..b8e0fec 100755 --- a/Configuration/TCA/Overrides/tt_content.php +++ b/Configuration/TCA/Overrides/tt_content.php @@ -27,5 +27,33 @@ function () { \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue($plugin, 'FILE:EXT:dpn_glossary' . $flexform); } + + \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('tt_content', [ + 'tx_dpnglossary_disable_parser' => [ + 'label' => 'LLL:EXT:dpn_glossary/Resources/Private/Language/locallang.xlf:tt_content.glossary_settings', + 'exclude' => true, + 'config' => [ + 'type' => 'check', + 'renderType' => 'checkboxToggle', + 'items' => [ + [ + 0 => 'LLL:EXT:dpn_glossary/Resources/Private/Language/locallang.xlf:tt_content.parse_for_glossary', + 1 => '', + 'labelChecked' => 'Enabled', + 'labelUnchecked' => 'Disabled', + 'invertStateDisplay' => true, + ], + ], + ], + ], + ]); + + \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes( + 'tt_content', + 'tx_dpnglossary_disable_parser', + '', + 'after:linkToTop' + ); + } ); diff --git a/Configuration/TypoScript/constants.txt b/Configuration/TypoScript/constants.txt index 474cbc1..007d648 100755 --- a/Configuration/TypoScript/constants.txt +++ b/Configuration/TypoScript/constants.txt @@ -34,7 +34,7 @@ plugin.tx_dpnglossary { # cat=dpn_glossary/settings/a; type=string; label=Classes which are not allowed for the parsing tag forbiddenParsingTagClasses = # cat=dpn_glossary/settings/a; type=string; label=Classes which are not allowed on any parent of the parsing tag - forbiddenParentClasses = + forbiddenParentClasses = tx_dpn_glossary_exclude # cat=dpn_glossary/settings/a; type=options[normal,character,pagination]; label=Listmode: normal, character or paginated by characters listmode = normal # cat=dpn_glossary/settings/a; type=options[newest,random]; label=Previewmode: newest or random @@ -51,5 +51,7 @@ plugin.tx_dpnglossary { useTermForSynonymParsingDataWrap = 0 # cat=dpn_glossary/settings/a; type=boolean; label=Add the extension stylesheet (default: enabled) addStylesheet = 1 + # cat=dpn_glossary/settings/a; type=boolean; label=Override fluid styled content layout to enable dynamic exclusion via content properties (default: enabled) + overrideFluidStyledContentLayout = 0 } } diff --git a/Configuration/TypoScript/setup.txt b/Configuration/TypoScript/setup.txt index ae0ac09..94ff5b3 100755 --- a/Configuration/TypoScript/setup.txt +++ b/Configuration/TypoScript/setup.txt @@ -159,6 +159,15 @@ module.tx_dpnglossary.settings < plugin.tx_dpnglossary.settings page.includeCSS.dpnglossary = EXT:dpn_glossary/Resources/Public/css/styles.css [global] +["{$plugin.tx_dpnglossary.settings.overrideFluidStyledContentLayout}" == "1"] + lib.contentElement { + layoutRootPaths { + 50 = EXT:dpn_glossary/Resources/Private/Extensions/FluidStyledContent/Layouts + } + } +[global] + + config.pageTitleProviders { glossaryTerm { provider = Featdd\DpnGlossary\PageTitle\TermPageTitleProvider diff --git a/Documentation/Configuration/ExampleTypoScriptSetup/Index.rst b/Documentation/Configuration/ExampleTypoScriptSetup/Index.rst index ab66afe..004cdba 100644 --- a/Documentation/Configuration/ExampleTypoScriptSetup/Index.rst +++ b/Documentation/Configuration/ExampleTypoScriptSetup/Index.rst @@ -159,3 +159,64 @@ Add the following code to you setup: } Official documentaton: `https://docs.typo3.org/m/typo3/reference-coreapi/11.5/en-us/ApiOverview/Seo/XmlSitemap.html` + +.. _example-exclude-pages: + +Exclude pages from being parsed +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Pages can be statically excluded from parsing via TypoScript:: + + plugin.tx_dpnglossary { + settings.parsingExcludePidList = 42, 185, 365 + } + +Pages can also dynamically excluded from parsing by page properties +:guilabel:`Page Properties > Behaviour > Settings for dreipunktnull Glossary`: + +.. figure:: /Images/ExcludePageFromParsing.png + :alt: Exclude page from parsing + + Exclude page from parsing + +By making field :sql:`tx_dpnglossary_parsing_settings` of table +:sql:`pages` available for your editors, it is also possible to let (power) +editors decide, which pages should be parsed. + +.. _example-exclude-content: + +Exclude content from being parsed +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The following TypoScript constant defines HTML classes whose content will be +excluded from parsing:: + + plugin.tx_dpnglossary { + settings.forbiddenParsingTagClasses = tx_dpn_glossary_exclude, my_search_results + } + +Content wrapped with one of these classes will be excluded from parsing. + +Content can also dynamically excluded from parsing by content properties +:guilabel:`Content Properties > Appearance > Settings for DPN Glossary`. + +This only works if the default Fluid layout has been overriden to wrap the +content with the HTML class :html:`tx_dpn_glossary_exclude` and this class is +still found in the :typoscript:`settings.forbiddenParsingTagClasses`. + +You can set the following TypoScript constant to let this extension override +the Fluid Styled Content default layout:: + + plugin.tx_dpnglossary { + settings.overrideFluidStyledContentLayout = 1 + } + +If you need to override the layout yourself make sure to add the following to the +surrounding tags class: + +.. code-block:: html + +
+ +Just like with the pages this property can be used to enable editors to exclude +content elements from parsing. diff --git a/Documentation/Configuration/ExtensionSettings/Index.rst b/Documentation/Configuration/ExtensionSettings/Index.rst index af2e64e..eafd650 100644 --- a/Documentation/Configuration/ExtensionSettings/Index.rst +++ b/Documentation/Configuration/ExtensionSettings/Index.rst @@ -70,7 +70,8 @@ plugin.tx_dpnglossary.settings: string Description - Comma list of pages which should not be parsed + Comma list of pages which should not be parsed. Can be used to :ref:`exclude + pages from being pages ` .. container:: table-row @@ -148,8 +149,13 @@ plugin.tx_dpnglossary.settings: Data Type string + Default + tx_dpn_glossary_exclude + Description - Comma list of classes which are not allowed on any parent of the parsing tag + Comma list of classes which are not allowed on any parent of the parsing tag. + can be used to :ref:` exclude content from being parsed + ` .. container:: table-row @@ -246,4 +252,21 @@ plugin.tx_dpnglossary.settings: Description Comma list of special characters allowed to wrap the term + +.. container:: table-row + + Constant + settings.overrideFluidStyledContentLayout + + Data Type + boolean + + Description + If set the default layout of FluidStyledContent is overriden by this + extension. Can be used to :ref:`exclude content from being parsed + ` + + Default + 0 + .. ###### END~OF~TABLE ###### diff --git a/Documentation/Images/ExcludePageFromParsing.png b/Documentation/Images/ExcludePageFromParsing.png new file mode 100644 index 0000000000000000000000000000000000000000..be9ac6f0e147258afc52b149ad127e65a793a31e GIT binary patch literal 16150 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 Ws4n!Hh5|tel6$B4w&V@e|9=2N;0%!f literal 0 HcmV?d00001 diff --git a/Documentation/Includes.txt b/Documentation/Includes.txt index 655caa8..d838bc1 100644 --- a/Documentation/Includes.txt +++ b/Documentation/Includes.txt @@ -15,6 +15,7 @@ .. role:: js(code) .. role:: php(code) .. role:: typoscript(code) +.. role:: sql(code) .. role:: ts(typoscript) :class: typoscript diff --git a/Resources/Private/Extensions/FluidStyledContent/Layouts/Default.html b/Resources/Private/Extensions/FluidStyledContent/Layouts/Default.html new file mode 100644 index 0000000..e0ea65e --- /dev/null +++ b/Resources/Private/Extensions/FluidStyledContent/Layouts/Default.html @@ -0,0 +1,53 @@ + + + + +

+ + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+
+ + + + + + + + + + + + + + +
+
+ +
+ + diff --git a/Resources/Private/Language/de.locallang.xlf b/Resources/Private/Language/de.locallang.xlf index 0049206..697ffe1 100755 --- a/Resources/Private/Language/de.locallang.xlf +++ b/Resources/Private/Language/de.locallang.xlf @@ -164,6 +164,22 @@ Einzigartig in der gesamten Instanz + + + + Einstellungen für das dreipunktnull Glossar + + + Seite parsen + + + + + Einstellungen für das dreipunktnull Glossar + + + Inhalt parsen + diff --git a/Resources/Private/Language/locallang.xlf b/Resources/Private/Language/locallang.xlf index e7aabf8..6f1c845 100755 --- a/Resources/Private/Language/locallang.xlf +++ b/Resources/Private/Language/locallang.xlf @@ -164,6 +164,22 @@ unique in the whole instance + + + + Settings for dreipunktnull Glossary + + + Parse page for glossary terms + + + + + Settings for dreipunktnull Glossary + + + Parse content element for glossary terms + diff --git a/ext_tables.sql b/ext_tables.sql index 8e396c6..6aa7bca 100755 --- a/ext_tables.sql +++ b/ext_tables.sql @@ -132,3 +132,11 @@ CREATE TABLE tx_dpnglossary_domain_model_description ( KEY language(l10n_parent, sys_language_uid) ); + +CREATE TABLE pages ( + tx_dpnglossary_disable_parser tinyint(4) DEFAULT '0' NOT NULL +); + +CREATE TABLE tt_content ( + tx_dpnglossary_disable_parser tinyint(4) DEFAULT '0' NOT NULL +);