Вход Регистрация
Файл: 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);
}
Онлайн: 1
Реклама