---
title: "For developers"
manual: "Academic Contacts for Pages"
version: "main"
permalink: "https://docs.typo3.org/permalink/fgtclb/academic-contacts4pages:developers@main"
source: "Developers/Index.rst"
rendered: "2026-10-26T19:20:19+00:00"
---

# For developers {#developers}

The contacts content element and the data processor that hands the contacts of
a page to a page template read the contacts through one service, and that
service dispatches one PSR-14 event. It is the supported way to change which
contacts a page shows, in either output, without copying the controller. The
content element and the backend form of a contact dispatch two events of
**academic_base** as well.

Which classes of this extension are public API, and what that promises, is
stated for all academic extensions on the [extension points page of
academic_base](https://docs.typo3.org/p/fgtclb/academic-base/main/en-us/Developers/ExtensionPoints/Index.html#developers-extension-points).

## Events {#developers-events}

| Event | Dispatched | What a listener can change | Owner |
| --- | --- | --- | --- |
| [ModifyPageContactsEvent](https://docs.typo3.org/permalink/fgtclb/academic-contacts4pages:developers-event-modify-page-contacts-event@main) | each time the content element renders and each time the data processor runs, after the contacts of the page are read and before they are grouped by role | replace the contacts | this extension |
| [ModifyPluginViewEvent](https://docs.typo3.org/permalink/fgtclb/academic-contacts4pages:developers-event-modify-plugin-view-event@main) | each time the content element renders, after it assigned its view variables | assign further view variables | **academic_base** |
| [ModifyTcaSelectFieldItemsEvent](https://docs.typo3.org/permalink/fgtclb/academic-contacts4pages:developers-event-modify-tca-select-field-items-event@main) | in the backend form of a contact, when the items of the e-mail address, phone number and address selects are built | change, remove, reorder or add items | **academic_base** |

Nothing changes in an installation that has no listener.
