---
title: "5.0.0"
manual: "TYPO3 EXT:thuecat"
version: "6.0"
permalink: "https://docs.typo3.org/permalink/werkraummedia/thuecat:changelog-5-0-0@6.0"
source: "Changelog/5.0.0.rst"
rendered: "2026-10-14T06:55:32+00:00"
---

# 5.0.0 {#changelog-5-0-0}

What changed for installations upgrading from 4.2.0. Commits that do not affect an upgrade — fixes
to features introduced within 5.0.0, tests, CI — are not listed; the git history has them.

**On this page**

-   [Breaking](https://docs.typo3.org/permalink/werkraummedia/thuecat:breaking@6.0)
-   [Important](https://docs.typo3.org/permalink/werkraummedia/thuecat:important@6.0)
-   [Features](https://docs.typo3.org/permalink/werkraummedia/thuecat:features@6.0)
-   [Deprecation](https://docs.typo3.org/permalink/werkraummedia/thuecat:deprecation@6.0)
-   [Known issues](https://docs.typo3.org/permalink/werkraummedia/thuecat:known-issues@6.0)

## Breaking {#breaking}

-   **Add TYPO3 v14 Support** (`6381907`)

    TYPO3 v12 and PHP 8.1 are no longer supported; the extension requires TYPO3 13.4 or 14 and PHP 8.2
    or later. `ext_emconf.php` is gone, install via Composer, see [Installation](https://docs.typo3.org/permalink/werkraummedia/thuecat:installation@6.0).
-   **\[FEATURE\] Import Events into ext:events tables** (`b2be349`)

    [`werkraummedia/events`](https://packagist.org/packages/werkraummedia/events) is a new required dependency. Events are imported into its
    tables, so it has to be installed even where no events are imported.
-   **\[FEATURE\] Parser based importer** (`c8c2c5f`)

    The import was rewritten and writes through the DataHandler. The previous extension points —
    `MapsToType` entities, `Typo3Converter` converters and their compiler passes — are
    removed;
    custom import code has to be rebuilt as described in [The import](https://docs.typo3.org/permalink/werkraummedia/thuecat:developers-import@6.0).
-   **\[TASK\] Refactor code structure for importer** (`9ab6e84`)

    All import classes moved from `\WerkraumMedia\ThueCat\Domain\Import` to
    `\WerkraumMedia\ThueCat\Import`, including the `UrlProvider` interface. A custom URL
    provider has to follow the new namespace, see [What a run imports](https://docs.typo3.org/permalink/werkraummedia/thuecat:developers-import-sources@6.0).
-   **\[FEATURE\] Import Images via Import into FAL and relate to objects** (`6040613`)

    Images are downloaded into FAL, into a folder the import configuration names. Existing import
    configurations have no folder and fail until one is set, unless run with `--no_media`, see
    [Import configuration](https://docs.typo3.org/permalink/werkraummedia/thuecat:import-configuration@6.0).
-   **\[TASK\] Remove deprecated json-blob fields** (`68312dc`)

    The columns `media`, `address`, `opening_hours` and `special_opening_hours` are
    dropped, with the models reading them: `Base::getMedia()`, `Place::getAddress()` and
    `Place::get(Merged)(Special)OpeningHours()`. Templates use [the FAL fields](https://docs.typo3.org/permalink/werkraummedia/thuecat:frontend-output-media@6.0), `getAddressInline()`/`getFirstAddress()` and [the new
    opening hours accessors](https://docs.typo3.org/permalink/werkraummedia/thuecat:frontend-output-opening-hours@6.0); run the import once after the update to fill them.
-   **\[BUGFIX\] Properly read translated strings for address** (`6e05604`)

    Addresses are records of their own (`tx_thuecat_address`) instead of a value object. The
    misspelled `Address::getLatitute()` is now `getLatitude()`.
-   **\[FEATURE\] Store relations for schema:containedInPlace** (`f47fa76`)

    `town` holds several towns, so `TouristAttraction::getTown()` is replaced by
    `getTowns()`; templates reading `{attraction.town.title}` have to iterate
    `{attraction.towns}`. Containing organisations and places get fields of their own, see
    [One property, several target tables](https://docs.typo3.org/permalink/werkraummedia/thuecat:import-contained-in-place@6.0).
-   **\[TASK\] Remove custom page type** (`51704ca`)

    The page type `950`, the `ResolveEntities` data processor and the static template "ThüCAT -
    Page Types" are removed. Change such pages to standard pages before updating and render the data
    with plugins, see [Frontend output](https://docs.typo3.org/permalink/werkraummedia/thuecat:frontend-output@6.0).
-   **\[TASK\] Remove unused thuecat:configuration backend module** (`aa111e9`)

    The backend module listing import configurations is removed, and with it the TypoScript setting
    `module.tx_thuecat.settings.newRecordPid`. Import configurations are created and
    edited in the Records module.
-   **\[BUGFIX\] Scope import objects per site** (`23aae21`)

    A record is recognised only within the site that imports it, instead of anywhere in the
    installation. Where two sites import the same upstream object, the first run after the update
    creates the record the second site was missing, see [Records, identity and languages](https://docs.typo3.org/permalink/werkraummedia/thuecat:developers-import-records@6.0).

## Important {#important}

-   **\[TASK\] Change maintenance** (`8ceae43`)

    The extension is now maintained by Anja Leichsenring.
-   **Migrate CI from GitHub to Forgejo (main)** (`a09c479`)

    Development moved from GitHub to [https://forgejo.werkraum-media.de/typo3/thuecat](https://forgejo.werkraum-media.de/typo3/thuecat).
-   **\[TASK\] Remove deprecations for v14 (#138)** (`c88ad9d`)

    The upgrade wizard that migrated backend user permissions to the ThüCAT module group is removed.
    Run it before updating if it is still pending.
-   **\[TASK\] Remove requirement for fluid-styled-content** (`afc36d7`)

    The extension no longer requires [`typo3/cms-fluid-styled-content`](https://packagist.org/packages/typo3/cms-fluid-styled-content). Require it in the
    project if the instance relies on it.

## Features {#features}

-   **Add TYPO3 v14 Support** (`6381907`)

    The extension supports TYPO3 13.4 and 14.
-   **\[FEATURE\] Prepare Extbase actions for CE output** (`3b67233`)

    Plugins for list, search form, selected list and detail view replace the page type. Output is
    built with content elements of the site's own, see [Frontend output](https://docs.typo3.org/permalink/werkraummedia/thuecat:frontend-output@6.0).
-   **\[FEATURE\] Frontend ready FAL fields main_image, media_files and editorial_images** (`23044a9`)

    Images are proper file references, rendered with the usual TYPO3 image handling. See
    [Media](https://docs.typo3.org/permalink/werkraummedia/thuecat:frontend-output-media@6.0).
-   **\[FEATURE\] Remove file references not provided by upstream** (`cbe6161`)

    An image upstream no longer supplies loses its file reference on re-import, and each file is
    downloaded once per run. See [Media files](https://docs.typo3.org/permalink/werkraummedia/thuecat:developers-import-media@6.0).
-   **\[FEATURE\] Import opening hours as IRRE records** (`3fa6420`)

    Opening hours are inline records with display-ready accessors and a partial for a per-day table.
    See [Opening hours](https://docs.typo3.org/permalink/werkraummedia/thuecat:frontend-output-opening-hours@6.0).
-   **\[FEATURE\] Two more partials to display opening hours with merged time periods** (`73bccc1`)

    Two further partials group days with identical hours. See [Opening hours](https://docs.typo3.org/permalink/werkraummedia/thuecat:frontend-output-opening-hours@6.0).
-   **\[FEATURE\] Add categories to events based on @type** (`e433084`)

    An object's `@type` becomes `sys_category` relations, starting with events.
-   **\[FEATURE\] Import categories into tourist attractions** (`bda7ce1`)

    Tourist attractions get their categories too, and the search form filters by them. See
    [Category and keyword trees](https://docs.typo3.org/permalink/werkraummedia/thuecat:frontend-output-plugin-settings-trees@6.0).
-   **\[FEATURE\] Import category hierarchy from thuecat** (`1b4b435`)

    Categories are arranged in the hierarchy of the schema.org and ThüCAT vocabularies instead of a
    flat list. See [The @type hierarchy](https://docs.typo3.org/permalink/werkraummedia/thuecat:category-hierarchy@6.0).
-   **\[FEATURE\] Import keywords in both POIs and events** (`d4fa6d4`)

    `schema:keywords` is imported as a `sys_category` tree of its own, separate from the
    categories. See [Keywords](https://docs.typo3.org/permalink/werkraummedia/thuecat:import-keywords@6.0).
-   **\[FEATURE\] Use imported keywords for display and filtering** (`86cd3e5`)

    Attraction lists filter by keyword, and the detail view emits a `keywords` meta tag. See
    [Category and keyword trees](https://docs.typo3.org/permalink/werkraummedia/thuecat:frontend-output-plugin-settings-trees@6.0).
-   **\[FEATURE\] Allow top-level entities to define their sys_category anchors** (`b280d76`)

    Where category and keyword trees live is configured per site and per record kind, through the site
    set `werkraummedia/thuecat-import`. See [Category and keyword anchors](https://docs.typo3.org/permalink/werkraummedia/thuecat:configuration-category-anchors@6.0).
-   **\[FEATURE\] Make import more robust by introducing timeout, recovery and watchdog** (`4cc9db0`)

    Requests time out and are retried, a run has a time budget, and progress is shown on the console.
    API responses are now cached in the database for 15 minutes; `--fresh` bypasses the cache,
    see [Import tuning](https://docs.typo3.org/permalink/werkraummedia/thuecat:import-tuning@6.0).
-   **\[TASK\] Allow skipping media during imports** (`60d3da1`)

    `--no_media` runs an import without downloading images. See [Import without media](https://docs.typo3.org/permalink/werkraummedia/thuecat:import-without-media@6.0).
-   **\[FEATURE\] Improve performance of POI lists by custom caching** (`007b6f3`)

    Lists, list items and the search form are cached and cleared along with the page cache. See
    [Caching](https://docs.typo3.org/permalink/werkraummedia/thuecat:frontend-output-caching@6.0).
-   **\[FEATURE\] Import trails** (`2f3f3b7`)

    Trails are imported into a table of their own, with their way types, conditions and start and end
    locations.
-   **\[FEATURE\] Selected List & Show CEs incl. Templates for Trails** (`05f8161`)

    Trails have plugins and templates for a selected list and a detail view. See
    [Content element example](https://docs.typo3.org/permalink/werkraummedia/thuecat:content-element-example@6.0).
-   **\[FEATURE\] Show plugins can show dedicated editor chosen record** (`964b92a`)

    A detail plugin can show one record chosen in the backend instead of the one in the URL. See
    [Picking records](https://docs.typo3.org/permalink/werkraummedia/thuecat:frontend-output-plugin-settings-records@6.0).
-   **\[FEATURE\] Scope TCA and flexform select fields to records in site** (`41e06e3`)

    Relation fields in the backend offer only records of the current site. The suggest wizard is
    bounded through a global `TCEFORM.suggest.default.addWhere`, which affects every suggest
    field of the installation, see [Backend relation scoping](https://docs.typo3.org/permalink/werkraummedia/thuecat:backend-relation-scoping@6.0).
-   **\[FEATURE\] Import organizer and location for events** (`023d575`)

    Events get their location and organizer, and places list the events taking place there. See
    [Events matched to places](https://docs.typo3.org/permalink/werkraummedia/thuecat:developers-import-event-place-matching@6.0).
-   **\[FEATURE\] Introduce sorting for POI lists** (`ee1ff62`)

    The list and filtered list plugins for tourist attractions sort by title, as before, or by the
    record order set in the backend. See [Sort order](https://docs.typo3.org/permalink/werkraummedia/thuecat:frontend-output-plugin-settings-sort-order@6.0).

## Deprecation {#deprecation}

Nothing

## Known issues {#known-issues}

A re-import updates what ThueCat still delivers, but not everything ThueCat stops delivering is
removed from the stored records. The import errs on the side of keeping data: a value is only
removed where the import can tell a deliberate removal upstream from a missing or failed delivery.

-   **Text cleared upstream keeps its old value.** When ThueCat empties a text field, for example a
    description, the record keeps the previous text. This applies to every text field of every
    record kind. Numeric fields are not affected.
-   **Opening hours are never removed.** An opening hours entry ThueCat no longer delivers stays on
    the record, next to the current ones.
-   **Dropping everything of one kind keeps the old set.** Any *change* ThueCat makes is respected,
    including dropping some entries of one kind. When a record drops *all* entries of one kind, the
    stored ones stay. This applies to images, keywords, addresses, other relations, and an event's
    organizer and location.
    Related records themselves are shared and stay either way.

**Workaround:** delete the affected record in the backend; the next import creates it again from
what ThueCat delivers. The record gets a new uid, so plugins showing it as an editor-chosen record
have to select it again.
