Academic Projects 

Extension key

academic_projects

Package name

fgtclb/academic-projects

Version

2.3

Language

en

Author

FGTCLB

License

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

Rendered

Sun, 26 Apr 2026 17:08:50 +0000


TYPO3 extension for the presentation of projects and research projects of universities with specifically structured data and typified system categories. List view in the form of a tile display with filtering, which only provides positive filter results based on system categories, prevents impossible filter combinations and thus always ensures a positive user experience.

Examples of structured data: start and end year, areas of expertise, type of cooperation, funding bodies, duration. In conjunction with the Contact for Pages extension, the extension enables an active user journey and thus shows, for example, project managers, research participants or cooperation partners.


Table of Contents:

What does it do? 

This extension provides a new page type for projects.

Installation 

This extension can be installed using the TYPO3 extension manager or by composer.

composer install fgtclb/academic-projects
Copied!

General configuration 

...

Overriding templates 

EXT:academic_projects is using Fluid as template engine.

This documentation won't bring you all information about Fluid but only the most important things you need for using it. You can get more information in the section Fluid templates of the Sitepackage tutorial. A complete reference of Fluid ViewHelpers provided by TYPO3 can be found in the ViewHelper Reference

Change the templates using TypoScript constants 

As any Extbase based extension, you can find the templates in the directory Resources/Private/.

If you want to change a template, copy the desired files to the directory where you store the templates.

We suggest that you use a sitepackage extension. Learn how to Create a sitepackage extension.

# TypoScript constants
plugin.tx_academicprojects {
    view {
        templateRootPath = EXT:mysitepackage/Resources/Private/Extensions/myextension/Templates/
        partialRootPath = EXT:mysitepackage/Resources/Private/Extensions/myextension/Partials/
        layoutRootPath = EXT:mysitepackage/Resources/Private/Extensions/myextension/Layouts/
    }
}
Copied!

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 partials 

Description 

Some partials got removed as the templating structure has changed.

Impact 

Those partials include:

  • Resources/Private/Layouts/Default.html
  • Resources/Private/Partials/Categories.html
  • Resources/Private/Partials/Project/Items.html
  • Resources/Private/Partials/Project/SingleItem.html

Affected Installations 

EXT:academic_partners installations overriding those partials.

Migration 

Adapt overrides accordingly to the new templating structure.

Breaking: #108800 - Remove translation files 

Description 

To unify the academic extensions the usage of locallang_db files was removed and the labels were moved to the locallang_be files.

Impact 

TYPO3 instances with extensions providing translation overrides or using the locallang_db keys with the full syntax directly no longer replaces or provide them or leading to untranslated key display.

Affected installations 

TYPO3 instances with extensions providing translation overrides or using the locallang_db keys with the full syntax directly.

Migration 

Use the keys from locallang_be files.

Important: Basic bootstrap styling 

Description 

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

Breaking: Changed plugin FlexForm option and values 

Description 

FlexForm options of following plugins has changed:

  • academicprojects_projectlist
  • academicprojects_projectlistsingle

Changed options:

  • settings.hideCompletedProjects => settings.activeState
  • settings.filter.options => settings.hideFilter
  • settings.sorting.options => settings.hideSorting

In case of settings.activeState that also includes supported values for the field, which also matches possible values of newly added PHP Enum FGTCLBAcademicProjectsDomainModelDtoActiveState:

FlexForm Enum Old Value
all ActiveState::ALL any value except 1
active ActiveState::ACTIVE 1
completed ActiveState::COMPLETED no old value

Impact 

Plugin usage with custom set old options uses fallback values of new options and will behave not in the expected way until options are migrated using the provided wizard.

Further, plugin output may lead to unexpected output not adoption for changed option names in case fluid templates are overridden, either in a project site package extension or another extension.

Affected installations 

All TYPO3 instances upgrade from 1.x to 2.x of this extension and having at least one of the mentioned plugins used as content object, either as content element or direct rendering in TypoScript.

Also extensions overriding fluid templates of EXT:academics_projects.

Migration 

An TYPO3 UpgradeWizard academicProjects_flexFormUpgradeWizard is provided to migrate old plugin FlexForm options and values to the new settings and values, in case of activeState also transforming the value based on mapping mentioned in the table above.

Furthermore, overridden fluid template in projects needs to adopt for changed options listed above in the description.

Breaking: Migrated extbase plugins from list_type to CType 

Description 

TYPO3 v13 deprecated the tt_content sub-type feature, only used for CType=list sub-typing also known as list_type and mostly used based on old times for extbase based plugins. It has been possible since the very beginning to register Extbase Plugins directly as CType instead of CType=list sub-type, which has now done.

Technically this is a breaking change, and instances upgrading from 1.x version of the plugin needs to update corresponding tt_content records in the database and eventually adopt addition, adjustments or overrides requiring to use the correct CType.

Impact 

The change relates to following plugins:

  • academicprojects_projectlist
  • academicprojects_projectlistsingle

Affected Installations 

All installations using the above listed plugins prior V2.0.

Migration 

A TYPO3 UpgradeWizard academicProjects_pluginUpgradeWizard is provided to migrate plugins from CType=list to dedicated CTypes matching the new registration.

Breaking: Removed methods from FGTCLBAcademicProjectsDomainModelDtoProjectDemand 

Description 

Following class methods has been removed:

  • ProfileDemand::getHideCompletedProjects()
  • ProfileDemand::setHideCompletedProjects()

Impact 

Using above mentioned removed ProfileDemand methods to call related methods in the ProfileRepository directly leads to FATAL PHP ERROR.

Affected installations 

TYPO3 instances using removed ProfileDemand methods.

Migration 

The removed method should be replaced using the new methods:

  • ProfileDemand::setActiveState(string $activeState): void
  • ProfileDemand::getActiveState(): string

instead, working slightly different now.

FGTCLBAcademicProjectsDomainModelDtoActiveState ENUM provided possible values for the active state but cannot be passed directly.

before
$demand = new ProfileDemand();
$demand->setHideCompletedProjects(true);
$demand->setHideCompletedProjects(false);
Copied!
$demand = new ProfileDemand();
// setHideCompletedProjects(true)
$demand->setActiveState(ActiveState::ACTIVE);
// setHideCompletedProjects(false)
$demand->setActiveState(ActiveState::ALL);
Copied!

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_projects now ships a default set of partner related category types, which can be found in ./Configuration/CategoryTypes.yaml

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

Configuration/CategoryTypes.yaml format uses following syntax:

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