---
title: "Feature: Visibility (hidden) support for contact record models"
manual: "Academic Profiles"
version: "3.0"
permalink: "https://docs.typo3.org/permalink/fgtclb/academic-persons:feature-1782285578@3.0"
source: "Changelog/2.4/Feature-VisibilitySupportForContactRecordModels.rst"
rendered: "2026-10-26T17:55:22+00:00"
---

# Feature: Visibility (`hidden`) support for contact record models {#feature-1782285578}

## Description {#description}

The contact record models gained access to the `hidden` enable field
that already exists on their database tables:

-   `\FGTCLB\AcademicPersons\Domain\Model\Address`
-   `\FGTCLB\AcademicPersons\Domain\Model\Email`
-   `\FGTCLB\AcademicPersons\Domain\Model\PhoneNumber`

Each of them now provides:

-   `getHidden(): bool`
-   `setHidden(bool $hidden): self`

To work with hidden records the matching repositories
(`AddressRepository`, `EmailRepository`,
`PhoneNumberRepository`) provide two new methods that ignore the
`disabled` enable field:

-   `findByContractIncludingHidden(int $contractUid): QueryResultInterface`
-   `findByUidIncludingHidden(int $uid): ?<Model>`

`findByContractIncludingHidden()` orders the records by their
`sorting`, with `uid` ascending breaking ties between records that
share a `sorting` value.

These are used by the optional `EXT:academic_persons_edit` to let profile
owners show and hide their contact records in the frontend, while the
public profile display keeps excluding hidden records via the default
Extbase enable field handling.

## Impact {#impact}

The profile synchronization keeps matching and updating existing
contact records even when they are hidden, and no longer resets their
visibility. Integrators can use the new model accessors and repository
methods to handle contact record visibility programmatically.

## Affected Installations {#affected-installations}

All installations using `EXT:academic_persons`.

## Migration {#migration}

No migration is required. A project that extends or replaces one of these
Extbase models has to provide the new `hidden` property and its getter
and setter with the same signatures.
