Seite 1 von 1

unbenutzte Bilder erkennen ??

Verfasst: Mi 26. Jan 2005, 16:20
von alexd
Habe mal ein allgemeines Problem zu den Bildern. Beim Aufbau der Seiten ist mir aufgefallen, das nach einigen hundert Bildern, das Einfügen von Bildern in das Bildmodul schon sehr umständlich ist.
Aber vor allem das Auffinden von Bildern, welche nicht mehr in Artikeln benutzt werden, ist nahezu unmöglich. Gibt es eine Möglichkeit, den Bilderstatus (benutzt) abzufragen, oder wie macht ihr das denn so.
Bei den Modulen usw. ist dies ja bestens belöst.

Der Webspace ist ja nicht unbegrenzt groß. Vorallem bei dezentral verwalteten Seiten könnte dies ein Problem darstellen.

Alex

Verfasst: Do 27. Jan 2005, 00:08
von emergence
nein diesbezüglich gibt es leider nichts und auch keinen vorgefertigten lösungsweg das zu vereinfachen...
wäre ein feature request... ;-)

Verfasst: Do 27. Jan 2005, 08:07
von kummer
nun, im prinzip ist das nicht schwierig; bislang einfach ungelöst. was du in der zwischenzeit machen kannst, ist folgendes:

(1) ein backend-modul machen, welches nur unter der bedingung ausgeführt wird, dass du dich im backend befindest (if ($edit && empty($_REQUEST['edit']).

(2) mit glob() die graphikdateien im uploadbereich einlesen.

(3) für jede graphik eine abfrage machen (mit der rückgabe der anzahl betroffener records, count(*): einerseits ist der wert cms_img zu checken und anschliessend noch eine referenzierung im wert cms_html.

(4) bei rückgabe von 0 ist das bild nicht in verwendung und kann z.b. gleich gelöscht werden.

ich hoffe, das hilft dir weiter.

gruss,
andreas

Verfasst: Do 27. Jan 2005, 11:02
von timo
kummer hat geschrieben:nun, im prinzip ist das nicht schwierig; bislang einfach ungelöst. was du in der zwischenzeit machen kannst, ist folgendes:
Doch, es ist schwieriger: Ein Redakteur kann ja auch über den WYSIWYG ein Bild einbinden, oder direkt im Layout einbinden, oder noch schlimmer: Das Bild über eine statische HTML-Seite einbinden.

Verfasst: Do 27. Jan 2005, 11:14
von kummer
wenn es über den wysiwyg-editor eingegeben wird, müsste es in einem cms_html referenziert sein. das kann man ja mit einer abfrage prüfen (wie oben erwähnt).

das mit den statischen seiten ist zwar möglich; ich habe das aber mindestens noch nie gemacht. immerhin hat man ja genau dafür ein cms... von einer suche wären solche seiten ja auch ausgeschlossen.

und was direkt im layout drin ist, dürfte sich auch nicht im upload-verzeichnis finden. sonst besteht die gefahr, dass der kunde diese dateien löscht.

aus meiner sicht ist das unbedingt lösbar. das es ungelöst sei, war nicht als vorwurf gemeint. ich denke da liegt ja der sinn eines offenen systems: dass eben jeder es so löst, wie es im gegebenen kontext eben vernünftig ist.

Verfasst: Do 27. Jan 2005, 11:30
von timo
Das größte Problem wird ein, einen ordentlichen HTML+CSS-Parser zu schreiben (gerade beim CSS wird das sehr schwierig)...

Verfasst: Do 27. Jan 2005, 12:17
von kummer
aber das sind ja auch normale pfade drin, oder nicht?

Verfasst: Do 27. Jan 2005, 12:21
von timo
kummer hat geschrieben:aber das sind ja auch normale pfade drin, oder nicht?
Ja, aber das sieht dann z.b. so aus:

style="background-image:url(upload/test.gif)"

d.h. wenn man z.b. eine solche Verzeichnisstruktur hat:

cms/upload/test.gif

und

cms/images/upload/test.gif

dann muß man auch berücksichtigen, daß nicht einfach upload/test.gif geprüft wird, sondern man müsste auch z.b. base href, das aktuelle Verzeichnis usw prüfen. Es geht mir nicht darum, es dir auszureden, sondern darum, daß wir solche Probleme schon öfters bei Kunden hatten und dafür keine Lösung haben. Wenn so etwas mal eingebaut werden sollte, muß es auch ordentlich funktionieren ;)

Verfasst: Do 27. Jan 2005, 15:57
von alexd
Ich komme mit deinem Vorschlag nicht so richtig klar.
Mir würde es ja reichen, wenn ich wüßte, welche Bilder in den Artikeln
verwendet wurden (Bildmodul und Text).

Im Prinzip reicht mir ein Script, welches einfach den gesamten Content auf das Vorhandensein der Bilddatei prüft. Man könnte doch mittels einer PHP Funktion prüfen (z.B. im DUMP der Datenbank), ob eine Bilddatei aus der Tabelle 'con_upl ' auch in anderen Tabellen vorkommt (z.B. 'con_content').
Ist das der Fall, so existieren Artikel, die das Bild verwenden, wenn nicht, sind die Bilder unbenutzt und könnten gelöscht werden.

Hab ich da was übersehen? Dies sollte doch funktionieren.

Alex

Verfasst: Do 27. Jan 2005, 16:13
von kummer
eine einfache abfrage über konsole oder phpmyadmin würde dafür schon ausreichen.

Verfasst: Sa 29. Jan 2005, 12:38
von emergence
die problematik ist ja nicht unintressant...

die vorraussetzungen um das ganze zu vereinheitlichen bzw zu vereinfachen sind momentan leider nicht gegeben...

das mit den cms_img ist ja noch relativ einfach... da das ganze mittels idupl rausgefiltert werden kann...
das aus dem content rauszufiltern ist schon problematischer...
innerhalb des contents könnten diese bilder entweder absolut oder relativ vorhanden sein...
wenn diese absolut sind wird es immens kompliziert...
sollten bilder auf andere domains verlinkt sein muss das auch berücksichtigt werden...

da müsste man eine art con_keywords gegenstück entwickeln das sämtlich möglichen url varianten für bilder links berücksichtigt...
die con_content hat ja zusätzlich noch alle inhalte urlencoded gespeichert...

vielleicht sollte man diesen thread nach contenido development verschieben...

Verfasst: Sa 29. Jan 2005, 16:57
von HerrB
vielleicht sollte man diesen thread nach contenido development verschieben...
Yep, wäre dafür - das wäre nämlich auch für das Feature "Umbenennen von Upload-Verzeichnissen und -Dateien" eine Grundvoraussetzung...

Ansonsten sollte IMHO zumindest die Ausgangsanforderung wie beschrieben lösbar sein, da wenn der Grafikdateiname nirgends zu finden ist (und die id nicht verwendet wird) die Datei auch nicht verwendet wird.

Es könnte ja eigentlich nur sein, dass z.B. der Name genannt wird, es sich aber nicht um die richtige Datei handelt (oder nur eine Erwähnung im Text vorhanden ist) - na, dann ist sie halt in Benutzung und kann - sicher ist sicher - nicht gelöscht werden...

Gruß
HerrB