---
title: "TypoScript"
manual: "Events2"
version: "11.1"
permalink: "https://docs.typo3.org/permalink/jweiland/events2:typoscript@11.1"
source: "Configuration/TypoScript/Index.rst"
rendered: "2026-11-05T08:42:15+00:00"
---

# TypoScript {#typoscript}

All following TypoScript configuration consists in `plugin.tx_events2`

## view {#view}

### templateRootPaths {#templaterootpaths}

Default: `EXT:events2/Resources/Private/Templates/`

Example: `plugin.tx_events2.view.templateRootPaths.40 = EXT:site_package/Resources/Private/Templates/`

You can override our Templates with your own SitePackage extension.

### partialRootPaths {#partialrootpaths}

Default: `EXT:events2/Resources/Private/Partials/`

Example: `plugin.tx_events2.view.partialRootPaths.40 = EXT:site_package/Resources/Private/Partials/`

You can override our Partials with your own SitePackage extension.

### layoutsRootPaths {#layoutsrootpaths}

Default: `EXT:events2/Resources/Private/Layouts/`

Example: `plugin.tx_events2.view.layoutsRootPaths.40 = EXT:site_package/Resources/Private/Layouts/`

You can override our Layouts with your own SitePackage extension. We prefer to change this value in TS Constants.

## persistence {#persistence}

### storagePid {#storagepid}

Default: empty

Example: `plugin.tx_events2.persistence.storagePid = 12,32,48`

Set this value to a Storage Folder where you have stored the event records.

> [!IMPORTANT]
> If you have stored Organizers and Locations in another Storage Folder, you have to add theses
> PIDs here, too.

> [!TIP]
> If you use creation of events over frontend plugin, new records will be stored in first PID found
> in storagePid. To store record in other storage PIDs you need following configuration
>
> ```typoscript
> plugin.tx_events2.persistence.classes.JWeiland\Events2\Domain\Model\Event.newRecordStoragePid = 34
> plugin.tx_events2.persistence.classes.JWeiland\Events2\Domain\Model\Location.newRecordStoragePid = 543
> ```

## settings {#settings}

### rootCategory {#rootcategory}

Default: empty

Example: `plugin.tx_events2.settings.rootCategory = 15`

Only valid for search form and management plugin.

As a TYPO3 Backend User can choose nearly every category from each category tree layer we have added *rootCategory*
as a further restriction to show only direct child categories of *rootCategory*. All selected categories in deeper
category tree will not be visible in Frontend. Else it would break our Search Plugin, where you can select
a category first and afterwards a sub-category.

The *rootCategory* has nothing to do with *rootUid* of ExtensionSettings. *rootUid* reduces the category tree
for users in the TYPO3 backend.

### pidOfDetailPage {#pidofdetailpage}

Default: 0

Example: `plugin.tx_events2.settings.pidOfDetailPage = 123`

Often it is useful to move the detail view onto a separate page for design/layout reasons.

### pidOfSearchResults {#pidofsearchresults}

Default: 0

Example: `plugin.tx_events2.settings.pidOfSearchResults = 213`

If you have plugin for search results on a different page then plugin for search form you can
set the page UID with search result plugin here.

### pidOfLocationPage {#pidoflocationpage}

Default: 0

Example: `plugin.tx_events2.settings.pidOfLocationPage = 132`

Often it is useful to move the location view onto a separate page for design/layout reasons.

### pidOfListPage {#pidoflistpage}

Default: 0

Example: `plugin.tx_events2.settings.pidOfListPage = 231`

If you use one of the above settings, it would be useful to define the *pidOfListPage*, too, so that
a link back to list works like expected.

### userGroup {#usergroup}

Default: 0

Example: `plugin.tx_events2.settings.userGroup = 21`

If you set this value to an UID of a frontend usergroup we will show a link in list view, where all
users of this usergroup can edit and create events. This will only work, if a user record was assigned to
an events2 organizer.

### remainingLetters {#remainingletters}

Default: 250

Example: `plugin.tx_events2.settings.remainingLetters = 120`

Only valid wile creating new event record in frontend. Management plugin.

To prevent inserting a lot of text into various text fields like teaser in frontend plugin,
you can reducr the amount of allowed letters here. With help of a little JavaScript events2 will show
a little countdown how many remaining letters are allowed to enter.

### new {#new}

Special properties for the event form of the Management plugin:

#### uploadFolder {#typoscript-new-uploadfolder}

<!-- TODO: no Markdown rendering for "versionadded" -->

The value is set by the new site setting events2.form.uploadFolder.

Default: `1:user_upload/tx_events2/`

Example: `plugin.tx_events2.settings.new.uploadFolder = 1:user_upload/events/`

Folder (combined identifier) for the images uploaded in the Extbase based
event form of the Management plugin. Set it with the site setting
`events2.form.uploadFolder` of the site set `jweiland/events2`. The folder
is created, if it does not exist. See [Image upload](https://docs.typo3.org/permalink/jweiland/events2:management-image-upload@11.1).

### latest {#latest}

Special properties for list latest view:

#### amountOfRecordsToShow {#amountofrecordstoshow}

Default: 7

Example: `plugin.tx_events2.settings.latest.amountOfRecordsToShow = 12`

How many records should be displayed in latest view.

> [!IMPORTANT]
> There is no PageBrowser for latest view! So please be careful setting this value to a very high value.
> It can slow down rendering a lot.

### pageBrowser {#pagebrowser}

Special setting for PageBrowser

#### itemsPerPage {#itemsperpage}

Default: 15

Example: `plugin.tx_events2.settings.pageBrowser.itemsPerPage = 5`

Max amount of records to show for each page in PageBrowser.

### \_LOCAL_LANG {#local-lang}

As an integrator you can override each language key with TypoScript. For frontend events2 uses this file:

`EXT:events2/Resources/Private/Language/locallang.xlf`

Example: `plugin.tx_events2._LOCAL_LANG.de.listMyEvents = Zeige meine Veranstaltungen`
