Вход Регистрация
Файл: InstantSocial/uploud/components/users/includes/catalog.inc.php
Строк: 311
<?
$inCore
->loadModel('catalog');
$model_catalog = new cms_model_catalog();
    
$inCore->includeFile('components/catalog/includes/shopcore.php');
      
    function 
isNew($item_id, $shownew, $newint){
    
$inCore = cmsCore::getInstance();
    
$inDB = cmsDatabase::getInstance();
    if (
$shownew){
        
$sql = "SELECT id FROM cms_uc_items WHERE id = $item_id AND pubdate >= DATE_SUB(NOW(), INTERVAL $newint)";
        
$result = $inDB->query($sql) ;
        return 
$inDB->num_rows($result);
    } else { return 
0; }
}

function 
getAlphaList($cat_id){
    
$inCore = cmsCore::getInstance();
    
$inDB = cmsDatabase::getInstance();
    global 
$_LANG;
    
$html = '';
    
$sql = "SELECT UPPER(SUBSTRING(LTRIM( title ) , 1, 1)) AS first_letter, COUNT( id ) AS num
            FROM cms_uc_items
            WHERE category_id = '
$cat_id' AND published = 1
            GROUP BY first_letter"
;
    
$result = $inDB->query($sql) ;
    if (
$inDB->num_rows($result)){
        
$html .= '<div class="uc_alpha_list">';
        while(
$a = $inDB->fetch_assoc($result)){
            if(
preg_match('/^([a-zA-Zа-яёіїєґА-ЯЁІЇЄҐ0-9]+)$/i', $a['first_letter'])){
                
$html .= '<a class="uc_alpha_link" href="/catalog/'.$cat_id.'/find-first/'.urlencode($a['first_letter']).'" title="'.$_LANG['ARTICLES'].': '.$a['num'].'">'.$a['first_letter'].'</a>';
            }
        }
        
$html .= '</div>';
    }
    return 
$html;
}

function 
subCatsList($parent_id, $left_key, $right_key){

    
$inCore = cmsCore::getInstance();
    
$inDB   = cmsDatabase::getInstance();

    
$html   = '';
    
$model  = new cms_model_catalog();

    if (!
$parent_id) { $parent_id = $inDB->get_field('cms_uc_cats', 'parent_id=0', 'id'); }

    
$cats = $model->getSubCats($parent_id, $left_key, $right_key);

    if (
$cats){
        
$smarty = $inCore->initSmarty('components', 'com_catalog_cats.tpl');
        
$smarty->assign('cfg', $inCore->loadComponentConfig('catalog'));
        
$smarty->assign('cats', $cats);

        
ob_start();

        
$smarty->display('com_catalog_cats.tpl');

        
$html = ob_get_clean();
    }

    return 
$html;
}

function 
orderForm($orderby, $orderto, $shop=false){
    
$inCore = cmsCore::getInstance();
    
$inDB = cmsDatabase::getInstance();
    global 
$_LANG;
    
$html = '';
    
$html .= '<form action="'.$_SERVER['REQUEST_URI'].'" method="POST"><div class="catalog_sortform"><table cellspacing="2" cellpadding="2" >' ."n";
    
$html .= '<tr>' ."n";
    
$html .= '<td>'.$_LANG['ORDER_ARTICLES'].': </td>' ."n";
    
$html .= '<td valign="top"><select name="orderby" id="orderby">' ."n";
    if(
$shop){
        
$html .= '<option value="price" '; if($orderby=='price') { $html .= 'selected'; } $html .= '>'.$_LANG['ORDERBY_PRICE'].'</option>' ."n";
    }
    
$html .= '<option value="title" '; if($orderby=='title') { $html .= 'selected'; } $html .= '>'.$_LANG['ORDERBY_TITLE'].'</option>' ."n";
    
$html .= '<option value="pubdate" '; if($orderby=='pubdate') { $html .= 'selected'; } $html .= '>'.$_LANG['ORDERBY_DATE'].'</option>' ."n";
    
$html .= '<option value="rating" '; if($orderby=='rating') { $html .= 'selected'; } $html .= '>'.$_LANG['ORDERBY_RATING'].'</option>' ."n";
    
$html .= '<option value="hits" '; if($orderby=='hits') { $html .= 'selected'; } $html .= '>'.$_LANG['ORDERBY_HITS'].'</option>' ."n";
    
$html .= '</select> <select name="orderto" id="orderto">';
    
$html .= '<option value="desc" '; if($orderto=='desc') { $html .= 'selected'; } $html .= '>'.$_LANG['ORDERBY_DESC'].'</option>' ."n";
    
$html .= '<option value="asc" '; if($orderto=='asc') { $html .= 'selected'; } $html .= '>'.$_LANG['ORDERBY_ASC'].'</option>' ."n";
    
$html .= '</select>';
    
$html .= ' <input type="submit" value=">>" />' ."n";
    
$html .= '</td>' ."n";
    
$html .= '</tr>' ."n";
    
$html .= '</table></div></form>' ."n";
    return 
$html;
}

