Breaking: The partial Program/Categories.html has been removed 

Description 

The partial Resources/Private/Partials/Program/Categories.html rendered the categories of a program per category type, on the program page and in the Course Data content element. The program page added the program fields credit points, job profile, performance scope and prerequisites as a second list of its own, and the program card of the Course List rendered the degree with markup of its own.

The partial is removed. The program page, the details content element and the program card render their facts through the new partials Program/Facts.html, the list, and Program/Facts/Item.html, one fact, from the field lists of Feature: Integrators choose the facts of a program.

The markup of the facts changes in all three places:

  • The facts are one <ul class="ace-list ace-attributes"> . On the program page the program fields are items of that list, after the categories, instead of a second <ul> .
  • Every fact is an <li class="ace-list-item ace-attribute" data-academic-programs-fact="{identifier}"> , the identifier being the category type (degree) or the program field (creditPoints). The label is a <b class="ace-label"> , the value a <span class="ace-value"> .
  • Every label is followed by a colon, the program field labels included.
  • The credit points fact renders the icon tx-academicprograms-info-credit-points before its label.
  • The list, its items, the label and the value carry the same classes in all three places.

Impact 

A project override of Partials/Program/Categories.html is no longer rendered: nothing of this extension renders that partial any more, and Fluid does not report an override that nobody renders.

A project override of a template or partial that still renders <f:render partial="Program/Categories" /> , for example an override of Pages/AcademicProgram.html or Templates/Details/Show.html taken from an earlier version, fails with an exception of Fluid that the partial cannot be found, unless the project ships that partial itself.

Site CSS or JavaScript that addressed the facts through the old markup, a second list on the program page or a label without a colon has to follow the new markup.

The data processor of the program page, \FGTCLB\AcademicPrograms\DataProcessing\ProgramDataProcessor , builds the facts and takes its collaborators as constructor arguments: the facts builder, the data factory and the event dispatcher (see Feature: Change the program list, finder and page by event). A project subclass of it that declares a constructor of its own has to pass them on, and a subclass named in TypoScript by its class name is only given the arguments when the project's own Services.yaml registers it as a public service. Otherwise TYPO3 creates it without arguments, which is fatal.

Affected Installations 

Installations that override Partials/Program/Categories.html, render it from a template or partial of their own, style the facts of the program page, of the details content element or of the program card, or extend the data processor of the program page.

Search the site package for the partial:

grep -rn "Program/Categories" packages/my_sitepackage/Resources/Private/
Copied!

Migration 

  • Move a change of one fact row to an override of Program/Facts/Item.html. It receives {fact} with {fact.identifier} , {fact.labelKey} , {fact.iconIdentifier} , {fact.isCategoryType} , {fact.categories} for a category type and {fact.value} for a program field.
  • Move a change of the whole list to an override of Program/Facts.html, which receives {facts} .
  • Set plugin.tx_academicprograms.facts.fields where the override changed which facts are shown or their order, and plugin.tx_academicprograms.card.fields for the card.
  • Replace <f:render partial="Program/Categories" arguments="{_all}" /> in a template override by <f:render partial="Program/Facts" arguments="{_all}" /> : the program page and the details content element hand their templates the variable {facts} . An override of Pages/AcademicProgram.html from before 3.0 also renders the fixed list of the four program fields; remove that list as well, or the program page shows them twice, since the empty facts setting shows them after the categories.
  • Remove the override of Partials/Program/Categories.html.
  • Pass a \FGTCLB\AcademicPrograms\Service\ProgramFactsBuilder on to the parent constructor of a subclass of the data processor, and register the subclass as a public service ( public: true ), or tag it data.processor with an identifier of its own and name that identifier in TypoScript.