Configuration 

This extension ships its frontend TypoScript and its backend page TSconfig in two forms: as TYPO3 site sets, and as classic static templates plus page TSconfig files that are selected on a page. Both forms read the very same files, so they configure an installation identically.

Pick one of them per site and stay with it — see Do not combine both for what happens otherwise.

What the sets contain 

The extension ships one content element, so it ships one component set and one aggregate set that depends on it.

Set Delivers
fgtclb/academic-contacts4pages-list The Contact list content element: its TypoScript (plugin.tx_academiccontacts4pages), the data processor that assigns the contacts of a page to the page template, and the page TSconfig that makes the content element selectable in the backend.
fgtclb/academic-contacts4pages Everything above. This is the set to use unless you deliberately want a subset.

Both depend on fgtclb/academic-base-ctype-group, the set of EXT:academic_base that labels the content element group all academic extensions sort their elements into.

The content element is hidden by default 

EXT:academic_contacts4pages hides its content element for the whole installation and brings it back per component. Whichever of the two mechanisms below you use, it is what makes Contact list selectable in the backend again — without one of them the content element is not offered, and existing records keep rendering.

On TYPO3 v12 only the page TSconfig file is a candidate: the site set is not read there. On that version the same file also carries the entry of the new content element wizard, which v12 builds from page TSconfig rather than from TCA (the TCA based wizard arrived in v13.0, Feature: #102834).

Include the site set 

On TYPO3 v13, add the set to the config.yaml of the site that should offer the content element:

config/sites/my-site/config.yaml (diff)
 base: 'https://example.com/'
 rootPageId: 1
+dependencies:
+  - fgtclb/academic-contacts4pages
Copied!

See also TYPO3 Explained, Using a site set as dependency in a site.

Include static templates 

For an installation that still configures its frontend through sys_template records — which on TYPO3 v12 is every installation — the same files are registered as static templates and as selectable page TSconfig files.

Include static TypoScript 

Edit the sys_template record of the site root and add the entry to Include static (from extensions):

Entry Delivers
Academic Contacts4Pages: Contact list (academic_contacts4pages) The TypoScript of the Contact list content element.
Academic Contacts4Pages: All components (academic_contacts4pages) Every component this extension ships, in one entry.
Academic Contacts4Pages: Path up to 2.3 (deprecated, use All components) (academic_contacts4pages) The same as All components without the TypoScript of EXT:academic_persons, for a record that still stores the path of version 2.3. Deprecated, removed in version 4.0, see Deprecation: The static template path of version 2.3.

Include static page TSconfig 

Edit the page record of the site root, tab Resources, field Page TSconfig, and add the entry:

Entry Delivers
Academic Contacts4Pages: Contact list (academic_contacts4pages) Makes the Contact list content element selectable, and configures its entry in the new content element wizard.
Academic Contacts4Pages: All components (academic_contacts4pages) Every component this extension ships, in one entry.

The setting is inherited by every page below the one it is set on.

Do not combine both 

This can only happen on TYPO3 v13. A site that uses the site set and the static template reads the shipped files twice. The site set is applied before the sys_template record, so the second read happens after the site settings and after config/sites/<site>/constants.typoscript — and it resets every constant the extension ships a default for back to that default. For this extension those are the three Fluid root paths of the plugin.

Nothing else is damaged: the Constants and Setup fields of the sys_template record, the page TSconfig of a page and the page TSconfig files selected on a page are all applied afterwards and still win. Use one mechanism per site and the question does not arise.

The contact list 

Group by role 

The Configuration tab of the content element offers Group by role ( settings.groupByRole ), switched on by default.

  • On – one heading per role, each followed by the contacts of that role, then the contacts without a role. A page on which no contact has a role renders one list without headings.
  • Off – all contacts in one list, in the order they are sorted on the page. A contact with a role shows its role name above its card, in an element with the class academic-contacts4pages__role.

A content element saved before the option existed stores no value for it and reads the TypoScript default, so it keeps grouping:

Shipped TypoScript setup
plugin.tx_academiccontacts4pages.settings.groupByRole = 1
Copied!

A value stored in the content element always wins over it.

The contact item partial 

Contacts/List.html arranges the contacts and renders each of them through Contacts/Item.html of this extension — in the role groups, below them and in the list that is not grouped. The grid column around the partial belongs to the list template. By default the partial renders the profile item of EXT:academic_persons.

To change the card of a contact, override this partial rather than the list template:

TypoScript setup
plugin.tx_academiccontacts4pages.view.partialRootPaths.20 = EXT:my_sitepackage/Resources/Private/Extensions/academic_contacts4pages/Partials/
Copied!
Argument Holds
contact The contact.
role The role of the contact, or nothing when it has none.
profile The profile behind the contract of the contact.
contract The contract the contact names.
settings The plugin settings.
data The content element record, as an array.
grouped Set when the contact renders below the heading of its role. The default partial then renders the profile name one heading level lower and leaves out the role name, which the heading already shows.