---
title: "Configuration"
manual: "Academic Jobs"
version: "main"
source: "Configuration/Index.rst"
rendered: "2026-09-18T13:26:20+00:00"
---

# Configuration {#configuration}

This extension ships its frontend TypoScript and its backend page TSconfig in
two forms: as TYPO3 **site sets**, and as classic **static templates** plus
**page TSconfig files** that are selected on a page. Both forms read the very
same files, so they configure an installation identically.

Pick one of them per site and stay with it — see
[Do not combine both](#one-mechanism-per-site) for what happens otherwise.

## What the sets contain {#configuration-components}

This extension ships three content elements, so it ships three component sets
and one aggregate set that depends on all of them.

All three are driven by one Extbase plugin, so they share one TypoScript block,
`plugin.tx_academicjobs`. That block is shipped once, in
`Configuration/TypoScript/`, and every component includes it. Which
component sets a site names therefore decides which content elements the backend
offers, not how much TypoScript is loaded.

| Set | Delivers |
| --- | --- |
| `fgtclb/academic-jobs-new-job-form` | The **Jobs New** content element, the frontend form a job offer is entered with. |
| `fgtclb/academic-jobs-list` | The **Jobs List** content element. |
| `fgtclb/academic-jobs-detail` | The **Jobs Detail** content element. |
| `fgtclb/academic-jobs` | Everything above. This is the set to use unless you deliberately want a subset, and it is the name this extension published before the sets were cut per component — a site configuration that depends on it needs no change. |

Every component set depends on `fgtclb/academic-base-ctype-group`, the set of
**EXT:academic_base** that labels the content element group all academic
extensions sort their elements into.

The site settings of this extension — the storage, detail, list and redirect
pages, the notification e-mail and the job avatar upload — are declared with the
aggregate set. A site that depends on a single component set still gets the
shipped defaults, but can only override them in **Site Settings** when
it depends on `fgtclb/academic-jobs`.

## The content elements are hidden by default {#configuration-hidden-by-default}

**EXT:academic_jobs** hides all three of its content elements for the
whole installation and brings them back per component. Whichever of the two
mechanisms below you use, it is what makes an element selectable in the backend
again — without one of them the content element is not offered, and existing
records keep rendering.

> [!WARNING]
> This changed in version 2.4. Before it, all three elements were selectable
> on every page of every installation. Read
> [Breaking: Site sets and static templates have been restructured](../Changelog/2.4/Breaking-SiteSetsAndStaticTemplatesRestructured.html#breaking-site-sets-and-static-templates-restructured) before upgrading:
> opening an existing record on a page that does not include the page
> TSconfig of its component can rewrite the type of that record.

## Include the site set {#site-set}

Add the set to the `config.yaml` of the site that should offer the content
elements:

**config/sites/my-site/config.yaml (diff)**

```diff
 base: 'https://example.com/'
 rootPageId: 1
+dependencies:
+  - fgtclb/academic-jobs
```

See also [TYPO3 Explained, Using a site set as dependency in a site](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/SiteHandling/SiteSets/Index.html#site-sets-usage).

## Include static templates {#static-templates}

For an installation that still configures its frontend through
`sys_template` records, the same files are registered as static templates
and as selectable page TSconfig files.

> [!TIP]
> On TYPO3 v13 and v14 we recommend the site set — and if you use it, do not
> press the backend button **Create a root TypoScript record** on that
> site. The `sys_template` record it creates carries the flag
> **Clear** for constants and setup, and that flag discards everything
> the site sets contributed. An installation that is already in that state
> gets its configuration back by selecting the static templates below in that
> very record.

### Include static TypoScript {#static-typoscript}

Edit the `sys_template` record of the site root and add the entry to
**Include static (from extensions)**:

| Entry | Delivers |
| --- | --- |
| **Academic Jobs: Jobs New (academic_jobs)** | The TypoScript of the **Jobs New** content element. |
| **Academic Jobs: Jobs List (academic_jobs)** | The TypoScript of the **Jobs List** content element. |
| **Academic Jobs: Jobs Detail (academic_jobs)** | The TypoScript of the **Jobs Detail** content element. |
| **Academic Jobs: All components (academic_jobs)** | Every component this extension ships, in one entry. |
| **Academic Jobs: Shared plugin settings (academic_jobs)** | The shared `plugin.tx_academicjobs` block on its own. This is the entry an installation stored before the configuration was cut per component, and it keeps working — but it does not make any content element selectable, which the page TSconfig below does. |

### Include static page TSconfig {#static-pagetsconfig}

Edit the page record of the site root, tab **Resources**, field
**Page TSconfig**, and add the entry:

| Entry | Delivers |
| --- | --- |
| **Academic Jobs: Jobs New (academic_jobs)** | Makes the **Jobs New** content element selectable, and configures its entry in the new content element wizard. |
| **Academic Jobs: Jobs List (academic_jobs)** | The same for **Jobs List**. |
| **Academic Jobs: Jobs Detail (academic_jobs)** | The same for **Jobs Detail**. |
| **Academic Jobs: All components (academic_jobs)** | Every component this extension ships, in one entry. |

The setting is inherited by every page below the one it is set on.

## Do not combine both {#one-mechanism-per-site}

A site that uses the site set **and** the static template reads the shipped
files twice. The site set is applied before the `sys_template` record, so
the second read happens after the site settings and after
`config/sites/<site>/constants.typoscript` — and it resets every constant
the extension ships a default for back to that default. For this extension that
is the whole `plugin.tx_academicjobs` constants block: the Fluid
root paths, the storage and target page ids, the notification e-mail and the job
avatar upload settings.

Nothing else is damaged: the **Constants** and **Setup** fields
of the `sys_template` record, the page TSconfig of a page and the page
TSconfig files selected on a page are all applied afterwards and still win. Use
one mechanism per site and the question does not arise.

-   [General configuration](General/Index.html#general-configuration)
-   [Validation settings](Validations/Index.html#validation-settings)
-   [Route enhancers](RouteEnhancers/Index.html#route-enhancers)
