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 perattributes-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.contentsowie
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. Nativebe_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 (123matcht nicht1234). - 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
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_DELETEDergänzt (YForm-Tabellen mit
Teilautomatik fürlinklist-Felder sowie beliebige DB-Tabellen), inkl.
eigenem Testlauf-Panel für Artikel-IDs.