Файл: databasr/application/libraries/smarty/plugins/function.media.php
Строк: 67
<?php
function smarty_function_media($params, &$smarty)
{
if (!function_exists('current_url')) {
if (!function_exists('get_instance')) {
$smarty->trigger_error("url: Cannot load CodeIgniter");
return;
}
$CI = &get_instance();
$CI->load->helper('url');
}
// Check if thumbs folder exists
if(!is_dir('media')) mkdir('media');
if(!is_dir('media/img')) mkdir('media/img');
if(!is_dir('media/img/thumbs')) mkdir('media/img/thumbs');
$CI = &get_instance();
$media = $CI->media->byId($params['id']);
$width = $params['width'] ?: 500;
$height = $params['height'] ?: 500;
// check for user template no-images
$frontendTemplate = $CI->settings->get('template-frontend');
if(!$media || !file_exists($media['fullpath'])) {
$holder = $CI->settings->get('shop-article-image-placeholder');
if(!empty($holder)) {
return base_url($holder);
}
return base_url("templates/frontend/{$frontendTemplate}/images/holder/600x400.jpg");
}
$thumbnailPath = 'media/img/thumbs/' . $width . 'x' . $height . '_' . $media['file'];
// force regenerate watermark image
$watermark = $CI->settings->get('watermark');
if(isset($params['watermark']) && $params['watermark'] && isset($watermark)) {
$thumbnailPath = 'media/img/thumbs/' . $width . 'x' . $height . '_' . '1' . $media['file'];
}
if(file_exists($thumbnailPath)) {
return base_url($thumbnailPath);
}
// Generate thumbnail if not exists
$CI->load->library('image');
$CI->image->load($media['fullpath']);
// Generate overlay if setting is enabled
$watermark = $CI->settings->get('watermark');
if(isset($params['watermark']) && $params['watermark'] && isset($watermark)) {
$CI->image->overlay($watermark, 'center center', .3, 0, 0);
}
// Check if image fix scaling is available
$forceRatioBasedThumbnails = false;
$ratio = $CI->settings->get('theme-thumbs-ratio');
if(!empty($ratio)) {
$ratioArray = explode(':', $ratio);
if(count($ratioArray) == 2) {
$height = ($width / $ratioArray[0]) * $ratioArray[1];
$height = round($height);
}
if($height > 0) {
$forceRatioBasedThumbnails = true;
}
}
if(isset($params['fix']) || $forceRatioBasedThumbnails) {
$CI->image->thumbnail($width, $height);
} else {
$CI->image->best_fit($width, $height);
}
$CI->image->save($thumbnailPath);
// Return original image if thumbnail could not been saved
if(!file_exists($thumbnailPath)) {
return base_url($media['fullpath']);
}
return base_url($thumbnailPath);
}