---
title: "ChangeLog v3"
manual: "Academic Profiles"
version: "main"
source: "Changelog/Changelog-3.rst"
rendered: "2026-10-02T20:47:49+00:00"
---

# ChangeLog v3 {#changelog-v3}

Every change to the Academic Persons extension is documented here.

-   [3.0 Changes](3.0/Index.html#3-0-changes)
    -   [Breaking: The contract field "publish" has been removed](3.0/Breaking-ContractPublishFieldRemoved.html#breaking-the-contract-field-publish-has-been-removed)
    -   [Breaking: Person records are workspace aware](3.0/Breaking-PersonRecordsAreWorkspaceAware.html#breaking-person-records-are-workspace-aware-1)
    -   [Breaking: The persons plugin action context extends the one of academic_base](3.0/Breaking-PluginControllerActionContextInterfaceExtendsBase.html#breaking-the-persons-plugin-action-context-extends-the-one-of-academic-base)
    -   [Breaking: Extbase plugins require CType on TYPO3 v14](3.0/Breaking-PluginsRequireCTypeOnTYPO3V14.html#breaking-extbase-plugins-require-ctype-on-typo3-v14)
    -   [Breaking: The plugins call different repository finders](3.0/Breaking-ProfileAndContractFinderSignatures.html#breaking-the-plugins-call-different-repository-finders)
    -   [Breaking: The profile image translates](3.0/Breaking-ProfileImageIsTranslatable.html#breaking-the-profile-image-translates)
    -   [Breaking: Profile images render as a responsive picture](3.0/Breaking-ProfileImagesRenderAsPicture.html#breaking-profile-images-render-as-a-responsive-picture)
    -   [Breaking: The partials of the detail view change](3.0/Breaking-PublicProfileDetailPartials.html#breaking-the-partials-of-the-detail-view-change)
    -   [Breaking: The list, detail and selection events of the plugins are gone](3.0/Breaking-RemovedProfileViewEvents.html#breaking-the-list-detail-and-selection-events-of-the-plugins-are-gone)
    -   [Breaking: Removed TYPO3 v12 support](3.0/Breaking-RemovedTYPO3V12Support.html#breaking-removed-typo3-v12-support-1)
    -   [Breaking: Section-based AcademicPersons settings](3.0/Breaking-SectionBasedAcademicPersonsSettings.html#breaking-section-based-academicpersons-settings)
    -   [Breaking: Settings apply after the TCA overrides](3.0/Breaking-SettingsApplyAfterTcaOverrides.html#breaking-settings-apply-after-the-tca-overrides)
    -   [Breaking: Settings files merge recursively](3.0/Breaking-SettingsFilesMergeRecursively.html#breaking-settings-files-merge-recursively-1)
    -   [Feature: Configurable document rows and actions](3.0/Feature-ConfigurableDocumentRowsAndActions.html#feature-configurable-document-rows-and-actions-1)
    -   [Feature: Configure what frontend users synchronise](3.0/Feature-ConfigurableFrontendUserMapping.html#feature-configure-what-frontend-users-synchronise)
    -   [Feature: Configurable public profile](3.0/Feature-ConfigurablePublicProfile.html#feature-configurable-public-profile-1)
    -   [Feature: Choose which contracts a profile shows](3.0/Feature-ContractDisplayPolicy.html#feature-choose-which-contracts-a-profile-shows)
    -   [Feature: Office hours and the function type on the profile page](3.0/Feature-DetailOfficeHoursAndFunctionType.html#feature-office-hours-and-the-function-type-on-the-profile-page)
    -   [Feature: Synchronise the organisational unit and function type](3.0/Feature-FrontendUserRelationMapping.html#feature-synchronise-the-organisational-unit-and-function-type)
    -   [Feature: Events to add data to the synchronisation and adjust profiles](3.0/Feature-FrontendUserSyncDataEvents.html#feature-events-to-add-data-to-the-synchronisation-and-adjust-profiles)
    -   [Feature: Contracts and profile information can be hidden](3.0/Feature-HideContractsAndProfileInformation.html#feature-contracts-and-profile-information-can-be-hidden)
    -   [Feature: Import identifiers are shown, searchable and can be looked up](3.0/Feature-ImportIdentifierLookup.html#feature-import-identifiers-are-shown-searchable-and-can-be-looked-up)
    -   [Feature: Legacy settings overlay and migration command](3.0/Feature-LegacySettingsOverlayAndMigrationCommand.html#feature-legacy-settings-overlay-and-migration-command-1)
    -   [Feature: The selected letter can link back to the whole list](3.0/Feature-LetterNavigationActiveLetterReset.html#feature-the-selected-letter-can-link-back-to-the-whole-list)
    -   [Feature: The letter navigation knows which letters lead somewhere](3.0/Feature-LetterNavigationAvailability.html#feature-the-letter-navigation-knows-which-letters-lead-somewhere)
    -   [Feature: Navigation links keep the visitor's list choices](3.0/Feature-ListLinksKeepState.html#feature-navigation-links-keep-the-visitor-s-list-choices)
    -   [Feature: The list elements render their view modes](3.0/Feature-ListViewModes.html#feature-the-list-elements-render-their-view-modes)
    -   [Feature: Lock the fields a synchronisation owns per record](3.0/Feature-ManagedFieldsReadOnlyInTheBackend.html#feature-lock-the-fields-a-synchronisation-owns-per-record)
    -   [Feature: Decide what a profile image's metadata will be](3.0/Feature-ModifyProfileImageMetadataEvent.html#feature-decide-what-a-profile-image-s-metadata-will-be)
    -   [Feature: Named crop variants for the profile image](3.0/Feature-NamedCropVariants.html#feature-named-crop-variants-for-the-profile-image)
    -   [Feature: A prefix for phone link targets](3.0/Feature-PhoneLinkTargetPrefix.html#feature-a-prefix-for-phone-link-targets)
    -   [Feature: The plugins can render the content element header](3.0/Feature-PluginsCanRenderContentElementHeader.html#feature-the-plugins-can-render-the-content-element-header)
    -   [Feature: The plugins dispatch the plugin view event](3.0/Feature-PluginViewEvent.html#feature-the-plugins-dispatch-the-plugin-view-event)
    -   [Feature: Narrow the profiles and contracts a plugin shows](3.0/Feature-ProfileAndContractQueryEvents.html#feature-narrow-the-profiles-and-contracts-a-plugin-shows)
    -   [Feature: Command to hide or delete profiles of inactive frontend users](3.0/Feature-ProfileCleanupCommand.html#feature-command-to-hide-or-delete-profiles-of-inactive-frontend-users)
    -   [Feature: Crop variant and placeholder of a profile image](3.0/Feature-ProfileImageSettings.html#feature-crop-variant-and-placeholder-of-a-profile-image)
    -   [Feature: Import writer for persons of another source](3.0/Feature-ProfileImportWriter.html#feature-import-writer-for-persons-of-another-source)
    -   [Feature: The profile update event carries the site and the origin](3.0/Feature-ProfileUpdateEventCarriesSiteAndOrigin.html#feature-the-profile-update-event-carries-the-site-and-the-origin)
    -   [Feature: Profile updates from user data announce themselves](3.0/Feature-ProfileUpdatesFromUserDataAnnounceThemselves.html#feature-profile-updates-from-user-data-announce-themselves-1)
    -   [Feature: Restrict the backend contract selects](3.0/Feature-RestrictTheBackendContractSelects.html#feature-restrict-the-backend-contract-selects-1)
    -   [Feature: Settings declare project fields of the profile](3.0/Feature-SettingsDeclareProjectProfileFields.html#feature-settings-declare-project-fields-of-the-profile)
    -   [Feature: Settings overrides are reported and shrunk](3.0/Feature-SettingsOverrideReportAndDelta.html#feature-settings-overrides-are-reported-and-shrunk)
    -   [Feature: A filter form and speaking URLs for the visitor list](3.0/Feature-VisitorFilterFormAndRoutes.html#feature-a-filter-form-and-speaking-urls-for-the-visitor-list)
    -   [Feature: Visitors filter the list by function type and by unit](3.0/Feature-VisitorListFilter.html#feature-visitors-filter-the-list-by-function-type-and-by-unit)
    -   [Deprecation: The plugin action context of academic_persons](3.0/Deprecation-PersonsPluginControllerActionContext.html#deprecation-the-plugin-action-context-of-academic-persons)
    -   [Important: Strict language fallback for selected profiles](3.0/Important-88886-StrictLanguageFallbackForSelectedProfiles.html#important-strict-language-fallback-for-selected-profiles)
    -   [Important: Backend saves announce profile updates](3.0/Important-BackendSavesAnnounceProfileUpdates.html#important-backend-saves-announce-profile-updates-1)
    -   [Important: findAll of contact and profile information orders by uid](3.0/Important-ContactFindAllOrdersByUid.html#important-findall-of-contact-and-profile-information-orders-by-uid)
    -   [Important: List items render office hours as HTML](3.0/Important-ContractFieldOfficeHoursRenderAsHtml.html#important-list-items-render-office-hours-as-html)
    -   [Important: Contract rows render the unit and dialable phones](3.0/Important-ContractFieldsRenderTheUnitAndTelTargets.html#important-contract-rows-render-the-unit-and-dialable-phones)
    -   [Important: The contract publish wizard has to be registered by hand](3.0/Important-ContractPublishToHiddenWizard.html#important-the-contract-publish-wizard-has-to-be-registered-by-hand)
    -   [Important: Contract relation columns are NOT NULL now](3.0/Important-ContractRelationColumnsAreNotNullable.html#important-contract-relation-columns-are-not-null-now)
    -   [Important: A created profile is translated again](3.0/Important-CreatedProfilesAreSynchronizedIntoTranslations.html#important-a-created-profile-is-translated-again)
    -   [Important: Letters without profiles are disabled in the letter navigation](3.0/Important-LetterNavigationMarkup.html#important-letters-without-profiles-are-disabled-in-the-letter-navigation)
    -   [Important: The profile queries see a letter switching off the pagination](3.0/Important-LetterSwitchesPaginationBeforeTheQuery.html#important-the-profile-queries-see-a-letter-switching-off-the-pagination)
    -   [Important: TYPO3 13.4.35 or 14.3.7 is required](3.0/Important-MinimumTYPO3Versions.html#important-typo3-13-4-35-or-14-3-7-is-required)
    -   [Important: No letter navigation for a manual selection](3.0/Important-NoLetterNavigationForAManualSelection.html#important-no-letter-navigation-for-a-manual-selection-1)
    -   [Important: Organisational units are searchable on TYPO3 v13](3.0/Important-OrganisationalUnitsAreSearchableOnTypo3V13.html#important-organisational-units-are-searchable-on-typo3-v13-1)
    -   [Important: An organisational unit sorts its contracts on its own](3.0/Important-OrganisationalUnitSortsItsContracts.html#important-an-organisational-unit-sorts-its-contracts-on-its-own)
    -   [Important: A paginated selection keeps its order](3.0/Important-PaginatedSelectionKeepsItsOrder.html#important-a-paginated-selection-keeps-its-order)
    -   [Important: FlexForm paths change for the plugin structures](3.0/Important-PluginFlexFormsAreSplitPerCoreVersion.html#important-flexform-paths-change-for-the-plugin-structures)
    -   [Important: The timeline year fields are constrained](3.0/Important-ProfileInformationYearRange.html#important-the-timeline-year-fields-are-constrained)
    -   [Important: The profile item and list are built from partials](3.0/Important-ProfileItemAndListPartials.html#important-the-profile-item-and-list-are-built-from-partials)
    -   [Important: Label changes of the public profile](3.0/Important-PublicProfileLabelChanges.html#important-label-changes-of-the-public-profile)
    -   [Important: Record icons follow the backend colour scheme](3.0/Important-RecordIconsFollowTheColourScheme.html#important-record-icons-follow-the-backend-colour-scheme)
    -   [Important: Remaining unordered queries now order by uid](3.0/Important-RemainingUnorderedQueriesOrderByUid.html#important-remaining-unordered-queries-now-order-by-uid)
    -   [Important: Route enhancers have to be limited to their pages](3.0/Important-RouteEnhancersLimitToPages.html#important-route-enhancers-have-to-be-limited-to-their-pages)
    -   [Important: The selected profiles sheet is titled again](3.0/Important-SelectedProfilesSheetTitle.html#important-the-selected-profiles-sheet-is-titled-again)
    -   [Important: Profile synchronization ignores the visibility window](3.0/Important-SynchronizationIgnoresTheVisibilityWindow.html#important-profile-synchronization-ignores-the-visibility-window)
    -   [Important: Translation sync covers child exclude columns](3.0/Important-TranslationSyncCoversChildExcludeColumns.html#important-translation-sync-covers-child-exclude-columns-1)
    -   [Important: Translation sync is routed through the DataHandler](3.0/Important-TranslationSyncRoutedThroughDataHandler.html#important-translation-sync-is-routed-through-the-datahandler)
    -   [Important: Unordered profile queries now order by uid](3.0/Important-UnorderedQueriesOrderByUid.html#important-unordered-profile-queries-now-order-by-uid)
    -   [Important: Validation primitives moved to EXT:academic_base](3.0/Important-ValidationPrimitivesMovedToAcademicBase.html#important-validation-primitives-moved-to-ext-academic-base)

## Also available {#also-available}

-   [3.x Changes by type](Changelog-3-combined.html#3-x-changes-by-type)
