[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Medienpool abgleichen? - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
dpf_dd
Beiträge: 151
Registriert: 20. Dez 2007, 14:07

Medienpool abgleichen?

22. Nov 2016, 11:57

Hallo Community,

gibt es ein Skript oder Addon (Redaxo 4.6), um nicht benutzte Medien aus dem Medienpool zu entfernen?
Da herrscht mittlerweile eine Unordnung aber die meisten Bilder benutze ich gar nicht mehr...

Ich will die da möglichst schnell und einfach rausgelöscht haben... Any ideas anyone? :)

Grüße,
dpf

Ingo
Beiträge: 782
Registriert: 24. Jun 2010, 00:34

Re: Medienpool abgleichen?

22. Nov 2016, 12:48

EDIT: Falls das irgendwer nochmal nutzen möchte - dieser Schnippsel prüft nur, ob eine Datei in der article_slice Tabelle drinsteht - sprich über ein Modul eingebunden ist. Dateien die zb über den Table Manager oder Metainfos eingebunden sind, werden ohne Rückfrage gelöscht. Also nur benutzen, wenn Dateien nur über Module eingebunden sind.

Code: Alles auswählen

$sql = rex_sql::factory();
$all_files = $sql->getArray('SELECT filename FROM '.$REX['TABLE_PREFIX'].'file');

if (count($all_files))
{
    foreach ($all_files as $key => $val)
    {
        $sql = rex_sql::factory();
        $filename = $val['filename'];

        $values = array();
        for ($i = 1; $i < 21; $i++)
        {
          // check if valueX contains $filename,
          // but take care that other files that end with $filename are not matched
          // example: "abc.jpg" should not be matched for $filename="bc.jpg"
          $values[] = 'value'.$i.' REGEXP "(^|[^[:alnum:]+_-])'. $filename .'"';
        }

        $files = array();
        $filelists = array();
        for ($i = 1; $i < 11; $i++)
        {
          $files[] = 'file'.$i.'="'.$filename.'"';
          $filelists[] = 'FIND_IN_SET("'.$filename.'",filelist'.$i.')';
        }

        $where = '';
        $where .= implode(' OR ', $files).' OR ';
        $where .= implode(' OR ', $filelists) .' OR ';
        $where .= implode(' OR ', $values);
        $query = 'SELECT DISTINCT article_id, clang FROM '.$REX['TABLE_PREFIX'].'article_slice WHERE '. $where;
        $file_used_in = $sql->getArray($query);

        if (count($file_used_in))
        {
            unset($all_files[$key]);
        }

    }

    if (count($all_files))
    {
        foreach ($all_files as $val)
        {
            OOMedia::delete($val['filename']);
        }
    }

}
Zuletzt geändert von Ingo am 23. Nov 2016, 19:34, insgesamt 2-mal geändert.

dpf_dd
Beiträge: 151
Registriert: 20. Dez 2007, 14:07

Re: Medienpool abgleichen?

22. Nov 2016, 14:48

Danke Ingo. Das funktioniert :)

Und wiedereinmal hast du mir schnell und kompetent helfen können. Nicht zum ersten Mal... Allerherzlichsten Dank für deine Anteilnahme an meinen Problemen :D

Zurück zu „Allgemeines [R4]“