Changeset View
Changeset View
Standalone View
Standalone View
branches/5.2.x/core/units/helpers/image_helper.php
Show First 20 Lines • Show All 55 Lines • ▼ Show 20 Line(s) | |||||
$res['crop_x'] = strtolower($regs[1]); | $res['crop_x'] = strtolower($regs[1]); | ||||
$res['crop_y'] = strtolower($regs[2]); | $res['crop_y'] = strtolower($regs[2]); | ||||
} | } | ||||
elseif ($format_part == 'img_size' || $format_part == 'img_sizes') { | elseif ($format_part == 'img_size' || $format_part == 'img_sizes') { | ||||
$res['image_size'] = true; | $res['image_size'] = true; | ||||
} | } | ||||
elseif (preg_match('/^fill:(.*)$/', $format_part, $regs)) { | elseif (preg_match('/^fill:(.*)$/', $format_part, $regs)) { | ||||
$res['fill'] = $regs[1]; | $res['fill'] = $regs[1]; | ||||
} elseif (preg_match('/^default:(.*)$/', $format_part, $regs)) { | } | ||||
$res['default'] = FULL_PATH.THEMES_PATH.'/'.$regs[1]; | elseif ( preg_match('/^default:(.*)$/', $format_part, $regs) ) { | ||||
$default_image = FULL_PATH . THEMES_PATH . '/' . $regs[1]; | |||||
if ( strpos($default_image, '../') !== false ) { | |||||
$default_image = realpath($default_image); | |||||
} | |||||
$res['default'] = $default_image; | |||||
} | } | ||||
} | } | ||||
return $res; | return $res; | ||||
} | } | ||||
/** | /** | ||||
* Resized given image to required dimensions & saves resized image to "resized" subfolder in source image folder | * Resized given image to required dimensions & saves resized image to "resized" subfolder in source image folder | ||||
▲ Show 20 Lines • Show All 47 Lines • ▼ Show 20 Line(s) | |||||
// Resize required OR watermarking required -> change resulting image name ! | // Resize required OR watermarking required -> change resulting image name ! | ||||
if ( $needs_resize || array_intersect(array_keys($params), $transform_keys) ) { | if ( $needs_resize || array_intersect(array_keys($params), $transform_keys) ) { | ||||
// Escape replacement patterns, like "\<number>". | // Escape replacement patterns, like "\<number>". | ||||
$src_path_escaped = preg_replace('/(\\\[\d]+)/', '\\\\\1', $src_path); | $src_path_escaped = preg_replace('/(\\\[\d]+)/', '\\\\\1', $src_path); | ||||
$params_hash = kUtil::crc32(serialize($this->fileHelper->makeRelative($params))); | $params_hash = kUtil::crc32(serialize($this->fileHelper->makeRelative($params))); | ||||
$dst_image = preg_replace( | $dst_image = preg_replace( | ||||
'/^' . preg_quote($src_path, '/') . '(.*)\.(.*)$/', | '/^' . preg_quote($src_path, '/') . '(.*)\.(.*)$/', | ||||
$src_path_escaped . DIRECTORY_SEPARATOR . 'resized\\1_' . $params_hash . '.\\2', | $src_path_escaped . '\\1_' . $params_hash . '.\\2', | ||||
$src_image | $src_image | ||||
); | ); | ||||
// Keep resized version of all images under "/system/thumbs/" folder. | |||||
$dst_image = preg_replace('/^' . preg_quote(FULL_PATH, '/') . '/', '', $dst_image, 1); | |||||
$dst_image = FULL_PATH . THUMBS_PATH . $dst_image; | |||||
$this->fileHelper->CheckFolder( dirname($dst_image) ); | $this->fileHelper->CheckFolder( dirname($dst_image) ); | ||||
if (!file_exists($dst_image) || filemtime($src_image) > filemtime($dst_image)) { | if (!file_exists($dst_image) || filemtime($src_image) > filemtime($dst_image)) { | ||||
// resized image not available OR should be recreated due source image change | // resized image not available OR should be recreated due source image change | ||||
$params['dst_image'] = $dst_image; | $params['dst_image'] = $dst_image; | ||||
$image_resized = $this->ScaleImage($src_image, $params); | $image_resized = $this->ScaleImage($src_image, $params); | ||||
if (!$image_resized) { | if (!$image_resized) { | ||||
// resize failed, because of server error | // resize failed, because of server error | ||||
▲ Show 20 Lines • Show All 580 Lines • Show Last 20 Lines |