Zum Hauptinhalt springen

Masterprompt - Unicorn Studio Plugin für Joomla

Du bist Senior-PHP- und Joomla-5-Entwickler:in. Erstelle mir aus den folgenden Spezifikationen ein **installierbares Joomla-Plugin** als **downloadbare ZIP**. Wenn eine Code/Datei-Umgebung verfügbar ist, **erzeuge die Dateien programmgesteuert** und liefere mir am Ende einen **direkten Download-Link zur ZIP**. Falls keine Dateiumgebung verfügbar ist, liefere als Fallback eine **vollständige, copy-paste-fähige Dateistruktur** inkl. Inhalte und klarer Zipp-Anweisung – aber bevorzuge immer die **ZIP**. ### Ziel - Plugin-Typ: **Content-Plugin** (group="content") für Joomla

{JOOMLA_MAJOR_MINOR}

(z. B. 5.1/5.2) mit sauberer Abwärtskompatibilität zu

{MIN_SUPPORTED_JOOMLA}

. - Zweck: Einbettung von **Unicorn Studio** Projekten via Shortcode: `

` - SDK-Quelle (jsDelivr): `https://cdn.jsdelivr.net/gh/hiunicornstudio/unicornstudio.js@

{UNICORN_SDK_VERSION}

/dist/unicornStudio.umd.js` ### Funktionsumfang & Technik 1) **Manifest (.xml)** - `

{JOOMLA_MAJOR_MINOR}">` - Plugin-Name: `plg_content_unicornstudio` - Konfig-Parameter (mit Defaults): - `sdk_version` = `{UNICORN_SDK_VERSION}` - `init_mode` = `auto | addscene` (Default `{DEFAULT_INIT_MODE}`) - `default_ratio` = `{DEFAULT_RATIO}` - `default_width` = `{DEFAULT_WIDTH}` - `default_class` = `{DEFAULT_CLASS}` - `lazyload` = `0|1` (Default `{DEFAULT_LAZYLOAD}`) - `dpi` = `{DEFAULT_DPI}` - `scale` = `{DEFAULT_SCALE}` - `production` = `0|1` (Default `{DEFAULT_PRODUCTION}`) - Sprachdateien (en-GB, de-DE) mit freundlichen Titeln/Beschreibungen. 2) **PHP (unicornstudio.php)** - Namespace/Use-Statements für Joomla 5, ohne deprecated API. - Hook: `onContentPrepare`. - Shortcode-Parsing mit robuster Attribut-Erkennung (Anführungszeichen, Booleans). - **Sicherheit**: HTML-Escaping, Filter/Validierung für Zahlen/Booleans. - **Web Asset Manager**: SDK nur **einmal** registrieren + laden (`defer`), Fallback via `HTMLHelper`. - **Zwei Modi**: - **auto**: `data-us-*` + `UnicornStudio.init()` (DOM ready; `isInitialized` Flag). - **addscene**: `UnicornStudio.addScene({...})` mit `elementId`, `projectId`, `lazyLoad`, `dpi`, `scale`, `production`. - Responsives Wrapper-DIV mit `aspect-ratio` + `width`. - Eindeutige Container-ID (Hash/uniqid). - Saubere Fehlerbehandlung (konsole), keine PHP-Warnings. 3) **Internationalisierung** - `language/en-GB/en-GB.plg_content_unicornstudio.ini` - `language/de-DE/de-DE.plg_content_unicornstudio.ini` ### Auslieferung - Erzeuge die folgende Ordnerstruktur: plg_content_unicornstudio/ unicornstudio.php unicornstudio.xml language/en-GB/en-GB.plg_content_unicornstudio.ini language/de-DE/de-DE.plg_content_unicornstudio.ini markdown Code kopieren - **Packe alles** zu `plg_content_unicornstudio.zip` und gib mir am Ende einen **Download-Link** (z. B. `sandbox:/mnt/data/...` oder gleichwertig). - Nenne zusätzlich die **SHA256** der ZIP. ### Akzeptanzkriterien (bitte abhaken) - [ ] Installation in Joomla {JOOMLA_MAJOR_MINOR} erfolgreich. - [ ] Shortcode `

` rendert das Projekt. - [ ] SDK wird genau **einmal** geladen. - [ ] Umschaltbar zwischen `auto` und `addscene`. - [ ] **CSP-freundlich** (Hinweis: `script-src 'self' https://cdn.jsdelivr.net`), keine Inline-EVAL. - [ ] Kein Fatal/Notice in `error_reporting(E_ALL)`. - [ ] Editor-Filter-Hinweis: „Keine Filterung“ für Super Users. - [ ] Responsiv (aspect-ratio), keine fixen Pixel nötig. - [ ] Readme-Block in der Antwort mit Kurz-Anleitung. ### Änderungswünsche für diese Version - Joomla-Zielversion: **{JOOMLA_MAJOR_MINOR}** - Minimal unterstützte Version: **{MIN_SUPPORTED_JOOMLA}** - Unicorn-SDK-Version: **{UNICORN_SDK_VERSION}** - Default-Init-Modus: **{DEFAULT_INIT_MODE}** (auto|addscene) - Defaults: ratio **{DEFAULT_RATIO}**, width **{DEFAULT_WIDTH}**, class **{DEFAULT_CLASS}**, lazy **{DEFAULT_LAZYLOAD}**, dpi **{DEFAULT_DPI}**, scale **{DEFAULT_SCALE}**, production **{DEFAULT_PRODUCTION}** ### Wichtig - **Erzeuge die ZIP jetzt.** Nutze deine Code-/Datei-Fähigkeiten (z. B. Python/Jupyter-Umgebung). - Zeige mir am Ende: 1) **Download-Link** zur ZIP 2) **SHA256** der ZIP 3) **Kurz-Anleitung** (Installation, Verwendung, CSP/Filter-Hinweise) 4) **Changelog** (nur für diese Iteration)

  • Aufrufe: 2