Skip to content
FriendsOfREDAXOPublic

About

Trash can for REDAXO - Löschen ist sowas von gestern - mit Trash hast du immer einen Plan B! 🚀

Topics

Resources

Code of conduct

Stars

12 stars

Watchers

1 watching

Forks

Latest commit

 

History

113 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Trash - Dein Artikel-Retter fĂŒr REDAXO đŸ—‘ïž

Ups, 🚹 Artikel gelöscht? Kein Problem mehr!

Hey! Kennt ihr das? Ein falscher Klick und schwupps. Jemand vermisst einen Artikel oder eine Kategoerie: "Wo ist eigentlich die Seite XY, können Sie mal eben
" đŸ˜± Ja, der Klassiker. In REDAXO bislang mĂŒhsam. Ein komplettes Backup zurĂŒckspielen? - Ne besser nicht! Denn die Reakteur:innen haben zwischenzeitlich weitergearbeitet. Den Artikel mĂŒhsam aus dem Backup extrahieren? đŸ˜±đŸ˜± - Ne das ist Arbeit die niemand bezahlt.

😄 Hier ist Deine Rettung!

Was macht dieser Lebensretter?

Trash fĂ€ngt deine gelöschten Artikel ab, bevor sie ins digitale Nirvana verschwinden. Wie ein treuer Hund 🐕 bringt er dir die weggeworfenen Stöckchen wieder zurĂŒck - wenn du sie brauchst!

Die coolen Features

  • Sofort-RĂŒckgĂ€ngig - Direkt nach dem Löschen ein Hinweis mit Countdown: einmal klicken, Artikel ist zurĂŒck. Kein Umweg ĂŒber den Papierkorb
  • Automatische Rettung - Trash schnappt sich jeden gelöschten Artikel blitzschnell
  • Volle Power - Alle Inhaltsblöcke, Module und sogar die Arbeitsversion bleiben erhalten
  • Original-IDs - Artikel werden wenn möglich unter ihrer ursprĂŒnglichen ID wiederhergestellt
  • Meta-Daten Erhaltung - Alle Metafelder von AddOns wie MetaInfo oder YRewrite bleiben erhalten
  • Selbstreinigend - Der integrierte Cronjob rĂ€umt alte Artikel automatisch auf (wenn gewĂŒnscht)
  • One-Click-Wonder - Artikel mit einem Klick komplett wiederherstellen
  • Versionierungs-freundlich - Deine Arbeitsversionen bleiben erhalten (ja, wirklich!)
  • Mehrsprachig - Deine Übersetzungen sind genauso wichtig wie die Hauptsprache
  • AufgerĂ€umt - Übersichtliche Liste zum einfachen Finden deiner verlorenen SchĂ€tze
  • Einzelne Blöcke - Auch ein versehentlich gelöschter Slice lĂ€sst sich sofort zurĂŒckholen

Der Alltag mit Trash

Einfach wie Kuchen essen:

  • "Ups, das war der falsche!" → Der Hinweis steht noch da: RĂŒckgĂ€ngig machen klicken, fertig
  • "Oh nein, falscher Artikel gelöscht!" → Ab in den Papierkorb, wiederherstellen, fertig!
  • "Der alte Kram kann jetzt wirklich weg" → EndgĂŒltig löschen
  • "Großreinemachen" → Papierkorb komplett leeren oder einfach den Cronjob fĂŒr dich arbeiten lassen

Wer darf was?

Seit Version 2.0.0 gibt es zwei Rechte, damit nicht jede Wiederherstellung einen Admin braucht:

Recht Erlaubt
trash[] Papierkorb ansehen und wiederherstellen
trash[delete] zusĂ€tzlich endgĂŒltig löschen und den Papierkorb leeren

Admins haben beides automatisch und sehen den gesamten Papierkorb. Alle anderen sehen ausschließlich, was sie selbst gelöscht haben – fremde gelöschte Inhalte tauchen weder in der Liste auf noch lassen sie sich ĂŒber eine geratene ID erreichen. Das gilt auch fĂŒr das Sofort-RĂŒckgĂ€ngig und fĂŒr „Papierkorb leeren“, das dann nur die eigenen EintrĂ€ge entfernt.

