---
title: "Feature: Restrict the backend contract selects"
manual: "Academic Profiles"
version: "main"
permalink: "https://docs.typo3.org/permalink/fgtclb/academic-persons:feature-restrict-the-backend-contract-selects@main"
source: "Changelog/2.4/Feature-RestrictTheBackendContractSelects.rst"
rendered: "2026-10-15T10:24:29+00:00"
---

# Feature: Restrict the backend contract selects {#feature-restrict-the-backend-contract-selects}

## Description {#description}

Two backend fields let an editor pick a contract: the **Contract** of
a page contact record of [`fgtclb/academic-contacts4pages`](https://packagist.org/packages/fgtclb/academic-contacts4pages), and
**Selected Contracts** of the **Profiles: Selected Contracts**
content element. Both offer every contract of the installation. In an
installation with more than one site that is every site's contracts, each
labelled with a person's name.

Page TSconfig now restricts a field to the pages its contracts are stored on:

**Page TSconfig of a site root**

```typoscript
# The "Contract" field of a page contact record.
TCEFORM.tx_academiccontacts4pages_domain_model_contact.contract.itemsProcFunc {
    storagePids = 42,84
    recursive = 1
}

# The "Selected Contracts" field of the content element.
TCEFORM.tt_content.pi_flexform.academicpersons_selectedcontracts.sDEF.settings\.selectedContracts.itemsProcFunc {
    storagePids = 42,84
    recursive = 1
}
```

`storagePids` is a comma-separated list of page uids and
`recursive` the number of levels below each of them to include. A
hidden folder is included as well, because a storage folder is regularly
hidden.

A contract the edited record already references stays selectable wherever it is
stored, so that opening and saving a record never drops a relation it has.

## Impact {#impact}

The setting is opt-in and without it the selects offer what they offered
before, so an installation that does not configure it is unaffected.

Respecting the Extbase storage page instead is deliberately not done: a page
tree without an explicitly configured storage page would get an empty select
and no error.

The restriction is applied before
`\FGTCLB\AcademicBase\Event\ModifyTcaSelectFieldItemsEvent` is dispatched,
so a listener of that event still has the last word, including one that adds
items back.

## Affected Installations {#affected-installations}

Installations with contracts in more than one storage folder or site, whose
editors pick contracts in the backend.
