- 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
This commit is contained in:
orasche committed 2026-09-30 13:59:55 +02:00
1 parent 6db2234851
commit f0b0694842
28 files changed
+1272 -54

No files matched your search

+37 -7
View File
@@ -331,6 +331,36 @@ AddDefaultCharset utf-8
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^typo3/(.*)$ %{ENV:CWD}index.php [QSA,L]
# --- VITEC phase B: SPA fallback (PREPARED, switch day only) ----------
# Uncomment this block to make every page URL serve the React app
# (public/_frontend/index.html). TYPO3 keeps answering JSON under
# /_json (the JsonPrefixRewrite middleware strips the prefix) plus the
# direct endpoints excluded below. Requires the front-end build with
# router basename "/" and the /_json API prefix FIRST. Roll back by
# re-commenting. See work log section 5r (2026-09-28).
# TYPO3 v14 install tool: its entry point is the SITE ROOT plus
# ?__typo3_install (install.php only redirects there, PathGuard). The
# backend's Settings/Environment/Maintenance/Upgrade modules depend on
# it - without this exception they show the React app instead.
RewriteCond %{QUERY_STRING} __typo3_install
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*$ %{ENV:CWD}index.php [QSA,L]
# The root path needs its own rule: for "/" REQUEST_FILENAME is the
# docroot DIRECTORY, so the !-d guard below skips it and DirectoryIndex
# would hand it to TYPO3 (JSON). The homepage JSON lives at /_json/.
RewriteRule ^$ %{ENV:CWD}_frontend/index.html [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_URI} !^/_json(/|$)
RewriteCond %{REQUEST_URI} !^/typo3(/|$)
RewriteCond %{REQUEST_URI} !^/download/
RewriteCond %{REQUEST_URI} !^/api/
RewriteCond %{REQUEST_URI} !^/_frontend/
RewriteCond %{REQUEST_URI} !^/sitemap
RewriteRule ^.*$ %{ENV:CWD}_frontend/index.html [L]
# ----------------------------------------------------------------------
# If the file/symlink/directory does not exist => Redirect to index.php.
# For httpd.conf, you need to prefix each '%{REQUEST_FILENAME}' with '%{DOCUMENT_ROOT}'.
RewriteCond %{REQUEST_FILENAME} !-f
@@ -397,10 +427,10 @@ FileETag None
# Add your own rules here.
#AuthUserFile "/usr/www/users/vitecevo/live/public/.htpasswd"
#AuthName "DEV"
#AuthType Basic
#<RequireAny>
#Require ip 217.70.192.164
#Require valid-user
#</RequireAny>
AuthUserFile "/usr/www/users/vitecevo/live/public/.htpasswd"
AuthName "DEV"
AuthType Basic
<RequireAny>
Require ip 217.70.192.164
Require valid-user
</RequireAny>
+4 -3
View File
@@ -21,12 +21,13 @@
<meta name="twitter:card" content="summary" />
<meta name="twitter:title" content="VITEC" />
<meta name="twitter:description" content="Enterprise IPTV, video streaming, and digital signage solutions." />
<link rel="icon" type="image/svg+xml" href="../fileadmin/icons/favicon.ico" />
<link rel="icon" type="image/svg+xml" href="/fileadmin/icons/favicon.ico" />
<title>VITEC</title>
<script type="module" crossorigin src="/_frontend/assets/index-B1-7ERRQ.js"></script>
<link rel="stylesheet" crossorigin href="/_frontend/assets/index-D5j0LX22.css">
<script type="module" crossorigin src="/_frontend/assets/index-DnFsTWc9.js"></script>
<link rel="stylesheet" crossorigin href="/_frontend/assets/index-D2VJrjll.css">
</head>
<body>
<div id="page"></div>␍
<script src="/api/fe-comment/widget.js" defer></script>
</body>
</html>