1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-06-16 14:50:48 +03:00

Media - возможность уменьшать оригинал изображения или вообще его не сохранять. #704

This commit is contained in:
Mzhelskiy Maxim 2015-08-18 20:20:59 +07:00
parent 3508ca01a7
commit 1fb74a55d6
2 changed files with 31 additions and 4 deletions

View file

@ -431,11 +431,29 @@ class ModuleMedia extends ModuleORM
/**
* Сохраняем оригинальную копию
*/
if (!$sFileResult = $oImage->saveSmart($sPath, $sFileName)) {
$this->Fs_RemoveFileLocal($sFileTmp);
return $this->Image_GetLastError();
$sFileResult = null;
$mOriginalSize = $this->GetConfigParam('image.original', $sTargetType);
if ($mOriginalSize === true) {
if (!$sFileResult = $oImage->saveSmart($sPath, $sFileName)) {
$this->Fs_RemoveFileLocal($sFileTmp);
return $this->Image_GetLastError();
}
} elseif (is_string($mOriginalSize)) {
/**
* Ресайзим оригинал
*/
$aOriginalSize = $this->ParsedImageSize($mOriginalSize);
if ($aOriginalSize['crop']) {
$oImage->cropProportion($aOriginalSize['w'] / $aOriginalSize['h'], 'center');
}
if (!$sFileResult = $oImage->resize($aOriginalSize['w'], $aOriginalSize['h'], true)->saveSmart($sPath, $sFileName)
) {
$this->Fs_RemoveFileLocal($sFileTmp);
return $this->Image_GetLastError();
}
}
$aSizes = $this->GetConfigParam('image.sizes', $sTargetType);
/**
* Перед запуском генерации подчищаем память
@ -444,7 +462,15 @@ class ModuleMedia extends ModuleORM
/**
* Генерируем варианты с необходимыми размерами
*/
$this->GenerateImageBySizes($sFileTmp, $sPath, $sFileName, $aSizes, $aParams);
$sFileResultLast = $this->GenerateImageBySizes($sFileTmp, $sPath, $sFileName, $aSizes, $aParams);
if (!$sFileResult) {
/**
* Оригинала нет, поэтому получаем фейковый путь до основного файла (нужен для получения файлов других размеров)
*/
$aPathInfoLast = pathinfo($sFileResultLast);
$aFileNamePart = explode('_', $aPathInfoLast['filename']);
$sFileResult = $aPathInfoLast['dirname'] . '/' . $aFileNamePart[0] . '.' . $aPathInfoLast['extension'];
}
/**
* Сохраняем медиа
*/

View file

@ -284,6 +284,7 @@ $config['module']['image']['params']['blog_avatar']['size_max_height'] = 1000;
$config['module']['media']['max_size'] = 3*1024; // Максимальный размер файла в kB
$config['module']['media']['image']['max_size'] = 5*1024; // Максимальный размер файла изображения в kB
$config['module']['media']['image']['autoresize'] = true; // Разрешает автоматическое создание изображений нужного размера при их запросе
$config['module']['media']['image']['original'] = '1500x'; // Размер для хранения оригинала. Если true, то будет сохраняться исходный оригинал без ресайза. Если false, то оригинал сохраняться не будет
$config['module']['media']['image']['sizes'] = array( // список размеров, которые необходимо делать при загрузке изображения
array(
'w' => 1000,