Upload-Workflow

Gesperrt
JUG
Beiträge: 113
Registriert: Fr 20. Sep 2002, 12:24
Wohnort: Karlsruhe
Kontaktdaten:

Upload-Workflow

Beitrag von JUG »

Prima Sache mit dem Upload-Workflow. Allerdings habe ich ein Problem mit Bildern, die an verschiedenen Stellen der Website mehrfach verwendet werden sollen. Man Kann im jeweiligen Artikel nur "seine eigenen" Bilder verwenden. Erneutes Hochladen dürfte die Bild-ID in der Datenbank zwar ändern, dafür verschwindet das gleichnamige Bild aber dann aus der Auswahl des ursprünglichen Artikels. Es müsste also möglich sein, in jedem Artikel auch die allgemeinen Bilder (ID 0) auswählen zu können. Dann könnte man im allgemeinen Uploadbereich Bilder hochladen, die von jedem verwendbar sind. Denkbar wäre auch die Beschränkung des Upload-Workflows auf bestimmte Sturkturpunkte. Bloß: ist dies alles überhaupt technisch machbar?

Andere Lösungsansätze sind wie immer willkommen. Bild
steff
Beiträge: 31
Registriert: Mo 28. Okt 2002, 12:56
Wohnort: Kölle
Kontaktdaten:

Beitrag von steff »

Merke gerade daß ich schon lange nicht mehr hier im Forum war ...

Das Problem mit den Dateinamen habe ich für meine Zwecke gelöst, indem ich beim Upload den jeweiligen Dateinamen neu generieren lasse: aus bild.gif für idside=1 wird 1_bild.gif. Damit bleibt das System konsistent. Allgemeine Bilder (ohne idside Zuordnung hochgeladen) heissen dann z.B. _bild.gif.
Ich habe ganz kräftig an den Corefiles herumgefuhrwerkt und die Dateinamengenerierung ist nicht Teil der veröffentlichten Erweiterung, daher nur ganz allgemein:
Ansatzpunkt ist upl_upload_form.inc.php, betroffen sind aber noch (wenn ich mich recht erinnere) andere Dateien:

Code: Alles auswählen

$userfile_name = $idside . "_" . $HTTP_POST_FILES['userfile']['name'];
$source = $HTTP_POST_FILES['userfile']['tmp_name'];
$target = "$path" . $userfile_name;

if ($source != "none" AND $source != "") {
	if (!copy($source, $target)) {
		echo("failed to copy \"$source\" nach \"$target\"<br>\n");
	} else {
		$sql = "SELECT idupl FROM $cfgTab_upl WHERE idclient='$client' AND idside='$idside' AND filename='$userfile_name' AND dirname='$upltype' AND filetype='" . $cfgClient[$client]["filetype"]["$upltype"] . "'";
		$db->query($sql);
		if ($db->next_record()) {
			$sql = "UPDATE $cfgTab_upl SET idclient='$client', idside='$idside', filename='$userfile_name', dirname='$upltype', filetype='" . $cfgClient[$client]["filetype"]["$upltype"] . "', description='$description' WHERE idupl='" . $db->f("idupl") . "'";
			$db->query($sql);
		} else {
			$sql = "INSERT INTO $cfgTab_upl (idclient, idside, filename, dirname, filetype, description) VALUES ('$client','$idside','$userfile_name','$upltype','" . $cfgClient[$client]["filetype"]["$upltype"] . "','$description')";
			$db->query($sql);
		}
		// echo ("\"$source\" nach \"$target\" kopiert.<br>\n");
	}
	// } else {
	// echo "Keine Datei ausgewaehlt. <br><br>";
}

Für die von mir betreuten Projekte habe ich eine strenge Trennung zwischen Layout- und Artikelbildern vorgesehen, sodaß eine Mehrfachverwendung von Bildern nicht notwendig wird.
Grundsätzlich ist es auch möglich, Bilder Kategorien zuzuorden, dabei gibts es aber ein schwerwiegenden Schwachpunkt:
Unter Contenido lassen sich Artikel immer *mehreren* Kategorien zuordnen. Wenn die Bilder aber nur zu *einer* Katgorie gehören, gibt's Proleme...

Viele Grüße,
Steff
Gesperrt