Erkennen wo die Datei verwendet wird.

Gesperrt
derju
Beiträge: 301
Registriert: Do 15. Jan 2009, 09:00
Kontaktdaten:

Erkennen wo die Datei verwendet wird.

Beitrag von derju » Mo 2. Sep 2013, 13:04

Gibt es ein Tool oder einen Trick wie man erkennen kann, wo welche Datei aus der Dateiverwaltung verwendet werden?

LG - derJu
Contenido 4.8.20 | Contenido 4.9.12

xmurrix
Beiträge: 3154
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Erkennen wo die Datei verwendet wird.

Beitrag von xmurrix » Mo 2. Sep 2013, 20:58

Hallo derju,

es ist nicht möglich herauszufinden, wo genau eine Datei verwendet wird.

Während man die Werte in allen Inhalten von CMS-Typen auf das Vorkommen der Datei prüfen könnte, scheitert es spätestens in Modulen, in denen man upload-Verzeichnisse auswählen und diverse Filterkriterien (Dateiendung, Dateiname, Erstellungsdatum, usw...) setzen kann. Das letztere ist zu dynamisch, da müsstest du zu jedem Modul, das mit upload-Verzeichnissen arbeitet, eigene Funktionen implementieren, die anhand vorhandener Moduleinstellungen ermitteln können, welche Dateien am Ende verwendet werden.

Du könntest mit wget oder mit HTTrack die ganze Webseite herunterladen, also auf die Festplatte spiegeln, um in der statischen Version der Seite nach der Datei zu suchen. Denn, falls die Datei in irgendeiner Seite vorkommt, dann ist die Chance groß, dass diese Tools das erkennen und beim Spiegeln mit übertagen.

Alternativ könntest du die Server-Logs über einen längeren Zeitraum analysieren. Wurde die Datei in letzter Zeit mal per HTTP angefraht, taucht die URL zur Datei auf jeden Fall in den Log-Dateien.

EDIT: Marcus hat es mit wenig Worten auch auf den Punkt gebracht :-)

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

marcus.gnass_4fb
Beiträge: 87
Registriert: Do 26. Apr 2012, 23:02
Kontaktdaten:

Re: Erkennen wo die Datei verwendet wird.

Beitrag von marcus.gnass_4fb » Mo 2. Sep 2013, 21:02

Dafür ist bisher keine Funktion implementiert. Die Umsetzung wäre auch ein wenig aufwändiger, da ein Upload als ID (idupl) in der Tabelle con_content hinterlegt sein kann, aber auch als Pfad (z.B. bei einem CMS_FILELIST). Nicht zuletzt kann man ja auch in einem CMS_HTML z.B. einen Link auf einen Upload eintragen. CONTENIDO ist an dieser Stelle halt sehr flexibel. :)

EDIT: Murat war mal wieder schneller ... und ausführlicher! ;)

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: Erkennen wo die Datei verwendet wird.

Beitrag von Spider IT » Di 3. Sep 2013, 10:43

xmurrix hat geschrieben:Du könntest mit wget oder mit HTTrack die ganze Webseite herunterladen, also auf die Festplatte spiegeln, um in der statischen Version der Seite nach der Datei zu suchen. Denn, falls die Datei in irgendeiner Seite vorkommt, dann ist die Chance groß, dass diese Tools das erkennen und beim Spiegeln mit übertagen.
Und auch dann fehlen die Bilddateien, die ausschließlich skaliert ausgegeben werden, denn die liegen dann nur als gecachte Versionen im cache-Ordner vor.

Gruß
René

Faar
Beiträge: 1919
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Erkennen wo die Datei verwendet wird.

Beitrag von Faar » Di 3. Sep 2013, 11:20

Man könnte in der Datenbank versuchen, gezielt mit einem SQL-Bfehl wie SELECT * FROM table WHERE content LIKE '%datei.name%';
Das %-Zeichen ist hier eine Wildcard für beliebige Zeichen, nicht zu verwechseln mit url-codierung.
Nach ganzen Pfaden würde ich nicht suchen, denn die sind im Content meistens URL-codiert: http://www.w3schools.com/tags/ref_urlencode.asp
Das würde schwierig.
PHPMyAdmin hat bereits eine Suchfunktion eingebaut, mit der man alle Tabelle nach einem Begriff absuchen kann.
Meistens kann man den Befehl dort irgendwie heraus bekommen (kopieren) und dann für sich verwenden, das erspart einem manchmal viel Hirnschmalz bei der SQL Erstellung.
Sowie man die passenden SQL-Befehle hat, die auch funktionieren, könnte man diese auch in ein Modul einbauen... oder in ein Plugin.
Allerdings belasten diese Suchen auch die Datenbank, sollte man also nicht so bauen, dass hundert Besucher gleichzeitig und ständig den Suchen-Button betätigen können (so legt man eine Seite auch lahm :wink: ).
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Faar
Beiträge: 1919
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Erkennen wo die Datei verwendet wird.

