Academic Programs 

Extension key

academic_programs

Package name

fgtclb/academic-programs

Version

main

Language

en

Author

FGTCLB

License

This document is published under the Creative Commons BY 4.0 license.

Rendered

Mon, 13 Jul 2026 11:19:32 +0000


TYPO3 extension for presenting the study programs of universities with structured data and typified system categories, including filterable list and detail views in the frontend.


Introduction 

What the extension does and the main concepts behind it.

Installation 

Install academic_programs via Composer, the Extension Manager or a TER upload.

Known problems 

Known issues and information about them.

Changelog 

Learn about what has changed and which actions are required to upgrade.

What does it do? 

...

Installation 

The extension has to be installed like any other TYPO3 CMS extension. You can download and install it using one of the following methods.

Install the stable release
composer require 'fgtclb/academic-programs':'^2'
Copied!
  1. Switch to the module Admin Tools > Extensions.
  2. Switch to Get Extensions.
  3. Search for the extension key academic_programs.
  4. Import the extension from the repository.
  1. Get the current version from TER by downloading the ZIP version. Alternatively, get the ZIP from the GitHub Releases page.
  2. Switch to the module Admin Tools > Extensions.
  3. Enable Upload Extension.
  4. Select or drag the extension ZIP archive and upload the file.

Known problems 

Please note that this extension is still in development. Changes to existing code may appear in upcoming versions.

If you run into a bug or a feature that would be helpful, please use the issue tracker.

Breaking: Removed TYPO3 v12 support 

Description 

Support for TYPO3 v12 has been removed for the 3.x version line, based on the dual TYPO3 core version support per major version of the academic extensions support matrix.

This includes removing build, test and configuration parts only required for TYPO3 v12. Version specific code paths are dropped in a dedicated step.

Impact 

TYPO3 v12 or older instances can no longer install or update to the 3.x version of the academic extensions and are required to upgrade TYPO3 first.

The extension cannot be installed on TYPO3 v12 anymore but does not break otherwise.

Affected installations 

All installations using an academic extension on TYPO3 v12 that want to upgrade to the 3.x version line.

Migration 

Upgrade the TYPO3 installation to a supported version (TYPO3 v13) beforehand or within the same upgrade step.

ChangeLog v2 

Every change to the Academic Programs extension is documented here.

Also available 

Feature: "Show hidden records" plugin option for the program list 

Description 

A new boolean plugin option Show hidden records ( settings.showHiddenRecords, checkbox/toggle, default off) was added to the following plugin:

  • Program List ( academicprograms_programlist)

When the option is enabled, the frontend program listing includes hidden (disabled) records, independent of the Context API visibility settings. Only the hidden enable column (disabled) is ignored; the deleted, starttime/endtime and fe_group restrictions stay in effect.

The option is core-version-aware and available in both the TYPO3 v12 and v13 flexform data structures of the plugin.

Impact 

Editors can now opt in per plugin instance to display hidden programs in the frontend, for example to preview intentionally hidden records without changing the global preview settings. The option is off by default, so existing plugin instances keep their current behaviour.

Affected Installations 

All installations using the EXT:academic_programs extension starting with version 2.4. No action is required for existing installations.

Important: Extended ProgramDemand and demand handling 

Description 

To support the new "Show hidden records" plugin option, the program demand pipeline gained a new transport flag:

  • \FGTCLB\AcademicPrograms\Domain\Model\Dto\ProgramDemand has a new bool $showHiddenRecords property with setShowHiddenRecords(bool): void and getShowHiddenRecords(): bool accessors (default false).
  • \FGTCLB\AcademicPrograms\Factory\DemandFactory::createDemandObject() now reads $settings['showHiddenRecords'] and sets the flag on the demand object.
  • \FGTCLB\AcademicPrograms\Domain\Repository\ProgramRepository::findByDemand() honours the flag: when it is true, the query ignores only the disabled (hidden) enable field via the Extbase query settings.

The public method signatures of DemandFactory::createDemandObject() and ProgramRepository::findByDemand() are unchanged.

Impact 

The change is non-breaking: the new flag defaults to false and no existing method signature changed. Projects that build a ProgramDemand themselves can opt in by calling setShowHiddenRecords(true).

Affected Installations 

Only installations that extend or replace the ProgramDemand DTO, the DemandFactory or the ProgramRepository need to take the added flag into account. All other installations are unaffected.

Breaking: Changed identifier of backend layout 

Description 

The identifier of the backend layout was changed to unify the naming within all of the academic extensions.

Impact 

The backend layout identifier was changed from AcademicPrograms to AcademicProgram.

Affected Installations 

Installations using the backend layout with the old identifier.

Migration 

Adapt to new naming of the backend layouts.

Breaking: Move translations to their belonging locallang files 

Description 

As some labels used for the backend were maintained in the locallang files for frontend usage, these labels were organized accordingly.

Impact 

Some labels in the backend might not be translated anymore, if a custom translation was only added to the frontend locallang file.

Affected Installations 

Installations with custom translations only added to the frontend locallang files.

Migration 

Add the custom translations to the correct locallang files.

Breaking: Removed partials 

Description 

Some partials got removed as the templating structure has changed.

Impact 

Those partials include:

  • Resources/Private/Layouts/Default.html
  • Resources/Private/Pages/AcademicPrograms.html
  • Resources/Private/Partials/Categories.html
  • Resources/Private/Partials/Program/FilterCategories.html
  • Resources/Private/Partials/Program/FilterSorting.html

Affected Installations 

TYPO3 instances with extensions overriding those partials of EXT:academic_programs.

Migration 

Adapt overrides accordingly to the new templating structure.

Important: Basic bootstrap styling 

Description 

The default templating now supports basic bootstrap styling and is semantically optimized to also not lack any major accessibility.

Important: Switch to EXT:category_types v2 

Description 

Category type based handling has been streamlined and centralized within the EXT:category_types extension and the known implementation based on deprecated TYPO3 Enumeration has been replaced with a modern PHP API provided by the EXT:category_type extension.

Extension specific category types are now grouped and are now defined by newly introduced yaml file format, following a concrete convention to look and auto-register these files.

EXT:academic_programs now ships a default set of partner related category types, which can be found in ./Configuration/CategoryTypes.yaml

EXT:academic_programs related category types can be extended by any other TYPO3 extension providing a Configuration/CategoryTypes.yaml file containing category-types using the group-identifier programs.

Configuration/CategoryTypes.yaml format uses following syntax:

Configuration/CategoryTypes.yaml
types:
    - identifier: <unique_identifier>
      title: '<type-translation-lable-using-full-LLL-syntax'
      group: programs
      icon: '<icon-file-using-EXT-syntax-needs-to-be-an-as-svg>'
Copied!

Sitemap