AddOn


Snippets :: xOutputfilter-Nachfolger

Beschreibung

Das Snippets-AddOn bietet zentrale Verwaltung von wiederverwendbaren Code-Fragmenten, Übersetzungen und automatische HTML-Manipulation mit PHP 8.4 DOM:

Das Snippets-AddOn bietet zentrale Verwaltung von wiederverwendbaren Code-Fragmenten und automatische HTML-Manipulation mit PHP 8.4 DOM:

  • Snippets – Wiederverwendbare HTML/PHP-Fragmente mit Parametern
  • Filter – 26+ Filter für Textformatierung
  • HTML-Ersetzungen – CSS-Selektoren, Regex und PHP-Callbacks
  • Übersetzungen – mit Deepl-Support
  • PHP-APISnippets::get(), Snippets::apply() für PHP-Zugriff
  • Scope-Kontrolle – Templates, Kategorien, URLs, Backend-Seiten
  • Berechtigungssystem – Admin, Editor, Viewer Rollen

github.com/FriendsOfREDAXO

Umsetzung

Versionen

1.4.3

Für REDAXO
^5.20.0
Veröffentlicht am
23.03.2026
Require / PHP
^8.4

Fixed: Confirm wurde im Backend doppelt ausgelöst

1.4.2

Für REDAXO
^5.20.0
Veröffentlicht am
19.03.2026
Require / PHP
^8.4

Fixed: PHP Snippets wurden im Frontend nicht ausgeführt

1.4.1

Für REDAXO
^5.20.0
Veröffentlicht am
12.03.2026
Require / PHP
^8.4

Fehlerbehebungen (1.4.1)

Zwei Probleme mit dem HTML-Ersetzungen-Modul behoben:

  1. Ersetzungen im Edit-Modus: HTML-Ersetzungen funktionierten bisher nicht, wenn die Backend-Seite ein Formular enthielt (page=content/edit, YForm Table Manager). Diese künstliche Sperre wurde entfernt! Jetzt können Entwickler problemlos Backend-Regeln formulieren, die per Regex oder CSS-Selector z.B. das Layout der Edit-Seite verändern.
  2. Defekte Backend-Pages-Auswahlbox: Die Dropdown-Auswahlbox (Scope: Backend-Pages) im Formular zur Erstellung neuer HTML-Ersetzungen hatte einen Darstellungsfehler wegen eines CSS-Konflikts mit selectpicker und war nicht mehr nutzbar. Das CSS wurde korrigiert.

1.4.0

Für REDAXO
^5.20.0
Veröffentlicht am
10.03.2026
Require / PHP
^8.4

Was ist neu in 1.4.0?

