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.tx_myext_pi1 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

Property

userFunc

Data type

(array of keys)

Description

Property setting up the USER and USER_INT object of the plugin.

_CSS_DEFAULT_STYLE

Property

_CSS_DEFAULT_STYLE

Data type

string / stdWrap

Description

Use this to have some default CSS styles inserted in the header section of the document. _CSS_DEFAULT_STYLE 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.

This value is read by the frontend RequestHandler script when collecting the CSS of the document to be rendered.

This is e.g. used by frontend and indexed_search. Their default styles can be removed with:

EXT:site_package/Configuration/TypoScript/setup.typoscript
plugin.tx_frontend._CSS_DEFAULT_STYLE >
plugin.tx_indexedsearch._CSS_DEFAULT_STYLE >

However, you will then have to define according styles yourself.

_CSS_PAGE_STYLE

Deprecated since version 12.1: Integrators should avoid using _CSS_PAGE_STYLE on plugin level. They should switch adding CSS on a PAGE level. A direct replacement using page.cssInline looks like this:

Before:

plugin.tx_myPlugin._CSS_PAGE_STYLE (
    .myClass { text-align: center }
)

After:

page.cssInline {
    10 = TEXT
    10.value (
        .myClass { text-align: center }
    )
}

As a general note, the PAGE property includeCSS is often better suited to include CSS as files, especially when frontend CSS is generated by some processor like SCSS.

Property

_CSS_PAGE_STYLE

Data type

string

Description

_CSS_PAGE_STYLE 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 global config.compressCss setting.

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 RequestHandler when collecting the CSS of the document to be rendered.

Properties for all frontend plugins based on Extbase

Features

Activate features for Extbase or a specific plugin.

features.skipDefaultArguments

Property

features.skipDefaultArguments

Data type

boolean

Default

false

Description

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

EXT:blog_example/Configuration/TypoScript/setup.typoscript
plugin.tx_blogexample_rssfeed {
  features {
    skipDefaultArguments = 1
  }
}

features.ignoreAllEnableFieldsInBe

Property

features.ignoreAllEnableFieldsInBe

Data type

boolean

Default

false

Description

Only for Extbase plugins. Ignore the enable fields in backend.

Example

EXT:blog_example/Configuration/TypoScript/setup.typoscript
plugin.tx_blogexample_admin {
  features {
    ignoreAllEnableFieldsInBe = 1
  }
}

Persistence

Settings, relevant to the persistence layer of Extbase.

persistence.enableAutomaticCacheClearing

Property

persistence.enableAutomaticCacheClearing

Data type

boolean

Default

true

Description

Only for Extbase plugins. Enables the automatic cache clearing when changing data sets (see also t3coreapi:extbase_caching_of_actions_and_records).

Example

EXT:blog_example/Configuration/TypoScript/setup.typoscript
plugin.tx_blogexample_admin {
  persistence {
    enableAutomaticCacheClearing = 0
  }
}

persistence.storagePid

Property

persistence.storagePid

Data type

boolean

Default

true

Description

Only for Extbase plugins. List of Page-IDs, from which all records are read.

Example

EXT:blog_example/Configuration/TypoScript/setup.typoscript
plugin.tx_blogexample {
  persistence {
    storagePid = 42
  }
}

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

EXT:blog_example/Configuration/TypoScript/setup.typoscript
plugin.blog_example {
    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

Property

view.layoutRootPaths

Data type

(array of indexes)

Description

Only for Extbase plugins. This can be used to specify the root paths for all Fluid layouts. If nothing is specified, the path EXT:my_extension/Resources/Private/Layouts is used.

view.partialRootPaths

Property

view.partialRootPaths

Data type

(array of indexes)

Description

Only for Extbase plugins. This can be used to specify the root paths for all Fluid partials. If nothing is specified, the path EXT:my_extension/Resources/Private/Partials is used.

view.templateRootPaths

Property

view.templateRootPaths

Data type

(array of indexes)

Description

This can be used to specify the root paths for all Fluid templates in this extension. If nothing is specified, the path EXT:my_extension/Resources/Private/Templates is used.

view.pluginNamespace

Property

view.pluginNamespace

Data type

(array of indexes)

Description

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

Property

mvc.callDefaultActionIfActionCantBeResolved

Data type

boolean

Default

false

Description

Only for Extbase plugins. Will cause the controller to show its default action if the called action is not allowed by the controller.

Example

EXT:blog_example/Configuration/TypoScript/setup.typoscript
plugin.tx_blogexample {
  mvc {
    callDefaultActionIfActionCantBeResolved = 1
  }
}

mvc.throwPageNotFoundExceptionIfActionCantBeResolved

Property

mvc.callDefaultActionIfActionCantBeResolved

Data type

boolean

Default

false

Description

Same as mvc.callDefaultActionIfActionCantBeResolved but this will raise a "page not found" error.

Example

EXT:blog_example/Configuration/TypoScript/setup.typoscript
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.

Property

format

Data type

string

Default

html

Description

Define the default file ending of the template files. The template files have to take care of creating the desired format output.

Example

EXT:blog_example/Configuration/TypoScript/setup.typoscript
plugin.tx_blogexample_rssfeedxml {
  // Use template List.xml
  format = xml
}
plugin.tx_blogexample_rssfeedatom {
  // Use template List.atom
  format = atom
}

_LOCAL_LANG.[lang-key].[label-key]

Property

_LOCAL_LANG.[lang-key].[label-key]

Data type

string

Description

Can be used to override the default language labels for Extbase plugins. 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/Private/Language of the extension or in the typo3conf/l10n/[lang-key] (var/labels/[lang-key] 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.

Example

EXT:site_package/Configuration/TypoScript/setup.typoscript
plugin.tx_myext_pi1._LOCAL_LANG.de.list_mode_1 = Der erste Modus

All variables, which are used inside an Extbase extension with the ViewHelper <f:translate> can that way be overwritten with TypoScript. The locallang.xlf file in the plugin folder in the file system can be used to get an overview of the entries the extension uses.

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.