---
title: "Plugin settings"
manual: "TYPO3 EXT:thuecat"
version: "main"
permalink: "https://docs.typo3.org/permalink/werkraummedia/thuecat:frontend-output-plugin-settings@main"
source: "Integration/FrontendOutput/PluginSettings.rst"
rendered: "2026-10-09T11:47:03+00:00"
---

# Plugin settings {#frontend-output-plugin-settings}

Everything a content element can configure for its plugin, field by field. Which content element
offers which field is up to you; [Content element example](https://docs.typo3.org/permalink/werkraummedia/thuecat:content-element-example@main) shows a typical set.

**Table of contents**

-   [Record source](https://docs.typo3.org/permalink/werkraummedia/thuecat:record-source@main)
-   [Target pages and page size](https://docs.typo3.org/permalink/werkraummedia/thuecat:target-pages-and-page-size@main)
-   [Picking records](https://docs.typo3.org/permalink/werkraummedia/thuecat:picking-records@main)
-   [Presets](https://docs.typo3.org/permalink/werkraummedia/thuecat:presets@main)
-   [Category and keyword trees](https://docs.typo3.org/permalink/werkraummedia/thuecat:category-and-keyword-trees@main)

## Record source {#frontend-output-plugin-settings-source}

-   **`pages`**

    The storage folders a list reads from. Left empty, the list is not limited to any storage page.

-   **`recursive`**

    How many levels below the folders in `pages` are included.

Both are core fields of the content element, not FlexForm settings.

## Target pages and page size {#frontend-output-plugin-settings-pages}

-   **`settings.itemsPerPage`**

    Items per page of a list. Falls back to `20` when nothing usable is set.

-   **`settings.page.pid.thuecat_attraction_show`**

    Page carrying the attraction detail content element; list items link there.

-   **`settings.page.pid.thuecat_attraction_search`**

    Search result page; search forms on pages without a list submit there.

-   **`settings.page.pid.thuecat_trail_show`**

    Page carrying the trail detail content element; trail list items link there.

These are usually set once for the whole site, see [Site settings](https://docs.typo3.org/permalink/werkraummedia/thuecat:frontend-output-site-settings@main). A content
element may override them in its FlexForm.

> [!IMPORTANT]
> Extbase lets a FlexForm field override the TypoScript setting even when the field is empty. An
> empty `page.pid` field then removes the link target the site settings provide. List every
> overridable field in `ignoreFlexFormSettingsIfEmpty` so an empty field falls back to the site
> settings:
>
> **EXT:myextension/Configuration/Sets/MySet/setup.typoscript**
>
> ```typoscript
> plugin.tx_thuecat {
>     ignoreFlexFormSettingsIfEmpty = itemsPerPage, page.pid.thuecat_attraction_show
> }
> ```

## Picking records {#frontend-output-plugin-settings-records}

-   **`settings.selectedRecords`**

    Selected lists only: the records to show, in the order the editor picked them. Offer records of
    the default language; translations are resolved when rendering.

-   **`settings.selectedRecord`**

    Detail views only: pins the record the element shows. When set, the URL parameter is ignored, so
    no link can change what the page renders. Left empty, the record is taken from the URL, which is
    what links from list items rely on. A pinned record that is hidden or deleted renders the "no
    data" message instead of falling back to the URL.

    Do not pin a record on a page that list items link to as detail page: every link would show the
    pinned record.

## Presets {#frontend-output-plugin-settings-presets}

A list with a preset becomes a filtered list. A preset restricts the list on every request, and the
search-and-filter form on the same page does not show a control for a preset field. It carries the
preset values as hidden fields instead. Visitors can narrow the result with the remaining fields,
but never widen it, not even with a changed URL.

-   **`settings.towns`**

    Records in any of the selected towns.

-   **`settings.categories`**

    Records related to any of the selected categories or to a category below them.

-   **`settings.keywords`**

    Records related to any of the selected keywords or to a keyword below them, see [Keywords](https://docs.typo3.org/permalink/werkraummedia/thuecat:import-keywords@main).

`settings.petsAllowed`, `settings.isAccessibleForFree`,
`settings.publicAccess`
Checkboxes. When set, only records marked accordingly are listed.

Several values within one field widen the result; several fields narrow it.

## Category and keyword trees {#frontend-output-plugin-settings-trees}

`settings.categories` and `settings.keywords` select `sys_category`
records. Start their tree at the parent category the import writes into, so editors are offered that
tree and not every category of the installation:

**EXT:myextension/ContentBlocks/ContentElements/attraction-list-filtered/config.yaml**

```yaml
- identifier: 'settings.categories'
  type: 'Select'
  relationship: 'oneToMany'
  renderType: 'selectTree'
  foreign_table: 'sys_category'
  treeConfig:
    parentField: 'parent'
    startingPoints: '###THUECAT_ANCHOR:tx_thuecat_tourist_attraction:category###'
```

The marker reads `###THUECAT_ANCHOR:<table>:<category|keywords>###`:

-   **`<table>`**

    The record table the content element lists, for example `tx_thuecat_tourist_attraction` or
    `tx_thuecat_trail`.

-   **`category` or `keywords`**

    Which of the two trees.

In the backend form the marker is replaced by the parent category configured for that record kind in
the site of the edited content element, see [Category and keyword anchors](https://docs.typo3.org/permalink/werkraummedia/thuecat:configuration-category-anchors@main). Where none is
configured, the tree starts at the root and offers every category.

Core's `###SITE:…###` marker works as well, but reads site settings only and never falls back to
the Extension Configuration.

-   **In the search form**

    The search-and-filter form offers the keyword tree below the keyword parent category, grouped by
    the keyword sets ThueCat defines. It offers only keywords carried by records the list on the page
    can return. A site without a keyword parent category offers no keyword choice.

    Selecting several keywords widens the result; adding a town or a category narrows it. Selecting a
    keyword set includes all children below it. The selection survives pagination.

-   **As a preset**

    `settings.keywords` restricts a list to the selected keywords, see [Presets](https://docs.typo3.org/permalink/werkraummedia/thuecat:presets@main). The
    search form then shows no keyword control.

-   **On the detail view**

    The attraction and trail detail views emit a `keywords` meta tag built from the record's
    keywords, joined by `", "`. A record without keywords emits none.

-   **Events**

    Imported events carry keyword relations as well, but no frontend output of this extension reads
    them.
