oft werden von unseren Kunden viel zu große Bilder hochgeladen.
Nach dem inastllieren der untenstehenden Erweiterung (Chain) werden die Bilder beim Hochladen auf eine festgelegte Größe scalliert.
Verwendete Chain: Contenido.Upload.UploadPreprocess
Automatische Bildskalierung beim Upload von Bildern in der Dateiverwaltung
Version 2.0 : fuer contenido 4.9.x
Vorausschicken möchte ich da es sich um eine für Contenido 4.9 überarbeitete Version handelt.
Historie:
@version 1.0 fuer Contenido 4.4.x
@author Stefan Welpot
28.12.2005
Original von hier
http://contenido.org/forum/viewtopic.php?t=6540
@version 1.0.1
Patch von HerrB - nur Bilddateien resizen - ist eingearbeitet
geändert: 1. Dez 2007
Version fuer Contenido 4.6
wosch
http://forum.contenido.org/viewtopic.ph ... ze#p157480
ueberarbeitet 19.07.2014
Version: 2.0 fuer Contenido 4.9.x
josh: info@webdesign-ahlen.de
Installation:
1.
Ordner upload_resize in /contenido/includes/chains kopieren
(zip-Datei unten))
2.
Ordner /contenido/data/temp/ anlegen (schreibrechte)
3.
Einbinden der Chain in die Datei /data/condig/production/config.chains.load.php".
Diese Zeilen einfügen:
cInclude('includes', 'chains/upload_resize/config.chain.php');
$_cecRegistry->addChainFunction("Contenido.Upload.UploadPreprocess", "cecUploadUploadPreprocess");
Konfiguration:
Mandanteneinstellungen: default Werte werden dort beim ersten Upload
automatisch eingetragen und können dann dort konfiguriert werden
Typ: : upload
Name : automaticImageScaleWidth
Wert : 900
Typ: : upload
Name : automaticImageScaleHeight
Wert : 900
Fuer einzelne Benutzer kann upload_resize ausgeschaltet werden.
Benutzerdefinierte Eigenschaften beim Benutzer:
Bereich / Typ : upload
Eigenschaft : resize
Wert : false
Code: Alles auswählen
<?php
/**
* chain: Contenido.Upload.UploadPreprocess
* Automatische Bildskalierung beim Upload von Bildern in der Dateiverwaltung
* Version 2.0 : fuer contenido 4.9.x
* --------------------------------------------------------------------------------------------------
* Installation:
* Ordner upload_resize in /contenido/includes/chains kopieren
* Ordner /contenido/data/temp/ anlegen (schreibrechte)
*
* Einbinden der Chain in die Datei /data/condig/production/config.chains.load.php":
* cInclude('includes', 'chains/upload_resize/config.chain.php');
* $_cecRegistry->addChainFunction("Contenido.Upload.UploadPreprocess", "cecUploadUploadPreprocess");
* --------------------------------------------------------------------------------------------------
* Konfiguration:
*
* Mandanteneinstellungen: default Werte werden dort beim ersten Upload
* automatisch eingetragen und können dort konfiguriert werden
*
* Typ: : upload
* Name : automaticImageScaleWidth
* Wert : 900
*
* Typ: : upload
* Name : automaticImageScaleHeight
* Wert : 900
*
* Fuer einzelne Benutzer upload_resize ausschalten:
* Benutzerdefinierte Eigenschaften beim Benutzer:
*
* Bereich / Typ : upload
* Eigenschaft : resize
* Wert : false
* --------------------------------------------------------------------------------------------------
* Historie:
*
* @version 1.0 fuer Contenido 4.4.x
* @author Stefan Welpot
* 28.12.2005
* Original von hier
* http://contenido.org/forum/viewtopic.php?t=6540
* @version 1.0.1
* Patch von HerrB - nur Bilddateien resizen - ist eingearbeitet
*
* geändert: 1. Dez 2007
* Version fuer Contenido
* wosch
* http://forum.contenido.org/viewtopic.php?f=51&t=18925&p=157480&hilit=resize#p157480
*
* ueberarbeitet 19.07.2014
* Version: 2.0 fuer Contenido 4.9.x
* josh - info@webdesign-ahlen.de
*
*/
if(!defined('CON_FRAMEWORK')) {
die('Illegal call');
}
function cecUploadUploadPreprocess ($tmp_name, $path)
{
global $cfgClient, $client;
//Fuer einzelne Benutzer upload_resize ausschalten
$user_resize = getEffectiveSetting("upload","resize");
if ($user_resize == "false") {
return $tmp_name;
}
$defaultBildbreite = 900;
$defaultBildhoehe = 900;
$newFilename= "";
$aCustSettings = getEffectiveSettingsByType("upload");
foreach ($aCustSettings as $sKey => $sValue) {
if ($sKey == 'automaticImageScaleWidth') {
$maxBildbreite = $sValue;
}
if ($sKey == 'automaticImageScaleHeight') {
$maxBildhoehe = $sValue;
}
}
//Eintragen der default hoehe/brete in die Mandanteneinstellungen
$cApiClient = new cApiClient($client);
if(!is_numeric($maxBildbreite)) {
$cApiClient->setProperty("upload", "automaticImageScaleWidth", $defaultBildbreite);
$maxBildbreite = $defaultBildbreite;
}
if(!is_numeric($maxBildhoehe)) {
$cApiClient->setProperty("upload", "automaticImageScaleHeight", $defaultBildhoehe);
$maxBildhoehe = $defaultBildhoehe;
}
// nur Bilddateien mit resize bearbeiten, keine anderen Dateien - Patch HerrB
$filetype = strtolower(substr($tmp_name, strlen($tmp_name) -4, 4));
if ( strcmp(".gif", $filetype) == 0 ||
strcmp(".png", $filetype) == 0 ||
strcmp(".jpg", $filetype) == 0 ||
strcmp("jpeg", $filetype) == 0
)
{
// Pruefen ob das Bild groesser in Breite und Hoehe ist als $maxBildbreite bzw. $maxBildhoehe
// Bildeimensionen ermitteln
$src_image_size = getimagesize($tmp_name);
if (($src_image_size[0] > $maxBildbreite) || ($src_image_size[1] > $maxBildhoehe))
{
$newFilename = capiImgScale($tmp_name, $maxBildbreite, $maxBildhoehe, false, false, 1, true);
$newFilename = str_replace($cfgClient[$client]["path"]["htmlpath"], $cfgClient[$client]["path"]["frontend"], $newFilename);
} else {
// Bild ist kleiner als unsere Standardwerte deswegen keine Aenderungen
$newFilename = $tmp_name;
}
} else {
// nur jpg, gif, png, jpeg mit resize bearbeiten, keine anderen Dateien
$newFilename = $tmp_name;
}
return $newFilename;
}
?>
Viel Spaß
josh