Insider-Tipps

  • Wenn die Elternkategorie weg ist, landet der wiederhergestellte Artikel einfach in der Hauptebene
  • Falls die Original-ID bereits vergeben ist, bekommt der wiederhergestellte Artikel automatisch eine neue ID
  • Meta-Daten werden nur wiederhergestellt, wenn die entsprechenden AddOns noch installiert sind
  • Mit dem Cronjob kannst du festlegen, wie lange Artikel im Papierkorb bleiben sollen (1 Tag bis 1 Jahr)

Sofort-RĂŒckgĂ€ngig

Seit Version 2.0.0 zeigt Trash direkt nach dem Löschen einen Hinweis mit Countdown und einem RĂŒckgĂ€ngig-Link. Das ist der schnelle Weg fĂŒr den hĂ€ufigsten Fall: einmal falsch geklickt.

Der Unterschied zum Papierkorb ist nur die Bedienung, nicht der Speicher:

Trash legt dafĂŒr nichts zusĂ€tzlich ab. Der Toast ist nur eine AbkĂŒrzung zu Daten, die ohnehin gesichert sind:

woher die Daten kommen wie lange
Artikel & Kategorien Papierkorb (dieses AddOn) unbegrenzt
Einzelne Blöcke Verlauf (structure/history) 7–30 Tage, je nach Einstellung

LĂ€uft die 30-Sekunden-Frist ab, ist nichts verloren. Artikel und Kategorien bleiben im Papierkorb, Blöcke im Verlauf des Artikels (Editiermodus â€ș Verlauf). Der Toast sagt das auch: „danach ĂŒber den Papierkorb" bzw. „danach ĂŒber den Verlauf".

Ist das Plugin structure/history nicht installiert, erscheint beim Löschen eines Blocks kein Hinweis – dann gibt es nichts zurĂŒckzuholen, und ein RĂŒckgĂ€ngig-Link wĂ€re ein leeres Versprechen.

Das ZurĂŒcknehmen ist wie der Papierkorb selbst Admins vorbehalten, und die Frist wird serverseitig geprĂŒft – ein alter Link holt nichts zurĂŒck.

Unter System â€ș Papierkorb â€ș Einstellungen lĂ€sst sich die Funktion abschalten und die Frist einstellen (5–300 Sekunden, Standard 30).

Umstieg vom AddOn "undo"

Trash 2.0.0 enthĂ€lt die Funktion des AddOns undo. Beide gleichzeitig zu betreiben wĂŒrde jede Löschung doppelt sichern, deshalb schließen sie sich gegenseitig aus – REDAXO verhindert die Installation mit einer entsprechenden Meldung.

  • Du willst nur das Sofort-RĂŒckgĂ€ngig? Dann installiere weiterhin undo. Es bleibt eigenstĂ€ndig.
  • Du willst beides? Dann nimm trash. Beim Update werden vorhandene undo-EintrĂ€ge automatisch in den Papierkorb ĂŒbernommen.

Technische Details

  • ErhĂ€lt alle REDAXO-Artikel-Daten (Slices, Module, Revisionen)
  • Speichert Meta-Daten in JSON-Format fĂŒr einfache Wiederherstellung
  • UnterstĂŒtzt das Structure/Version Plugin (falls installiert)
  • Saubere Deinstallation mit vollstĂ€ndiger Entfernung aller Tabellen
  • Optionaler Cronjob zum automatischen AufrĂ€umen alter EintrĂ€ge

Technische Details fĂŒr Entwickler

Wie der Papierkorb funktioniert

Der Trash-AddOn nutzt REDAXOs Extension Points, um Artikel und ihre Inhalte vor dem permanenten Löschen zu sichern. Hier ein Überblick ĂŒber die technische Architektur und den Datenfluss:

Datenmodell

