blueways/bw-static-template

TYPO3 extension that adds a new content element for rendering static fluid templates. Inject JSON and FAL data into the templates.

Installs: 18 630

Dependents: 0

Suggesters: 0

Security: 0

Stars: 2

Watchers: 3

Forks: 1

Open Issues: 2

Type:typo3-cms-extension

4.0.0 2024-11-08 15:24 UTC

README

Extension icon

TYPO3 extension bw_static_template

Latest version Supported TYPO3 versions Total downloads Composer

This TYPO3 extensions ships a custom content element that renders every fluid template. Inject JSON data or FAL files into the templates. Perfect for fast template development.

Plugin in the TYPO3 Backend

Why?

  • Sometimes content is very unlikely to change regularly. It's faster to immediately write a fluid template than start the creation of a custom content element or adjusting an extension to your needs.
  • No need to write TCA or TypoScript to get frontend output, that can be adjusted through the backend. (E.g. quick image or phone number change)
  • Perfect if your customer is lazy and never thinks about logging into the backend to do the changes by his own
  • If it's required to implement a standalone solution, the templates can be reused

Install

  1. Install via composer:
composer require blueways/bw-static-template
  1. Include static TypoScript template or manually import it:
@import 'EXT:bw_static_template/Configuration/TypoScript/setup.typoscript'

Usage

Add the content element Static Template to a page

Content Element Wizard

Select a fluid template to render (e.g.: EXT:your_ext/Resources/Private/Partials/Header.html)

Backend TCA

Save & done.

Optional: Pass data into the template

Enter valid JSON:

{
    "templateMarker1": "Example marker data",
    "persons": [
        {
            "name": "Markus Mustermann",
            "contactPid": 3
        },
        {
            "name": "Paul Werner",
            "contactPid": 4
        }
    ]
}

Now you can use the given data in your template, e.g.:

Hello {templateMarker1}!

<f:for each="{persons}" as="person">
    Say hello to <f:link.page pageUid="{person.contactPid}">{person.name}</f:link.page>
</f:for>

Optional: Select images

The selected images are accessible as FileReference via {files} marker.

<f:for each="{files}" as="file">
    <f:image image="{file}" />
</f:for>

Configuration

Constants

If you want to use the Layouts and Partials of fluid_styled_content, you just need to set the paths to the ones of your styles.content configuration:

plugin.tx_bwstatictemplate_pi1 {
    view {
        templateRootPath =
        partialRootPath =
        layoutRootPath =
    }
}

TypoScript

It's just a regular content element that is rendered like every other element of fluid_style_content. Here are some examples to inject some additional data into the templates:

tt_content.bw_static_template {

    # insert variables
    variables {
        foo = TEXT
        foo.value = bar
    }

    # use DtaProcessor (10 and 20 are reserved indexes)
    dataProcessing {
        # Inject a menu
        30 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
        30 {
            as = navigation
            entryLevel = 0
        }

        # Inject data about the current page
        40 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
        40 {
            table = pages
            pidInList = this
            as = page
        }
    }
}

License

This project is licensed under GNU General Public License 2.0 (or later).

Contribute

This extension was made by Maik Schneider: Feel free to contribute!

Thanks to blueways and XIMA!