[!!!][BUGFIX] Resolve API based content element registration inconsistency 32/52132/10
authorBenjamin Kott <benjamin.kott@wfp2.com>
Wed, 22 Mar 2017 23:44:34 +0000 (00:44 +0100)
committerGeorg Ringer <georg.ringer@gmail.com>
Thu, 30 Mar 2017 02:46:27 +0000 (04:46 +0200)
To solve an inconsistency issue for API based content element
registration between CSS Styled Content (CSC) and Fluid Styled Content
(FSC) through `Extbase` or `addPItoST43` we are now Introducing a new
shared content object for content elements and drop the active usage of
lib.fluidContent.

The generated code relied on the existence of the removed lib.stdheader
and also ignored layouts, frames, spacebefore, spaceafter in context of
Fluid Styled Content.

For content element registration lib.contentElement is now used for CSC
and FSC and replaces the usage of lib.fluidContent. The generated code
was slightly adjusted to match the requirements of all content rendering
definitions and can be adapted to the specific needs of a content
element rendering definition anytime since a reference is used now
instead of a hard defintion.

Resolves: #80412
Resolves: #80095
Releases: master
Change-Id: I680a8968ad63774bc50a52f95ddb89d6f524dd15
Reviewed-on: https://review.typo3.org/52132
Tested-by: TYPO3com <no-reply@typo3.com>
Reviewed-by: Frans Saris <franssaris@gmail.com>
Tested-by: Frans Saris <franssaris@gmail.com>
Reviewed-by: Markus Klein <markus.klein@typo3.org>
Tested-by: Markus Klein <markus.klein@typo3.org>
Reviewed-by: Georg Ringer <georg.ringer@gmail.com>
Tested-by: Georg Ringer <georg.ringer@gmail.com>
37 files changed:
typo3/sysext/core/Classes/Utility/ExtensionManagementUtility.php
typo3/sysext/core/Documentation/Changelog/master/Breaking-80374-DefaultContentElementConfigurationForFrontendLoginAdaptsFluidStyledContent.rst
typo3/sysext/core/Documentation/Changelog/master/Breaking-80412-NewSharedContentElementTyposcriptLibaryObjectForFluidStyledContent.rst [new file with mode: 0644]
typo3/sysext/core/Documentation/Changelog/master/Feature-80374-AddGenericFluidTemplateForAlreadyRenderedContent.rst
typo3/sysext/css_styled_content/Configuration/TypoScript/Helper/ContentElement.txt [new file with mode: 0644]
typo3/sysext/css_styled_content/Configuration/TypoScript/setup.txt
typo3/sysext/extbase/Classes/Utility/ExtensionUtility.php
typo3/sysext/felogin/ext_localconf.php
typo3/sysext/fluid_styled_content/Configuration/TypoScript/ContentElement/Bullets.txt
typo3/sysext/fluid_styled_content/Configuration/TypoScript/ContentElement/Div.txt
typo3/sysext/fluid_styled_content/Configuration/TypoScript/ContentElement/Header.txt
typo3/sysext/fluid_styled_content/Configuration/TypoScript/ContentElement/Html.txt
typo3/sysext/fluid_styled_content/Configuration/TypoScript/ContentElement/Image.txt
typo3/sysext/fluid_styled_content/Configuration/TypoScript/ContentElement/List.txt
typo3/sysext/fluid_styled_content/Configuration/TypoScript/ContentElement/MenuAbstract.txt
typo3/sysext/fluid_styled_content/Configuration/TypoScript/ContentElement/MenuCategorizedContent.txt
typo3/sysext/fluid_styled_content/Configuration/TypoScript/ContentElement/MenuCategorizedPages.txt
typo3/sysext/fluid_styled_content/Configuration/TypoScript/ContentElement/MenuPages.txt
typo3/sysext/fluid_styled_content/Configuration/TypoScript/ContentElement/MenuRecentlyUpdated.txt
typo3/sysext/fluid_styled_content/Configuration/TypoScript/ContentElement/MenuRelatedPages.txt
typo3/sysext/fluid_styled_content/Configuration/TypoScript/ContentElement/MenuSection.txt
typo3/sysext/fluid_styled_content/Configuration/TypoScript/ContentElement/MenuSectionPages.txt
typo3/sysext/fluid_styled_content/Configuration/TypoScript/ContentElement/MenuSitemap.txt
typo3/sysext/fluid_styled_content/Configuration/TypoScript/ContentElement/MenuSitemapPages.txt
typo3/sysext/fluid_styled_content/Configuration/TypoScript/ContentElement/MenuSubpages.txt
typo3/sysext/fluid_styled_content/Configuration/TypoScript/ContentElement/Shortcut.txt
typo3/sysext/fluid_styled_content/Configuration/TypoScript/ContentElement/Table.txt
typo3/sysext/fluid_styled_content/Configuration/TypoScript/ContentElement/Text.txt
typo3/sysext/fluid_styled_content/Configuration/TypoScript/ContentElement/Textmedia.txt
typo3/sysext/fluid_styled_content/Configuration/TypoScript/ContentElement/Textpic.txt
typo3/sysext/fluid_styled_content/Configuration/TypoScript/ContentElement/Uploads.txt
typo3/sysext/fluid_styled_content/Configuration/TypoScript/Helper/ContentElement.txt [new file with mode: 0644]
typo3/sysext/fluid_styled_content/Configuration/TypoScript/Helper/FluidContent.txt [deleted file]
typo3/sysext/fluid_styled_content/Configuration/TypoScript/setup.txt
typo3/sysext/fluid_styled_content/Documentation/AddingYourOwnContentElements/Index.rst
typo3/sysext/fluid_styled_content/Documentation/Configuration/OverridingFluidTemplates/Index.rst
typo3/sysext/fluid_styled_content/Resources/Private/Templates/Generic.html

