Files
VITEC-website/packages/fe_comment/README.md
T
orasche f0b0694842 - New extension fe_comment (Evomedien, framework-agnostic): floating page
feedback widget served from /api/fe-comment/widget.js, note pad in
  localStorage, submissions mailed via /api/fe-comment/submit with
  recipients from the extension configuration; classic sites get the
  script injected via AssetCollector when the jsonOutput setting is off.
  An enabled master switch serves the widget EMPTY when off (no 404, no
  console errors) and rejects submissions - the go-live kill switch, no
  front-end build change needed
- URL swap finished: /_json prefix middleware, SPA fallback live with a
  dedicated root rule (REQUEST_FILENAME of / is a directory) and a
  query-string exception for the TYPO3 v14 install tool entry
  (?__typo3_install on the site root - the backend Settings/Environment
  modules depend on it); /api/ as a whole stays with TYPO3
- MailMessage::send() no longer exists in v14: fe_comment and the form
  EmailDelivery (latently broken since the core upgrade) now send through
  the Mailer service. Mail transport moved to SMTP against the local exim
  so delivery errors surface instead of bouncing into the blackhole -
  exim verifies the envelope sender, which therefore must be a routable
  existing address (transport config lives in the untracked settings.php)
- Related-product card texts editable on the product record (table rebuilt
  with uid/pid, TCA + inline field, one-time migration script); shared
  RteCompare for the module badge and the CLI comparison - batch dry-run
  now reports 0 writes instead of flagging every richtext field
- Workbook clarification cases executed: VisionIO-SD14, VisionSC-SD14 and
  both Diamond OG records imported (40 fields, live-verified); ArtioSign
  and ArtioView created hidden (uid 109/110) via
  create_artio_records.php - the product table has no sorting column;
  WallControl_10 mapping REVERTED and parked: the dry run revealed
  aetria-wallcontrol already carries its own agency workbook, which
  WallControl_10 would have overwritten. Manifest now 75 product /
  24 family / 1 open
2026-09-30 13:59:55 +02:00

2.0 KiB

EXT:fe_comment — page feedback widget

A floating button at the right edge of every page lets reviewers (e.g. the customer) comment on the page they are looking at. Notes collect on a local note pad (localStorage, survives navigation and SPA route changes); the pad lists every note with its URL and editable text and submits them all in one mail.

Framework-agnostic: the whole UI is one vanilla-JS file served by the extension itself — it works on a React/SPA front end and on classic TYPO3-rendered pages alike.

Endpoints (middleware, active on every site with the extension installed)

URL Purpose
/api/fe-comment/widget.js the widget (injects its own CSS)
/api/fe-comment/widget.css widget styles
/api/fe-comment/submit POST {"entries":[{"url","comment"}]} → sends the mail

Configuration (Settings → Extension Configuration → fe_comment)

  • mailTo (required) / mailCc / mailBcc — comma-separated lists. Without a valid mailTo, submissions are rejected (HTTP 503), nothing is lost silently.
  • subject — subject line, host and entry count are appended.
  • jsonOutput — 1 (default): headless mode, TYPO3 injects nothing; the front end embeds the widget itself: <script src="/api/fe-comment/widget.js" defer></script> 0: classic TYPO3 site, the extension injects the script into every rendered frontend page automatically (AssetCollector, no TypoScript).

The sender address is TYPO3's system default ($GLOBALS['TYPO3_CONF_VARS']['MAIL']['defaultMailFromAddress']).

Notes for SPA setups

  • The page URL is read at SAVE time (location.pathname + search), so client-side route changes are captured correctly.
  • If page URLs are rewritten to an SPA fallback (like the vitec .htaccess phase B block), /api/ paths must stay excluded from the fallback so the endpoints keep reaching TYPO3.

Labels

UI labels are German and live in the T object at the top of Resources/Public/JavaScript/fe-comment.js.