---
title: "Feature: The script of the public profile can be switched off"
manual: "Academic Profiles"
version: "main"
permalink: "https://docs.typo3.org/permalink/fgtclb/academic-persons:feature-1791566503@main"
source: "Changelog/3.0/Feature-JavaScriptSwitch.rst"
rendered: "2026-10-15T10:24:29+00:00"
---

# Feature: The script of the public profile can be switched off {#feature-1791566503}

## Description {#description}

The template `Templates/Profile/Detail.html` of the
**Profile detail** and the **Profile list and detail** content
elements registers the module
`@fgtclb/academic-persons/frontend/profile.js`. An installation that brings
its own script had to override the whole template to leave it out.

The module is switchable now, per site:

| Site setting and constant | Default |
| --- | --- |
| `plugin.tx_academicpersons.assets.js` | `true` |

It is declared by the site set `fgtclb/academic-persons`, with every other
setting of this extension:

**config/sites/my-site/settings.yaml**

```yaml
plugin.tx_academicpersons.assets.js: false
```

An installation that configures its frontend through `sys_template`
records sets the TypoScript constant of the very same name, in
**Constants**:

**Constants of the root sys_template record**

```typoscript
plugin.tx_academicpersons.assets.js = 0
```

Every academic extension that loads a script has this switch, named
`assets.js` below its own plugin namespace and switched on by
default, after the switch of the study plan content element.

## Impact {#impact}

Nothing changes for an installation that configures nothing: the profile
loads its script exactly as before.

Switched off, the page does not load it, and the markup is unchanged. **The
entries of the profile stay folded** until a script of the site opens them:
the template renders each panel with the attribute `hidden`. See
[Load the script or bring your own](https://docs.typo3.org/permalink/fgtclb/academic-persons:configuration-javascript@main) for the markup a script of your own addresses.

A project that overrides `Templates/Profile/Detail.html` keeps whatever
its copy loads. The switch reaches it once it wraps its own
`<f:asset.module>` in `<f:if condition="{settings.assets.js}">`.
