Chain: Skalierung beim Upload von Bildern - Dateiverwaltung
Verfasst: Mo 21. Jul 2014, 21:38
Hallo,
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
Viel Spaß
josh
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