.. include:: ../../Includes.txt .. _templating: ========== Templating ========== This extension enhances the existing TYPO3 content elements, which are commonly rendered with `EXT:fluid_styled_content`. Therefore, customized Fluid templates have to be provided by this extension. It also works well with the Bootstrap Package. In both cases, be sure to load the configuration of this extension **after** `EXT:fluid_styled_content` or `EXT:bootstrap_package`. .. _templating-ts: TypoScript setup ================ You can configure the fragment identifier with :ref:`TypoScript `. If you customize the templates, override the template paths of the content elements. .. code-block:: typoscript lib.contentElement { partialRootPaths.101 = EXT:content_slug/Resources/Private/Overrides/fluid_styled_content/Partials/ templateRootPaths.101 = EXT:content_slug/Resources/Private/Overrides/fluid_styled_content/Templates/ } .. _templating-fluid: Fluid templates ================ The customized Fluid templates contain some new variables and ViewHelpers to render the contents of the new fields. Resources/Private/Overrides/fluid_styled_content/Partials/Header/All.html ------------------------------------------------------------------------- We need to **transfer additional variables** to *Header.html*: .. code-block:: html :linenos: :emphasize-lines: 6-7 Resources/Private/Overrides/fluid_styled_content/Partials/Header/Header.html ---------------------------------------------------------------------------- Each heading (``

`` to ``

``) gets a new ``id`` attribute. It will contain the configured **fragment identifier**, if a fragment was set in the content element. If a fragment exists and the checkbox "Set link to #anchor" is activated, an additional link will be rendered right to the header. You can style this anchor through the class name and/or change the displayed symbol in the template. .. code-block:: html :linenos: :emphasize-lines: 1,3

{header} #

.. important:: Note the spelling: **with** ``#`` in the anchor link, **without** ``#`` in the ``id`` attribute! Also important: if ``header_layout`` is set to *default*, the *Header.html* partial is called a second time. Therefore, we need to transfer our additional variables again: .. code-block:: html :linenos: :emphasize-lines: 7-8 Resources/Private/Overrides/fluid_styled_content/Templates/MenuSection.html --------------------------------------------------------------------------- The TYPO3 content elements of ``CType`` *"Section Index"* and *"Section Index of subpages from selected pages"* both build a list of pages and their included content elements. By default, the content elements will be linked by their unique id, e.g. `https://www.example.org/a-sub-page/#c123`. The new Fluid condition will check if a fragment identifier is given for the content element. .. note:: The human-readable fragment can only rendered if the header is **not hidden**. Therefore, we also need to check if the ``header_layout`` is set to ``100``. This is taken care of in the :ref:`custom DataProcessor `, which is added to both *Section Index* menus. If available, the configured fragment identifier is then rendered (identical to the anchor link in *Header.html*). Otherwise, the default anchor to the content element is rendered (``#c123``). .. code-block:: html :linenos: :emphasize-lines: 4
  • {element.data.header}
  • .. note:: The same changes apply in *MenuSectionPages.html*.