Breaking: Partner pages render inside the site layout 

Description 

The page template of the page type Academic partner, Resources/Private/Pages/AcademicPartner.html, declared no Fluid layout. On a site package that renders its header, navigation and footer through a page layout, as bk2k/bootstrap-package does, a partner page therefore rendered without any of them. The template rendered every part inline, so a project that wanted to change one of them had to replace the whole template. And its paths were registered at the key 100 of the page object, which on a PAGEVIEW site package replaced the package's own paths of that key on partner pages - its layouts and partials were gone there.

From 3.0 on:

  • The template renders the section Main of the layout named by the new setting plugin.tx_academicpartners.page.layout , Default by default. A site package without a layout Default gets a fallback layout of this extension, which renders the section alone.
  • The section renders five partials: Partner/Page/Header.html, Partner/Page/Media.html, Partner/Page/Categories.html, Partner/Page/Address.html and Partner/Page/Content.html.
  • The header renders the subtitle of the page. The title is wrapped in an element with the class academic-partners-detail__header, and the subtitle is an element with the class academic-partners-detail__subtitle below it.
  • paths , templateRootPaths and partialRootPaths of the page object use the key 50 instead of 100 on partner pages. layoutRootPaths.100 , which named a directory that does not exist, is removed.

The setting is a site setting of the aggregate set fgtclb/academic-partners and a constant for the static templates, see The layout of a partner page. The program page made the same move in 3.0, so the three academic page types follow one pattern.

Impact 

  • A partner page on a site package with a layout Default renders inside it: with the header, navigation and footer of the site.
  • A site package whose layout Default renders no section Main renders the partner page without its content.
  • A site package without a layout Default renders the partner page as before, without the frame of the site. A layout named by the setting that the site package does not have fails the page.
  • A partner page with a subtitle shows it below the title. The title is wrapped in an element with the class academic-partners-detail__header whether or not a subtitle is set.
  • A PAGEVIEW site package that assigns a variable data of its own no longer breaks partner pages. The page record now comes from {page} first, in the template and in the data processor.
  • A path a project registered at a key between 50 and 100 now wins over the extension, where it lost before. A site package path at 100 is no longer replaced on partner pages.
  • A project that set, read or cleared page.10.paths.100 , templateRootPaths.100 , partialRootPaths.100 or layoutRootPaths.100 inside the condition on the partner page type reaches nothing of this extension there any more.

Affected Installations 

Every installation that renders partner pages on a site package with page layouts, and every installation that styles the markup of the partner page or changes its paths at the key 100.

An override of the whole AcademicPartner.html keeps rendering, without a layout, as long as it does not render styles.content.getContent , see Breaking: Partner pages render their content without a global path.

Migration 

  • A site package whose layout for partner pages has another name sets plugin.tx_academicpartners.page.layout to it. One whose layout renders another section than Main overrides Pages/AcademicPartner.html.
  • A project that overrides AcademicPartner.html to change one part moves that change to the matching partial below Partner/Page/ and removes the template override.
  • A project that added a subtitle of its own renders the page field Subtitle instead, or overrides Partner/Page/Header.html.
  • Move a path set at the key 100 inside the partner page condition to 50, or to a key above it to win over the extension.
  • Adjust stylesheets that relied on the title being a direct child of the flex container.