Beitrag von Faar » Di 3. Sep 2013, 11:26

Spider IT hat geschrieben: Und auch dann fehlen die Bilddateien, die ausschließlich skaliert ausgegeben werden, denn die liegen dann nur als gecachte Versionen im cache-Ordner vor.

Gruß
René
Unter anderem meinte ich in einem anderen Thread darum, dass man die Namen für gecachte Bilde gleich halten sollte wie der Dateiname. Also für ein Thumbnail (Vorschaubild) dann eben dateiname_tn.jpg, dieses _tn dran hängen, damit der Dateiname erhalten bleibt und das _tn auf ein Thumbnail hinweist. Vor oder nach Dateiname kann man immer noch Hiroglyphen anbringen, die für irgendeine Sache sinnvoll wären, aber der "dateiname" würde erhalten bleiben und danach kann man suchen und Bezüge zur Originaldatei herstellen, sogar manuell am Bildschirm, ohne ID-Querverbindungen.
Haarsträubende Beispiele sehe ich immer wieder in Typo3 mit ihren nichtssagenden Dateinamen im Cache.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: Erkennen wo die Datei verwendet wird.

Beitrag von Spider IT » Di 3. Sep 2013, 12:57

Hallo Frank,

die generierten Dateinamen beinhalten auch die Maßangaben zur generierung der Bilder.
Wenn man aber den Dateinamen mit einem einfachen Kürzel verwendet, überschreiben sich unterschiedliche Größen gegenseitig.
Möglich wäre aber, den Dateinamen vor dem md5-Code zu setzen.
Hierzu musst du die /contenido/includes/functions.api.images.php in Zeile 81 von

Code: Alles auswählen

return $sMD5;
zu

Code: Alles auswählen

return basename($sImg) . '.' . $sMD5;
ändern.
Das liefert für '/upload/Bilder/Testbild.png' dann z.B. 'Testbild.png.c718ea7fa1ff4b68e83f313bf4cf14e8.png' (da ist der komplette Bildname enthalten).
Bleibt noch das Problem, dass gleichnamige Bilder in verschiedene Ordner vorliegen können...

Gruß
René

Faar
Beiträge: 1919
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Erkennen wo die Datei verwendet wird.

Beitrag von Faar » Di 3. Sep 2013, 13:11

Moin René,

ja, so meinte ich es in etwa und ich denke, das ließe sich seitens Contenido umsetzen (wir sollten/können am Core ja kaum was machen, wegen Update und so).

Für die Ordnung im Upload-Verzeichnis ist eigentlich der Benutzer zuständig, aber man könnten diesen unterstützen, indem man Duplikate findet.
Da die Datennamen auch im der Datenbank sind, ließen sich darüber zumindest gleichlautende Dateinamen finden. Über eine Prüfsumme oder anderen Abgleich ließe sich erkennen, ob es tatsächlich das gleiche Bild ist oder nur der Dateiname gleich ist. Diese Funktion könnte man im Dateimanager von Contenido einbauen.

Wegen den gleichen Bildern in unterschiedlichen Pfaden: Der Pfad könnte auch mit in die MD5 Erzeugung rein, dann sind die Cache-Daten auf jeden Fall unterschiedlich.

Viele Grüße,
Frank
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: Erkennen wo die Datei verwendet wird.

Beitrag von Spider IT » Di 3. Sep 2013, 13:19

Moin Frank,
Faar hat geschrieben:Der Pfad könnte auch mit in die MD5 Erzeugung rein, dann sind die Cache-Daten auf jeden Fall unterschiedlich.
das ist ja bereits der Fall, nur steht der dort nicht mehr beim Dateinamen, was bei einer Suche nicht gerade hilfreich wäre (der Dateiname kann mehrfach vorkommen, nur mit Pfad ist der unterschiedlich).

Gruß
René

Faar
Beiträge: 1919
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Erkennen wo die Datei verwendet wird.

Beitrag von Faar » Di 3. Sep 2013, 18:07

Hi René,

ich glaube, dass die (4fb) das nicht mehr für Contenido 4.8 entwickeln würden, da müsste vielleicht ein Plugin aushelfen.
Aber ginge das denn mit einem Plugin, so eine Erweiterung für den Dateimanager?

Viele Grüße,
FRank
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: Erkennen wo die Datei verwendet wird.

Beitrag von Spider IT » Di 3. Sep 2013, 18:38

Ja, das müsste gehen.
Ich habe es zwar selbst noch nicht gemacht (per Plugin in Contenido), aber andere soweit ich weiß schon.
Zumindest haben die die Dateiverwaltung erweitert gehabt.

Gruß
René

Gesperrt