Feature: Visibility (hidden) support for contact record models 

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 

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 

All installations using EXT:academic_persons.

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.