Das AddOn verwendet drei Tabellen:

  1. rex_trash_article

    • Speichert die Basisinformationen gelöschter Artikel/Kategorien
    • Standard-Eigenschaften wie name, parent_id, status etc. direkt als Spalten
    • JSON-kodierte Attribute (path, priority, etc.) in der attributes-Spalte
    • Meta-Attribute (von anderen AddOns) in der meta_attributes-Spalte
  2. rex_trash_article_slice

    • Sichert alle Inhaltsblöcke (Slices) der gelöschten Artikel
    • Alle Standard-Felder wie value1-20, media1-10, etc.
    • Speichert auch Revisionen fĂŒr Arbeits- und Live-Versionen
  3. rex_trash_slice_meta

    • Speichert unbekannte/dynamische Felder von Slices
    • Verbunden mit trash_article_slice ĂŒber die trash_slice_id
    • JSON-kodierte Meta-Attribute in der meta_data-Spalte

Ablauf beim Löschen

  1. Extension Point abfangen

    • Der Papierkorb registriert sich am ART_PRE_DELETED Extension Point
    • Wenn ein Artikel/Kategorie gelöscht wird, greift der Papierkorb ein
  2. Artikel-Daten sichern

    • Grunddaten werden in rex_trash_article gespeichert
    • Standard-Meta-Attribute wie SEO-Felder werden identifiziert und als JSON gespeichert
    • Datum der Löschung wird festgehalten
  3. Slices sichern

    • Alle Inhaltsblöcke werden in der Tabelle rex_trash_article_slice gesichert
    • FĂŒr jede Sprache (clang) und jede Revision (live/Arbeitsversion)
    • Standard-Felder direkt kopieren
    • Meta-Attribute werden identifiziert und in der Meta-Tabelle gespeichert

Ablauf beim Wiederherstellen

  1. Artikel wiederherstellen

    • PrĂŒfung, ob Original-ID verfĂŒgbar ist
    • Falls möglich: Artikel mit Original-ID wiederherstellen
    • Falls nicht: Neuen Artikel erstellen und ID-Änderung protokollieren
    • Meta-Attribute zurĂŒckschreiben (nur wenn entsprechende Spalten existieren)
  2. Slices wiederherstellen

    • Inhaltsblöcke nach Sprache und Revision fĂŒr den Artikel wiederherstellen
    • Alle Standard-Felder direkt zurĂŒckschreiben
    • Meta-Attribute werden erst nach dem Slice-Insert als separates Update angewendet
  3. AufrÀumen

    • Daten aus allen drei Papierkorb-Tabellen löschen
    • Cache-Invalidierung und Content-Generierung anstoßen

Automatische Bereinigung

Ein Cronjob kann konfiguriert werden, um den Papierkorb automatisch zu bereinigen:

  1. Zeitgesteuerte Bereinigung

    • Artikel Ă€lter als X Tage werden automatisch entfernt
    • Konfigurierbare Zeitspannen (1 Tag bis 1 Jahr)
  2. Transaktionssicherheit

    • Alle LöschvorgĂ€nge verwenden Transaktionen
    • Entweder werden alle zusammengehörigen Daten gelöscht oder keine
    • Garantiert DatenintegritĂ€t

Integration mit anderen AddOns

  • Structure/Version

    • Arbeits- und Live-Versionen werden separat gesichert und wiederhergestellt
    • Versionierung bleibt nach Wiederherstellung erhalten
  • Meta-Infos und Custom-Felder

    • Meta-Informationen von MetaInfo-AddOn werden gesichert
    • SEO-/YRewrite-Daten werden erhalten
    • Dynamisch hinzugefĂŒgte Felder werden erkannt und gesichert

Autor

Friends Of REDAXO

Projektleitung

Thomas Skerbis

Lizenz

MIT - Nimm's, nutz's, mach was draus!

About

Trash can for REDAXO - Löschen ist sowas von gestern - mit Trash hast du immer einen Plan B! 🚀

Topics

Resources

Code of conduct

Stars

12 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages