oliverthiele/ot-cefluidtemplates

CE Fluidtemplates - Content element for adding FluidTemplates e.g. as CTAs, conversions, etc.

Maintainers

Package info

github.com/oliverthiele/ot-cefluidtemplates

Homepage

Type:typo3-cms-extension

pkg:composer/oliverthiele/ot-cefluidtemplates

Statistics

Installs: 572

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v4.0.0 2026-04-25 18:46 UTC

This package is auto-updated.

Last update: 2026-04-25 18:52:51 UTC


README

TYPO3 content element for rendering Fluid templates selected by editors from a configured template directory. Useful for recurring layout elements such as CTAs, teasers, or conversion blocks.

TYPO3 Packagist Version PHP License Changelog

Features

  • Editors select a Fluid template from a backend select field
  • Template path configurable via Extension Configuration
  • Templates and partials managed in the sitepackage
  • FlexForm configuration for per-record template path overrides
  • TYPO3 v13 and v14 compatible (Site Set ready)

Requirements

Requirement Version
TYPO3 ^13.4 | ^14.3
PHP >=8.3

Installation

composer require oliverthiele/ot-cefluidtemplates

Configuration

Template Path

Set the base template path in the TYPO3 backend under Settings → Extension Configuration → ot_cefluidtemplates:

EXT:my_sitepackage/Resources/Private/Conversions/Templates/

TypoScript

Configure template, partial, and layout root paths in your sitepackage:

tt_content {
    ot_cefluidtemplates {
        templateRootPaths {
            10 = EXT:my_sitepackage/Resources/Private/Conversions/Templates/
        }
        partialRootPaths {
            10 = EXT:my_sitepackage/Resources/Private/Conversions/Partials/
        }
        layoutRootPaths {
            10 = EXT:my_sitepackage/Resources/Private/Conversions/Layouts/
        }
    }
}

Usage

Template Directory Structure

All .html files in the configured directory and its first-level subdirectories are available to editors as a select field. CamelCase filenames are automatically split into readable labels.

Templates/
├── SocialMedia/
│   └── SocialMediaShare.html   →  Group "Social Media" / Label "Social Media Share"
└── Teaser.html                 →  Label "Teaser"

Why Use This Instead of the HTML Content Element

  • Internal page links work via page ID (all ViewHelpers available)
  • Templates are version-controlled in Git
  • Editors cannot inject arbitrary HTML
  • Easier to find strings in an IDE than in the database
  • No duplication via "Insert Records" workarounds

License

GPL-2.0-or-later — © Oliver Thiele