1b7d3434bff8ec2a5e211e18e835ccb559c4232a
Nach dem script-blocking blieb ein per YouTube-iframe_api gebautes
Elementor-video leer: die API wird blockiert, also baut Elementor kein
iframe -> mein iframe-basierter platzhalter griff nicht, und das
data-settings enthielt nur {"video_type":"youtube"} (keine URL).
videoUrlForWidget() findet die video-URL jetzt aus mehreren quellen:
- explizite keys (youtube_url/vimeo_url/...) im data-settings
- beliebige youtube/vimeo-URL im data-settings (regex, escaped slashes)
- bereits server-gerendertes iframe im widget
- YouTube-thumbnail (i.ytimg.com/vi/ID/) bei lazyload/overlay-modus
Greift auch fuer .elementor-widget[data-widget_type^="video"] und ueberspringt
widgets, die der server-autodetect schon zum platzhalter gemacht hat.
Extraktions-logik isoliert getestet (thumbnail, escaped-json, vimeo).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
GDPR Content Blocker — Monorepo
DSGVO-konformer Consent-Blocker für externe iframes + selbst-gehosteter Lizenz-/Update-Server.
Struktur
gdpr-content-blocker/— das WordPress-Plugin. Aus diesem Ordner wird die Release-ZIP gebaut (Top-Level-Ordnergdpr-content-blocker/).license-backend/— Node/Express + SQLite Lizenz- & Update-Backend (Docker).hilfsdaten/— interne Notizen, Spickzettel, Gitea-Runner-Setup (nicht Teil des Plugins).release.ps1— baut die Plugin-ZIP und lädt sie ins Backend (manueller Release).
Manueller Release (Update verteilen)
- Version in
gdpr-content-blocker/gdpr-content-blocker.phpbumpen (HeaderVersion:unddefine( 'CB_VERSION', … )), committen. - ZIP bauen + hochladen:
.\release.ps1 -Version 1.0.1 -Token DEIN_ADMIN_API_TOKEN - Lizenzierte Seiten sehen das Update unter Plugins.
Details: siehe hilfsdaten/SPICKZETTEL.md.
Backend starten
Siehe license-backend/README.md.
Hinweis
Secrets (.env) sind per .gitignore ausgeschlossen und gehören nicht ins Repo.
Description
Languages
JavaScript
49.8%
PHP
43.9%
CSS
3.2%
Python
2.1%
PowerShell
0.7%
Other
0.3%