---
title: "For developers"
manual: "Academic Profiles Edit"
version: "3.0"
permalink: "https://docs.typo3.org/permalink/fgtclb/academic-persons-edit:developers@3.0"
source: "Developers/Index.rst"
rendered: "2026-10-26T17:55:31+00:00"
---

# For developers {#developers}

This chapter documents the programmatic surface of the profile editing: the
events it dispatches around every write of the editor.

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).
The three controllers of the editor are `final` and `@internal`, so
the events are the way to take part in a write.

## Events {#developers-events}

| Event | Dispatched | What a listener can change | Owner |
| --- | --- | --- | --- |
| [BeforeProfileEditingWriteEvent](https://docs.typo3.org/permalink/fgtclb/academic-persons-edit:developers-event-before-profile-editing-write-event@3.0) | once for every write the editor accepted, right before anything of it is stored | refuse the write with a reason the person is shown, or replace the values it stores, which are validated again | this extension |
| [AfterProfileUpdateEvent](https://docs.typo3.org/permalink/fgtclb/academic-persons-edit:developers-event-after-profile-update-event@3.0) | once after a write was stored, for a profile edited in the default language of the site | react to the change. The profile, its site and the origin are read only | **academic_persons** |

The profile editing does not dispatch `ModifyPluginViewEvent` of
**academic_base**, which the plugins of the other academic extensions
dispatch. Its views are rendered once and then driven by the editor script, so
what a project needs to change about a write is offered by the write event
instead.
