Attention
TYPO3 v11 has reached end-of-life as of October 31th 2024 and is no longer being maintained. Use the version switcher on the top left of this page to select documentation for a supported version of TYPO3.
Need more time before upgrading? You can purchase Extended Long Term Support (ELTS) for TYPO3 v11 here: TYPO3 ELTS.
Frontend plugin
The term "frontend plugin" describes a part of a TYPO3 extension that is handled like a content element (can be inserted like a record/element in the TYPO3 backend by editors), which will deliver dynamic output when rendered in the frontend. The distinction and boundaries to regular content are sometimes not easy to draw, because also "regular" content elements are often able to perform dynamic output (for example with TypoScript configuration, Fluid data processors or ViewHelpers).
For a long time, TYPO3 provided a "General Plugin" to be selected as a
content element (setting the content record CType
to 'list'
), and then the sub-type
would indicate which kind of frontend plugin to be used
(setting the content record list_
). It is recommended to only
use the CType
based registration.
There are different technology choices to create frontend plugins in TYPO3.
For pure output it is often sufficient to use a FLUIDTEMPLATE in combination with DataProcessors. See also Creating a custom content element.
For scenarios with user input and or complicated data operations consider using Extbase (specifically Registration of frontend plugins).
Legacy frontend plugins without Extbase, so called "pi-based plugins" are based on the AbstractPlugin. It is not recommended anymore to use the AbstractPlugin as base for new frontend plugins. The Core does not use it anymore and only few third party extensions still use it.
It is also possible to create a frontend plugin using Core functionality only.