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 v10 here: TYPO3 ELTS.
plugin
This is used for extensions in TYPO3 set up as frontend plugins.
Typically you can set configuration properties of the plugin here. Say
you have an extension with the key "myext" and it has a frontend
plugin named "tx_myext_pi1" then you would find the TypoScript
configuration at the position plugin.
in the object
tree!
Most plugins are USER and USER_INT objects which means that they have at least 1 or 2 reserved properties. Furthermore this table outlines some other default properties. Generally system properties are prefixed with an underscore:
Properties for all frontend plugin types
userFunc
userFunc
-
- Type
- (array of keys)
Property setting up the USER and USER_INT object of the plugin.
_CSS_DEFAULT_STYLE
_CSS_DEFAULT_STYLE
-
Use this to have some default CSS styles inserted in the header section of the document.
_CSS_
outputs a set of default styles, just because an extension is installed. Most likely this will provide an acceptable default display from the plugin, but should ideally be cleared and moved to an external stylesheet.DEFAULT_ STYLE This value is read by the frontend
Request
script when collecting the CSS of the document to be rendered.Handler This is for example used by frontend and indexed_search. Their default styles can be removed with:
plugin.tx_frontend._CSS_DEFAULT_STYLE > plugin.tx_indexedsearch._CSS_DEFAULT_STYLE >
Copied!However, you will then have to define according styles yourself.
_CSS_PAGE_STYLE
_CSS_PAGE_STYLE
-
- Type
- string
_CSS_
is included only on the affected pages. Depending on your configuration it will be written in an external file and included on the page or directly added as inline CSS block. Compression for page specific CSS also depends on the globalPAGE_ STYLE config.
setting.compress Css This setting can be used to only include the CSS when the plugin of a certain extension is included on that page.
This value is read by the frontend
Request
when collecting the CSS of the document to be rendered.Handler
_DEFAULT_PI_VARS.[piVar-key]
_DEFAULT_PI_VARS.[piVar-key]
Example
plugin.tt_news._DEFAULT_PI_VARS {
year.stdWrap.data = date:Y
}
This sets the key "year" to the current year.
_LOCAL_LANG.[lang-key].[label-key]
_LOCAL_LANG.[lang-key].[label-key]
-
- Type
- string
Can be used to override the default language labels for the plugin. The 'lang-key' setup part is 'default' for the default language of the website or the 2-letter (ISO 639-1) code for the language. 'label-key' is the 'trans-unit id' xml value in the XLF language file which resides in the path
Resources/
of the extension or in thePrivate/ Language typo3conf/
(l10n/ [lang- key] var/
in composer mode) subfolder of the TYPO3 root folder. And on the right side of the equation sign '=' you put the new value string for the language key which you want to override.labels/ [lang- key]
Example
plugin.tx_myext_pi1._LOCAL_LANG.de.list_mode_1 = Der erste Modus
All variables, which are used inside an extension with
$this->pi_
can that way be overwritten with TypoScript. The locallang.
file in
the plugin folder in the file system can be used to get an overview of
the entries the extension uses.
Properties for all frontend plugins based on Extbase
Features
Activate features for Extbase or a specific plugin.
features.skipDefaultArguments
features.skipDefaultArguments
-
- Type
- boolean
- Default
false
Only for Extbase plugins. Skip default arguments in URLs. If a link to the default controller or action is created, the parameters are omitted.
Example
plugin.tx_blogexample_rssfeed {
features {
skipDefaultArguments = 1
}
}
features.ignoreAllEnableFieldsInBe
Deprecated since version 12.4 See :ref:`setup-plugin-features-ignoreAllEnableFieldsInBe-migration`
features.ignoreAllEnableFieldsInBe
-
- Type
- boolean
- Default
false
Only for Extbase plugins. Ignore the enable fields in backend.
Example
plugin.tx_blogexample_admin { features { ignoreAllEnableFieldsInBe = 1 } }
Copied!
Persistence
Settings, relevant to the persistence layer of Extbase.
persistence.enableAutomaticCacheClearing
persistence.enableAutomaticCacheClearing
Example: Disable automatic cache clearing for Extbase plugin
plugin.tx_blogexample_admin {
persistence {
enableAutomaticCacheClearing = 0
}
}
persistence.storagePid
persistence.storagePid
-
- Type
- string (comma separated list of integers)
Only for Extbase plugins. List of page IDs, from which all records are read.
Example: Set storage PID for Extbase plugin
plugin.tx_blogexample {
persistence {
storagePid = 42
}
}
persistence.recursive
persistence.recursive
-
- Type
- integer
Only for Extbase plugins. Number of sub-levels of the storagePid are read.
Example: Fetch records recursively from storage folder
plugin.tx_blogexample {
persistence {
# Includes 4 sub-levels of the storagePid
recursive = 4
}
}
View
View and template settings.
All root paths are defined as an array which enables you to define multiple root paths that will be used by Extbase to find the desired template files.
The root paths work just like the one in the FLUIDTEMPLATE.
Example: Set template paths for Extbase plugin
plugin.tx_blogexample {
view {
layoutRootPaths {
0 = EXT:blog_example/Resources/Private/Layouts/
10 = EXT:my_extension/Resources/Private/Layouts/
}
partialRootPaths {
0 = EXT:blog_example/Resources/Private/Partials/
10 = EXT:my_extension/Resources/Private/Partials/
}
templateRootPaths {
0 = EXT:blog_example/Resources/Private/Templates/
10 = EXT:my_extension/Resources/Private/Templates/
}
}
}
view.layoutRootPaths
view.layoutRootPaths.[array]
-
- Type
- string
Only for Extbase plugins. This can be used to specify the root paths for all Fluid layouts. If nothing is specified, the path
EXT:
is used.my_ extension/ Resources/ Private/ Layouts
view.partialRootPaths
view.partialRootPaths.[array]
-
- Type
- string
Only for Extbase plugins. This can be used to specify the root paths for all Fluid partials. If nothing is specified, the path
EXT:
is used.my_ extension/ Resources/ Private/ Partials
view.templateRootPaths
view.templateRootPaths.[array]
-
- Type
- string
Only for Extbase plugins. This can be used to specify the root paths for all Fluid templates in this plugin. If nothing is specified, the path
EXT:
is used.my_ extension/ Resources/ Private/ Templates
view.pluginNamespace
view.pluginNamespace.[array]
-
- Type
- string
This can be used to specify an alternative namespace for the plugin. Use this to shorten the Extbase default plugin namespace or to access arguments from other extensions by setting this option to their namespace.
MVC
These are useful MVC settings about error handling:
mvc.callDefaultActionIfActionCantBeResolved
mvc.callDefaultActionIfActionCantBeResolved
-
- Type
- boolean
- Default
false
Only for Extbase plugins. If set, causes the controller to show its default action if the called action is not allowed by the controller.
Example: Call default action if action cannot be resolved
plugin.tx_blogexample {
mvc {
callDefaultActionIfActionCantBeResolved = 1
}
}
mvc.throwPageNotFoundExceptionIfActionCantBeResolved
mvc.throwPageNotFoundExceptionIfActionCantBeResolved
-
- Type
- boolean
- Default
false
Same as mvc.callDefaultActionIfActionCantBeResolved but this will raise a "page not found" error.
Example: Show 404 (page not found) page if action cannot be resolved
plugin.tx_blogexample {
mvc {
throwPageNotFoundExceptionIfActionCantBeResolved = 1
}
}
Format
Warning
Using this parameter is considered bad practice. In most cases it is better use different actions for different output formats.
format
-
- Type
- string
- Default
html
Define the default file ending of the template files. The template files have to take care of creating the desired format output.
Example: Define alternative output formats for RSS feeds
plugin.tx_blogexample_rssfeedxml {
// Use template List.xml
format = xml
}
plugin.tx_blogexample_rssfeedatom {
// Use template List.atom
format = atom
}
Settings
Here reside are all the settings, both extension-wide and plugin-specific.
These settings are available in the controllers as the array variable
$this->settings
and in any Fluid template with {settings}
.
The settings for a specific plugin can be overridden by FlexForm values of the same name.