function 
ratingData($item_id){
    
$inCore = cmsCore::getInstance();
    
$inDB = cmsDatabase::getInstance();
    
$sql = "SELECT *, IFNULL(AVG(points), 0) as rating, COUNT(id) as votes
            FROM cms_uc_ratings
            WHERE item_id = 
$item_id
            GROUP BY item_id"
;
    
$result = $inDB->query($sql) ;
    if (
$inDB->num_rows($result)){
        
$data = $inDB->fetch_assoc($result);
    } else {
        
$data['rating'] = 0;
        
$data['votes'] = 0;
    }
    return 
$data;
}

function 
buildRating($rating){
    
$inCore     = cmsCore::getInstance();
    
$inDB       = cmsDatabase::getInstance();
    global 
$_LANG;
    
$rating     = round($rating, 2);
    
$html = '<a href="#" title="'.$_LANG['RATING'].': '.$rating.'">';
    for(
$r = 0; $r < 5; $r++){
        if (
round($rating) > $r){
            
$html .= '<img src="/images/ratings/starfull.gif" border="0" />';
        } else {
            
$html .= '<img src="/images/ratings/starhalf.gif" border="0" />';
        }
    }
    
$html .= '</a>';
    return 
$html;
}
function 
tagLine($tagstr, $cat_id){
    
$inCore = cmsCore::getInstance();
    
$inDB = cmsDatabase::getInstance();
    
$html = '';
    if (!
$tagstr) { return ''; }
    
$tagstr = str_replace(', ', ',', $tagstr);
    
$tagstr = str_replace(' ,', ',', $tagstr);
    
$tags = explode(',', $tagstr);
    
$num = 0;
    foreach(
$tags as $key=>$value){
        
$value = strtolower($value);
        
$html .= '<a href="/catalog/'.$cat_id.'/tag/'.urlencode($value).'">'.$value.'</a>';
        if (
$num < sizeof($tags)-1) { $html .= ', '; $num++; }
    }
    return 
$html;
}
$_LANG['CATALOG']="Каталог";
   include 
'languages/ru/components/catalog.php';

$inPage->addPathway($user['nickname']);
    
$inPage->setTitle($_LANG['CATALOG'].' - '.$user['nickname']);
    
$inPage->setDescription($_LANG['CATALOG'].' - '.$user['nickname']);
    
        if (
$_REQUEST['cat']=="cat"){
        
//get category data
        
$sql = "SELECT * FROM cms_uc_cats WHERE id = $catid";
        } else {
              
$sql = "SELECT * FROM cms_uc_cats";     
        }
        
