From 76613b9f8eadce352f28cc087c1fb7a6f0c278ac Mon Sep 17 00:00:00 2001 From: Umut Kantarci Date: Thu, 5 Nov 2026 05:23:17 +0000 Subject: [PATCH] Add videos: library, block and section background Videos join the media library as their own table (schema v28), with a video block and a looping background on sections. video.js starts loops only while visible, offers a pause button and leaves the still image for reduced motion and data saving. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01PWYm8kjAWmZaB2QB2xuBhU --- config/services.yaml | 3 + docs/ARCHITECTURE.md | 10 ++ docs/STATUS.md | 12 ++ migrations/Version20261104000100.php | 39 +++++++ public/assets/editor-model.js | 13 ++- public/assets/editor.js | 56 ++++++++- public/assets/library-previews.js | 1 + public/assets/media-drop.js | 2 +- public/assets/media.js | 65 +++++++++++ public/assets/preview.css | 2 + public/assets/site.css | 10 ++ public/assets/translate.js | 1 + public/assets/video.js | 34 ++++++ src/Content/DocumentValidator.php | 27 ++++- src/Content/Translations.php | 1 + src/Content/VideoLibrary.php | 148 ++++++++++++++++++++++++ src/Controller/MediaController.php | 80 ++++++++++++- src/Controller/PageController.php | 19 ++- src/Ops/SitePackage.php | 6 +- templates/admin/media.html.twig | 52 ++++++++- templates/blocks/block.html.twig | 18 ++- templates/blocks/video-toggle.html.twig | 2 + templates/page.html.twig | 1 + tests/CmsTest.php | 90 ++++++++++++++ tests/TestSchema.php | 2 + 25 files changed, 674 insertions(+), 20 deletions(-) create mode 100644 migrations/Version20261104000100.php create mode 100644 public/assets/video.js create mode 100644 src/Content/VideoLibrary.php create mode 100644 templates/blocks/video-toggle.html.twig diff --git a/config/services.yaml b/config/services.yaml index 0dc675a..3357ba3 100644 --- a/config/services.yaml +++ b/config/services.yaml @@ -48,6 +48,9 @@ services: App\Content\DocumentLibrary: arguments: $directory: '%env(projectdir:MEDIA_DIRECTORY)%' + App\Content\VideoLibrary: + arguments: + $directory: '%env(projectdir:MEDIA_DIRECTORY)%' # Die Schriften liegen im oeffentlichen Ordner: sie sollen vom Webserver direkt ausgeliefert # werden, ohne PHP dazwischen - das ist der Punkt der Uebung. # Die Stellen, die wissen muessen, wie die Verwaltung heisst. diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index 0ec72ff..1fa5608 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -2,6 +2,16 @@ Stand: 27.10.2026. Arbeitstitel KantSites; Produktname offen. +## ADR 125 – Videos: eigene Bibliothek, Baustein und Sektionshintergrund (Dokumentschema v28, 04.11.2026) + +**Kontext:** Der Hero von kant-it.de soll ein Video im Hintergrund bekommen. Die Mediathek nahm nur Bilder und PDFs, die Alpaka-Videos von Hüfner und die Drews-Videos blieben deshalb draußen. Ein `