Вход Регистрация
Файл: databasr/application/libraries/smarty/plugins/function.shop.php
Строк: 92
<?php
function smarty_function_shop($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');
    }

    
// Frontend product links
    
if(isset($params['productId']) && !empty($params['productId'])) {

        
$CI = &get_instance();
        
        
$CI->load->model('shop_articles_model');
        
$product $CI->shop_articles_model->byId($params['productId']);

        
// SEO Route
        
if(!empty($product['seo'])) {

            
// check if seo route exists
            
$exists $CI->routes->trace($product['seo']);
            if(
$exists) {
                return 
site_url([$product['seo']]);
            }
        }

        
// Fallback route if seo not exists
        
$route = array('articles''view'$product->id);
        return 
site_url($route);
    }

    
// Frontend listing links
    
if(isset($params['catId']) && !empty($params['catId'])) {

        
$CI = &get_instance();

        
// Breadcrumb Menu
        
$node $CI->shop->categories->getNodeById($params['catId']);
        
$breadcrumb $CI->shop->categories->buildBreadcrumbByNode($node);

        
$breadcrumbRoute "";

        foreach(
$breadcrumb as $breadcrumb) {
            
$breadcrumbRoute $breadcrumbRoute '/' $breadcrumb['seo'];
        }

        return 
site_url($breadcrumbRoute);
    }

    
// Frontend image
    
if(isset($params['mode']) && $params['mode'] == "image") {

        
$CI = &get_instance();
        
$media $CI->media->byId($params['mediaId']);

        return 
base_url($media['fullpath']);
    }

    if(isset(
$params['mode']) && $params['mode'] == "thumbnail") {

        
// Check if thumbs folder exists
        
if(!is_dir('media/img/thumbs')) mkdir('media/img/thumbs');

        
$CI = &get_instance();
        
$media $CI->media->byId($params['mediaId']);

        
$width $params['width'] ?: 500;
        
$height $params['height'];

        
// Check image auto scaling
        
$ratio $CI->settings->get('theme-thumbs-ratio');

        if(!
$height && !empty($ratio)) {
            
$ratioArray explode(':'$ratio);

            if(
count($ratioArray) == 2) {
                
$height = ($width $ratioArray[0]) * $ratioArray[1];
                
$height round($height);
            }
        }

        if(!isset(
$height)) {
            
$height $params['height'] ?: 500;
        }

        
// check if user zoom is set
        
if(isset($params['crop']) && isset($media['x1']) && isset($media['x2']) && isset($media['y1']) && isset($media['y2'])) {

            
// generate unique file path
            
$filepath 'media/img/thumbs/' $width $height . (int) $media['x1'] . (int) $media['y1'] . (int) $media['x2'] . (int) $media['y2'] . $media['file'];

            if(
file_exists($filepath)) {
               return 
base_url($filepath);
            }

            
$CI->load->library('image');

            if(!
is_file($media['fullpath'])) {
                return;
            }

            
$CI->image->load($media['fullpath']);

            
$CI->image->crop($media['x1'], $media['y1'], $media['x2'], $media['y2']);

            
$CI->image->save($filepath);

            return 
base_url($filepath);
        }

        
// check for user template no-images
        
$frontendTemplate $CI->settings->get('template-frontend');

        if(!
file_exists($media['fullpath']) && file_exists("templates/frontend/{$frontendTemplate}/images/holder/{$width}x{$height}.jpg")) {
            return 
base_url("templates/frontend/{$frontendTemplate}/images/holder/{$width}x{$height}.jpg");
        }

        if(!
$media || !file_exists($media['fullpath'])) {
            return 
"http://placehold.it/{$width}x{$height}/E6E6E6/&text=kein+Bild";
        }

        
$thumbnailPath 'media/img/thumbs/' $width '_' $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 '_' $height '_' '1' $media['file'];
        }

        if(!
file_exists($thumbnailPath)) {

            
$CI->load->library('image');

            if(!
is_file($media['fullpath'])) {
                return;
            }

            
$CI->image->load($media['fullpath']);

            
$watermark $CI->settings->get('watermark');
            if(isset(
$params['watermark']) && $params['watermark'] && isset($watermark)) {
                
$CI->image->overlay($watermark'center center'.300);
            }

            
$CI->image->thumbnail($width$height);

            
$CI->image->save($thumbnailPath);
        }

        if(!
file_exists($thumbnailPath)) {
            return 
base_url($media['fullpath']);
        }

        return 
base_url($thumbnailPath);
    }

    if(isset(
$params['mode']) && $params['mode'] == "current") {
        return 
current_url();
    }
}
Онлайн: 0
Реклама