$catres = $inDB->query($sql);

        if (
$inDB->num_rows($catres)>0){
            
            
$cat        = $inDB->fetch_assoc($catres);
            
$fstruct    = unserialize($cat['fieldsstruct']);

            
$inPage->addHead('<link rel="alternate" type="application/rss+xml" title="'.$_LANG['CATALOG'].'" href="'.HOST.'/rss/catalog/'.$cat['id'].'/feed.rss">');
            
$inPage->addHeadJS('includes/jquery/lightbox/js/jquery.lightbox.js');
            
$inPage->addHeadCSS('includes/jquery/lightbox/css/jquery.lightbox.css');

            
//heading
            //PATHWAY ENTRY
            
$left_key   = $cat['NSLeft'];
            
$right_key  = $cat['NSRight'];

            
$path_list  = $model_catalog->getCategoryPath($left_key, $right_key);

            if (
$path_list){
                foreach(
$path_list as $pcat){
                    
$inPage->addPathway($pcat['title'], '/catalog/'.$pcat['id']);
                }
            }
           
            
$inPage->addPathway($cat['title'], '/catalog/'.$cat['id']);
            
$inPage->setTitle($cat['title']);

            
//subcategories
            
$subcats = subCatsList($cat['id'], $cat['NSLeft'], $cat['NSRight']);

            
//alphabetic list
            
if ($cat['showabc']){ $alphabet = getAlphaList($cat['id']);    } else { $alphabet = ''; }

            
//Tool links
            
$shopcartlink = shopCartLink();

            
//get items SQL
            
if (!isset($findsql)){
                   if (
$_REQUEST['cat']=="cat"){
             
$sqlcat='AND i.category_id = '.$catid;
            }
                
$sql = "SELECT i.* , IFNULL(AVG( r.points ), 0) AS rating, i.price as price
                        FROM cms_uc_items i 
                        LEFT JOIN cms_uc_ratings r ON r.item_id = i.id 
                        WHERE i.published = 1 
{$sqlcat} AND i.user_id = {$user['id']}
                        GROUP BY i.id"
;
            } else {
                
$sql = $findsql;
                if (!
$advsearch){ $inPage->addPathway(ucfirst($query)); } else
                { 
$inPage->addPathway($_LANG['SEARCH_RESULT']); }
            }

            
//ordering
            
if (isset($_POST['orderby'])) {
                
$orderby = $inCore->request('orderby', 'str');
                
$_SESSION['uc_orderby'] = $orderby;
            } elseif(isset(
$_SESSION['uc_orderby'])) {
                
$orderby = $_SESSION['uc_orderby'];
            } else {
                
$orderby = $cat['orderby'];
            }

            if (isset(
$_POST['orderto'])) {
                
$orderto = $inCore->request('orderto', 'str');
                
$_SESSION['uc_orderto'] = $orderto;
            } elseif(isset(
$_SESSION['uc_orderto'])) {
                
$orderto = $_SESSION['uc_orderto'];
            } else {
                
$orderto = $cat['orderto'];
            }

            
$sql .=  " ORDER BY ".$orderby." ".$orderto;
            
            
//get total items count
            
$result = $inDB->query($sql);
            
$itemscount = $inDB->num_rows($result);

            
//can user add items here?
            
$is_cat_access = $model_catalog->checkCategoryAccess($cat['id'], $cat['is_public'], $inUser->group_id);
            
$is_can_add = $is_cat_access || $inUser->is_admin;

     
$smarty->assign('page_title', $_LANG['CATALOG'].' - '.$user['nickname']);
            
$smarty->assign('id', $catid);
            
$smarty->assign('cat', $cat);
                 
$smarty->assign('LANG', $_LANG);
        
            
$smarty->assign('subcats', $subcats);
            
$smarty->assign('alphabet', $alphabet);
            
$smarty->assign('shopcartlink', $shopcartlink);
            
$smarty->assign('itemscount', $itemscount);
            
$smarty->assign('is_can_add', $is_can_add);
            
$smarty->assign('orderform', orderForm($orderby, $orderto, ($cat['view_type']=='shop')));

            if (
$itemscount>0){

                
//pagination
                
if (!@$advsearch) { $perpage = $cat['perpage']; } else { $perpage='1000'; }
                
$page = $inCore->request('page', 'int', 1);

                
//request items using pagination
                
$sql .= " LIMIT ".(($page-1)*$perpage).", $perpage";
                
$result = $inDB->query($sql) ;

                
//search details, if needed
                
$search_details = '';
                if (isset(
$findsql)){
                    if (
$advsearch){
                        
$search_details = '<div class="uc_queryform"><strong>'.$_LANG['SEARCH_RESULT'].' - </strong> '.$_LANG['FOUNDED'].': '.$itemscount.' | <a href="/catalog/'.$cat['id'].'">'.$_LANG['CANCEL_SEARCH'].'</a></div>';
                    } else {
                        
$search_details = '<div class="uc_queryform"><strong>'.$_LANG['SEARCH_BY_TAG'].'</strong> "'.ucfirst($query).'" ('.$_LANG['MATCHES'].': '.$itemscount.') <a href="/catalog/'.$cat['id'].'">'.$_LANG['CANCEL_SEARCH'].'</a></div>';
                    }
                }

                
$items = array();
                while(
$item = $inDB->fetch_assoc($result)){
                    
$item['ratingdata'] = ratingData($item['id']);
                    
$item['fdata'] = unserialize($item['fieldsdata']);
                    
$item['price'] = number_format(shopDiscountPrice($item['id'], $item['category_id'], $item['price']), 2, '.', ' ');
                    
$item['rating'] = buildRating($item['ratingdata']['rating']);
                    
$item['is_new'] = isNew($item['id'], $cat['shownew'], $cat['newint']);
                    
$item['tagline'] = tagLine($item['tags'], $cat['id']);

                    
$item['can_edit'] = ($cat['can_edit'] && $is_cat_access && ($inUser->id == $item['user_id'])) || $inUser->is_admin;

                    
$item['fields'] = array();

                    if (
sizeof($fstruct)>0){
                        
$fields_show = 0;
                        foreach(
$fstruct as $key=>$value){
                            if (
$fields_show < $cat['fields_show']){

                                if (
$item['fdata'][$key]){

                                    if (
strstr($value, '/~h~/')){ $value = str_replace('/~h~/', '', $value); $is_html = true; } else { $is_html = false; }
                                    if (
strstr($value, '/~m~/')){
                                        
$value = str_replace('/~m~/', '', $value);
                                        
$makelink = true;
                                    } else {
$makelink = false; }
                                    if (!
$is_html){
                                        if (
strstr($value, '/~l~/')){
                                            if (@
$item['fdata'][$key]!=''){
                                                
$field = '<a class="uc_fieldlink" href="/load/url='.$item['fdata'][$key].'" target="_blank">'.str_replace('/~l~/', '', $value).'</a> ('.$inCore->fileDownloadCount($item['fdata'][$key]).')';
                                            }
                                        } else {
                                            if (
$makelink){
                                                
$field = $inCore->getUCSearchLink($cat['id'], null, $key, $item['fdata'][$key]);
                                            } else {
                                                
$field = $item['fdata'][$key];
                                            }
                                        }
                                    } else {                                        
                                        
$field = $item['fdata'][$key];
                                    }

                                    if (isset(
$query)) { if (@strstr($query, $fdata[$key]) || @strstr($fdata[$key], $query)) { $field .= '<span class="uc_findsame"> &larr; <i>'.$_LANG['MATCHE'].'</i></span>';} }
                                    
$fields_show++;

                                    
$item['fields'][stripslashes($value)] = stripslashes($field);

                                }

                            } else { break; }
                        }
                    }

                    
$items[] = $item;
                }

                if (!
$pagemode){
                    
$pagebar = cmsPage::getPagebar($itemscount, $page, $perpage, '/catalog/'.$catid.'-%page%');
                } else {

                    if (
$pagemode=='findfirst'){
                        
$pagebar = cmsPage::getPagebar($itemscount, $page, $perpage, '/catalog/'.$catid.'-%page%/find-first/'.urlencode($query));
                    }

                    if (
$pagemode=='find'){
                        
$pagebar = cmsPage::getPagebar($itemscount, $page, $perpage, '/catalog/'.$catid.'-%page%/find/'.urlencode($query));
                    }

                }

                
$smarty->assign('cfg', $cfg);
                
$smarty->assign('page', $page);
                
$smarty->assign('search_details', $search_details);
                
$smarty->assign('fstruct', $fstruct);
                
$smarty->assign('items', $items);
                
$smarty->assign('pagebar', $pagebar);
            }

        

        } else { 
cmsCore::error404(); }

        return 
true;




?>
Онлайн: 0
Реклама