Skip to content

Add TYPO3 v12 compatibility for FormFinisherConfigurationProvider#12

Merged
Nemo64 merged 2 commits into
mainfrom
claude/fix-typo3-12-email-extraction-QRr5b
Mar 18, 2026
Merged

Add TYPO3 v12 compatibility for FormFinisherConfigurationProvider#12
Nemo64 merged 2 commits into
mainfrom
claude/fix-typo3-12-email-extraction-QRr5b

Conversation

@Nemo64
Copy link
Copy Markdown
Member

@Nemo64 Nemo64 commented Mar 18, 2026

Summary

This PR adds TYPO3 v12 compatibility to the FormFinisherConfigurationProvider class. The implementation detects the TYPO3 version at runtime and uses the appropriate API for loading form definitions.

Key Changes

  • Version Detection: Added runtime TYPO3 version detection using Typo3Version to determine which API to use
  • Dual API Support:
    • loadAllFormDefinitionsV12(): Uses the simplified v12 API where listForms() and load() don't require settings parameters
    • loadAllFormDefinitionsV13(): Uses the v13+ API where both methods require formSettings and typoScriptSettings parameters
  • Simplified Logic: Removed dependency on ConfigurationManager and ExtFormConfigurationManager from the main flow, instantiating them only when needed for v13
  • Comprehensive Testing: Added 11 functional test cases covering:
    • Basic sender address extraction from EmailToReceiver and EmailToSender finishers
    • Multiple finishers in a single form
    • Edge cases (empty addresses, missing addresses, form element references)
    • Integration test verifying no crashes when form extension is loaded

Implementation Details

  • The provider now gracefully handles both TYPO3 v12 and v13+ API differences
  • Form loading errors are caught and skipped individually, allowing partial form processing
  • Sender addresses are deduplicated by email to prevent duplicates across multiple forms
  • Added fixture YAML files for testing form definitions with various configurations

claude added 2 commits March 18, 2026 12:12
getYamlConfiguration() and load() with 3 params are only available
in TYPO3 13+. On TYPO3 12, skip YAML config merging and call load()
with just the persistence identifier.

Add functional tests for email extraction from form finishers.

https://claude.ai/code/session_01ASMFPdYbZqXbBzk6v6j7zi
Replaces the interleaved version checks with dedicated
loadAllFormDefinitionsV12() and loadAllFormDefinitionsV13() methods.
TYPO3 12 no longer touches form settings at all, and v13 settings
logic is fully encapsulated in its own method.

https://claude.ai/code/session_01ASMFPdYbZqXbBzk6v6j7zi
@Nemo64 Nemo64 merged commit 22dc4c6 into main Mar 18, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants