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