Important: Extended ProfileDemand, findByUids() and demand handling 

Description 

To support the new "Show hidden records" plugin option, the person demand and repository layer gained the following additions. All of them are non-breaking (new optional parameter / new transport flag with defaults):

  • \FGTCLB\AcademicPersons\Domain\Model\Dto\ProfileDemand has a new showHiddenRecords transport flag with getShowHiddenRecords(): bool and setShowHiddenRecords(bool): ProfileDemand accessors (default false). It mirrors the existing transport-only properties ( storagePages, fallbackForNonTranslated) and is likewise announced as a future addition to \FGTCLB\AcademicPersons\Domain\Model\Dto\DemandInterface (the interface carries the commented signatures and the repository guards the call with method_exists()).
  • \FGTCLB\AcademicPersons\Domain\Repository\ProfileRepository::findByDemand() honours ProfileDemand::getShowHiddenRecords() via applyDemandSettings().
  • \FGTCLB\AcademicPersons\Domain\Repository\ProfileRepository::findByUids() and \FGTCLB\AcademicPersons\Domain\Repository\ContractRepository::findByUids() gained an appended optional bool $showHidden = false parameter.
  • \FGTCLB\AcademicPersons\Domain\Repository\ProfileRepository::findByUidIncludingHidden(int $uid): ?Profile is a new method that resolves a single profile by uid including hidden (disabled) records. It is used by the detail view.
  • \FGTCLB\AcademicPersons\Controller\ProfileController reads $this->settings['showHiddenRecords'] in adoptSettings(), cardAction(), selectedProfilesAction() and selectedContractsAction() and threads it into the repositories. The new initializeDetailAction() re-resolves the profile argument via findByUidIncludingHidden() when the option is enabled, because the default Extbase argument mapping respects enable fields.

When the flag/parameter is set, the query ignores only the disabled (hidden) enable field via the Extbase query settings; the deleted, starttime/endtime and fe_group restrictions stay in effect.

Impact 

The change is non-breaking: the new demand flag defaults to false, the new findByUids() parameter has a default value, and no existing method signature changed in an incompatible way. Projects that build a ProfileDemand or call findByUids() themselves can opt in via setShowHiddenRecords(true) respectively the new parameter.

Affected Installations 

Only installations that extend or replace the ProfileDemand DTO, the ProfileRepository, the ContractRepository or the ProfileController need to take the additions into account. All other installations are unaffected.