index d9096ab..a9e62b7 100644 (file)
@@ -1397,10 +1397,10 @@ plugin.' . $cN . $suffix . '.userFunc = ' . $cN . $suffix . '->main
                 break;
             case 'CType':
                 $addLine = trim('
-tt_content.' . $key . $suffix . ' = COA
+tt_content.' . $key . $suffix . ' =< lib.contentElement
 tt_content.' . $key . $suffix . ' {
-       10 = < lib.stdheader
-       20 = < plugin.' . $cN . $suffix . '
+    templateName = Generic
+    20 =< plugin.' . $cN . $suffix . '
 }
 ');
                 break;
index c6d64b0..19207e6 100644 (file)
@@ -27,7 +27,7 @@ Redering for css styled content
 Redering for fluid styled content
 -------------------------------
 
-   tt_content.login =< lib.fluidContent
+   tt_content.login =< lib.contentElement
    tt_content.login {
       templateName = Generic
       variables {
@@ -38,7 +38,7 @@ Redering for fluid styled content
 Impact
 ======
 
-Adjustmens made manually to the typoscript rendering definition of 
+Adjustmens made manually to the typoscript rendering definition of
 `tt_content.login` might not work in fluid styled content as expected.
 
 Affected Installations
diff --git a/typo3/sysext/core/Documentation/Changelog/master/Breaking-80412-NewSharedContentElementTyposcriptLibaryObjectForFluidStyledContent.rst b/typo3/sysext/core/Documentation/Changelog/master/Breaking-80412-NewSharedContentElementTyposcriptLibaryObjectForFluidStyledContent.rst
new file mode 100644 (file)
index 0000000..657c29b
--- /dev/null
@@ -0,0 +1,128 @@
+.. include:: ../../Includes.txt
+
+===============================================================================================
+Breaking: #80412 - New shared content element typoscript libary object for Fluid Styled Content
+===============================================================================================
+
+See :issue:`80412`
+
+Description
+===========
+
+To solve an inconsistency issue for API based content element registration between
+CSS Styled Content (CSC) and Fluid Styled Content (FSC) through `Extbase` or
+`addPItoST43` we are now introducing a new shared content object for content elements
+and drop the active usage of `lib.fluidContent`.
+
+The generated code relied on the existence of the removed `lib.stdheader` and also
+ignored layouts, frames, spacebefore, spaceafter in context of Fluid Styled Content.
+
+For content element registration the TypoScript `lib.contentElement` is now used for `CSC` and `FSC`
+and replaces the usage of `lib.contentElement`. The generated code was slightly
+adjusted to match the requirements of all content rendering definitions and can be
+adapted to the specific needs of a content element rendering definition anytime
+since a reference is used now instead of a hard defintion.
+
+Generated code before change
+----------------------------
+
+.. code-block:: typoscript
+
+   tt_content.myce = COA
+   tt_content.myce {
+      10 =< lib.stdheader
+      20 =< plugin.myContent
+   }
+
+Generated code after change
+---------------------------
+
+.. code-block:: typoscript
+
+   tt_content.myce =< lib.contentElement
+   tt_content.myce {
+      templateName = Generic
+      20 =< plugin.myContent
+   }
+
+CSS Styled Content
+------------------
+
+CSS Styled Content adds the missing `lib.stdheader` and everything works as
+before, no migration or adjustments to your code nessesary. Because `COA`
+does not understand the option `templateName` it will simply be ignored.
+
+.. code-block:: typoscript
+
+   lib.contentElement = COA
+   lib.contentElement {
+      10 =< lib.stdheader
+   }
+
+Fluid Styled Content
+--------------------
+
+Fluid Styled Content adds the logic it needs through `lib.contentElement`.
+All content elements registered through the TYPO3 APIs will now share a
+multifunctional `Generic` template. That will provide the necessary layouts
+and overriding options known from FSC.
+
+.. code-block:: typoscript
+
+   lib.contentElement = FLUIDTEMPLATE
+   lib.contentElement {
+      templateRootPaths {
+         0 = EXT:fluid_styled_content/Resources/Private/Templates/
+         10 = {$styles.templates.templateRootPath}
+      }
+      partialRootPaths {
+         0 = EXT:fluid_styled_content/Resources/Private/Partials/
+         10 = {$styles.templates.partialRootPath}
+      }
+      layoutRootPaths {
+         0 = EXT:fluid_styled_content/Resources/Private/Layouts/
+         10 = {$styles.templates.layoutRootPath}
+      }
+      ...
+   }
+
+.. code-block:: html
+
+   <html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
+   <f:layout name="Default" />
+   <f:section name="Main">
+
+      <f:comment>This templates is used to provide necessary functionality for external processed content and could be used across multiple sources, for example the frontend login content element.</f:comment>
+      <f:if condition="{content}">
+         <f:then>{content -> f:format.raw()}</f:then>
+         <f:else><f:cObject typoscriptObjectPath="tt_content.{data.CType}.20" data="{data}" table="tt_content" /></f:else>
+      </f:if>
+
+   </f:section>
+   </html>
+
+The TypoScript Object `lib.fluidContent` will be kept as copy of `lib.contentElement`
+for compatability for the duration of TYPO3 v8.7 LTS and will be removed in TYPO3 v9.
+
+
+Impact
+======
+
+Assignments and overrides made directly to `lib.fluidContent` are not recognized
+anymore for core content elements provided by Fluid Styled Content. They need to be
+migrated to `lib.contentElement`. Only not modified versions of `lib.fluidContent`
+will keep working as expected.
+
+
+Affected Installations
+======================
+
+Installations that direclty modify `lib.fluidContent`.
+
+
+Migration
+=========
+
+Rename assignments and modifications to `lib.contentElement`.
+
+.. index:: Fluid, Frontend
diff --git a/typo3/sysext/css_styled_content/Configuration/TypoScript/Helper/ContentElement.txt b/typo3/sysext/css_styled_content/Configuration/TypoScript/Helper/ContentElement.txt
new file mode 100644 (file)
index 0000000..802cb6b
--- /dev/null
@@ -0,0 +1,6 @@
+# Default configuration for content elements
+lib.contentElement >
+lib.contentElement = COA
+lib.contentElement {
+    10 =< lib.stdheader
+}
index de15b61..1862780 100644 (file)
@@ -1,4 +1,5 @@
 # Include setup
+<INCLUDE_TYPOSCRIPT: source="FILE:EXT:css_styled_content/Configuration/TypoScript/Helper/ContentElement.txt">
 <INCLUDE_TYPOSCRIPT: source="FILE:EXT:css_styled_content/Configuration/TypoScript/Helper/ParseFunc.txt">
 <INCLUDE_TYPOSCRIPT: source="FILE:EXT:css_styled_content/Configuration/TypoScript/Helper/StandardHeader.txt">
 
index c8fcd17..9158ced 100644 (file)
@@ -82,15 +82,15 @@ tt_content.list.20.' . $pluginSignature . ' {
                 break;
             case self::PLUGIN_TYPE_CONTENT_ELEMENT:
                 $pluginContent = trim('
-tt_content.' . $pluginSignature . ' = COA
+tt_content.' . $pluginSignature . ' =< lib.contentElement
 tt_content.' . $pluginSignature . ' {
-       10 = < lib.stdheader
-       20 = USER
-       20 {
-               userFunc = TYPO3\\CMS\\Extbase\\Core\\Bootstrap->run
-               extensionName = ' . $extensionName . '
-               pluginName = ' . $pluginName . (null !== $vendorName ? ("\n\t\t" . 'vendorName = ' . $vendorName) : '') . '
-       }
+    templateName = Generic
+    20 = USER
+    20 {
+        userFunc = TYPO3\\CMS\\Extbase\\Core\\Bootstrap->run
+        extensionName = ' . $extensionName . '
+        pluginName = ' . $pluginName . (null !== $vendorName ? ("\n\t\t" . 'vendorName = ' . $vendorName) : '') . '
+    }
 }');
                 break;
             default:
index dcb328a..ddf38ba 100644 (file)
@@ -159,7 +159,7 @@ plugin.tx_felogin_pi1 {
 }
 
 # Setting "felogin" plugin TypoScript
-tt_content.login =< lib.fluidContent
+tt_content.login =< lib.contentElement
 tt_content.login {
     templateName = Generic
     variables {
index db0f341..2a17943 100644 (file)
@@ -3,7 +3,7 @@
 #
 # CType: bullets
 
-tt_content.bullets =< lib.fluidContent
+tt_content.bullets =< lib.contentElement
 tt_content.bullets {
     templateName = Bullets
     dataProcessing {
index d4fd0e4..0d8ca17 100644 (file)
@@ -3,7 +3,7 @@
 #
 # CType: header
 
-tt_content.header =< lib.fluidContent
+tt_content.header =< lib.contentElement
 tt_content.header {
     templateName = Header
     stdWrap {
index 944faf7..dec0344 100644 (file)
@@ -3,7 +3,7 @@
 #
 # CType: html
 
-tt_content.html =< lib.fluidContent
+tt_content.html =< lib.contentElement
 tt_content.html {
     templateName = Html
     stdWrap {
index 75c29cf..9ddd63a 100644 (file)
@@ -3,7 +3,7 @@
 #
 # CType: image
 
-tt_content.image =< lib.fluidContent
+tt_content.image =< lib.contentElement
 tt_content.image {
     templateName = Image
     dataProcessing {
index 21a4860..5f0cf15 100644 (file)
@@ -3,7 +3,7 @@
 #
 # CType: list
 
-tt_content.list =< lib.fluidContent
+tt_content.list =< lib.contentElement
 tt_content.list {
     templateName = List
     stdWrap {
index a4fa2e4..8e7bcc1 100644 (file)
@@ -3,7 +3,7 @@
 #
 # CType: menu_abstract
 
-tt_content.menu_abstract =< lib.fluidContent
+tt_content.menu_abstract =< lib.contentElement
 tt_content.menu_abstract {
     templateName = MenuAbstract
     dataProcessing {
index c3dadfd..20a0515 100644 (file)
@@ -3,7 +3,7 @@
 #
 # CType: menu_categorized_content
 
-tt_content.menu_categorized_content =< lib.fluidContent
+tt_content.menu_categorized_content =< lib.contentElement
 tt_content.menu_categorized_content {
     templateName = MenuCategorizedContent
     dataProcessing {
index cc86f47..269ceaf 100644 (file)
@@ -3,7 +3,7 @@
 #
 # CType: menu_categorized_pages
 
-tt_content.menu_categorized_pages =< lib.fluidContent
+tt_content.menu_categorized_pages =< lib.contentElement
 tt_content.menu_categorized_pages {
     templateName = MenuCategorizedPages
     dataProcessing {
index 71d5497..93942b6 100644 (file)
@@ -3,7 +3,7 @@
 #
 # CType: menu_pages
 
-tt_content.menu_pages =< lib.fluidContent
+tt_content.menu_pages =< lib.contentElement
 tt_content.menu_pages {
     templateName = MenuPages
     dataProcessing {
index fa2c53d..3bcefbe 100644 (file)
@@ -3,7 +3,7 @@
 #
 # CType: menu_recently_updated
 
-tt_content.menu_recently_updated =< lib.fluidContent
+tt_content.menu_recently_updated =< lib.contentElement
 tt_content.menu_recently_updated {
     templateName = MenuRecentlyUpdated
     dataProcessing {
index 0d96093..e388b65 100644 (file)
@@ -3,7 +3,7 @@
 #
 # CType: menu_related_pages
 
-tt_content.menu_related_pages =< lib.fluidContent
+tt_content.menu_related_pages =< lib.contentElement
 tt_content.menu_related_pages {
     templateName = MenuRelatedPages
     dataProcessing {
index 2c611fc..b6f0610 100644 (file)
@@ -3,7 +3,7 @@
 #
 # CType: menu_section
 
-tt_content.menu_section =< lib.fluidContent
+tt_content.menu_section =< lib.contentElement
 tt_content.menu_section {
     templateName = MenuSection
     dataProcessing {
index 6016887..2a7dc6a 100644 (file)
@@ -3,7 +3,7 @@
 #
 # CType: menu_section_pages
 
-tt_content.menu_section_pages =< lib.fluidContent
+tt_content.menu_section_pages =< lib.contentElement
 tt_content.menu_section_pages {
     templateName = MenuSectionPages
     dataProcessing {
index f23c46d..fb4fa42 100644 (file)
@@ -3,7 +3,7 @@
 #
 # CType: menu_sitemap
 
-tt_content.menu_sitemap =< lib.fluidContent
+tt_content.menu_sitemap =< lib.contentElement
 tt_content.menu_sitemap {
     templateName = MenuSitemap
     dataProcessing {
index 6ebbd7e..cb673a7 100644 (file)
@@ -3,7 +3,7 @@
 #
 # CType: menu_sitemap_pages
 
-tt_content.menu_sitemap_pages =< lib.fluidContent
+tt_content.menu_sitemap_pages =< lib.contentElement
 tt_content.menu_sitemap_pages {
     templateName = MenuSitemapPages
     dataProcessing {
index 9243b7c..80e1bd6 100644 (file)
@@ -3,7 +3,7 @@
 #
 # CType: menu_subpages
 
-tt_content.menu_subpages =< lib.fluidContent
+tt_content.menu_subpages =< lib.contentElement
 tt_content.menu_subpages {
     templateName = MenuSubpages
     dataProcessing {
index 3b80738..18ce3a4 100644 (file)
@@ -3,7 +3,7 @@
 #
 # CType: table
 
-tt_content.table =< lib.fluidContent
+tt_content.table =< lib.contentElement
 tt_content.table {
     templateName = Table
     dataProcessing {
index e764144..8e3fddb 100644 (file)
@@ -3,7 +3,7 @@
 #
 # CType: text
 
-tt_content.text =< lib.fluidContent
+tt_content.text =< lib.contentElement
 tt_content.text {
     templateName = Text
     stdWrap {
index c4f32e4..0189f44 100644 (file)
@@ -3,7 +3,7 @@
 #
 # CType: textmedia
 
-tt_content.textmedia =< lib.fluidContent
+tt_content.textmedia =< lib.contentElement
 tt_content.textmedia {
     templateName = Textmedia
     dataProcessing {
index 778b9cb..b61b2fe 100644 (file)
@@ -3,7 +3,7 @@
 #
 # CType: textpic
 
-tt_content.textpic =< lib.fluidContent
+tt_content.textpic =< lib.contentElement
 tt_content.textpic {
     templateName = Textpic
     dataProcessing {
index 018e5de..78d84e8 100644 (file)
@@ -3,7 +3,7 @@
 #
 # CType: uploads
 
-tt_content.uploads =< lib.fluidContent
+tt_content.uploads =< lib.contentElement
 tt_content.uploads {
     templateName = Uploads
     dataProcessing {
diff --git a/typo3/sysext/fluid_styled_content/Configuration/TypoScript/Helper/ContentElement.txt b/typo3/sysext/fluid_styled_content/Configuration/TypoScript/Helper/ContentElement.txt
new file mode 100644 (file)
index 0000000..161ba3d
--- /dev/null
@@ -0,0 +1,40 @@
+# Default configuration for content elements which are using FLUIDTEMPLATE directly
+lib.contentElement >
+lib.contentElement = FLUIDTEMPLATE
+lib.contentElement {
+    templateName = Default
+    templateRootPaths {
+        0 = EXT:fluid_styled_content/Resources/Private/Templates/
+        10 = {$styles.templates.templateRootPath}
+    }
+    partialRootPaths {
+        0 = EXT:fluid_styled_content/Resources/Private/Partials/
+        10 = {$styles.templates.partialRootPath}
+    }
+    layoutRootPaths {
+        0 = EXT:fluid_styled_content/Resources/Private/Layouts/
+        10 = {$styles.templates.layoutRootPath}
+    }
+    settings {
+        defaultHeaderType = {$styles.content.defaultHeaderType}
+        media {
+            popup {
+                bodyTag = <body style="margin:0; background:#fff;">
+                wrap = <a href="javascript:close();"> | </a>
+                width = {$styles.content.textmedia.linkWrap.width}
+                height = {$styles.content.textmedia.linkWrap.height}
+                crop.data = file:current:crop
+                JSwindow = 1
+                JSwindow {
+                    newWindow = {$styles.content.textmedia.linkWrap.newWindow}
+                    if.isFalse = {$styles.content.textmedia.linkWrap.lightboxEnabled}
+                }
+                directImageLink = {$styles.content.textmedia.linkWrap.lightboxEnabled}
+                linkParams.ATagParams.dataWrap =  class="{$styles.content.textmedia.linkWrap.lightboxCssClass}" rel="{$styles.content.textmedia.linkWrap.lightboxRelAttribute}"
+            }
+        }
+    }
+}
+
+# For compatability with CMS7 can be removed with CMS9
+lib.fluidContent < lib.contentElement
diff --git a/typo3/sysext/fluid_styled_content/Configuration/TypoScript/Helper/FluidContent.txt b/typo3/sysext/fluid_styled_content/Configuration/TypoScript/Helper/FluidContent.txt
deleted file mode 100644 (file)
index e61ad46..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-# Default configuration for content elements which are using FLUIDTEMPLATE directly
-lib.fluidContent >
-lib.fluidContent = FLUIDTEMPLATE
-lib.fluidContent {
-    templateName = Default
-    templateRootPaths {
-        0 = EXT:fluid_styled_content/Resources/Private/Templates/
-        10 = {$styles.templates.templateRootPath}
-    }
-    partialRootPaths {
-        0 = EXT:fluid_styled_content/Resources/Private/Partials/
-        10 = {$styles.templates.partialRootPath}
-    }
-    layoutRootPaths {
-        0 = EXT:fluid_styled_content/Resources/Private/Layouts/
-        10 = {$styles.templates.layoutRootPath}
-    }
-    settings {
-        defaultHeaderType = {$styles.content.defaultHeaderType}
-        media {
-            popup {
-                bodyTag = <body style="margin:0; background:#fff;">
-                wrap = <a href="javascript:close();"> | </a>
-                width = {$styles.content.textmedia.linkWrap.width}
-                height = {$styles.content.textmedia.linkWrap.height}
-                crop.data = file:current:crop
-                JSwindow = 1
-                JSwindow {
-                    newWindow = {$styles.content.textmedia.linkWrap.newWindow}
-                    if.isFalse = {$styles.content.textmedia.linkWrap.lightboxEnabled}
-                }
-                directImageLink = {$styles.content.textmedia.linkWrap.lightboxEnabled}
-                linkParams.ATagParams.dataWrap =  class="{$styles.content.textmedia.linkWrap.lightboxCssClass}" rel="{$styles.content.textmedia.linkWrap.lightboxRelAttribute}"
-            }
-        }
-    }
-}
index eaca2c9..1ccbd61 100644 (file)
@@ -1,6 +1,6 @@
 # Include setup
+<INCLUDE_TYPOSCRIPT: source="FILE:EXT:fluid_styled_content/Configuration/TypoScript/Helper/ContentElement.txt">
 <INCLUDE_TYPOSCRIPT: source="FILE:EXT:fluid_styled_content/Configuration/TypoScript/Helper/ParseFunc.txt">
-<INCLUDE_TYPOSCRIPT: source="FILE:EXT:fluid_styled_content/Configuration/TypoScript/Helper/FluidContent.txt">
 
 
 # Content element rendering
index c2b9e85..0d63264 100644 (file)
@@ -137,9 +137,9 @@ As defined in `Configuration/TCA/Overrides/tt_content.php`, this file is in the
   .. code-block:: typoscript
 
      tt_content {
-        yourextensionkey_newcontentelement < lib.fluidContent
+        yourextensionkey_newcontentelement =< lib.contentElement
         yourextensionkey_newcontentelement {
-           templateName = NewContentElement.html
+           templateName = NewContentElement
         }
      }
 
@@ -152,9 +152,9 @@ As defined in `Configuration/TCA/Overrides/tt_content.php`, this file is in the
 .. code-block:: typoscript
 
    tt_content {
-      yourextensionkey_newcontentelement < lib.fluidContent
+      yourextensionkey_newcontentelement =< lib.contentElement
       yourextensionkey_newcontentelement {
-         templateName = NewContentElement.html
+         templateName = NewContentElement
          dataProcessing {
             1 = Vendor\YourExtensionKey\DataProcessing\NewContentElementProcessor
             1 {
@@ -169,7 +169,7 @@ it, partialRootPaths and layoutRootPaths:
 
 .. code-block:: typoscript
 
-   lib.fluidContent {
+   lib.contentElement {
       templateRootPaths {
          200 = EXT:your_extension_key/Resources/Private/Templates/
       }
index 8f0d586..e11a6b6 100644 (file)
@@ -14,15 +14,15 @@ folder :file:`EXT:fluid_styled_content/Configuration/TypoScript/Static/`.
 
 .. _overriding-fluid-templates-using-lib-fluidcontent:
 
-Using lib.fluidContent
-======================
+Using lib.contentElement
+========================
 
 This option gives you the possibility to add another `templateRootPath` and can be defined
 the same as `partialRootPaths` and `layoutRootPaths`:
 
 .. code-block:: typoscript
 
-   lib.fluidContent {
+   lib.contentElement {
       templateRootPaths {
          200 = EXT:your_extension_key/Resources/Private/Templates/
       }
index 2cf20b1..17622b9 100644 (file)
@@ -3,7 +3,10 @@
 <f:section name="Main">
 
        <f:comment>This templates is used to provide nessesary functionality for external processed content and could be used across multiple sources, for example the frontend login content element.</f:comment>
-       {content -> f:format.raw()}
+       <f:if condition="{content}">
+               <f:then>{content -> f:format.raw()}</f:then>
+               <f:else><f:cObject typoscriptObjectPath="tt_content.{data.CType}.20" data="{data}" table="tt_content" /></f:else>
+       </f:if>
 
 </f:section>
 </html>