---
title: "Breaking: The partials of the detail view change"
manual: "Academic Profiles"
version: "main"
source: "Changelog/3.0/Breaking-PublicProfileDetailPartials.rst"
rendered: "2026-10-02T20:47:49+00:00"
---

# Breaking: The partials of the detail view change {#breaking-public-profile-detail-partials}

> [!NOTE]
> **See also**
>
> [Upgrading from 2.4 to 3.0.0](../../Upgrade/Index.html#upgrade) is the order in which the 3.0 changes have to be applied.

## Description {#description}

The public profile detail view is assembled from configuration instead of a
fixed template ([Feature: Configurable public profile](Feature-ConfigurablePublicProfile.html#feature-configurable-public-profile)), and
`Resources/Private/Templates/Profile/Detail.html` is rewritten for it.
It dispatches every configured element to one partial below
`Resources/Private/Partials/Profile/PublicProfile/` and renders nothing
by itself:

`Contact.html`, `Element.html`, `Headline.html`,
`Links.html`, `MenuSections.html`, `MenuSectionsDatas.html`,
`Position.html`, `ProfileEntries.html`, `ProfileImage.html`,
`Subline.html` and `TimelineItem.html`.

Those eleven files are the override surface of the detail view from 3.0 on.

Three partials the previous `Detail.html` rendered are no longer part of
it:

-   `Partials/Profile/DataHeader.html` **is deleted.** The detail view
    was its only caller. It rendered the heading of a data block through
    `{header -> f:format.raw()}` and a `f:switch` on a `layout`
    value; the configurable view gives every element its own heading, in its
    own partial, escaped.
-   `Partials/Profile/Header.html` and
    `Partials/Profile/SectionHeader.html` **are kept, and the detail view
    no longer renders them.** They still render the headings of the list and
    card views of this extension and of the contact plugins of
    `EXT:academic_contacts4pages`, so an override of either keeps
    working there and stops having any effect on a profile detail page.

## Impact {#impact}

A project that overrode one of the three partials to style the detail view
loses that styling: the deleted one is not read any more, and the two that stay
are not reached from the detail view. Neither shows an error - the page renders,
without the override.

A project that overrides `Templates/Profile/Detail.html` itself keeps
rendering its own template and is affected differently: see
[Feature: Configurable public profile](Feature-ConfigurablePublicProfile.html#feature-configurable-public-profile).

## Affected Installations {#affected-installations}

Every installation with a project override of
`Partials/Profile/DataHeader.html`, `Partials/Profile/Header.html`
or `Partials/Profile/SectionHeader.html`, and every project whose own
template renders `Profile/DataHeader`.

## Migration {#migration}

1.  Remove an override of `Partials/Profile/DataHeader.html`, and any
    `<f:render partial="Profile/DataHeader" />` in project templates. A
    partial that no longer exists is a render time error, not a silent empty
    string.
1.  Move detail view styling out of `Partials/Profile/Header.html` and
    `Partials/Profile/SectionHeader.html` into the
    `PublicProfile/` partial of the element it belongs to. Keep the
    override for the list and card views if it is still wanted there.
1.  Flush the TYPO3 caches, so the Fluid template cache is rebuilt.
