---
title: "Feature: Introduce PSR-14 ModifyProfileTitlePlaceholderReplacementEvent in ProfileTitleProvider"
manual: "Academic Profiles"
version: "main"
source: "Changelog/2.1/Feature-IntroducePSR-14ModifyProfileTitlePlaceholderReplacementEventInProfileTitleProvider.rst"
rendered: "2026-10-02T20:47:49+00:00"
---

# Feature: Introduce PSR-14 `ModifyProfileTitlePlaceholderReplacementEvent` in `ProfileTitleProvider` {#feature-1746706500}

## Description {#description}

With recent changes a series of features has been implemented to
make the HTML title tag for person profile pages more flexible,
with a placeholder based FlexForm options and also allowing to
influence the default and the setting pageTitleFormat.

The used `ProfileTitleProvider` already looks into the format
string and provides the ability to replace placeholders, which
matches getters in the profile.

To provide even more flexibility, this change introduces a new
PSR-14 Event `ModifyProfileTitlePlaceholderReplacementEvent`,
which is dispatched for each placeholder enriched with quite a
handfull of use-full context information.

Following methods are available on the event:

-   `getPluginControllerActionContext(): PluginControllerActionContextInterface`
    containing the request along with easy access methods to site,
    siteLanguage and extbase plugin information and the plugin
    settings.
-   `getProfile(): Profile` the current person profile to display.
-   `getPlaceholder()` the original/raw placeholder identifier.
-   `getReplacement()` the value to replace the placeholder with,
    which may differ already if a earlier event listener changed
    the value using `setReplacement()`.
-   `setReplacement(string $replacement): void` to set the value
    used to replace the placeholder.

This event allows project to implement custom placeholders and
the replacement without using old-school xclassing technique.
