orascheandClaude Fable 5 c4ec979f78 Fill the /markets main page from "Markets Hero Page.xlsx"
- new vitec:import-markets-main (dry-run by default): one page with
  fixed approved copy, so the workbook content is embedded in the
  command instead of parsed at runtime; every target is resolved at
  runtime (pages by slug, elements by CType/colPos/container, market
  records by normalised title) and the command aborts on an unexpected
  structure
- the page already had the workbook structure (template vitec__2), so
  this updates the hero, the 50/50 markets intro (CTA -> /solutions)
  and the overview header in place
- the marketlist flexform selection moves from the old 9-record set
  (which still included the dropped "Security & Surveillance") to the
  11 main-market records in workbook order
- the 11 market card bodies land in the market records' teaser field
  (all were empty; the marketlist cards render from the records -
  frontend briefing asks for teaser on the cards)
- the old single-button prefooter container is hidden, replaced by a
  vitec_ctabanner (centered/orange, as on the 11 market hero pages)
  with both workbook CTAs: "Talk to our team" -> /contact and
  "Explore solutions" -> /solutions; explicit sorting after DataHandler
- page properties per the established set: seo/og/twitter title and
  description, canonical, abstract, curated keywords
- applied and verified live in the JSON (cards, order, teasers, CTA
  targets, meta tags); no spec bump - no new JSON keys involved

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-10-27 10:15:02 +01:00
2026-05-18 14:46:25 +02:00
2026-04-17 13:53:39 +02:00
2026-05-18 14:46:25 +02:00
2026-05-18 14:46:25 +02:00

VITEC Platform

Headless TYPO3 v14 + React — the VITEC website

TYPO3 runs the editorial backend and serves content as JSON; a decoupled React front end renders it. This repository is the TYPO3 Composer distribution.


TYPO3 PHP Mode Frontend Composer License


Overview This is a TYPO3 CMS base distribution configured for headless operation. Editors work in the TYPO3 backend; every page is exposed as a JSON document (no server‑side HTML). The compiled React application in public/_frontend/ consumes that JSON. All custom domain logic — content elements, plugins, layout containers and the JSON renderers — lives in the evomedien/vitec extension.

Table of contents

How it fits together

┌────────────┐     edits      ┌─────────────────────┐   JSON per page   ┌────────────────┐
│  Editors   │ ─────────────▶ │  TYPO3 v14 backend  │ ────────────────▶ │  React (Vite)  │
│  (backend) │                │  headless: 1        │   /page → { … }   │  public/_front │
└────────────┘                └─────────────────────┘                   └────────────────┘
                                        │
                                        ▼
                              evomedien/vitec extension
                        (content elements · plugins · JSON-LD)

The heavy lifting — the JSON envelope, per‑plugin renderers, layout containers and schema.org structured data — is documented in the extension’s architecture spec: packages/vitec/Documentation/Headless-JSON-Architecture.md.

Tech stack

Layer Technology
CMS / backend TYPO3 CMS ^14.3 (headless)
Language / runtime PHP 8.4
Dependency management Composer (base distribution)
Headless rendering friendsoftypo3/headless, nb-headless-content-blocks
Content modelling friendsoftypo3/content-blocks, b13/container
News georgringer/news
Custom logic evomedien/vitec (see packages/vitec/)
Front end React, built with Vite → public/_frontend/

Repository layout

live/
├── config/
│   ├── sites/vitec/config.yaml     # site config (headless: 1, Sets, routing)
│   └── system/settings.php         # TYPO3 system config (git-ignored — secrets)
├── packages/
│   └── vitec/                      # the custom extension (see its own README)
├── public/
│   ├── index.php                   # TYPO3 front controller
│   ├── _frontend/                  # compiled React app (Vite build)
│   ├── _assets/                    # published extension assets
│   ├── fileadmin/  typo3/  …
├── var/                            # caches, logs (git-ignored)
├── vendor/                         # Composer dependencies (git-ignored)
├── Documentation/                  # project-level docs
├── composer.json / composer.lock
├── auth.json                       # Composer auth for private repos (git-ignored)
└── fix-asset-perms.sh              # deploy helper — fixes asset file permissions

Requirements

  • PHP 8.4
  • Composer 2
  • MySQL / MariaDB (database)
  • Node.js (only to build the front end)
  • Access to the private t3planet Composer repository (via auth.json)

Getting started

# 1. Install PHP dependencies (requires a valid auth.json for the private repo)
composer install

# 2. Configure the system (database, encryption key, …)
#    config/system/settings.php is git-ignored; create it via the Install Tool
#    or copy it from a secure source.

# 3. Apply the database schema
vendor/bin/typo3 database:updateschema "*.add,*.change"

# 4. Warm up
vendor/bin/typo3 cache:flush

The document root is public/. Point the web server there; public/index.php is the TYPO3 entry point.

Configuration

  • Headless mode & routing — config/sites/vitec/config.yaml:
    base: /
    headless: 1
    dependencies:
      - friendsoftypo3/headless
      - friendsoftypo3/headless-mixed
      - nb-headless-content-blocks/headless-content-blocks
      - georgringer/news
    
  • System settings & secrets — config/system/settings.php and auth.json are git-ignored. Never commit database credentials or Composer tokens.

Everyday commands

vendor/bin/typo3 cache:flush                              # clear all caches
vendor/bin/typo3 database:updateschema "*.add,*.change"   # apply schema changes
bash fix-asset-perms.sh                                   # fix asset permissions (see below)

Deployment notes

  • Document root: public/.
  • Asset permissions: when files are deployed over an SSHFS/Windows mount they can land with a too‑restrictive mode (no “other” read), which makes the web server return 403 for backend icons/CSS/JS. Run fix-asset-perms.sh on the server after deploying assets (it sets files to 644 / directories to 755 under public/_assets and the extension’s Resources/Public, then flushes caches).
  • Never commit config/system/settings.php or auth.json (already git-ignored).

Documentation

Document Purpose
packages/vitec/README.md The custom extension — features & content elements
packages/vitec/Documentation/Headless-JSON-Architecture.md Authoritative headless architecture & JSON interface spec
Documentation/CustomFrameClasses.md Custom frame classes
VITEC-ContentBlocks-Setup.md Content Blocks setup notes

License

GPL‑2.0‑or‑later — © evomedien.

VITEC · TYPO3 headless backend + React front end

vitecdev 17ZJfy75sJoU68J6

S
Description
No description provided
Readme GPL-2.0
18 MiB
0 Stars 2 Watchers 0 Forks
Languages
PHP 89.1%
HTML 7%
JavaScript 1.9%
CSS 1.5%
Shell 0.4%