Hinzugefügt

  • String-Übersetzungen (Sprog-Alternative): Neues Übersetzungssystem für mehrsprachige Strings, direkt im Snippets-AddOn integriert

    • Eigene DB-Tabellen (rex_snippets_string, rex_snippets_string_value) für Key-Value-Übersetzungen pro Sprache
    • Inline-Bearbeitung: Click-to-Edit direkt in der Tabelle, Escape zum Abbrechen, Enter zum Speichern
    • Alle im Frontend verfügbaren Sprachen sind direkt sichtbar und editierbar
    • Platzhalter-Syntax [[ key ]] – wird automatisch per OUTPUT_FILTER ersetzt
    • Optionale Sprog-Kompatibilität: {{ key }}-Syntax zusätzlich aktivierbar in den Einstellungen
    • Sprog-Import: Bestehende Sprog-Wildcards können per Klick importiert werden
  • DeepL-Integration: KI-Übersetzung per DeepL direkt im Backend

    • Einzelübersetzung: DeepL-Button pro Sprachzelle, überset
      Hinzugefügt
  • String-Übersetzungen (Sprog-Alternative): Neues Übersetzungssystem für mehrsprachige Strings, direkt im Snippets-AddOn integriert De

  • **String-Üb de - Eigene DB-Tabellen (rex_snippets_string, rex_snippets_string_value) für Key-Value-Übersetzungen pro Sprache

    • Inline-Bearll - Inline-Bearbeitung: Click-to-Edit direkt in der Tabelle, Escape zum Abbrechen, Enter zum Speichern
    • Alle im Frontes - Alle im Frontend verfügbaren Sprachen sind direkt sichtbar und editierbar
    • Platzhalter-Syntax'k - Platzhalter-Syntax [[ key ]] – wird automatisch per OUTPUT_FILTER ee( - Optionale Sprog-Kompatibilität: {{ key }}-Syntax zusätzlich aktivierbar ch - Sprog-Import: Bestehende Sprog-Wildcards können per Klick importiert werden
  • DeepL-Integr E- DeepL-Integration:** KI-Übersetzung per DeepL direkt im Backend

    • Einzelübee - Einzelübersetzung: DeepL-Button pro Sprachzelle, überset
      ta### Hinzugefügt
  • **String-Übersetzungen (Sprog-Alternativs()` – Übersetzungen mit Sprach-Codes installieren

    • SnippetsInstaller::installSnippets() – Snippets installieren
    • `SnippetsInstaller::installHtml - Inline-Bearll - Inline-Bearbeitung: Click-to-Edit direkt in der Tabelle, Escape zum Abbrechen, Enter zum Speichern
    • Alle im Front K - Alle im Frontes - Alle im Frontend verfügbaren Sprachen sind direkt sichtbar und editierbar
    • Platzhalter-Synt- Platzhalter-Syntax'k - Platzhalter-Syntax[[ key ]]– wird automatiscementsByPrefix()- DeepL-Integr E- DeepL-Integration:** KI-Übersetzung per DeepL direkt im Backend
    • Einzelübee - Einzelübersetzung: DeepL-Button pro Sprachzelle, überset
      ta### Hinzugefügt
  • String-Übersetzungen (Sprog-Alternativs()` – Übersetzungen mit Sprach-Cne - Einzelübee - Einzelübersetzung: DeepL-Button pro Sprachzelle, überset
    taZw### ta### Hinzugefügt**

  • **String-Übersetpets, HTML-Ersetzungen, Abkürzungen

  • **String-ngen) zeigen - SnippetsInstaller::installSnippets() – Snippets installieren

    • SnippetsInstaller::ne -SnippetsInstaller::installHtml - Inline-Bearll - Inline-Bearbe - Alle im Front K - Alle im Frontes - Alle im Frontend verfügbaren Sprachen sind direkt sichtbar und editierbar
    • Platzhalter-Synt- Platzhalterwi - Platzhalter-Synt - Platzhalter-Syntax'k - Platzhalter-Syntax [[ key ]] – wird automatiscementsByPrefiFo - Einzelübee - Einzelübersetzung: DeepL-Button pro Sprachzelle, überset
      ta### Hinzugefügt
  • **String-Übersetzungen (Sprog-Alternativs()` – Übersetzungen mit Sprach-Cne - Einzelübee - d ### ta### Hinzugefügt

  • **String-Übersetzungen (Sprog-Alternativs()` – se

  • **String-Übersetzung### taZw### ta### Hinzugefügt

  • **String-Übersetpets, HTML-Ersetzungen, Abkürzungen

  • **String-ngen) zeigen - `SnippetsInstaller::installSnippeen können d

  • String-Übersetpets, XLIFF - String-ngen) zeigen - SnippetsInstaller::instalrd-Format für professionelle Übersetzer-Tools (SDL Trados, memoQ, Memsource, Phrase) exportier - Platzhalter-Synt - Platzhalterwi - Platzhalter-Synt- Platzhalter-Syntax'k - Platzhalter-Syntax[[ key ]]` – wird automatiscementsByPrefiFo - Einzelübee - Einzelübersetzung: DeepL-Button pro ng### ta### Hinzugefügt

  • **String-Übersetzungen (Sprog-Alternativs()` – Übersetzungen mit Sprach-Cne - Einzelübee - d ### ta### Hinzugefügt

  • **String-Übersetzungen (Sprog-Alternativs()` – se

  • **String-Übersetzung##onfigurierbare Extension P

  • **String-Übersetzungen (Sprog-Alternativs()` – se

  • **String-Übersetzung### taZw### ta### Hinzugefügt

  • String-Üel - String-Übersetzung### taZw### ta### Hinzugefügt
    _B

  • String-Übersetpets, HTML-Ersetzungen, AbkürzuRec- String-ngen) zeigen - SnippetsInstaller::instal a- **String-Übersetpets, XLIFF - **String-ngen) zeigen -SnippetsInstlu

  • **String-Übersetzungen (Sprog-Alternativs()` – Übersetzungen mit Sprach-Cne - Einzelübee - d ### ta### Hinzugefügt

  • **String-Übersetzungen (Sprog-Alternativs()` – se

  • **String-Übersetzung##onfigurierbare Extension P

  • **String-Übersetzungen (Sprog-Alternativs()` – se

  • **String-Übersetzung### taZw### ta### Hinzugefügt

  • String-Üel - String-Übersetzung### taZw### ta### Hinzugefügt im Menü nun rechtsbündig ausgerichtet (pull-right)

  • Kategorie-Auswahl: Selectpicker durch natives <select> mit slid- **String-Übersetzung##onfigurierbare Extension P

  • ap- *String-Übersetzungen (Sprog-Alternate Tabelle:- **String-Übersetzung### taZwes Scrollen bei vielen Sp

  • String-Üel - String-Übersetzung### taZw### ern_B

  • String-Übersetpets, HTML-Ersetzungen, AbkürzuRec- String-ion

1.2.0

Für REDAXO
^5.20.0
Veröffentlicht am
09.03.2026
Require / PHP
^8.4

Snippets 1.2.0 bringt mehrere Verbesserungen für HTML-Ersetzungen im Backend. Import/Export wurde stabilisiert (inkl. Fix für den Import-Upload), und scope_backend_request_pattern wird jetzt vollständig mit exportiert und importiert.

Außerdem wurde das Scope-Matching präzisiert: Backend-Seiten und Backend-Request-Pattern lassen sich kombinieren, und die Pattern sind flexibler nutzbar (Teilstring-Matching für Parameterwerte, z. B. page=content/edit trifft auch Requests mit zusätzlichen Parametern). Für Edit-Kontexte wurden HTML-Ersetzungen sicherer gemacht, damit formularnahe Bereiche geschützt bleiben.

Zusätzlich wurde die Backend-UI verbessert: Kategorie-Icons werden jetzt konsistent in Liste und Auswahlfeldern angezeigt, die Backend-Seiten-Auswahl ist in der Höhe begrenzt, und die Hilfetexte in den HTML-Ersetzungs-Einstellungen enthalten konkrete Pattern-Beispiele und klare Hinweise zur Kombinationslogik.

1.0.2

Für REDAXO
^5.20.0
Veröffentlicht am
27.02.2026
Require / PHP
^8.4

1.0.2] – 2026-02-27

Danke Andreas 👍🏼 @aeberhard

Behoben

  • HTML-Ersetzung (Backend-Scope): Regeln mit Auswahl wie mediapool griffen nicht auf Unterseiten wie mediapool/media; Backend-Seiten-Matching prüft nun exakt und per Präfix
  • HTML-Ersetzung (Backend-Kontext): Seitenbestimmung war in einigen Fällen unzuverlässig; Ermittlung erfolgt jetzt primär über rex_be_controller::getCurrentPage()
  • HTML-Ersetzung (Aktiv-Status): Aktiv-Checkbox konnte nach dem Bearbeiten als inaktiv gespeichert werden; Status wird nun explizit als 0/1 geführt und robust aus Legacy-Werten (z. B. |1|) normalisiert
  • HTML-Ersetzung (Backend-Seiten-Label): doppelt escapte Titel (&amp;) in der Seitenauswahl wurden korrigiert

Hinzugefügt

  • Dynamische Backend-Seitenauswahl: statt statischer Liste werden alle verfügbaren Backend-/Addon-Seiten hierarchisch aus der Navigation angeboten
  • Selectpicker für Backend-Seiten: Mehrfachauswahl mit Suche und Auswahl-Aktionen in der HTML-Ersetzungsmaske
  • Backend-Request-Pattern: optionale freie Eingabe für Request-Filter (z. B. page=content/edit&function=add oder Teilstring-Match auf URL)
  • Datenmigration in update.php: Normalisierung bestehender status-Werte und Backend-Scope-Daten, inkl. neuem Feld scope_backend_request_pattern

1.0.1

Für REDAXO
^5.20.0
Veröffentlicht am
25.02.2026
Require / PHP
^8.4

1.0.1] – 2026-02-25

Behoben

  • HTML-Ersetzung: Editieren zeigte leere Felderid wurde nur aus GET gelesen, jedoch beim Formular-Submit per POST übertragen; rex_request::request() liest nun aus beiden Quellen
  • HTML-Ersetzung: „Name existiert bereits" beim Speichern einer bestehenden Regel – Folgefehler der fehlenden id, nameExists() schloss die eigene ID nun korrekt aus
  • HTML-Ersetzung: Suchwert mit führenden/nachfolgenden Leerzeichen wurde nicht gefundentrim() wird jetzt beim Speichern angewendet
  • Kategorien: [translate:cancel] und [translate:no_data_available] – falsche Core-Keys ersetzt durch addon-eigene Keys (snippets_btn_cancel, snippets_category_no_data)
  • Kategorien/Listing: [translate:edit] – in categories.php und listing.php durch snippets_category_edit / snippets_btn_edit ersetzt
  • HTML-Ersetzung: Abbrechen-Button verzweigte zurück zur leeren Bearbeiten-Seite statt zur Übersicht
  • HTML-Ersetzung: OUTPUT_FILTER in separate Extension mit rex_extension::LATE ausgelagert, damit die HTML-Ersetzung garantiert nach allen anderen NORMAL-Filtern (z. B. Sprog, YRewrite) ausgeführt wird

1.0.0

Für REDAXO
^5.20.0
Veröffentlicht am
17.02.2026
Require / PHP
^8.4

Snippets AddOn / REDAXO CMS

Eine moderne Alternative zum xoutputfilter (Danke Andreas ❤️) AddOn und als Ergänzung zu Sprog (Danke Thomas ❤️).
Snippets können Texte sein oder kleine Code-Schnipsel die global verwendet werden können. Die Ausgabe erfolgt über den Outputfilter.

bersicht

Das Snippets-AddOn bietet zentrale Verwaltung von wiederverwendbaren Code-Fragmenten und automatische HTML-Manipulation mit PHP 8.4 DOM:

  • Snippets – Wiederverwendbare HTML/PHP-Fragmente mit Parametern
  • Filter – 26+ Filter für Textformatierung
  • HTML-Ersetzungen – CSS-Selektoren, Regex und PHP-Callbacks
  • PHP-APISnippets::get(), Snippets::apply() für PHP-Zugriff
  • Scope-Kontrolle – Templates, Kategorien, URLs, Backend-Seiten
  • Berechtigungssystem – Admin, Editor, Viewer Rollen

Full Changelog: https://github.com/FriendsOfREDAXO/snippets/commits/1.0.0