chore: alle versionsangaben einheitlich auf 1.7.0 + readme aktualisiert
- Plugin: Header-Version + CB_VERSION -> 1.7.0 - readme.txt: Stable tag 1.7.0, Features aktualisiert (skript-blockierung, consent-shortcode, textausrichtung, ganzseitiger scan, kein weissraum, ...), changelog-eintrag 1.7.0 + upgrade notice - Backend package.json -> 1.7.0 - Doku-beispiele (README.md, SPICKZETTEL.md, license-backend/README.md) auf 1.7.0 angeglichen Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -16,7 +16,7 @@ Lizenz-/Update-Server.
|
||||
(Header `Version:` **und** `define( 'CB_VERSION', … )`), committen.
|
||||
2. ZIP bauen + hochladen:
|
||||
```powershell
|
||||
.\release.ps1 -Version 1.0.1 -Token DEIN_ADMIN_API_TOKEN
|
||||
.\release.ps1 -Version 1.7.0 -Token DEIN_ADMIN_API_TOKEN
|
||||
```
|
||||
3. Lizenzierte Seiten sehen das Update unter Plugins.
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
* Plugin Name: GDPR Content Blocker
|
||||
* Plugin URI: https://lucas-orth.de/wp-plugins/gdpr-content-blocker/
|
||||
* Description: DSGVO-konformer Consent-Blocker für externe iframes. Lädt Drittinhalte erst nach aktiver Einwilligung.
|
||||
* Version: 1.6
|
||||
* Version: 1.7.0
|
||||
* Author: Lucas Orth
|
||||
* Author URI: https://lucas-orth.de
|
||||
* Text Domain: gdpr-content-blocker
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
defined( 'ABSPATH' ) || exit;
|
||||
|
||||
define( 'CB_VERSION', '1.5.4' );
|
||||
define( 'CB_VERSION', '1.7.0' );
|
||||
define( 'CB_FILE', __FILE__ );
|
||||
define( 'CB_DIR', plugin_dir_path( __FILE__ ) );
|
||||
define( 'CB_URL', plugin_dir_url( __FILE__ ) );
|
||||
|
||||
@@ -4,7 +4,7 @@ Tags: dsgvo, gdpr, consent, iframe, datenschutz, gdpr-content-blocker
|
||||
Requires at least: 6.0
|
||||
Tested up to: 6.7
|
||||
Requires PHP: 8.1
|
||||
Stable tag: 1.2.0
|
||||
Stable tag: 1.7.0
|
||||
License: GPL-2.0-or-later
|
||||
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
||||
|
||||
@@ -18,15 +18,18 @@ Anfrage an den Drittserver.
|
||||
|
||||
**Features:**
|
||||
|
||||
* Echtes Click-to-Load: vor der Einwilligung keine Verbindung zum Drittanbieter, keine Datenübertragung
|
||||
* Granulare Einwilligung pro Dienst (localStorage, je ein Key pro Service-ID)
|
||||
* Art. 13 DSGVO-konformer Platzhalter: Anbieter, Empfänger, Zweck, Drittlandhinweis, Datenschutzlink
|
||||
* Widerruf per Shortcode `[content_blocker_revoke]` — so einfach wie die Einwilligung (Art. 7 Abs. 3)
|
||||
* Auto-Erkennung via DOMDocument (keine Regex-HTML-Parsing)
|
||||
* Drittanbieter-Skripte blockieren — auch per JavaScript nachgeladene (z. B. YouTube-/Vimeo-API, Tracking-Skripte), optional auch von der eigenen Domain
|
||||
* Auto-Erkennung von iframes (server-seitig via DOMDocument) und JS-Einbettungen (Slider, Elementor-Videos inkl. e-youtube-/e-vimeo-Element, Gutenberg-oEmbed)
|
||||
* Vorlagen für Google Maps, YouTube, OpenStreetMap, Vimeo (Ein-Klick, voll editierbar)
|
||||
* Webseiten-Scan: listet alle eingebundenen Drittanbieter-Ressourcen auf (erfordert Lizenz)
|
||||
* Platzhalter übernimmt automatisch die Höhe des eingebetteten Elements (kein Layout-Sprung)
|
||||
* Webseiten-Scan: durchsucht die gesamte Website (alle Seiten/Beiträge) und listet alle Drittanbieter-Ressourcen samt Fundseiten auf (erfordert Lizenz)
|
||||
* Widerruf per Shortcode `[content_blocker_revoke]` (Art. 7 Abs. 3); Einwilligungs-Button `[content_blocker_consent]` für reine Skript-Dienste
|
||||
* Platzhalter exakt so hoch wie sein Inhalt (kein Weißraum); das Element lädt nach der Einwilligung in Originalgröße
|
||||
* Textausrichtung wählbar (mittig/links/rechts), Farben frei einstellbar, eigenes Custom-CSS; Theme überschreibt nichts
|
||||
* Manueller Shortcode `[content_blocker id="google-maps"]...[/content_blocker]`
|
||||
* Stabile CSS-Klassen für vollständige Gestaltungsfreiheit per Custom-CSS
|
||||
* Lizenz- und Update-Auslieferung über eigenen Server; Sprachen: Deutsch + Englisch
|
||||
* Keine externen Abhängigkeiten, kein CDN, kein Composer
|
||||
* PHP 8.1+, WordPress 6.0+
|
||||
|
||||
@@ -44,6 +47,11 @@ Optionen: `text="…"`, `style="link|button"`, `note="yes|no"`.
|
||||
**Übersicht aller blockierten Dienste (für Datenschutzerklärung):**
|
||||
`[content_blocker_services]`
|
||||
|
||||
**Einwilligungs-Button (für reine Skript-Dienste ohne sichtbaren Platzhalter):**
|
||||
`[content_blocker_consent id="dienst-id" text="…" style="button|link"]`
|
||||
Erteilt die Einwilligung für den angegebenen Dienst und lädt die Seite neu.
|
||||
Die ID steht im Backend unter jedem Dienst (klein unter dem Namen).
|
||||
|
||||
== CSS-Klassen ==
|
||||
|
||||
| Klasse | Beschreibung |
|
||||
@@ -93,6 +101,18 @@ ZIP muss einen Ordner `gdpr-content-blocker/` auf oberster Ebene enthalten.
|
||||
|
||||
== Changelog ==
|
||||
|
||||
= 1.7.0 =
|
||||
* Drittanbieter-Skripte blockieren (auch per JavaScript nachgeladene wie die YouTube-/Vimeo-API und Tracking-Skripte; optional auch von der eigenen Domain)
|
||||
* Neuer Shortcode `[content_blocker_consent]` (Einwilligungs-Button für reine Skript-Dienste)
|
||||
* Textausrichtung des Platzhalters wählbar (mittig/links/rechts)
|
||||
* Werbe-Badge mit Link zur Produktseite (mit aktiver Unlimited-Lizenz ausblendbar)
|
||||
* Verbesserte Elementor-Erkennung inkl. neuem e-youtube-/e-vimeo-Element; Video lädt nach Einwilligung in Originalgröße
|
||||
* Webseiten-Scan deckt jetzt die gesamte Website ab (alle Seiten/Beiträge), parallele Abfrage
|
||||
* Platzhalter exakt so hoch wie sein Inhalt (kein Weißraum mehr)
|
||||
* Kein Nachladen von WordPress-Emoji-Grafiken mehr (s.w.org)
|
||||
* Dienst-ID im Backend sichtbar; „Lizenz upgraden" öffnet eine vorausgefüllte E-Mail
|
||||
* Plugin-Icon; diverse Darstellungs- und Hover-Korrekturen (Tabs, Button, Links)
|
||||
|
||||
= 1.2.0 =
|
||||
* Shortcodes in eigenen Tab; „Über das Plugin"-Tab
|
||||
* Belegte Domains als Liste mit Papierkorb; Lizenz-Status live aktualisiert
|
||||
@@ -113,5 +133,8 @@ ZIP muss einen Ordner `gdpr-content-blocker/` auf oberster Ebene enthalten.
|
||||
|
||||
== Upgrade Notice ==
|
||||
|
||||
= 1.7.0 =
|
||||
Skript-Blockierung (inkl. YouTube-/Vimeo-API), ganzseitiger Scan, kein Weißraum im Platzhalter und diverse Darstellungs-Korrekturen.
|
||||
|
||||
= 1.0.0 =
|
||||
Erstveröffentlichung.
|
||||
|
||||
@@ -58,17 +58,17 @@ hängen daran). Repo-/Ordnername = gdpr-content-blocker, das ist nur kosmetisch.
|
||||
```bash
|
||||
cd .../gdpr-content-blocker
|
||||
# Version in gdpr-content-blocker.php (Header + CB_VERSION) bumpen, committen
|
||||
git add -A && git commit -m "release: 1.0.1"
|
||||
git tag v1.0.1
|
||||
git add -A && git commit -m "release: 1.7.0"
|
||||
git tag v1.7.0
|
||||
git push origin main
|
||||
git push origin v1.0.1 # löst den Release-Workflow aus
|
||||
git push origin v1.7.0 # löst den Release-Workflow aus
|
||||
```
|
||||
|
||||
### Manuell (ohne Runner)
|
||||
```bash
|
||||
cd .../gdpr-content-blocker
|
||||
git archive --format=zip --prefix=gdpr-content-blocker/ -o gdpr-content-blocker.zip HEAD
|
||||
curl -fSs -X POST "https://hub.lucas-orth.de/api/v1/releases?product=gdpr-content-blocker&version=1.0.1" \
|
||||
curl -fSs -X POST "https://hub.lucas-orth.de/api/v1/releases?product=gdpr-content-blocker&version=1.7.0" \
|
||||
-H "X-Admin-Token: ADMIN_TOKEN" -H "Content-Type: application/zip" \
|
||||
--data-binary @gdpr-content-blocker.zip
|
||||
```
|
||||
|
||||
@@ -87,7 +87,7 @@ Optional: `email`, `note`, `expires_at` (ISO date; omit for lifetime).
|
||||
```bash
|
||||
curl -X POST https://hub.lucas-orth.de/api/v1/releases/from-url \
|
||||
-H "X-Admin-Token: $ADMIN_API_TOKEN" -H "Content-Type: application/json" \
|
||||
-d '{"product":"gdpr-content-blocker","version":"1.1.0","zip_url":"https://gitea.lucas-orth.de/lucas.orth/GDPR-Content-Blocker/releases/download/v1.1.0/gdpr-content-blocker.zip"}'
|
||||
-d '{"product":"gdpr-content-blocker","version":"1.7.0","zip_url":"https://gitea.lucas-orth.de/lucas.orth/GDPR-Content-Blocker/releases/download/v1.7.0/gdpr-content-blocker.zip"}'
|
||||
```
|
||||
The backend downloads the ZIP once and stores it locally, so the customer download
|
||||
stays license-gated. The asset must be a **built plugin ZIP** (top-level
|
||||
@@ -97,7 +97,7 @@ restrict fetches to your Gitea, and `GITEA_TOKEN` for private repos.
|
||||
|
||||
**Upload a new plugin version** (raw `.zip` as the body — no multipart):
|
||||
```bash
|
||||
curl -X POST "https://hub.lucas-orth.de/api/v1/releases?product=gdpr-content-blocker&version=1.1.0" \
|
||||
curl -X POST "https://hub.lucas-orth.de/api/v1/releases?product=gdpr-content-blocker&version=1.7.0" \
|
||||
-H "X-Admin-Token: $ADMIN_API_TOKEN" \
|
||||
-H "Content-Type: application/zip" \
|
||||
-H "X-Changelog: Fixes XYZ" \
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "license-backend",
|
||||
"version": "1.0.0",
|
||||
"version": "1.7.0",
|
||||
"description": "Self-hosted license server for WordPress plugins (extensible, multi-product).",
|
||||
"author": "Lucas Orth",
|
||||
"license": "UNLICENSED",
|
||||
|
||||
Reference in New Issue
Block a user