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_type). 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.