Feature: Integrators choose the facts of a program 

Description 

The program page, the Course Data content element and each card of the Course List show facts about a program: its categories per category type, and the program fields credit points, job profile, performance scope and prerequisites. Which facts a place showed, and in which order, was fixed in its template, and credit points appeared on the program page only, after all categories and without an icon.

Two settings now decide it, each a comma separated list of facts in display order:

Site setting / constant Default Facts of
plugin.tx_academicprograms.facts.fields empty the program page and the Course Data content element
plugin.tx_academicprograms.card.fields degree each card of the Course List

An item is the identifier of a category type of the group programs, for example degree, standard_period or location, or one of the program fields creditPoints, jobProfile, performanceScope and prerequisites:

config/sites/my-site/settings.yaml
plugin:
  tx_academicprograms:
    facts:
      fields: 'degree,creditPoints,standard_period,location'
    card:
      fields: 'degree,standard_period'
Copied!

The credit points fact has an icon of its own, tx-academicprograms-info-credit-points, a frontend icon, see Breaking: Icons renamed, credit points icon is a frontend icon.

All three places render their facts through the partials Program/Facts.html and Program/Facts/Item.html, so a project that changes how a fact looks overrides one of them for all three places.

See The facts of a program for the details.

Impact 

Without configuration each place shows the facts it showed before: the program page every category type followed by the four program fields, the details element every category type, the card the degree. The markup of those facts changes, see Breaking: The partial Program/Categories.html has been removed.

A fact the program has no value for is skipped, as before, and so is an item the list names that is no category type of the group and no program field.