# Media Organizer

Findet nicht mehr verwendete Mediendateien in Joomla und hilft, sie belegbar und sicher zu entfernen · Version 1.0.3 · Stand 12.08.2026

# Media Organizer im Überblick

Media Organizer findet Mediendateien, die auf Ihrer Joomla-Website nicht mehr verwendet werden, und hilft Ihnen, sie sicher zu entfernen. Zu jeder Datei zeigt die Erweiterung, *wo* gesucht wurde, *was* gefunden wurde und *warum* sie als verwaist gilt. Sie entscheiden also anhand von Belegen — nicht anhand einer Vermutung.

Media Organizer ist eine reine Administrator-Erweiterung für Joomla 6 und erzeugt keinerlei Ausgabe im Frontend.

<figure id="bkmrk-das-dashboard-fasst-"> ![Das Dashboard von Media Organizer mit Kennzahlen zu Dateien, Referenzen und Berichten](https://docs.graup-it.de/uploads/images/gallery/2026-07/v3Hdoku-01-dashboard.png) <figcaption>Das Dashboard fasst den letzten Scan zusammen: Anzahl der Dateien, referenzierte und unreferenzierte Dateien, freigebbarer Speicher und die drei Berichte.</figcaption></figure>## Warum das Aufräumen hier sicher ist

Mediendateien zu löschen ist unumkehrbar. Deshalb ist die gesamte Erweiterung um eine einzige Regel herum gebaut:

<div class="callout info" id="bkmrk-nichts-wird-verschob"> **Nichts wird verschoben oder gelöscht, ohne dass ein Mensch es ausgewählt und bestätigt hat.**</div>Diese Regel ist kein Versprechen, sondern im Code verankert. Konkret bedeutet das:

- **Die Quarantäne ist der Normalfall.** Dateien werden in einen geschützten Ordner verschoben und lassen sich jederzeit zurückholen. Das endgültige Löschen ist ein separater, bewusster Schritt.
- **Ein einziges Tor schützt das Löschen.** Vor der endgültigen Entfernung werden zwölf voneinander unabhängige Bedingungen geprüft, dazu ein einmalig gültiger Bestätigungs-Token, der Aktion, Benutzer, Scan und die exakte Dateiliste aneinander bindet. Es gibt keinen Schalter, der das umgeht.
- **Für jede Einstufung gibt es Belege.** Zu jeder Datei sehen Sie, welche Suchbereiche geprüft wurden, wo gesucht wurde und mit welchem Ergebnis — samt Links direkt in den Inhalt, der die Datei verwendet.
- **Die Erweiterung kennt ihre eigenen Grenzen.** Ist eine installierte Erweiterung nicht abgedeckt, sperrt Media Organizer das endgültige Löschen, statt eine falsche Löschung zu riskieren.
- **Nichts läuft von allein.** Der geplante Scan und die Kommandozeile können *finden und melden*, aber niemals selbst löschen. Ein Scan schreibt grundsätzlich nichts ins Dateisystem.
- **Strikt lokal.** Es werden keine externen Dienste kontaktiert. Keine Daten verlassen Ihre Website.

## Was Media Organizer findet

Die Suche nach Referenzen deckt die üblichen Verstecke ab:

- Beiträge und Kern-Inhalte, einschließlich Zusatzfelder (Custom Fields)
- Module — auch das HTML von `mod_custom`, Modul-Parameter und Ordner-Parameter
- Versionshistorie von Beiträgen
- Templates und fest hinterlegte Bildpfade in CSS-Dateien
- Drittanbieter-Erweiterungen über geprüfte Profile
- Ein Tiefenscan über die Datenbank als Sicherheitsnetz für alles Übrige

## Was noch dazugehört

- **Duplikate** — Dateien mit identischem Inhalt, erkannt über die Prüfsumme
- **Defekte Referenzen** — tote Bild-Links in Ihren Inhalten
- **Optimierungs-Bericht und Bildoptimierung** — verlustarm, optional über externe Encoder, jede Änderung umkehrbar
- **Bild-Editor** — Zuschneiden, Skalieren, Drehen, Umwandeln nach WebP
- **Kommandozeile** für Scans, Berichte und Wartung
- **Geplante Scans** über den Joomla-Aufgabenplaner, mit E-Mail-Benachrichtigung
- **404-Überwachung**, die Zugriffe auf Dateien in Quarantäne mitschreibt — ein zusätzlicher Beleg vor dem endgültigen Löschen

## Wie Sie weiterlesen

Wenn Sie neu einsteigen, folgen Sie am besten dieser Reihenfolge:

1. [Voraussetzungen und Installation](https://docs.graup-it.de/books/media-organizer/page/voraussetzungen-und-installation)
2. [Download-Schlüssel und Updates](https://docs.graup-it.de/books/media-organizer/page/download-schlussel-und-updates)
3. [Schnellstart: der erste Scan](https://docs.graup-it.de/books/media-organizer/page/schnellstart-der-erste-scan)
4. [Die Prüfansicht](https://docs.graup-it.de/books/media-organizer/page/die-prufansicht)
5. [Belege lesen](https://docs.graup-it.de/books/media-organizer/page/belege-lesen-warum-gilt-eine-datei-als-verwaist)
6. [Quarantäne, Wiederherstellen, endgültiges Löschen](https://docs.graup-it.de/books/media-organizer/page/quarantane-wiederherstellen-endgultiges-loschen)

<small>Gilt für Version 1.0.3.</small>

# Voraussetzungen und Installation

## Systemvoraussetzungen

<table class="table" id="bkmrk-joomla-6.0-oder-neue"> <tbody> <tr> <th scope="row">Joomla</th> <td>6.0 oder neuer</td> </tr> <tr> <th scope="row">PHP</th> <td>8.3 oder neuer</td> </tr> <tr> <th scope="row">Datenbank</th> <td>MySQL 8.0.13+ oder MariaDB 10.4+</td> </tr> </tbody></table>

Ein Backward-Compatibility-Plugin (`plg_behaviour_compat`) wird **nicht**benötigt. Media Organizer läuft ausschließlich mit den aktuellen Joomla-6-Schnittstellen.

<div class="callout info" id="bkmrk-f%C3%BCr-die-optionale-bi">Für die **optionale** Bildoptimierung über externe Encoder (pngquant, oxipng, jpegoptim, gifsicle, cwebp, avifenc) müssen diese Programme auf dem Server verfügbar sein. Ohne sie funktioniert alles Übrige unverändert — der Optimierungs-Bericht nutzt dann nur die eingebauten Möglichkeiten.

</div>## Installation

Media Organizer wird als ein einziges Paket ausgeliefert:

1. Öffnen Sie **System → Installieren → Erweiterungen**.
2. Laden Sie die Datei `pkg_jimgo-<version>.zip` hoch.
3. Die Installation läuft ohne weitere Rückfragen durch.

Das Paket enthält:

<table class="table" id="bkmrk-bestandteil-aufgabe-"> <thead> <tr> <th scope="col">Bestandteil</th> <th scope="col">Aufgabe</th> <th scope="col">Nach der Installation</th> </tr> </thead> <tbody> <tr> <td>Komponente `com_jimgo`</td> <td>Die eigentliche Anwendung im Backend</td> <td>aktiv</td> </tr> <tr> <td>Konsolen-Plugin</td> <td>Stellt die `jimgo:`-Kommandos bereit</td> <td>automatisch aktiviert</td> </tr> <tr> <td>Aufgaben-Plugin</td> <td>Geplante Scans über den Joomla-Aufgabenplaner</td> <td>automatisch aktiviert</td> </tr> <tr> <td>System-Plugin (404-Überwachung)</td> <td>Schreibt Zugriffe auf Dateien in Quarantäne mit</td> <td>**deaktiviert** — bewusst Ihre Entscheidung</td> </tr> <tr> <td>Erweiterungsprofile</td> <td>Geprüftes Wissen über Drittanbieter-Erweiterungen</td> <td>installiert</td> </tr> </tbody></table>

<figure id="bkmrk-nach-der-installatio"> ![Das Panel nach der Installation von Media Organizer mit Version, Status und den Karten Erste Schritte, Updates aktivieren und Hilfe](https://docs.graup-it.de/uploads/images/gallery/2026-07/doku-12-installationspanel.png) <figcaption>Nach der Installation begrüßt Sie dieses Panel. Es nennt die installierte Version und führt zu den drei Dingen, die jetzt anstehen: der erste Scan, der Download-Schlüssel für Aktualisierungen und das Handbuch. Nach einem Update steht an der Stelle von „Erste Schritte“ das Änderungsprotokoll.</figcaption></figure>## Die 404-Überwachung aktivieren

Die 404-Überwachung ist standardmäßig ausgeschaltet, weil sie bei jedem Seitenaufruf mitläuft. Sie ist nützlich, aber nicht zwingend: Sie protokolliert Zugriffe auf Dateien, die Sie bereits in Quarantäne verschoben haben. Taucht dort ein Treffer auf, wurde die Datei also doch noch irgendwo verwendet — ein sehr starker Hinweis, sie *nicht* endgültig zu löschen.

Zum Einschalten: **System → Plugins** → nach *Media Organizer* suchen → das System-Plugin aktivieren.

## Nach der Installation

Media Organizer finden Sie unter **Komponenten → Media Organizer**. Es ist noch nichts gescannt und noch nichts verändert worden — die Erweiterung wartet auf Ihren ersten Scan.

Bevor Sie loslegen, lohnt ein Blick in **Optionen**: Dort legen Sie fest, welche Bereiche durchsucht werden und welche Ordner grundsätzlich unangetastet bleiben. Die Voreinstellungen sind bewusst vorsichtig gewählt und für die meisten Websites passend.

<div class="callout warning" id="bkmrk-empfehlung%3A-legen-si">**Empfehlung:** Legen Sie vor der ersten Bereinigung ein Backup an — so, wie Sie es vor jeder größeren Änderung an einer Live-Website tun würden. Media Organizer arbeitet umkehrbar, aber ein Backup ersetzt kein Vertrauen und Vertrauen kein Backup.

</div>## Weiter geht es

- [Download-Schlüssel und Updates](https://docs.graup-it.de/books/media-organizer/page/download-schlussel-und-updates) — damit Sie Aktualisierungen erhalten
- [Schnellstart: der erste Scan](https://docs.graup-it.de/books/media-organizer/page/schnellstart-der-erste-scan)

<small>Gilt für Version 1.0.3.</small>

# Download-Schlüssel und Updates

Media Organizer ist eine kommerzielle Erweiterung. Nach der Installation funktioniert sie vollständig — auch ohne Schlüssel. Der Download-Schlüssel wird ausschließlich für **Aktualisierungen** benötigt.

<div class="callout info" id="bkmrk-ohne-eingetragenen-s">Ohne eingetragenen Schlüssel läuft Media Organizer unverändert weiter. Es werden lediglich keine Updates angeboten.

</div>## 1. Schlüssel erzeugen

Melden Sie sich in Ihrem Konto auf [graup-it.de](https://www.graup-it.de/produkte/media-organizer-fuer-joomla) an. Dort finden Sie Ihren persönlichen Download-Schlüssel.

Der Schlüssel gehört zu Ihrem Abonnement. Behandeln Sie ihn wie ein Passwort: Wer ihn hat, kann Ihre Updates herunterladen. Geben Sie ihn nicht weiter und veröffentlichen Sie ihn nicht in Screenshots oder Support-Anfragen.

## 2. Schlüssel in Joomla eintragen

1. Öffnen Sie **System → Aktualisieren → Update-Quellen**.
2. Suchen Sie den Eintrag **Media Organizer**.
3. Tragen Sie den Schlüssel in das Feld **Download-Schlüssel** ein und speichern Sie.

<figure id="bkmrk-die-update-quelle-vo"> ![Die Update-Quelle Media Organizer in Joomla mit dem Feld Download-Schlüssel](https://docs.graup-it.de/uploads/images/gallery/2026-07/Hzcdoku-06-download-key.png) <figcaption>Die Update-Quelle von Media Organizer mit hinterlegtem Download-Schlüssel. Solange hier kein Schlüssel steht, meldet Joomla „Der Download-Schlüssel fehlt".</figcaption></figure>## 3. Aktualisieren

Ab jetzt erscheint Media Organizer wie jede andere Erweiterung unter **System → Aktualisieren → Erweiterungen**. Wählen Sie den Eintrag aus und klicken Sie auf **Aktualisieren** — Joomla lädt das Paket und installiert es.

Beim Herunterladen prüft Joomla eine **SHA-256-Prüfsumme** des Pakets. Stimmt sie nicht mit der auf dem Update-Server hinterlegten überein, bricht die Installation ab, statt ein möglicherweise beschädigtes oder manipuliertes Paket einzuspielen.

## Wenn kein Update angeboten wird

<table class="table" id="bkmrk-beobachtung-ursache-"> <thead> <tr> <th scope="col">Beobachtung</th> <th scope="col">Ursache und Abhilfe</th> </tr> </thead> <tbody> <tr> <td>„Der Download-Schlüssel fehlt"</td> <td>Der Schlüssel ist nicht (oder nicht bei dieser Update-Quelle) hinterlegt. Siehe Schritt 2.</td> </tr> <tr> <td>Media Organizer taucht gar nicht in der Update-Liste auf</td> <td>Klicken Sie auf **Auf Updates prüfen**. Joomla speichert Ergebnisse zwischen; erst danach wird neu abgefragt.</td> </tr> <tr> <td>Update erscheint, bricht aber mit „Prüfsummenprüfung fehlgeschlagen" ab</td> <td>Das heruntergeladene Paket passt nicht zur hinterlegten Prüfsumme. Versuchen Sie es erneut; bleibt der Fehler, wenden Sie sich an den Support — laden Sie in diesem Fall nichts an Joomla vorbei manuell nach.</td> </tr> <tr> <td>„Update-Quelle nicht erreichbar"</td> <td>Ihr Server kann den Update-Server nicht erreichen. Prüfen Sie ausgehende HTTPS-Verbindungen und eine eventuelle Firewall.</td> </tr> </tbody></table>

## Weiter geht es

- [Schnellstart: der erste Scan](https://docs.graup-it.de/books/media-organizer/page/schnellstart-der-erste-scan)

<small>Gilt für Version 1.0.3.</small>

# Schnellstart: der erste Scan

Ein Scan baut das Inventar Ihrer Mediendateien neu auf und sucht nach Referenzen darauf. Er ist gefahrlos:

<div class="callout info" id="bkmrk-ein-scan-schreibt-ni">**Ein Scan schreibt niemals ins Dateisystem.** Er liest, vergleicht und schreibt das Ergebnis in die Datenbank. Es wird nichts verschoben, nichts umbenannt, nichts gelöscht.

</div>## Den Scan starten

Öffnen Sie **Komponenten → Media Organizer** und klicken Sie auf **Scannen**. Der Scan läuft in Schritten ab und zeigt seinen Fortschritt; bei größeren Websites können Sie ihn abbrechen und später fortsetzen.

Wie lange er dauert, hängt vor allem von der Anzahl der Mediendateien und der Größe Ihrer Datenbank ab. Bei einer typischen mittleren Website sind es Sekunden bis wenige Minuten.

## Das Dashboard lesen

<figure id="bkmrk-nach-dem-scan-fasst-"> ![Dashboard von Media Organizer mit den Kennzahlen nach einem Scan](https://docs.graup-it.de/uploads/images/gallery/2026-07/v3Hdoku-01-dashboard.png) <figcaption>Nach dem Scan fasst das Dashboard das Ergebnis zusammen.</figcaption></figure><table class="table" id="bkmrk-kennzahl-bedeutung-d"> <thead> <tr> <th scope="col">Kennzahl</th> <th scope="col">Bedeutung</th> </tr> </thead> <tbody> <tr> <td>**Dateien**</td> <td>Alle erfassten Mediendateien in den konfigurierten Medien-Ordnern.</td> </tr> <tr> <td>**Referenziert**</td> <td>Dateien, für die mindestens eine Fundstelle gefunden wurde. Diese sind in Benutzung.</td> </tr> <tr> <td>**Dateien ohne Referenz**</td> <td>Dateien, für die *keine* Fundstelle gefunden wurde. Das sind Kandidaten — kein Urteil. Prüfen Sie sie, bevor Sie handeln.</td> </tr> <tr> <td>**Freigebbar**</td> <td>Wie viel Speicher die unreferenzierten Dateien zusammen belegen.</td> </tr> <tr> <td>**In Quarantäne**</td> <td>Bereits verschobene Dateien, die auf Wiederherstellung oder endgültiges Löschen warten.</td> </tr> </tbody></table>

<div class="callout warning" id="bkmrk-%E2%80%9Eohne-referenz%22-hei%C3%9F">**„Ohne Referenz" heißt nicht „überflüssig".** Es heißt: In allen aktivierten Suchbereichen wurde nichts gefunden. Wird eine Datei an einer Stelle verwendet, die noch nicht abgedeckt ist, taucht sie hier ebenfalls auf. Genau dafür gibt es die Belege — und genau deshalb löscht Media Organizer nichts von allein.

</div>## Die drei Berichte

- **Duplikate** — Dateien mit identischem Inhalt (gleiche Prüfsumme), etwa mehrfach hochgeladene Bilder.
- **Optimierung** — Bilder, die deutlich größer sind als nötig.
- **Defekte Referenzen** — Inhalte, die auf eine Datei verweisen, die es nicht (mehr) gibt. Tote Bild-Links also. Hier wird nichts gelöscht; die Liste dient der Reparatur.

## Was Sie jetzt tun sollten

Widerstehen Sie der Versuchung, gleich alles Unreferenzierte in Quarantäne zu schieben. Ein sinnvoller erster Durchgang sieht so aus:

1. Öffnen Sie **Dateien ohne Referenz**.
2. Schauen Sie sich **einige Dateien im Detail** an — die Belege zeigen Ihnen, wo überall gesucht wurde. So bekommen Sie ein Gefühl dafür, ob die Abdeckung zu Ihrer Website passt.
3. Achten Sie auf einen Hinweis zur **unvollständigen Abdeckung**. Erscheint er, ist eine installierte Erweiterung noch nicht erfasst — dann ist die Liste mit Vorsicht zu genießen und das endgültige Löschen ohnehin gesperrt.
4. Beginnen Sie mit einer **kleinen, eindeutigen Auswahl** und schieben Sie diese in Quarantäne. Beobachten Sie Ihre Website ein paar Tage. Dann der Rest.

## Scans automatisieren

Über den Joomla-Aufgabenplaner können Scans regelmäßig laufen und Sie per E-Mail informieren. Der geplante Scan kann ausschließlich *finden und melden* — er verschiebt und löscht niemals etwas. Eine automatische Bereinigung gibt es bewusst nicht.

## Weiter geht es

- [Die Prüfansicht](https://docs.graup-it.de/books/media-organizer/page/die-prufansicht)
- [Belege lesen](https://docs.graup-it.de/books/media-organizer/page/belege-lesen-warum-gilt-eine-datei-als-verwaist)

<small>Gilt für Version 1.0.3.</small>

# Die Prüfansicht

Die Prüfansicht ist Ihr Arbeitsplatz. Hier sichten Sie das Inventar, filtern es und wählen aus, was bereinigt werden soll. Sie erreichen sie über **Alle Dateien** oder direkt über **Dateien ohne Referenz**.

<figure id="bkmrk-die-pr%C3%BCfansicht-im-r"> ![Die Prüfansicht von Media Organizer als Raster mit Vorschaubildern, Statusanzeigen und Filtern](https://docs.graup-it.de/uploads/images/gallery/2026-07/1Kadoku-02-grid.png) <figcaption>Die Prüfansicht im Raster: Vorschau, Abmessungen, Größe und Status auf einen Blick.</figcaption></figure>## Raster oder Tabelle

Über die Schaltfläche **Tabelle** beziehungsweise **Raster** wechseln Sie die Darstellung:

- Das **Raster** zeigt Vorschaubilder — gut, um Bilder wiederzuerkennen.
- Die **Tabelle** zeigt mehr Einträge pro Bildschirm und ist besser sortierbar — gut für große Bestände.

## Die Statusanzeigen

<table class="table" id="bkmrk-status-bedeutung-ref"> <thead> <tr> <th scope="col">Status</th> <th scope="col">Bedeutung</th> </tr> </thead> <tbody> <tr> <td>**Referenziert**</td> <td>Mindestens eine Fundstelle gefunden. Die Datei ist in Benutzung.</td> </tr> <tr> <td>**Ohne Referenz**</td> <td>Keine Fundstelle gefunden. Ein Kandidat — prüfen Sie die Belege, bevor Sie handeln.</td> </tr> <tr> <td>**In Quarantäne**</td> <td>Bereits verschoben, jederzeit wiederherstellbar.</td> </tr> </tbody></table>

Zusätzlich zeigt jede Kachel **Abmessungen** und **Dateigröße**. Nach Größe absteigend zu sortieren ist ein guter Einstieg: Die größten unreferenzierten Dateien bringen den meisten Speicher.

## Filtern und suchen

- **Pfad durchsuchen** — Volltextsuche über den Dateipfad.
- **Filter-Optionen** — eingrenzen nach Status, Medientyp und Ordner. Ein Ordner-Filter schließt Unterordner mit ein.
- **Sortierung** — unter anderem nach Größe, Name oder Änderungsdatum.
- **Zurücksetzen** — stellt den Ausgangszustand wieder her, wenn Sie sich verfiltert haben.

## Auswahl über Seiten hinweg

Die Auswahl wird serverseitig gehalten. Sie können also filtern, blättern, weiter auswählen — die zuvor markierten Dateien bleiben ausgewählt. Das ist wichtig, wenn Sie aus mehreren hundert Dateien gezielt zusammenstellen.

Mit **Alle auf dieser Seite / keine** markieren Sie die aktuelle Seite auf einmal.

## Der Hinweis zur Abdeckung

<div class="callout warning" id="bkmrk-erscheint-oben-%E2%80%9Eunvo">Erscheint oben **„Unvollständige Abdeckung"**, ist mindestens eine installierte Erweiterung noch nicht durch ein geprüftes Profil abgedeckt. Media Organizer kann dann nicht ausschließen, dass diese Erweiterung Mediendateien verwendet.

Die Folge: Das **endgültige Löschen ist gesperrt**. Quarantäne und Wiederherstellen bleiben möglich — beides ist ja umkehrbar. Das ist kein Fehler, sondern die Erweiterung, die ihre eigenen Grenzen kennt.

</div>## Export

Über **CSV exportieren** oder **JSON exportieren** holen Sie sich das Inventar heraus — nützlich für Abstimmungen mit Kunden oder für eine Zweitmeinung, bevor etwas passiert. Der Export berücksichtigt die aktuell gesetzten Filter.

## Weiter geht es

- [Belege lesen: Warum gilt eine Datei als verwaist?](https://docs.graup-it.de/books/media-organizer/page/belege-lesen-warum-gilt-eine-datei-als-verwaist)
- [Quarantäne, Wiederherstellen, endgültiges Löschen](https://docs.graup-it.de/books/media-organizer/page/quarantane-wiederherstellen-endgultiges-loschen)

<small>Gilt für Version 1.0.3.</small>

# Belege lesen: Warum gilt eine Datei als verwaist?

Die Detailansicht ist das Herzstück von Media Organizer — und der Grund, warum Sie einer Einstufung trauen können, ohne sie glauben zu müssen. Sie öffnen sie mit einem Klick auf den Dateinamen in der Prüfansicht.

<figure id="bkmrk-die-detailansicht%3A-l"> ![Detailansicht einer Datei mit Metadaten und dem Abschnitt Referenziert über mit Fundstellen](https://docs.graup-it.de/uploads/images/gallery/2026-07/GmXdoku-03-belege.png) <figcaption>Die Detailansicht: links die Vorschau, rechts die Metadaten, darunter die Fundstellen mit direktem Bearbeiten-Link.</figcaption></figure>## Der Kopfbereich

<table class="table" id="bkmrk-status-referenziert%2C"> <tbody> <tr> <th scope="row">Status</th> <td>Referenziert, ohne Referenz oder in Quarantäne.</td> </tr> <tr> <th scope="row">Einstufungs-Sicherheit</th> <td>Wie belastbar die Einstufung ist. „Sicher" heißt: Die Suchbereiche, die für diese Datei relevant sind, liefen vollständig durch.</td> </tr> <tr> <th scope="row">Typ, Größe, Abmessungen, Geändert</th> <td>Die üblichen Eckdaten.</td> </tr> <tr> <th scope="row">SHA1</th> <td>Die Prüfsumme des Inhalts. Über sie erkennt Media Organizer Duplikate — und über sie merkt das Löschtor, wenn sich eine Datei seit dem Scan verändert hat.</td> </tr> </tbody></table>

## „Referenziert über" — die Fundstellen

Hier steht, *wer* die Datei verwendet. Die Fundstellen sind nach Suchbereich gruppiert, etwa:

- **Beiträge (com\_content)** — der Beitrag, in dem die Datei vorkommt
- **Module** — Modul-HTML, Parameter oder Ordner-Parameter
- **Versionshistorie** — ältere Fassungen eines Beitrags
- **Tiefenscan (Datenbank)** — das Sicherheitsnetz, das die Datenbank breit absucht
- **Erweiterungsprofile** — Fundstellen in Drittanbieter-Erweiterungen

Jede Zeile zeigt die **Quelle** (z. B. „Article #3 'Welcome to your blog'"), die **Tabelle** und den **Datensatz**, die **Spalte** sowie den gefundenen **Verweis** im Originaltext. Rechts führt ein **Bearbeiten-Link**direkt zu dem Inhalt — nützlich, wenn Sie eine Referenz entfernen oder korrigieren wollen.

<div class="callout info" id="bkmrk-mehrere-suchbereiche">Mehrere Suchbereiche dürfen dieselbe Fundstelle melden. Dass etwa ein Beitrags-Provider *und* der Tiefenscan dieselbe Datei melden, ist kein Fehler, sondern zwei unabhängige Belege für dieselbe Aussage.

</div>## Warum eine Datei als „ohne Referenz" gilt

Findet keiner der aktivierten Suchbereiche einen Verweis, gilt die Datei als unreferenziert. Die Detailansicht zeigt dann, welche Bereiche geprüft wurden — und damit auch, was *nicht* geprüft wurde.

Genau hier lohnt der zweite Blick:

- Sind alle relevanten **Suchbereiche aktiviert**? Wer den Tiefenscan abschaltet, bekommt mehr Kandidaten — und weniger Sicherheit.
- Gibt es einen **Abdeckungs-Hinweis**? Dann fehlt Wissen über eine installierte Erweiterung.
- Wird die Datei vielleicht **außerhalb von Joomla** verwendet, etwa in einem Newsletter, einem PDF oder von einer anderen Website aus? Das kann keine Software wissen. Dafür gibt es die Quarantäne und die 404-Überwachung.

## Ordner-Referenzen: der wichtigste Sonderfall

Manche Erweiterungen verweisen nicht auf eine Datei, sondern auf einen **ganzen Ordner** — etwa ein Zufallsbild-Modul, das „alle Bilder aus `images/banner`" anzeigt.

Media Organizer behandelt eine solche Ordner-Referenz als vollwertig: **Alle** Dateien darunter gelten als benutzt, auch wenn keine einzeln genannt wird. Andernfalls würde ein einziges Modul reichen, um ein halbes Bilderverzeichnis fälschlich als verwaist erscheinen zu lassen.

## Ableitungen

Zu vielen Bildern gehören automatisch erzeugte Varianten — Vorschaubilder, verkleinerte Fassungen, responsive Größen. Media Organizer erkennt solche Ableitungen und behandelt sie wie das Original: Ist das Original in Benutzung, gilt die Ableitung ebenfalls als benutzt. So verschwindet kein Vorschaubild, dessen Original noch gebraucht wird.

## Weiter geht es

- [Quarantäne, Wiederherstellen, endgültiges Löschen](https://docs.graup-it.de/books/media-organizer/page/quarantane-wiederherstellen-endgultiges-loschen)
- [Häufige Fragen und Fehlerbehebung](https://docs.graup-it.de/books/media-organizer/page/haufige-fragen-und-fehlerbehebung)

<small>Gilt für Version 1.0.3.</small>

# Quarantäne, Wiederherstellen, endgültiges Löschen

Das Bereinigen läuft in Media Organizer immer über zwei getrennte Schritte: erst **Quarantäne** (umkehrbar), dann — viel später und nur wenn Sie es wollen — **endgültiges Löschen** (unumkehrbar). Diese Trennung ist der Kern des Sicherheitskonzepts.

## Schritt 1: In Quarantäne verschieben

Wählen Sie in der Prüfansicht die Dateien aus und klicken Sie auf **Quarantäne**. Sie landen nicht direkt in der Quarantäne, sondern zunächst in einem Bestätigungsdialog.

<figure id="bkmrk-der-best%C3%A4tigungsdial"> ![Der Bestätigungsdialog mit Sicherheitsprüfung, Zielordner und vollständiger Dateiliste](https://docs.graup-it.de/uploads/images/gallery/2026-07/qIwdoku-04-bestaetigung.png) <figcaption>Der Bestätigungsdialog zeigt genau, was passieren wird — vollständig, nicht verkürzt.</figcaption></figure>Der Dialog zeigt Ihnen:

- **Umfang** — wie viele Dateien und wie viel Speicher.
- **Sicherheitsprüfungen** — unter anderem, dass ein gültiger Bestätigungs-Token für genau dieses Dateiset vorliegt.
- **Zielordner** — wohin verschoben wird.
- **Die vollständige Dateiliste** — jeder Pfad einzeln, damit Sie ihn prüfen können.

<div class="callout info" id="bkmrk-der-best%C3%A4tigungs-tok">Der **Bestätigungs-Token** bindet Aktion, Benutzer, Scan und die exakte Dateiliste aneinander und gilt nur einmal. Ändern Sie die Auswahl, wird er ungültig. So kann kein alter oder fremder Bestätigungsklick eine andere Dateiliste löschen als die, die Sie gesehen haben.

</div>## Was in der Quarantäne passiert

Die Dateien werden in einen geschützten Ordner verschoben. Sie sind aus dem Web nicht mehr erreichbar — Ihre Website verhält sich also so, als wären sie gelöscht. Genau das ist der Sinn: Sie sehen die Auswirkungen, ohne die Dateien zu verlieren.

<figure id="bkmrk-die-quarant%C3%A4ne-ansic"> ![Die Quarantäne-Ansicht mit vier Dateien, Aufbewahrungsfrist und den Schaltflächen Wiederherstellen und Endgültig löschen](https://docs.graup-it.de/uploads/images/gallery/2026-07/kAvdoku-05-quarantaene.png) <figcaption>Die Quarantäne-Ansicht mit Restlaufzeit der Aufbewahrungsfrist je Datei.</figcaption></figure>Jede Kachel zeigt die verbleibende **Aufbewahrungsfrist** („noch 30 Tage"). Die Vorschaubilder funktionieren weiterhin, obwohl die Dateien außerhalb des Web-Roots liegen — Media Organizer streamt sie nur für Administratoren.

<div class="callout warning" id="bkmrk-der-quarant%C3%A4ne-ordne">**Der Quarantäne-Ordner sollte außerhalb des Web-Roots liegen.** Liegt er innerhalb, weist der Bestätigungsdialog Sie darauf hin. Sie können den Pfad in den Optionen ändern.

</div>## Wiederherstellen

Merken Sie, dass eine Datei doch gebraucht wird: auswählen, **Wiederherstellen**. Sie wandert an ihren ursprünglichen Ort zurück. Beim nächsten Scan wird sie normal neu eingestuft.

Das ist der ganze Trick an der Sache — der schlimmste Fall ist ein kurzer Schreck, kein Datenverlust.

## Schritt 2: Endgültig löschen

Erst dieser Schritt entfernt Dateien wirklich. Er ist bewusst unbequem.

Vor dem Löschen prüft Media Organizer **zwölf voneinander unabhängige Bedingungen**. Alle müssen erfüllt sein. Es gibt keinen Schalter, der das umgeht — auch nicht für Administratoren. Dazu gehören unter anderem:

- Die **Aufbewahrungsfrist** ist abgelaufen.
- Die Datei ist seit der Quarantäne **unverändert** (Prüfsumme und Änderungsdatum).
- Es liegt ein **gültiger, einmaliger Bestätigungs-Token** für genau diese Dateiliste vor.
- Der Benutzer hat die **nötige Berechtigung**.
- Die **Abdeckung ist vollständig** — keine installierte Erweiterung ohne Profil.
- Seit der Quarantäne wurden **keine 404-Zugriffe** auf die Datei verzeichnet (sofern die 404-Überwachung aktiv ist).

Schlägt eine Bedingung fehl, nennt Media Organizer **alle** Verstöße auf einmal — nicht nur den ersten. So wissen Sie, was insgesamt im Weg steht.

<div class="callout warning" id="bkmrk-die-aufbewahrungsfri-1">**Die Aufbewahrungsfrist ist eine Vorbedingung, kein Auslöser.** Nach ihrem Ablauf passiert von allein *nichts*. Sie erlaubt lediglich, dass Sie löschen dürfen — tun müssen Sie es weiterhin selbst.

</div>## Ein bewährtes Vorgehen

1. Kleine, eindeutige Auswahl in Quarantäne verschieben.
2. Website normal weiterbetreiben. Die 404-Überwachung mitlaufen lassen.
3. Nach ein paar Wochen: Sind 404-Treffer aufgetaucht? Dann wiederherstellen und die Referenz suchen.
4. Ist alles ruhig geblieben und die Frist abgelaufen: endgültig löschen.
5. Nächste Charge.

## Weiter geht es

- [Häufige Fragen und Fehlerbehebung](https://docs.graup-it.de/books/media-organizer/page/haufige-fragen-und-fehlerbehebung)

<small>Gilt für Version 1.0.3.</small>

# Häufige Fragen und Fehlerbehebung

## Einstufung

### Eine Datei wird als „ohne Referenz" angezeigt, obwohl sie verwendet wird. Warum?

Weil keiner der aktivierten Suchbereiche einen Verweis gefunden hat. Öffnen Sie die Detailansicht: Dort steht, wo überall gesucht wurde. Typische Ursachen:

- Ein **Suchbereich ist abgeschaltet** (Optionen → Scan-Bereiche), etwa der Tiefenscan.
- Eine **Erweiterung ist nicht abgedeckt** — dann erscheint der Abdeckungs-Hinweis und das endgültige Löschen ist ohnehin gesperrt.
- Die Datei wird **außerhalb von Joomla** verwendet: in einem Newsletter, einem PDF, einer anderen Website. Das kann keine Software erkennen. Genau dafür gibt es Quarantäne und 404-Überwachung.

### Warum ist das endgültige Löschen gesperrt?

Weil mindestens eine der zwölf Bedingungen nicht erfüllt ist. Media Organizer nennt Ihnen alle Verstöße auf einmal. Die häufigsten:

- **Aufbewahrungsfrist läuft noch.** Warten oder die Frist in den Optionen anpassen.
- **Unvollständige Abdeckung.** Eine installierte Erweiterung hat kein Profil.
- **Datei wurde verändert.** Prüfsumme oder Änderungsdatum weichen vom Scan ab — scannen Sie neu.
- **404-Treffer.** Auf die Datei wurde zugegriffen, seit sie in Quarantäne ist. Ein starker Hinweis, sie wiederherzustellen.

### Was bedeutet „Unvollständige Abdeckung"?

Media Organizer weiß über viele Drittanbieter-Erweiterungen, wo sie Medien ablegen — dieses Wissen steckt in geprüften Profilen. Ist eine installierte Erweiterung nicht dabei, kann nicht ausgeschlossen werden, dass sie Dateien verwendet. Deshalb wird das endgültige Löschen gesperrt.

Quarantäne und Wiederherstellen bleiben möglich — beides ist umkehrbar. Sie können also weiterhin gefahrlos aufräumen, nur eben nicht endgültig.

### Warum taucht dieselbe Fundstelle mehrfach auf?

Weil mehrere Suchbereiche unabhängig voneinander gesucht und dasselbe gefunden haben. Das ist kein Fehler, sondern eine Bestätigung.

## Betrieb

### Kann ein Scan meine Website beschädigen?

Nein. Ein Scan schreibt niemals ins Dateisystem. Er liest und legt das Ergebnis in der Datenbank ab.

### Der Scan bricht ab oder läuft in eine Zeitüberschreitung.

Der Scan läuft in Schritten und lässt sich fortsetzen. Bei sehr großen Beständen helfen:

- den Scan über die **Kommandozeile** laufen lassen — dort gibt es keine Browser-Zeitgrenze;
- in den Optionen die **Stapelgröße** reduzieren;
- nicht benötigte **Suchbereiche** abschalten — aber beachten Sie, dass das die Aussagekraft senkt.

### Wie viel Arbeitsspeicher braucht Media Organizer?

Die Erweiterung ist darauf ausgelegt, auch sehr große Bestände mit knappem PHP-Speicher zu verarbeiten. Ergebnisse werden nicht vollständig in den Speicher geladen, sondern schrittweise verarbeitet.

### Löscht der geplante Scan automatisch?

Nein — und das ist keine Einstellungssache, sondern eine bewusste Produktentscheidung. Der geplante Scan und die Kommandozeile können finden und melden. Verschieben und Löschen setzt immer einen Menschen voraus, der auswählt und bestätigt.

### Verlassen Daten meine Website?

Nein. Media Organizer kontaktiert keine externen Dienste. Die einzige Ausnahme ist der Update-Vorgang, den Joomla selbst durchführt, wenn Sie ihn auslösen.

## Wiederherstellen und Löschen

### Ich habe zu viel in Quarantäne verschoben. Was jetzt?

Auswählen und **Wiederherstellen**. Die Dateien wandern an ihren ursprünglichen Ort zurück. Solange nicht endgültig gelöscht wurde, ist nichts verloren.

### Ich habe endgültig gelöscht und brauche die Datei doch.

Dann hilft nur Ihr Backup. Das endgültige Löschen ist unumkehrbar — deshalb steht die Aufbewahrungsfrist davor und deshalb ist die Quarantäne der Normalfall.

### Was passiert mit Duplikaten?

Der Duplikate-Bericht zeigt nur an. Bereinigt wird auch hier über Quarantäne und Bestätigung — Sie entscheiden, welche Kopie bleibt.

## Noch Fragen?

Wenn Sie hier nicht weiterkommen, melden Sie sich über die [Produktseite](https://www.graup-it.de/produkte/media-organizer-fuer-joomla). Hilfreich für eine schnelle Antwort: Joomla- und PHP-Version, was Sie erwartet haben und was stattdessen passiert ist — und, falls es um eine Einstufung geht, ein Blick in die Detailansicht der betroffenen Datei.

<div class="callout warning" id="bkmrk-bitte-senden-sie-nie">Bitte senden Sie **niemals Ihren Download-Schlüssel** mit — auch nicht in Screenshots. Für den Support wird er nicht benötigt.

</div><small>Gilt für Version 1.0.3.</small>

# Wie die Erkennung funktioniert

Dieses Kapitel erklärt, wie Media Organizer zu seinem Urteil kommt. Sie brauchen das nicht für den Alltag — aber wenn Sie eine Einstufung nachvollziehen oder die Abdeckung Ihrer Website beurteilen wollen, ist es genau das Richtige.

## Zwei getrennte Schritte

Ein Scan besteht aus zwei Teilen, die bewusst getrennt sind:

1. **Inventar aufbauen.** Welche Mediendateien existieren überhaupt? Gelesen wird aus den konfigurierten Medien-Adaptern.
2. **Referenzen sammeln.** Wer verweist auf welche Datei? Das erledigen mehrere unabhängige *Suchbereiche*.

Erst danach vergleicht Media Organizer beides. Eine Datei ohne passende Referenz wird zum Kandidaten — mehr nicht.

<div class="callout info" id="bkmrk-wichtig-f%C3%BCr-das-vers">Wichtig für das Verständnis: Ein Suchbereich **meldet nur Fundstellen**. Er urteilt nicht. Die Aussage „ohne Referenz" trifft ausschließlich die auswertende Stelle, nachdem *alle* Suchbereiche gelaufen sind.

</div>## Die Suchbereiche

<table class="table" id="bkmrk-bereich-was-er-durch"> <thead> <tr> <th scope="col">Bereich</th> <th scope="col">Was er durchsucht</th> </tr> </thead> <tbody> <tr> <td>**Artikel und Kategorien**</td> <td>Beiträge (Einleitungs- und Volltext, Beitragsbild) und Kategorien, inklusive Zusatzfelder.</td> </tr> <tr> <td>**Module**</td> <td>Das HTML von „Eigenes HTML"-Modulen, die Modul-Einstellungen und Ordner-Angaben. Auch unveröffentlichte Module und solche im Papierkorb zählen (einstellbar).</td> </tr> <tr> <td>**Versionshistorie**</td> <td>Ältere Fassungen von Beiträgen. Wer eine alte Version wiederherstellt, braucht ihre Bilder.</td> </tr> <tr> <td>**Template-Dateien**</td> <td>CSS- und Template-Dateien, in denen Bildpfade fest hinterlegt sind — etwa Hintergrundbilder.</td> </tr> <tr> <td>**Extension-Profile**</td> <td>Drittanbieter-Erweiterungen, für die ein geprüftes Profil vorliegt.</td> </tr> <tr> <td>**Tiefenscan**</td> <td>Das Auffangnetz: durchsucht alle Datenbanktabellen nach Bildverweisen — auch die von Erweiterungen ohne eigenes Profil.</td> </tr> </tbody></table>

Alle sechs lassen sich einzeln abschalten (Optionen → *Scannen*). Das ist selten eine gute Idee: Jeder abgeschaltete Bereich macht die Liste der Kandidaten länger und die Aussage schwächer.

## Der Tiefenscan

Die spezialisierten Bereiche wissen genau, wo sie suchen müssen. Der Tiefenscan weiß das nicht — er geht breit über die Datenbank und sucht nach allem, was wie ein Medienverweis aussieht.

Das macht ihn langsamer, aber unverzichtbar: Er fängt Verweise von Erweiterungen ab, für die es (noch) kein Profil gibt. Wenn Sie ihn abschalten, verlieren Sie genau dieses Sicherheitsnetz.

## Ordner-Referenzen

Manche Verweise zeigen nicht auf eine Datei, sondern auf einen Ordner — etwa ein Zufallsbild-Modul mit dem Parameter „Ordner: `images/banner`".

Media Organizer wertet das als vollwertige Referenz auf **alle** Dateien darunter, einschließlich Unterordnern. Würde man das übersehen, gälte ein ganzes Bilderverzeichnis als verwaist, nur weil kein Bild einzeln genannt wird.

## Normalisierung: warum Pfade zurechtgebogen werden

Derselbe Verweis kann auf viele Arten geschrieben sein: mit oder ohne führenden Schrägstrich, als absolute URL, mit Joomlas internem `#joomlaImage://`-Zusatz, URL-kodiert. Damit ein Abgleich überhaupt gelingt, führt Media Organizer alles auf eine einheitliche Form zurück.

Ein Sonderfall verdient Beachtung: **Unicode-Normalisierung (NFC)**. Uploads von einem Mac kodieren Umlaute technisch anders als Windows oder Linux — *ä* kann ein Zeichen sein oder zwei. Ohne Normalisierung würden solche Dateien fälschlich als „ohne Referenz" gelten. Die Option ist standardmäßig aktiv; lassen Sie sie im Zweifel an.

Über **Bekannte Website-URLs** teilen Sie Media Organizer zusätzlich mit, welche absoluten URLs als lokal gelten — nützlich, wenn Inhalte mit vollständigen Adressen verlinkt sind.

## Ableitungen

Zu vielen Bildern gehören automatisch erzeugte Varianten: Vorschaubilder, verkleinerte Fassungen. Media Organizer erkennt diesen Zusammenhang und vererbt die Einstufung: Ist das Original in Benutzung, gilt die Ableitung ebenfalls als benutzt.

## Was nie erfasst wird

Bestimmte oberste Ordner sind grundsätzlich tabu und werden gar nicht erst inventarisiert — darunter `administrator`, `libraries`, `templates`, `plugins`, `cache` und der Quarantäne-Ordner selbst. Das ist ein Schutz davor, Joomla-Systemdateien anzufassen, selbst wenn ein Medien-Adapter falsch eingestellt ist.

Der Ordner `media/` ist bewusst *nicht* geschützt — dort liegen bei vielen Websites echte Uploads.

## Weiter geht es

- [Erweiterungsprofile und das Coverage-Gate](https://docs.graup-it.de/books/media-organizer/page/erweiterungsprofile-und-das-coverage-gate)
- [Konfigurationsreferenz](https://docs.graup-it.de/books/media-organizer/page/konfigurationsreferenz)

<small>Gilt für Version 1.0.3.</small>

# Erweiterungsprofile und das Coverage-Gate

Joomla-Erweiterungen speichern Medienverweise auf sehr unterschiedliche Weise: mal als Pfad in einer Spalte, mal tief in einem JSON-Parameterbaum, mal als Ordnerangabe. Damit Media Organizer eine fremde Erweiterung zuverlässig durchsuchen kann, muss es wissen, *wo* sie ihre Verweise ablegt.

Dieses Wissen steckt in **Profilen**.

## Profile sind Daten, kein Code

Ein Profil beschreibt für genau eine Erweiterung, welche Tabellen und Spalten Medienverweise enthalten können und wie sie zu lesen sind. Es ist eine Datendatei — kein Programmcode.

Das hat einen praktischen Vorteil: Profile lassen sich unabhängig von der Erweiterung aktualisieren. Kommt Wissen über eine weitere Drittanbieter-Erweiterung dazu, brauchen Sie kein neues Programm — nur neue Daten.

<div class="callout info" id="bkmrk-profile-werden-nicht">Profile werden **nicht geraten**. Jedes entsteht aus einem dokumentierten Verfahren, bei dem die tatsächliche Datenstruktur der jeweiligen Erweiterung untersucht und überprüft wird. Ein erfundener Tabellen- oder Spaltenname wäre die gefährlichste Sorte Fehler: Er ließe eine benutzte Datei als verwaist erscheinen.

</div>Welche Profile aktuell vorliegen, sehen Sie in den **Optionen → Scannen** unter *Verfügbare Profile*.

## Das Coverage-Gate

Nun die entscheidende Frage: Was passiert mit einer installierten Erweiterung, für die es *kein* Profil gibt?

Media Organizer könnte sie ignorieren und hoffen. Das tut es nicht. Stattdessen stellt es fest: „Für diese Erweiterung kann ich nicht ausschließen, dass sie Medien verwendet" — und sperrt das endgültige Löschen.

<div class="callout warning" id="bkmrk-unvollst%C3%A4ndige-abdec">**Unvollständige Abdeckung sperrt ausschließlich das endgültige Löschen.** Scannen, Sichten, Quarantäne und Wiederherstellen bleiben uneingeschränkt möglich. Alles davon ist ja umkehrbar.

</div>Der Hinweis erscheint oben in der Prüfansicht und nennt die betroffene Erweiterung beim Namen.

## Wie Sie die Abdeckung herstellen

Es gibt drei saubere Wege:

1. **Warten oder anfragen.** Für gängige Erweiterungen kommen Profile mit Updates nach. Fehlt eines, das Sie brauchen: melden.
2. **Erweiterung als medienfrei eintragen.** Speichert eine Erweiterung nachweislich keine Medienverweise, tragen Sie ihr Element (z. B. `com_beispiel`) unter **Optionen → Scan – Erweitert → Medienfreie Erweiterungen** ein. Sie gilt dann als abgedeckt.   
    Unter *Erkannte medienfreie Erweiterungen* stehen die, die bereits verifiziert wurden — die müssen Sie nicht selbst eintragen.
3. **Erweiterung deinstallieren**, wenn Sie sie ohnehin nicht mehr brauchen.

<div class="callout warning" id="bkmrk-%E2%80%9Emedienfrei%22-ist-ein">**„Medienfrei" ist eine Behauptung, für die Sie geradestehen.** Tragen Sie eine Erweiterung nur ein, wenn Sie es wirklich wissen — nicht, um den Hinweis loszuwerden. Genau dieser Eintrag entscheidet mit darüber, ob eine Datei gelöscht werden darf.

</div>## Die Übersteuerung — und warum Sie sie meiden sollten

Es gibt einen Schalter, der die Sperre aufhebt: **Optionen → Sicherheit &amp; Aufbewahrung → Lösch-Sperre bei unvollständiger Abdeckung übersteuern**.

Er ist bewusst unbequem gebaut:

- Nur **Super User** dürfen ihn setzen.
- Eine **Begründung ist Pflicht** — ohne Text keine Übersteuerung.
- Die Übersteuerung wird mit Begründung **im Audit-Log protokolliert**.

Er existiert für den Fall, dass Sie es besser wissen als die Software und dafür geradestehen. Er ist keine Abkürzung, um den Hinweis wegzuklicken. Wenn Sie ihn brauchen, ist die ehrlichere Frage meist: Warum fehlt das Profil — und wäre der Weg über „medienfrei eintragen" nicht der richtige?

## Custom Fields: ein häufiger Stolperstein

Zusatzfelder (Custom Fields) können Medien enthalten. Welche Feldtypen das sind, steht unter **Optionen → Scan – Erweitert → Custom-Field-Medientypen**. Der Standard deckt Joomlas eigenes Medienfeld sowie gängige Feld-Plugins ab.

Wichtig ist der Automatismus dahinter: Werden Medienfelder *genutzt*, aber nicht *durchsucht*, bleibt das endgültige Löschen gesperrt. Verwenden Sie also ein weiteres Feld-Plugin, das Medien ablegt, ergänzen Sie dessen internen Typ-Namen in dieser Liste.

## Weiter geht es

- [Konfigurationsreferenz](https://docs.graup-it.de/books/media-organizer/page/konfigurationsreferenz)
- [Quarantäne, Wiederherstellen, endgültiges Löschen](https://docs.graup-it.de/books/media-organizer/page/quarantane-wiederherstellen-endgultiges-loschen)

<small>Gilt für Version 1.0.3.</small>

# Konfigurationsreferenz

Alle Einstellungen finden Sie über die Schaltfläche **Optionen** oben rechts in jeder Ansicht von Media Organizer. Diese Seite listet jede Option mit ihrer Voreinstellung.

<figure id="bkmrk-die-optionen-sind-in"> ![Der Optionen-Dialog von Media Organizer mit den Reitern der einzelnen Bereiche](https://docs.graup-it.de/uploads/images/gallery/2026-07/2wOdoku-11-optionen.png) <figcaption>Die Optionen sind in sieben Reiter gegliedert.</figcaption></figure><div class="callout info" id="bkmrk-die-voreinstellungen">Die Voreinstellungen sind bewusst vorsichtig gewählt und für die meisten Websites passend. Ändern Sie nur, was Sie verstanden haben — insbesondere im Reiter *Sicherheit &amp; Aufbewahrung*.

</div>## Scannen

Hier schalten Sie die Suchbereiche ein und aus. Alle sind standardmäßig aktiv.

<table class="table" id="bkmrk-optionstandardbedeut"> <thead> <tr><th scope="col">Option</th><th scope="col">Standard</th><th scope="col">Bedeutung</th></tr> </thead> <tbody> <tr><td>Artikel und Kategorien</td><td>Ja</td><td>Beiträge (Einleitungs-/Volltext, Beitragsbild) und Kategorien.</td></tr> <tr><td>Module</td><td>Ja</td><td>Modul-HTML, Modul-Einstellungen und Ordner-Angaben.</td></tr> <tr><td>Versionshistorie scannen</td><td>Ja</td><td>Treffer in der Versionshistorie als referenziert werten.</td></tr> <tr><td>Template-Dateien</td><td>Ja</td><td>Fest hinterlegte Bilder in CSS- und Template-Dateien.</td></tr> <tr><td>Extension-Profile</td><td>Ja</td><td>Drittanbieter-Erweiterungen mit Profil.</td></tr> <tr><td>Tiefenscan</td><td>Ja</td><td>Auffang-Scan über alle Datenbanktabellen.</td></tr> <tr><td>Aktive Medientypen</td><td>Bild</td><td>Welche Typen inventarisiert werden: Bild, Dokument, Video, Audio, Schriftart, Archiv, Sonstige.</td></tr> <tr><td>Verfügbare Profile</td><td>—</td><td>Nur Anzeige: welche Profile vorliegen.</td></tr> </tbody></table>

## Scan – Erweitert

<table class="table" id="bkmrk-optionstandardbedeut-1"> <thead> <tr><th scope="col">Option</th><th scope="col">Standard</th><th scope="col">Bedeutung</th></tr> </thead> <tbody> <tr><td>Wurzelverzeichnisse</td><td>leer</td><td>Welche Medien-Adapter inventarisiert werden. Leer = Standard-Adapter `local-images`. Für Medien unter `media/` dort ein Verzeichnis in der Medien-Komponente anlegen und den Adapter hier eintragen.</td></tr> <tr><td>Ausgeschlossene Pfade</td><td>leer</td><td>Ein Eintrag pro Zeile. Ordnerpfad schließt den Ordner samt Unterordnern aus; Glob-Muster wie `*.tmp` gehen auch.</td></tr> <tr><td>Geschützte Core-Ordner</td><td>`administrator, api, bin, cache, cli, components, includes, installation, jimgo_quarantine, language, layouts, libraries, modules, plugins, templates, tmp`</td><td>Werden nie erfasst. Schutz vor dem Löschen von Systemdateien. `media/` ist absichtlich nicht dabei.</td></tr> <tr><td>Tiefenscan: ausgeschlossene Tabellen</td><td>leer</td><td>Zusätzlich zu den eingebauten Ausschlüssen.</td></tr> <tr><td>Medienfreie Erweiterungen</td><td>leer</td><td>Komponenten ohne Medienverweise. Gelten als abgedeckt.</td></tr> <tr><td>Erkannte medienfreie Erweiterungen</td><td>—</td><td>Nur Anzeige: bereits verifizierte Erweiterungen.</td></tr> <tr><td>Papierkorb mitzählen</td><td>Ja</td><td>Auch Elemente im Papierkorb referenzieren ihre Dateien.</td></tr> <tr><td>Unveröffentlichte mitzählen</td><td>Ja</td><td>Unveröffentlichte Elemente ebenso.</td></tr> <tr><td>Modul-Ordner mitzählen</td><td>Ja</td><td>Ordner-Parameter als Ordner-Referenz behandeln.</td></tr> <tr><td>Custom-Field-Medientypen</td><td>`media, imagelist, mediajce, mediafile, acfgallery, acfupload, acfdownloadbutton, acfhtml5audio, acfvideo`</td><td>Welche Zusatzfeld-Typen Medien enthalten. Genutzt, aber nicht durchsucht ⇒ Löschen bleibt gesperrt.</td></tr> <tr><td>Unicode normalisieren (NFC)</td><td>Ja</td><td>Vereinheitlicht Umlaute vor dem Abgleich. Im Zweifel an lassen.</td></tr> <tr><td>Bekannte Website-URLs</td><td>leer</td><td>Eine URL pro Zeile. Absolute URLs auf diesen Hosts gelten als lokal.</td></tr> </tbody></table>

## Sicherheit &amp; Aufbewahrung

<div class="callout warning" id="bkmrk-dieser-reiter-steuer">Dieser Reiter steuert, wann überhaupt gelöscht werden darf. Jede Lockerung hier senkt Ihr Sicherheitsnetz.

</div><table class="table" id="bkmrk-optionstandardbedeut-2"> <thead> <tr><th scope="col">Option</th><th scope="col">Standard</th><th scope="col">Bedeutung</th></tr> </thead> <tbody> <tr><td>Aufbewahrung: Bilder</td><td>30 Tage</td><td rowspan="6">So lange muss eine Datei dieses Typs in Quarantäne liegen, bevor sie gelöscht werden *darf*. **0 = nie automatisch freigeben.** Die Frist ist Vorbedingung, kein Auslöser — nach Ablauf passiert von allein nichts.</td></tr> <tr><td>Aufbewahrung: Dokumente</td><td>180 Tage</td></tr> <tr><td>Aufbewahrung: Video</td><td>90 Tage</td></tr> <tr><td>Aufbewahrung: Audio</td><td>90 Tage</td></tr> <tr><td>Aufbewahrung: Schriftarten</td><td>0 (nie)</td></tr> <tr><td>Aufbewahrung: Archive / Sonstige</td><td>180 Tage</td></tr> <tr><td>Super User zum Löschen verlangen</td><td>Ja</td><td>Endgültiges Löschen auf Super User beschränken.</td></tr> <tr><td>Maximales Scan-Alter</td><td>7 Tage</td><td>Ein älterer Scan kann kein Löschen freigeben.</td></tr> <tr><td>Mindestanzahl aufeinanderfolgender Scans</td><td>2</td><td>Eine Datei muss so oft hintereinander Kandidat gewesen sein, bevor sie gelöscht werden darf.</td></tr> <tr><td>Gültigkeit des Bestätigungs-Tokens</td><td>300 Sekunden</td><td>Wie lange ein Bestätigungs-Token gültig bleibt.</td></tr> <tr><td>Lösch-Sperre übersteuern</td><td>Nein</td><td>Nur Super User. Erlaubt Löschen trotz unvollständiger Abdeckung. Wird protokolliert.</td></tr> <tr><td>Begründung der Übersteuerung</td><td>leer</td><td>Pflichtbegründung, die mitgespeichert wird.</td></tr> <tr><td>Quarantäne-Wurzel</td><td>`jimgo_quarantine`</td><td>Wohin verschoben wird. Wird beim ersten Gebrauch per Deny-Dateien geschützt. **Nicht den Cache-Ordner verwenden** — der wird geleert. Warnung, wenn im Web-Root.</td></tr> </tbody></table>

## Optimierung

**Schwellwerte für den Bericht** — sie entscheiden nur, was *gemeldet* wird:

<table class="table" id="bkmrk-maximale-dateigr%C3%B6%C3%9Fe5"> <tbody> <tr><td>Maximale Dateigröße</td><td>500 KB</td><td>Größere Dateien werden markiert. 0 = aus.</td></tr> <tr><td>Maximale Kantenlänge</td><td>2500 px</td><td>Größere Bilder werden markiert. 0 = aus.</td></tr> <tr><td>Veraltete Formate</td><td>`bmp, tif, tiff`</td><td>Werden als veraltet markiert.</td></tr> <tr><td>Modernisieren ab</td><td>150 KB</td><td>Rasterbilder darüber gelten als WebP/AVIF-Kandidaten. 0 = aus.</td></tr> <tr><td>Zu modernisierende Rasterformate</td><td>`jpg, jpeg, png, gif`</td><td>Welche Formate wechseln könnten.</td></tr> </tbody></table>

**Wie optimiert wird:**

<table class="table" id="bkmrk-bildbibliothekautoma"> <tbody> <tr><td>Bildbibliothek</td><td>Automatisch</td><td>Bevorzugt Imagick, fällt auf GD zurück.</td></tr> <tr><td>Maximale Kantenlänge (px)</td><td>2560</td><td>Herunterskalieren ab dieser Kante. Skaliert nie hoch. 0 = aus.</td></tr> <tr><td>JPEG-Qualität</td><td>82</td><td>1–100. Etwa 80 ist ein guter Kompromiss.</td></tr> <tr><td>PNG-Kompression</td><td>8</td><td>0–9, verlustfrei. Höher = kleiner und langsamer.</td></tr> <tr><td>WebP-Qualität</td><td>82</td><td>Wenn die Quelle bereits WebP ist.</td></tr> <tr><td>Metadaten entfernen</td><td>Ja</td><td>EXIF, ICC und Kommentare entfernen.</td></tr> <tr><td>Mindestersparnis</td><td>10 %</td><td>Unterhalb bleibt das Original unberührt.</td></tr> <tr><td>Maximale Quell-Pixel</td><td>0 (automatisch)</td><td>Zu große Bilder überspringen, damit das Dekodieren im Speicher bleibt. 0 leitet die Grenze aus dem PHP-Speicherlimit ab — empfohlen.</td></tr> <tr><td>Bilder pro Schritt</td><td>5</td><td>Wie viele Bilder je Anfrage optimiert werden.</td></tr> <tr><td>Editor-Exportqualität</td><td>82</td><td>Standardqualität für Bilder aus dem Editor.</td></tr> <tr><td>Backup-Speicherort</td><td>`jimgo_optimize_backup`</td><td>Wohin Originale vor der Optimierung gesichert werden. Wird geschützt.</td></tr> </tbody></table>

**Externe Optimierer** (optional, siehe eigenes Kapitel):

<table class="table" id="bkmrk-externe-optimierer-v"> <tbody> <tr><td>Externe Optimierer verwenden</td><td>Ja</td><td>Nutzt pngquant, oxipng, jpegoptim, cwebp, gifsicle, falls vorhanden. Fällt automatisch zurück, wenn ein Tool fehlt.</td></tr> <tr><td>Optimierer-Verzeichnis</td><td>leer</td><td>Leer = System-PATH durchsuchen. Es wird nichts heruntergeladen oder mitgeliefert.</td></tr> <tr><td>Verfügbare Optimierer</td><td>—</td><td>Nur Anzeige: was erkannt wurde.</td></tr> <tr><td>JPEG- / PNG- / WebP- / GIF-Optimierer</td><td>Automatisch</td><td>Welches Tool je Format. Bei PNG: pngquant ist verlustbehaftet (größte Ersparnis), oxipng und OptiPNG sind verlustfrei.</td></tr> <tr><td>PNG-Mindest- / Zielqualität</td><td>60 / 82</td><td>pngquant-Grenzen. Wird die Mindestqualität nicht erreicht, bleibt das PNG unverändert.</td></tr> </tbody></table>

## Berichte &amp; Ansicht

<table class="table" id="bkmrk-eintr%C3%A4ge-pro-seite50"> <tbody> <tr><td>Einträge pro Seite</td><td>50</td><td>Standard-Seitengröße aller Listen. Die Auswahl im Seitenfuß hat Vorrang.</td></tr> <tr><td>Provider aus defekten Referenzen ausblenden</td><td>`history`</td><td>Deren Treffer erscheinen nie als defekte Referenz.</td></tr> <tr><td>History-Tabellen</td><td>`#__history`</td><td>Tiefenscan-Treffer darin gelten nicht als defekte Referenz.</td></tr> </tbody></table>

## Leistung

<table class="table" id="bkmrk-datenbank-chunk-%28zei"> <tbody> <tr><td>Datenbank-Chunk (Zeilen)</td><td>500</td><td>Wie viele Zeilen der Scan auf einmal liest. Kleiner = speicherschonender.</td></tr> <tr><td>Scan-Detaildaten aufbewahren</td><td>5</td><td>Für wie viele der letzten Scans die Fundstellen-Details bleiben. Die Scan-Übersicht bleibt erhalten.</td></tr> <tr><td>Datei-Hashes berechnen</td><td>Ja</td><td>Nötig für Duplikate und um Änderungen zu erkennen. Ausschalten macht den Scan minimal schneller — und das Löschtor blinder.</td></tr> <tr><td>Vorschaubilder cachen</td><td>Ja</td><td>Erzeugt verkleinerte Vorschauen unter `media/com_jimgo/thumbs`. Benötigt PHP-GD.</td></tr> <tr><td>Vorschaugröße</td><td>360 px</td><td>Längste Kante der Vorschaubilder.</td></tr> </tbody></table>

## Rechte

Der Standard-Reiter von Joomla. Siehe [Rechte, Export und Datenschutz](https://docs.graup-it.de/books/media-organizer/page/rechte-export-und-datenschutz).

<small>Gilt für Version 1.0.3.</small>

# Berichte: Duplikate und defekte Referenzen

Neben den unreferenzierten Dateien liefert Media Organizer zwei weitere Berichte. Beide sind reine Anzeigen: **Sie löschen nichts und ändern nichts.**

## Duplikate

Der Bericht findet Dateien mit **identischem Inhalt** — erkannt über die Prüfsumme (SHA1), nicht über den Dateinamen. Zwei Dateien können also völlig unterschiedlich heißen und in verschiedenen Ordnern liegen; entscheidend ist, dass ihr Inhalt Byte für Byte gleich ist.

<figure id="bkmrk-eine-duplikatgruppe%3A"> ![Der Duplikate-Bericht mit einer Gruppe aus zwei identischen Dateien](https://docs.graup-it.de/uploads/images/gallery/2026-07/ag9doku-07-duplikate.png) <figcaption>Eine Duplikatgruppe: zwei identische Dateien, dazu der freigebbare Speicher, wenn eine Kopie bleibt.</figcaption></figure>Jede Gruppe zeigt:

- wie viele Kopien es gibt und wie groß jede ist,
- wie viel Speicher frei würde, wenn **je eine Kopie bleibt**,
- den Anfang der Prüfsumme,
- den Status jeder einzelnen Kopie (referenziert oder ohne Referenz).

<div class="callout warning" id="bkmrk-l%C3%B6schen-sie-nicht-bl">**Löschen Sie nicht blind alle Kopien bis auf eine.** Prüfen Sie den Status: Sind mehrere Kopien referenziert, verweisen verschiedene Inhalte auf verschiedene Dateien. Löschen Sie dann eine, ist der zugehörige Verweis kaputt — Sie hätten einen toten Bild-Link erzeugt.

Der sinnvolle Fall ist: eine Kopie referenziert, die anderen nicht. Dann können die unreferenzierten weg — über den normalen Weg.

</div>Die Bereinigung läuft auch hier über **Quarantäne und Bestätigung**. Der Bericht ist nur die Lupe, nicht der Besen.

Über **Ausblenden** nehmen Sie Gruppen aus dem Bericht, die Sie bewusst so haben wollen — etwa bewusst doppelt gepflegte Bilder. Das hält die Liste über die Zeit brauchbar.

## Defekte Referenzen

Dieser Bericht dreht die Blickrichtung um: Er zeigt **Inhalte, die auf eine Datei verweisen, die es nicht gibt**. Tote Bild-Links also — im Frontend das kaputte Bildsymbol.

<figure id="bkmrk-jede-zeile-nennt-den"> ![Der Bericht defekte Referenzen mit dem referenzierten Pfad, der Fundstelle und einem Bearbeiten-Link](https://docs.graup-it.de/uploads/images/gallery/2026-07/Dtvdoku-08-defekte-referenzen.png) <figcaption>Jede Zeile nennt den fehlenden Pfad, wo der Verweis steht und über welchen Suchbereich er gefunden wurde — mit direktem Bearbeiten-Link.</figcaption></figure>Die Spalten:

<table class="table" id="bkmrk-referenzierter-pfadd"> <tbody> <tr><th scope="row">Referenzierter Pfad</th><td>Die Datei, die fehlt.</td></tr> <tr><th scope="row">Gefunden in</th><td>Wo der Verweis steht, z. B. „Article #3 'Welcome to your blog'".</td></tr> <tr><th scope="row">Suchbereich</th><td>Welcher Bereich den Verweis gemeldet hat.</td></tr> <tr><th scope="row">Bearbeiten</th><td>Springt direkt in den Inhalt, um ihn zu reparieren.</td></tr> </tbody></table>

Dass derselbe fehlende Pfad mehrfach auftaucht, ist normal: Mehrere Suchbereiche haben ihn unabhängig gefunden.

### Warum die Versionshistorie ausgeblendet ist

Standardmäßig werden Treffer aus der Versionshistorie *nicht* als defekte Referenz gelistet. Der Grund ist praktisch: Alte Beitragsfassungen verweisen naturgemäß auf Bilder, die längst ersetzt wurden. Diese Treffer würden den Bericht fluten, ohne dass es etwas zu reparieren gäbe.

Steuern lässt sich das über **Optionen → Berichte &amp; Ansicht** mit *Provider aus defekten Referenzen ausblenden* (Standard `history`) und *History-Tabellen* (Standard `#__history`).

### Ein typischer Ablauf

1. Bericht öffnen und schauen, ob die fehlende Datei nur verschoben oder umbenannt wurde.
2. Wenn ja: über **Bearbeiten** in den Inhalt springen und den Pfad korrigieren.
3. Wenn die Datei wirklich weg ist: Verweis entfernen oder ein Ersatzbild einsetzen.
4. Neu scannen — der Eintrag verschwindet.

<div class="callout info" id="bkmrk-ein-blick-in-diesen-">Ein Blick in diesen Bericht lohnt **nach** jeder Bereinigung. Er ist die Gegenprobe: Haben Sie versehentlich etwas entfernt, das doch gebraucht wurde, steht es hier.

</div>## Weiter geht es

- [Optimierung und Bild-Editor](https://docs.graup-it.de/books/media-organizer/page/optimierung-und-bild-editor)
- [Automatisierung: geplante Scans und 404-Überwachung](https://docs.graup-it.de/books/media-organizer/page/automatisierung-geplante-scans-und-404-uberwachung)

<small>Gilt für Version 1.0.3.</small>

# Optimierung und Bild-Editor

Neben dem Aufräumen kann Media Organizer Bilder auch verkleinern und bearbeiten. Beides ist **umkehrbar** und läuft **strikt lokal** — es wird kein Bild an einen Online-Dienst geschickt.

## Der Optimierungs-Bericht

Der Bericht zeigt Bilder mit Optimierungspotenzial, gemessen an den Schwellwerten aus den Optionen. Er ist eine Empfehlung — es wird nichts verändert, solange Sie es nicht auslösen.

<figure id="bkmrk-zu-jeder-datei-steht"> ![Der Optimierungs-Bericht mit einer Datei und den Gründen für die Markierung](https://docs.graup-it.de/uploads/images/gallery/2026-07/KXVdoku-09-optimierung.png) <figcaption>Zu jeder Datei steht, *warum* sie markiert wurde — hier gleich aus drei Gründen.</figcaption></figure>Typische Gründe:

- **Zu groß (Dateigröße)** — überschreitet die eingestellte maximale Dateigröße (Standard 500 KB).
- **Zu groß (Abmessungen)** — überschreitet die maximale Kantenlänge (Standard 2500 px).
- **Kein modernes Format (WebP/AVIF)** — ein Rasterbild, das als WebP oder AVIF deutlich kleiner wäre.
- **Veraltetes Format** — etwa BMP oder TIFF.

### Zwei Gruppen — und der Unterschied ist wichtig

Der Bericht trennt bewusst:

<div class="callout info" id="bkmrk-automatisch-optimier">**Automatisch optimierbar.** Format und Dateiname bleiben gleich. Bestehende Verweise bleiben gültig und müssen nicht angepasst werden. Das ist der gefahrlose Fall.

</div><div class="callout warning" id="bkmrk-nur-im-editor.-hier-">**Nur im Editor.** Hier würde eine Optimierung das Format ändern (z. B. nach WebP) und damit den Dateinamen. Bestehende Verweise zeigen weiterhin auf die alte Datei und werden **nicht** automatisch umgestellt. Solche Bilder werden deshalb nie automatisch angefasst.

</div>### Optimieren auslösen

Wählen Sie die Dateien aus und klicken Sie auf **Optimieren**. Vorher gilt:

- Das **Original wird gesichert** (Standard: `jimgo_optimize_backup`, außerhalb des Webs).
- Es wird **nie hochskaliert** — nur verkleinert.
- Bringt die Optimierung weniger als die **Mindestersparnis** (Standard 10 %), bleibt das Original unberührt. Kein Qualitätsverlust für ein paar Kilobyte.
- Sehr große Bilder werden übersprungen, damit das Dekodieren im Speicher bleibt — sie erscheinen als „zu groß zum Verarbeiten".

Über **Backups** kommen Sie an die gesicherten Originale und können eine Optimierung rückgängig machen.

### Externe Optimierer

Sind spezialisierte Encoder auf dem Server installiert, nutzt Media Organizer sie für die Kompression — das bringt deutlich mehr als die eingebauten Bibliotheken:

<table class="table" id="bkmrk-formatwerkzeugehinwe"> <thead> <tr><th scope="col">Format</th><th scope="col">Werkzeuge</th><th scope="col">Hinweis</th></tr> </thead> <tbody> <tr><td>JPEG</td><td>jpegoptim</td><td>—</td></tr> <tr><td>PNG</td><td>pngquant, oxipng, OptiPNG</td><td>**pngquant ist verlustbehaftet** (größte Ersparnis); oxipng und OptiPNG sind verlustfrei. Automatisch bevorzugt pngquant.</td></tr> <tr><td>WebP</td><td>cwebp</td><td>Wenn die Quelle bereits WebP ist.</td></tr> <tr><td>GIF</td><td>gifsicle</td><td>Behält Animationen.</td></tr> </tbody></table>

Media Organizer **lädt nichts herunter und liefert nichts mit** — es nutzt nur, was schon installiert ist. Fehlt ein Werkzeug, fällt es automatisch auf die eingebaute Bibliothek zurück. Unter **Optionen → Optimierung → Verfügbare Optimierer** sehen Sie, was erkannt wurde.

## Der Bild-Editor

Den Editor öffnen Sie aus der Detailansicht über **Bearbeiten**.

<figure id="bkmrk-zuschneiden%2C-drehen%2C"> ![Der Bild-Editor mit Zuschnittrahmen und den Reglern für Transformation und Anpassung](https://docs.graup-it.de/uploads/images/gallery/2026-07/NL1doku-10-editor.png) <figcaption>Zuschneiden, Drehen, Skalieren, Qualität und Bildanpassung — mit Vorschau.</figcaption></figure>Möglich sind:

- **Zuschneiden** — frei oder mit festem Verhältnis (1:1, 4:3, 3:2, 16:9, 9:16)
- **Drehen und Spiegeln**
- **Skalieren** auf eine maximale Kantenlänge
- **Qualität** einstellen
- **Anpassen** von Helligkeit, Kontrast und Sättigung

Auch hier wird das Original vorher gesichert; über die Backups-Ansicht machen Sie die Bearbeitung rückgängig.

### Speichern: zwei Wege mit unterschiedlichen Folgen

<table class="table" id="bkmrk-wegwas-passiertverwe"> <thead> <tr><th scope="col">Weg</th><th scope="col">Was passiert</th><th scope="col">Verweise</th></tr> </thead> <tbody> <tr> <td>**Original ersetzen**</td> <td>Format und Dateiname bleiben gleich.</td> <td>bleiben gültig ✓</td> </tr> <tr> <td>**Als WebP/AVIF speichern**</td> <td>Legt eine **neue Datei mit anderem Dateinamen** an. Das Original bleibt bestehen.</td> <td>zeigen weiter aufs Original — Sie müssen sie **manuell** umstellen</td> </tr> </tbody></table>

<div class="callout warning" id="bkmrk-das-ist-der-h%C3%A4ufigst">Das ist der häufigste Stolperstein. Speichern Sie ein Bild als WebP, ändert sich *nichts* an Ihren Inhalten — sie zeigen weiterhin auf die alte Datei. Die Fundstellen, die Sie dafür anpassen müssen, finden Sie in der Detailansicht des Originals unter „Referenziert über".

</div>## Weiter geht es

- [Automatisierung: geplante Scans und 404-Überwachung](https://docs.graup-it.de/books/media-organizer/page/automatisierung-geplante-scans-und-404-uberwachung)
- [Kommandozeile](https://docs.graup-it.de/books/media-organizer/page/kommandozeile)

<small>Gilt für Version 1.0.3.</small>

# Automatisierung: geplante Scans und 404-Überwachung

Zwei Bestandteile laufen im Hintergrund mit. Für beide gilt dieselbe Regel wie für alles andere:

<div class="callout info" id="bkmrk-sie-finden-und-melde">**Sie finden und melden. Sie verschieben und löschen nicht.** Eine automatische Bereinigung gibt es in Media Organizer nicht — auch nicht hinter einer Option. Diese Option existiert bewusst nicht.

</div>## Geplante Scans

Über den Joomla-Aufgabenplaner kann ein Scan regelmäßig laufen. Das Aufgaben-Plugin wird bei der Installation automatisch aktiviert.

### Einrichten

1. Öffnen Sie **System → Geplante Aufgaben**.
2. Neue Aufgabe → Aufgabentyp **Media Organizer**.
3. Intervall wählen — für die meisten Websites reicht wöchentlich oder täglich.
4. Optional die E-Mail-Benachrichtigung einstellen.

Vom Dashboard aus springen Sie über **Aufgabe anpassen** direkt in die Einstellungen. Das Dashboard zeigt außerdem, wann der letzte geplante Lauf war, ob er erfolgreich war und wann der nächste ansteht.

<div class="callout warning" id="bkmrk-der-aufgabenplaner-b">Der Aufgabenplaner braucht einen Auslöser. Läuft er über den Website-Aufruf („Lazy Scheduler"), startet er erst, wenn jemand die Seite besucht. Für verlässliche Zeitpunkte richten Sie einen echten Cronjob ein — das ist Joomla-Standard und in dessen Dokumentation beschrieben.

</div>### Was der geplante Scan bringt

Vor allem eines: **Kontinuität**. Das Löschtor verlangt, dass eine Datei in mehreren aufeinanderfolgenden Scans Kandidat war (Standard: 2) und dass der Scan nicht zu alt ist (Standard: höchstens 7 Tage). Ein regelmäßiger Scan erfüllt beides von allein — Sie müssen nicht daran denken, kurz vor dem Aufräumen noch einmal manuell zu scannen.

Nebenbei sehen Sie an den Zahlen, wie Ihre Medienbibliothek sich entwickelt.

## Die 404-Überwachung

Das System-Plugin protokolliert Zugriffe auf Dateien, die in Quarantäne liegen. Es ist nach der Installation **deaktiviert** — einschalten unter **System → Plugins**.

### Warum das so nützlich ist

Media Organizer kann nur finden, was in Ihrer Joomla-Installation steht. Ein Bild, das in einem Newsletter verlinkt ist, in einem PDF steckt oder von einer fremden Website eingebunden wird, sieht kein Scan der Welt.

Genau diese Lücke schließt die 404-Überwachung — allerdings erst, nachdem die Datei in Quarantäne liegt: Fragt dann jemand die Datei an, entsteht ein 404, und das Plugin schreibt ihn mit.

<div class="callout info" id="bkmrk-ein-404-treffer-auf-">Ein 404-Treffer auf eine Datei in Quarantäne ist der **stärkste Hinweis überhaupt**, sie *nicht* zu löschen: Jemand hat sie tatsächlich angefragt. Die Zählung sehen Sie an jeder Kachel in der Quarantäne-Ansicht.

</div>Das Löschtor prüft diese Zähler mit: Gab es Treffer, wird das endgültige Löschen blockiert.

### Ist das ein Performance-Problem?

Das Plugin läuft bei Seitenaufrufen mit, hält sich aber eng: Es interessiert sich nur für 404er auf Pfade, die es in Quarantäne kennt. Wenn Sie es dennoch nicht dauerhaft mitlaufen lassen wollen, ist ein guter Kompromiss: einschalten, solange eine Charge in Quarantäne liegt — und danach wieder aus.

### Der empfohlene Ablauf

1. 404-Überwachung aktivieren.
2. Eine überschaubare Charge in Quarantäne verschieben.
3. Die Aufbewahrungsfrist abwarten und die Website normal weiterbetreiben.
4. Vor dem endgültigen Löschen die 404-Zähler prüfen. Treffer? Wiederherstellen und die Referenz suchen.
5. Alles ruhig geblieben: löschen. Nächste Charge.

## Weiter geht es

- [Kommandozeile](https://docs.graup-it.de/books/media-organizer/page/kommandozeile) — für Scans ohne Browser-Zeitgrenze
- [Quarantäne, Wiederherstellen, endgültiges Löschen](https://docs.graup-it.de/books/media-organizer/page/quarantane-wiederherstellen-endgultiges-loschen)

<small>Gilt für Version 1.0.3.</small>

# Kommandozeile

Media Organizer bringt Kommandos für Joomlas Konsole mit. Sie sind vor allem dann nützlich, wenn ein Scan im Browser an eine Zeitgrenze läuft, oder wenn Sie Wartung skripten wollen.

Alle Kommandos laufen über Joomlas CLI-Einstiegspunkt:

```
php cli/joomla.php jimgo:scan
```

## Die Sicherheitsregel

<div class="callout warning" id="bkmrk-jedes-kommando%2C-das-">Jedes Kommando, das etwas verändert, ist **standardmäßig ein Trockenlauf**. Es zeigt, was es täte, und tut nichts.

Ausgeführt wird nur mit `--confirm=<exakte Anzahl>` — Sie müssen die Zahl der betroffenen Dateien **selbst nennen** und sie muss stimmen. Es gibt bewusst kein `--yes`, kein `--force` und kein `--no-interaction` für destruktive Kommandos.

</div>Der Grund: Ein Tippfehler oder ein veraltetes Skript soll nicht versehentlich etwas löschen. Wer die Anzahl nennen muss, hat vorher hingesehen.

## Lesende Kommandos

### `jimgo:scan`

Führt einen vollständigen Scan aus. Rein lesend — schreibt nie ins Dateisystem.

```
php cli/joomla.php jimgo:scan
```

Das ist der empfohlene Weg für große Bestände: keine Browser-Zeitgrenze, kein Nachklicken. Ideal auch als Cronjob-Alternative zum Aufgabenplaner.

### `jimgo:report`

Gibt das Inventar auf der Standardausgabe aus.

```
php cli/joomla.php jimgo:report --format=csv --state=orphan_candidate > verwaist.csv
```

<table class="table" id="bkmrk---format%3Djson%7Ccsvaus"> <tbody> <tr><td>`--format=json|csv`</td><td>Ausgabeformat. Standard: `json`.</td></tr> <tr><td>`--state=<zustand>`</td><td>Nur Dateien in diesem Zustand, z. B. `orphan_candidate`.</td></tr> </tbody></table>

### `jimgo:duplicates`

Listet Dateien mit identischer Prüfsumme.

```
php cli/joomla.php jimgo:duplicates --limit=100
```

<table class="table" id="bkmrk---limit%3D%3Cn%3Eh%C3%B6chstens"> <tbody> <tr><td>`--limit=<n>`</td><td>Höchstens so viele Duplikatgruppen. Standard: 50.</td></tr> </tbody></table>

### `jimgo:optimize`

Meldet Dateien, die sich nach den eingestellten Schwellwerten zu optimieren lohnen.

```
php cli/joomla.php jimgo:optimize --limit=100
```

<table class="table" id="bkmrk---limit%3D%3Cn%3Eh%C3%B6chstens-1"> <tbody> <tr><td>`--limit=<n>`</td><td>Höchstens so viele Dateien. Standard: 50.</td></tr> </tbody></table>

## Verändernde Kommandos

### `jimgo:quarantine`

Verschiebt die unreferenzierten Dateien des letzten Scans in Quarantäne.

```
# Trockenlauf — zeigt nur, was passieren würde
php cli/joomla.php jimgo:quarantine

# Ausführen: die genannte Anzahl muss exakt stimmen
php cli/joomla.php jimgo:quarantine --confirm=42
```

### `jimgo:purge`

Löscht Dateien in Quarantäne **endgültig**. Es gelten dieselben zwölf Bedingungen wie im Backend — die Kommandozeile ist kein Hintereingang.

```
php cli/joomla.php jimgo:purge
php cli/joomla.php jimgo:purge --confirm=17
```

### `jimgo:optimize:apply`

Optimiert die markierten Bilder. Originale werden vorher gesichert.

```
php cli/joomla.php jimgo:optimize:apply
php cli/joomla.php jimgo:optimize:apply --confirm=8
```

### `jimgo:profiles:update`

Lädt die mitgelieferten Extension-Profile neu in den Speicher. Nützlich nach einem Update.

```
php cli/joomla.php jimgo:profiles:update
```

## Übersicht

<table class="table" id="bkmrk-kommandowirkungbrauc"> <thead> <tr><th scope="col">Kommando</th><th scope="col">Wirkung</th><th scope="col">Braucht `--confirm`</th></tr> </thead> <tbody> <tr><td>`jimgo:scan`</td><td>lesend</td><td>nein</td></tr> <tr><td>`jimgo:report`</td><td>lesend</td><td>nein</td></tr> <tr><td>`jimgo:duplicates`</td><td>lesend</td><td>nein</td></tr> <tr><td>`jimgo:optimize`</td><td>lesend</td><td>nein</td></tr> <tr><td>`jimgo:profiles:update`</td><td>schreibt nur in den Profilspeicher</td><td>nein</td></tr> <tr><td>`jimgo:quarantine`</td><td>verschiebt Dateien</td><td>**ja**</td></tr> <tr><td>`jimgo:optimize:apply`</td><td>ersetzt Bilder (mit Backup)</td><td>**ja**</td></tr> <tr><td>`jimgo:purge`</td><td>**löscht endgültig**</td><td>**ja**</td></tr> </tbody></table>

## Ein Wort zur Automatisierung

Sie *können* `jimgo:scan` in einen Cronjob legen — das ist sinnvoll und empfohlen.

<div class="callout warning" id="bkmrk-legen-sie-niemals-ji">Legen Sie **niemals** `jimgo:purge --confirm=…` in einen Cronjob. Die Anzahl müsste dort fest verdrahtet sein, und genau dann löscht das Skript beim nächsten Lauf eine andere Dateimenge als die, die Sie einmal geprüft haben. Die `--confirm`-Regel ist genau dafür gebaut, dass ein Mensch hinsieht.

</div>## Weiter geht es

- [Rechte, Export und Datenschutz](https://docs.graup-it.de/books/media-organizer/page/rechte-export-und-datenschutz)

<small>Gilt für Version 1.0.3.</small>

# Rechte, Export und Datenschutz

## Berechtigungen

Media Organizer bringt sieben eigene Aktionen mit, die Sie wie gewohnt über **Optionen → Rechte** pro Benutzergruppe vergeben.

<table class="table" id="bkmrk-aktionerlaubt-scanne"> <thead> <tr><th scope="col">Aktion</th><th scope="col">Erlaubt</th></tr> </thead> <tbody> <tr><td>**Scannen**</td><td>Einen Scan starten. Rein lesend, gefahrlos.</td></tr> <tr><td>**In Quarantäne verschieben**</td><td>Dateien in die Quarantäne bewegen. Umkehrbar.</td></tr> <tr><td>**Wiederherstellen**</td><td>Dateien aus der Quarantäne zurückholen.</td></tr> <tr><td>**Endgültig löschen**</td><td>Dateien unwiderruflich entfernen.</td></tr> <tr><td>**Optimieren**</td><td>Bilder verkleinern lassen (mit Backup).</td></tr> <tr><td>**Bearbeiten**</td><td>Den Bild-Editor benutzen.</td></tr> <tr><td>**Safelist pflegen**</td><td>Dateien dauerhaft von der Bereinigung ausnehmen.</td></tr> </tbody></table>

Zusätzlich greift Joomlas *Zugriff auf die Administration* (`core.manage`) — ohne die kommt niemand überhaupt in die Komponente.

### Ein sinnvoller Zuschnitt

Die Aktionen sind absichtlich getrennt, damit Sie Verantwortung staffeln können:

- **Redaktion:** Scannen. Sie sehen, was sich ansammelt, ohne etwas anfassen zu können.
- **Webmaster:** zusätzlich Quarantäne, Wiederherstellen, Optimieren, Bearbeiten. Das ist der Alltag — und alles davon ist umkehrbar.
- **Super User:** endgültiges Löschen.

<div class="callout info" id="bkmrk-standardm%C3%A4%C3%9Fig-ist-su">Standardmäßig ist **Super User zum Löschen verlangen** aktiv (Optionen → Sicherheit &amp; Aufbewahrung). Auch wer die Aktion *Endgültig löschen* hat, kommt damit nicht durch, solange er kein Super User ist. Zwei unabhängige Hürden für den einzigen unumkehrbaren Schritt.

</div>## Die Safelist

Manche Dateien sollen nie zur Debatte stehen — Logos, Bilder für einen Newsletter, ein Ordner mit Material für externe Zwecke. Dafür gibt es die **Safelist**: Was auf sie passt, wird nicht mehr als „ohne Referenz" gemeldet.

Eingetragen werden dabei **Muster, keine einzelnen Dateien** — geprüft gegen den site-relativen Pfad:

<table class="table" id="bkmrk-mustertypbeispielwir"> <thead> <tr><th scope="col">Mustertyp</th><th scope="col">Beispiel</th><th scope="col">Wirkung</th></tr> </thead> <tbody> <tr> <td>Glob-Muster</td> <td>`images/keep/*`</td> <td>Schützt alles unterhalb von `images/keep/`.</td> </tr> <tr> <td>Regulärer Ausdruck</td> <td>—</td> <td>Für Fälle, die sich mit einem Glob nicht fassen lassen.</td> </tr> </tbody></table>

Ein Muster statt einer Dateiliste hat einen praktischen Vorteil: Legen Sie eine neue Datei in `images/keep/` ab, ist sie automatisch geschützt — Sie müssen nicht daran denken, sie nachzutragen.

Die Safelist ist der ehrliche Weg für „das weiß ich besser als die Software" — deutlich besser, als das Löschtor aufzuweichen. Sie wirkt gezielt auf das, was Sie benennen, statt pauschal alle Sicherheitsprüfungen zu senken.

## Export

Aus der Prüfansicht exportieren Sie das Inventar über **CSV exportieren** oder **JSON exportieren**. Die aktuell gesetzten Filter werden berücksichtigt — Sie können also gezielt „alle unreferenzierten Bilder über 1 MB" herausziehen.

Dasselbe geht über die Kommandozeile:

```
php cli/joomla.php jimgo:report --format=csv --state=orphan_candidate > verwaist.csv
```

Typische Anwendungen: Abstimmung mit dem Kunden, bevor etwas passiert. Eine Zweitmeinung. Oder schlicht die Dokumentation dessen, was Sie getan haben.

## Datenschutz und Datenhaltung

<div class="callout info" id="bkmrk-media-organizer-arbe">**Media Organizer arbeitet strikt lokal. Es kontaktiert keine externen Dienste. Keine Daten verlassen Ihre Website.**

</div>Im Einzelnen:

- **Keine Telemetrie**, keine Nutzungsstatistik, kein „Nach-Hause-Telefonieren".
- **Bilder werden nicht hochgeladen.** Optimierung und Bild-Editor laufen auf Ihrem Server — auch die optionalen externen Encoder sind lokal installierte Programme.
- **Die einzige ausgehende Verbindung** ist die Update-Prüfung. Die führt Joomla selbst durch, wenn Sie sie auslösen.

### Was gespeichert wird

<table class="table" id="bkmrk-inventarpfad%2C-gr%C3%B6%C3%9Fe%2C"> <tbody> <tr><th scope="row">Inventar</th><td>Pfad, Größe, Abmessungen, Prüfsumme, Zeitstempel je Datei.</td></tr> <tr><th scope="row">Referenzen</th><td>Fundstellen: Tabelle, Datensatz, Spalte, gefundener Verweis.</td></tr> <tr><th scope="row">Scan-Verlauf</th><td>Wann, wie lange, mit welchem Ergebnis.</td></tr> <tr><th scope="row">Audit-Log</th><td>Wer wann was verschoben, wiederhergestellt oder gelöscht hat — inklusive Begründung bei einer Übersteuerung.</td></tr> <tr><th scope="row">404-Treffer</th><td>Zugriffe auf Dateien in Quarantäne (nur bei aktivem Plugin).</td></tr> </tbody></table>

Das sind technische Daten über *Dateien*, keine personenbezogenen Daten über Website-Besucher. Das Audit-Log hält fest, welcher *Administrator* eine Aktion ausgelöst hat — das ist der Sinn eines Audit-Logs.

Über **Optionen → Leistung → Scan-Detaildaten aufbewahren** (Standard: 5) steuern Sie, für wie viele der letzten Scans die Fundstellen-Details behalten werden. Ältere werden automatisch entfernt, damit die Tabellen nicht unbegrenzt wachsen. Die Scan-Übersicht selbst bleibt erhalten.

### Was bei der Deinstallation passiert

Beim Entfernen der Erweiterung werden ihre Tabellen abgeräumt. **Dateien in Quarantäne bleiben liegen** — sie werden nicht gelöscht. Holen Sie sich also zurück, was Sie behalten wollen, *bevor* Sie deinstallieren; sonst müssen Sie den Quarantäne-Ordner anschließend von Hand durchsehen.

## Weiter geht es

- [Häufige Fragen und Fehlerbehebung](https://docs.graup-it.de/books/media-organizer/page/haufige-fragen-und-fehlerbehebung)
- [Media Organizer im Überblick](https://docs.graup-it.de/books/media-organizer/page/media-organizer-im-uberblick)

<small>Gilt für Version 1.0.3.</small>

# Änderungsprotokoll

Dieses Änderungsprotokoll listet alle veröffentlichten Versionen von Media Organizer, die neueste zuerst.

<div class="callout info" id="bkmrk-diese-seite-wird-bei">Diese Seite wird beim Release automatisch aus der Änderungsdatei des Produkts erzeugt. Änderungen von Hand gehen beim nächsten Abgleich verloren.

</div>## Version 1.0.3 – 12.08.2026

### Geändert

- Einzelne mitgelieferte Dateien nannten noch die Lizenzversion 2. Überall steht jetzt einheitlich die GNU General Public License Version 3 oder später.
- Die Installationsangaben wurden von wirkungslosen Einträgen befreit, damit das Paket die Prüfung des Joomla! Extensions Directory besteht.

## Version 1.0.2 – 04.08.2026

### Geändert

- Die Erweiterung steht unter der GNU General Public License Version 3 oder später. Alle Angaben zu Lizenz, Autor und Copyright sind einheitlich.

### Behoben

- Die mitgelieferte Lizenzdatei enthielt den Text der Version 2. Sie enthält jetzt den vollständigen Text der Version 3 mit dem Namen dieser Erweiterung.

## Version 1.0.1 – 31.07.2026

### Hinzugefügt

- Nach Installation und Update erscheint ein Übersichtsfenster mit Version, Status und Einstiegen zu Erste Schritte, Download-Schlüssel und Handbuch.
- Ein Klick auf „Updates aktivieren“ führt direkt zu den Update-Quellen, bereits auf fehlende Download-Schlüssel gefiltert.
- Der Erweiterungs-Manager zeigt hinter der Versionsnummer die Liste der Änderungen.

### Geändert

- Die Beschreibungen von Paket und Erweiterungsprofilen sind jetzt übersetzbar.
- Die Meldung „erfolgreich installiert“ entfällt; das neue Übersichtsfenster ersetzt sie.

## Version 1.0.0 – 13.07.2026

### Hinweise

- Initiales Release.