The form page type (/form, 1704) existed because on the static pages of the
hybrid setup the page URL never reached TYPO3. With static rendering
retired, forms post to the page they are on, like the newsletter form:
the additionalParams in FormSetup.yaml, Page/Form.typoscript and the /form
entries of the PageType enhancers are gone.
Each form island gets the id form-island-<form identifier> (EXT:form
appends the content element uid), and Form.html targets and selects that
id instead of .form-island. With two forms on one page, a submission no
longer swaps in the first form's island.
Kept: hx-boost on the forms, HtmxRedirectMiddleware (Redirect finishers
under htmx) and /captcha (bw_captcha's image type).
Co-Authored-By: Claude Opus 5.5 <[email protected]>
The static export replaced every EXT:form form with a contact notice. The
forms are back, rendered by TYPO3 13 and embedded in the static pages:
- Page type 1704 (/<page>/form) renders only the form plugin of a page,
inside a .form-island element. Every form posts to that URL
(renderingOptions.additionalParams), because on www the page URL is a
static file that never reaches TYPO3. htmx swaps the island in place:
validation errors, multi-step pages and confirmations. A redirect to an
htmx request becomes HX-Redirect (HtmxRedirectMiddleware), so Redirect
finishers send the browser to the thank-you page.
- While a request runs, an overlay with a spinner (as in MyE&P) covers
the form. Styled inside the island: the static pages load the CSS of
the TYPO3 10 export.
- The bw_captcha image comes from /<page>/captcha for the same reason.
Both suffixes are in the PageType enhancer of every site with forms
(semesterende gets one with default '' to keep its URLs).
- Ported from TYPO3 10: form setup, templates and partials, the MyE&P
address finisher, the job application finisher with the MyE&P Team
API client (epTeamApi* in secrets.php), the page URL/referrer finisher
with ReferrerMiddleware (?ref=), the e-mail layout without the system
footer, bw_captcha 5 and form_element_linked_checkbox 6. The address
check forms are dropped.
- German language packs (EXT:form messages): availableLanguages = de,
fetched on every deploy (typo3:language:update).
- The checkbox partials passed null to VHS' substring, which PHP 8.5
reports as deprecated.
- DDEV no longer turns deprecations into exceptions, matching
production: EXT:form's RenderFormValueViewHelper uses null as an array
offset for empty optional fields (core bug, also in 13.4.37).
The static pages get their placeholders from the exporter in EP/website,
see .ddev/plans/static-export-form-islands.patch (local only).
Co-Authored-By: Claude Opus 5.5 <[email protected]>