Breaking: Project pages render inside the site layout
Description
The page template of the page type Academic project,
Resources/, 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 project 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 project pages - its layouts and partials were gone there.
From 3.0 on:
- The template renders the section
Mainof the layout named by the new settingplugin.,tx_ academicprojects. page. layout Defaultby default. A site package without a layoutDefaultgets a fallback layout of this extension, which renders the section alone. - The section renders five partials:
Project/,Page/ Header. html Project/,Page/ Media. html Project/,Page/ Categories. html Project/andPage/ Facts. html Project/.Page/ Content. html - The header renders the subtitle of the page between the title and the
short description, in an element with the class
ace-. The element around title and short description is asubtitle <header class="ace-.header"> - Without a project title, the heading shows the title of the page on a
PAGEVIEWpage object as well. It stayed empty there, because the template read the page from{data}, which only aFLUIDTEMPLATEpage object assigns. paths,templateandRoot Paths partialof the page object use the keyRoot Paths 50instead of100on project pages.layout, which named a directory that does not exist, is removed.Root Paths. 100
The setting is a site setting of the aggregate set fgtclb/
and a constant for the static templates, see The layout of a project page. The
program page made the same move in 3.0, so the three academic page types
follow one pattern.
Impact
- A project page on a site package with a layout
Defaultrenders inside it: with the header, navigation and footer of the site. - A site package whose layout
Defaultrenders no sectionMainrenders the project page without its content. - A site package without a layout
Defaultrenders the project 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 project page with a subtitle shows it below the title.
- A project page without a project title shows the page title as its heading
on a
PAGEVIEWpage object as well. - A
PAGEVIEWsite package that assigns a variabledataof its own no longer breaks project 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
50and100now wins over the extension, where it lost before. A site package path at100is no longer replaced on project pages. - A project that set, read or cleared
page.,10. paths. 100 template,Root Paths. 100 partialorRoot Paths. 100 layoutinside the condition on the project page type reaches nothing of this extension there any more.Root Paths. 100
Affected Installations
Every installation that renders project pages on a site package with page
layouts, and every installation that styles the markup of the project page or
changes its paths at the key 100.
An override of the whole Academic keeps rendering, without a
layout, as long as it does not render
styles.,
see Breaking: Project pages render their content without a global path.
Migration
- A site package whose layout for project pages has another name sets
plugin.to it. One whose layout renders another section thantx_ academicprojects. page. layout MainoverridesPages/.Academic Project. html - A project that overrides
Academicto change one part moves that change to the matching partial belowProject. html Project/and removes the template override.Page/ - A project that added a subtitle of its own renders the page field
Subtitle instead, or overrides
Project/.Page/ Header. html - Move a path set at the key
100inside the project page condition to50, or to a key above it to win over the extension.