---
title: "Important: The page template name of the academic partner page type is set explicitly"
manual: "Academic Partners"
version: "main"
source: "Changelog/3.0/Important-PageTemplateNameIsSetExplicitly.rst"
modified: "2026-09-17T07:34:13+00:00"
---

# Important: The page template name of the academic partner page type is set explicitly

## Description

This extension registers a page type with a backend layout and ships the page
template for it in `Resources/Private/Pages/`. Its TypoScript adds that
directory to `page.10.templateRootPaths`, but it did not set
`page.10.templateName` — the property that actually selects the
file.

A site package deriving the name from the backend layout therefore did not find
it. [`bk2k/bootstrap-package`](https://packagist.org/packages/bk2k/bootstrap-package) does exactly that:

```typoscript
templateName.cObject = TEXT
templateName.cObject {
  data = pagelayout
  case = uppercamelcase
  split {
    token = pagets__
    cObjNum = 1
    1.current = 1
  }
}
```

`case = uppercamelcase` is
`GeneralUtility::underscoredToUpperCamelCase()`, which lowercases the whole
string before it camel cases it on underscores. The registered backend layout
`pagets__AcademicPartner` therefore resolved to `Academicpartner.html`, and
the frontend ended in an `InvalidTemplateResourceException` — in a
production context a page whose body reads *Oops, an error occurred!*.

The extension now sets the name itself, inside the page type condition it
already uses:

```typoscript
[page && traverse(page, "doktype") == 40]
  page.10 {
    templateName >
    templateName = AcademicPartner
  }
[END]
```

The clear is not decoration. Bootstrap package assigns
`templateName.cObject`, and a cObject overwrites the plain value in
`ContentObjectRenderer::stdWrapValue()`, so assigning without clearing
would change nothing.

## Impact

A page of this type renders its template on a site package that derives the
name from the backend layout, where it previously did not render at all.

Nothing changes for a site package that sets the name itself, as long as it does
so after this extension's TypoScript, and nothing changes for a
`PAGEVIEW` page object — that content object ignores
`templateName` and resolves the file from `paths`, which
is why that integration worked before and is unaffected now.

## Affected Installations

All installations of this extension that use a `FLUIDTEMPLATE` page
object. An installation that shipped `Academicpartner.html` in its own site
package to work around this loses that override: the template of this extension
is used instead. Clearing `page.10.templateName` after this
extension's TypoScript restores it.
