AddOn


in_use

Beschreibung

Erweitert zwei "in Verwendung"-Checks von REDAXO um frei konfigurierbare Quellen:

Medien (MEDIA_IS_IN_USE)

Core prüft beim Löschen einer Mediendatei standardmäßig nur rex_article_slice-Spalten.
Zusätzlich konfigurierbar:

  • YForm-Tabellen: beliebige Spalten beliebiger YForm-Tabellen. Textarea-Spalten,
    die per attributes-Konfiguration einen Richtext-Editor (cke5/tinymce/markitup)
    nutzen, werden automatisch als Vorschlag vorausgewählt. Native Medienfelder
    (be_media/be_medialist) werden nicht erneut angeboten — die deckt REDAXO
    Core bereits ab.
  • Beliebige DB-Tabellen: Text-/Blob-/JSON-Spalten frei wählbarer Tabellen.
  • Template- & Modul-Code: optional die Spalten rex_template.content sowie
    rex_module.input/output.

Artikel & Kategorien (ART_PRE_DELETED)

Core hat dafür keinen eingebauten Check (anders als bei Medien) — jedes AddOn,
das eine Artikel-Löschung verhindern will, muss im eigenen ART_PRE_DELETED-Handler
selbst eine rex_api_exception werfen (Rückgabewert des EP wird von Core ignoriert;
Vorbild: yrewrites Domain-Start-/Mount-/404-Artikel-Schutz). Konfigurierbar:

  • YForm-Tabellen: beliebige Spalten. linklist-Felder (mform, kommagetrennte
    Artikel-IDs) werden automatisch als Vorschlag vorausgewählt. Native be_link-Felder
    werden nicht angeboten — die deckt YForm bereits selbst ab
    (YFORM_ARTICLE_IS_IN_USE / rex_yform_value_be_link::isArticleInUse()).
  • Beliebige DB-Tabellen: frei wählbare Spalten.

Der EP feuert für Artikel und Kategorien (eine Kategorie ist intern ein Artikel
mit startarticle=1).

Konfiguration

Backend → InUse Check. Pro Spalte ist ein Vergleichsmodus wählbar:

  • enthält: REGEXP-Wortgrenzen-Suche (wie Core es bei Artikel-Slices macht) —
    passend für Richtext-/JSON-Felder, in denen der Wert nur ein Teil des Inhalts ist.
    Bei Artikel-IDs wird beidseitig auf Ziffern-Grenzen geprüft (123 matcht nicht 1234).
  • exakt: Spaltenwert entspricht exakt dem Dateinamen/der Artikel-ID.
  • Liste: FIND_IN_SET — für kommagetrennte Werte.

Ein "Testlauf"-Panel je Bereich prüft einen Dateinamen bzw. eine Artikel-ID gegen
die gespeicherte Konfiguration, ohne etwas zu löschen.

Namespace

Alle Klassen laufen unter FriendsOfRedaxo\InUse (lib/).


github.com/FriendsOfREDAXO/in_use

Umsetzung

Versionen

1.0.0

Für REDAXO
^5.15.0
Veröffentlicht am
02.09.2026

Changelog

1.0.0

  • Erstversion: konfigurierbare Erweiterung des MEDIA_IS_IN_USE-Checks um
    YForm-Tabellen (mit Teilautomatik für cke5/tinymce/markitup-Richtext-Spalten),
    beliebige DB-Tabellen sowie Template-/Modul-Code.
  • Testlauf-Panel: prüft einen Dateinamen gegen die gespeicherte Konfiguration,
    ohne etwas zu löschen.
  • Artikel-/Kategorie-Check über ART_PRE_DELETED ergänzt (YForm-Tabellen mit
    Teilautomatik für linklist-Felder sowie beliebige DB-Tabellen), inkl.
    eigenem Testlauf-Panel für Artikel-IDs.