'') { $action=$pst[0]; } if (intval(@$pst[0])>0) { $action='show'; } if (isset($_GET['action'])) { $action=$_GET['action']; } if (isset($_POST['action'])) { $action=$_POST['action']; } //обратная навигация $mas_back_nav=array(); $mas_back_nav[]=array('name'=>'Отзывы','link'=>'/reviews/'); $smarty->assign('toptitle','Отзывы пользователей - '._SHOT_TOP_DESC_); //номер страницы $pagenamb=(@$_GET['page']); // ---------- Выводим производителей --------------- // $smarty->assign('mas_vendors',list_vendors()); // -------- Экспорт новостей -------- // //$smarty->assign('mas_news_block',get_sibnet_articles(4)); $smarty->assign('mas_pickup',get_pickup(3)); $smarty->assign('link_img_s','/upload/reviews_s/'); $smarty->assign('link_img_m','/upload/reviews_m/'); $smarty->assign('link_img_l','/upload/reviews_l/'); $smarty->assign('link_img','/reviews.php?'); // // выбираем пожожие отзывы // function get_similar_reviews($id,$modelid,$kuzov,$god,$limit=4){ $modelid=intval($modelid); $id=intval($id); $kuzov=intval($kuzov); $god=intval($god); $limit=intval($limit); if (!($modelid>0)) { return false; } $sql_kuz=''; if ($kuzov>0) { $sql_kuz="IF(car.kuzov=".$kuzov.",1,0) DESC,"; } $DB=$GLOBALS['DB']; $mas=array(); $q="SELECT car.img,car.id,car.god,car.ctcomments,car.ctvote, vendors.name AS vendor, model.name AS model FROM reviews AS car " . " INNER JOIN vendors ON (vendors.id=car.vendorid) ". " INNER JOIN car_model AS model ON (model.id=car.modelid) " . " WHERE car.id<>".$id." AND publ>0 ORDER BY IF(car.modelid=".$modelid.",1,0) DESC,".$sql_kuz." IF(ABS(car.god-".$god.")<2,1,0) DESC LIMIT ".$limit; $res=$DB->query($q); while ($row=$DB->nextRow($res)){ $mas[]=$row; } return $mas; } switch ($action) { default: $param=array(); $page_name='Отзывы'; $qr_str='/reviews/'; //если запрашивают отзыввы фильтром if (@$_GET['subaction']=='search') { $param=array('vendorid'=>@$_GET['vendorid'],'modelid'=>@$_GET['modelid']); $page_name='Найденные отзывы'; //для сортировки $qr_str=$_SERVER['QUERY_STRING']; $s=array("/&page=[0-9]*/","/&sort=[a-zA-Z0-9]*/","/&asc=[0-9]/"); $r=array(); $qr_str=preg_replace($s,$r,$qr_str); $qr_str='/reviews.php?'.$qr_str; //обратная навигация $mas_back_nav[]=array('name'=>'Результаты поиска','link'=>''); $smarty->assign('mas_back_nav',$mas_back_nav); } //если запрашивают отзывы по модели if ($pst[0]=='model') { $qm="SELECT car_model.id AS modelid,car_model.name AS model, vendors.id AS vendorid,vendors.name AS vendor FROM car_model INNER JOIN vendors ON (vendors.id=car_model.vendorid) WHERE car_model.id=".intval($pst[1])." LIMIT 1"; $resm=$DB->query($qm); $rowm=$DB->nextRow($resm); if ($rowm['modelid']>0) { $param=array('modelid'=>array($rowm['modelid'])); $page_name='Отзывы '.$rowm['vendor'].' '.$rowm['model'].' '; $smarty->assign('toptitle','Отзывы пользователей о '.$rowm['vendor'].' '.$rowm['model'].' - '._SHOT_TOP_DESC_); } //для сортировки $qr_str='/reviews/model/'.$rowm['modelid'].'/'; //обратная навигация $mas_back_nav[]=array('name'=>$rowm['vendor'],'link'=>'/reviews/vendor/'.$rowm['vendorid'].'/'); $mas_back_nav[]=array('name'=>$rowm['model'],'link'=>''); $smarty->assign('mas_back_nav',$mas_back_nav); } //если запрашивают отзывы по производителю if ($pst[0]=='vendor') { $qm="SELECT vendors.id AS vendorid,vendors.name AS vendor FROM vendors WHERE id=".intval($pst[1])." LIMIT 1"; $resm=$DB->query($qm); $rowm=$DB->nextRow($resm); if ($rowm['vendorid']>0) { $param=array('vendorid'=>array($rowm['vendorid'])); $page_name='Отзывы '.$rowm['vendor']; } //для сортировки $qr_str='/reviews/vendor/'.$rowm['vendorid'].'/'; //обратная навигация $mas_back_nav[]=array('name'=>$rowm['vendor'],'link'=>''); $smarty->assign('mas_back_nav',$mas_back_nav); $smarty->assign('toptitle','Отзывы пользователей о '.$rowm['vendor'].' - '._SHOT_TOP_DESC_); } //подключаем каталожный обработчик фильтра require("../inc/catalog.class.php"); $cat_filtr=new cat_filtr(); $cat_filtr->param=$param; $sql=$cat_filtr->cars(); $sql=str_replace('car.','reviews.',$sql); //if ($sql<>'') { $sql="WHERE ".substr($sql,4); } // ------- сотрировка ------------ $sort=in_text(@$_GET['sort']); $asc=intval(@$_GET['asc']); $pagenamb=intval(@$_GET['page']); if ($sort=='') { $sort='date'; } if ($asc==1) { $q_asc=" ASC "; } else { $q_asc=" DESC "; } $q_sort=''; if ($sort=='date') { $q_sort=" ORDER BY reviews.id ".$q_asc; } elseif ($sort=='name') { $q_sort=" ORDER BY vendor ".$q_asc.",model ".$q_asc; } elseif ($sort=='god') { $q_sort=" ORDER BY reviews.god ".$q_asc; } elseif ($sort=='user') { $q_sort=" ORDER BY users.login ".$q_asc; } elseif ($sort=='views') { $q_sort=" ORDER BY reviews.ctview ".$q_asc; } elseif ($sort=='rate') { $q_sort=" ORDER BY reviews.votesum ".$q_asc; } $qr_str_forpage=$qr_str.'&sort='.$sort.'&asc='.$asc.'&'; $qr_str_sort=$qr_str.'&page='.$pagenamb.'&'; $smarty->assign('q_string',$qr_str_sort); $smarty->assign('sort',$sort); // ------- постраничная ------------------ // $qt="SELECT COUNT(*) AS total FROM reviews WHERE publ>0 ".$sql." LIMIT 1"; $maspage=pagebegin($qt,20,$pagenamb,$qr_str_forpage); $pagesqllim=$maspage['pagelim']; $smarty->assign('pagenav',$maspage["maspage"]); $smarty->assign('total',$maspage["total"]); $mas=array(); $q="SELECT reviews.id,reviews.img,reviews.vendorid,reviews.modelid,reviews.publ,reviews.date,reviews.god,reviews.engine,reviews.kuzov,reviews.transmission,reviews.drive_type,reviews.fuel_type,reviews.ctcomments,reviews.ctview,reviews.votesum, users.login,vendors.name AS vendor,vendors.link AS vendor_link,car_model.name AS model,car_model.link AS model_link FROM reviews INNER JOIN users ON (users.id=reviews.userid) INNER JOIN vendors ON (vendors.id=reviews.vendorid) INNER JOIN car_model ON (car_model.id=reviews.modelid) WHERE reviews.publ>0 ".$sql.$q_sort.$pagesqllim; $res=$DB->query($q); while ($row=$DB->nextRow($res)) { $mas[]=$row; } //выводим последнии статьи $mas_articles=get_articles(10); $smarty->assign('mas_articles_block',$mas_articles); $smarty->assign('page_name',$page_name); $smarty->assign('mas_reviews',$mas); $smarty->display('reviews/reviews.tpl'); break; // -------------------------------------------------------------------------------- // // -------------------- Просмотр отзыва ----------------------------------- // // -------------------------------------------------------------------------------- // case 'show': $id=intval($pst[0]); $q="SELECT reviews.*,users.login,users.id AS usrid, vendors.name AS vendor,vendors.link AS vendor_link,car_model.name AS model,car_model.link AS model_link,car_model.img AS model_img FROM reviews INNER JOIN users ON (users.id=reviews.userid) INNER JOIN vendors ON (vendors.id=reviews.vendorid) INNER JOIN car_model ON (car_model.id=reviews.modelid) WHERE reviews.id=".$id." LIMIT 1"; $res=$DB->query($q); $row=$DB->nextRow($res); if ($row['id']>0) { $mas_back_nav[]=array('name'=>$row['vendor'],'link'=>'/reviews/vendor/'.$row['vendorid'].'/'); $mas_back_nav[]=array('name'=>$row['model'],'link'=>'/reviews/model/'.$row['modelid'].'/'); $mas_back_nav[]=array('name'=>'Отзыв о '.$row['vendor'].' '.$row['model'].' '.$row['god'],'link'=>''); $smarty->assign('mas_back_nav',$mas_back_nav); //метатеги $smarty->assign('toptitle','Отзыв о '.$row['vendor'].' '.$row['model'].' • Sibnet.ru'); $smarty->assign('des','Отзыв о '.$row['vendor'].' '.$row['model']); $smarty->assign('keyw','Отзыв '.$row['vendor'].' '.$row['model']); // ------------- Беру картинки --------------------- // $mas_foto=array(); $qi="SELECT * FROM reviews_img WHERE recid=".intval($row['id'])." LIMIT 5"; $resi=$DB->query($qi); while ($rowi=$DB->nextRow($resi)) { $mas_foto[]=$rowi; } $smarty->assign('mas_foto',$mas_foto); $smarty->assign('link_img','/reviews.php?'); // ------------- беру модели из каталолга к которым привязан отзыв $mas_cat_car=array(); $qm="SELECT modelid,MAX(car.cost) AS cost_to,MIN(car.cost) AS cost_from,car.kuzov FROM car_cat AS car WHERE car.modelid=".intval($row['modelid'])." GROUP BY car.modelid LIMIT 5"; $resm=$DB->query($qm); while ($rowm=$DB->nextRow($resm)) { $mas_cat_car[]=array( 'vendor'=>$row['vendor'],'vendor_link'=>$row['vendor_link'], 'model'=>$row['model'],'model_link'=>$row['model_link'], 'img'=>$row['model_img'], 'modeliddsd'=>$rowm['modelid'], 'cost_from'=>$rowm['cost_from'], 'cost_to'=>$rowm['cost_to'], 'kuzov'=>$rowm['kuzov']); } $smarty->assign('mas_models_block',$mas_cat_car); //---------------- беру авто из доски к которым привязан отзыв ---- // $mas_cars=array(); $qm="SELECT id,modelid,kuzov,cost,img,cityid FROM car_sale WHERE modelid=".intval($row['modelid'])." AND publ>0 ORDER BY date DESC LIMIT 5"; $resm=$DB->query($qm); while ($rowm=$DB->nextRow($resm)) { $mas_cars[]=array( 'vendor'=>$row['vendor'],'vendor_link'=>$row['vendor_link'], 'model'=>$row['model'],'model_link'=>$row['model_link'], 'modelid'=>$rowm['modelid'], 'id'=>$rowm['id'], 'img'=>$rowm['img'], 'kuzov'=>$rowm['kuzov'], 'cityid'=>$rowm['cityid'], 'cost'=>$rowm['cost']); } $smarty->assign('mas_cars_block',$mas_cars); // ------------ беру статьи о аналогичной модели $mas_article=array(); $qa="SELECT article.id,article.date,article.name,article.anons,article.ctview,article.ctcomments FROM article_link As link INNER JOIN article ON (article.id=link.articleid) WHERE link.modelid=".intval($row['modelid'])." ORDER BY link.modelid DESC LIMIT 5"; $resa=$DB->query($qa); while ($rowa=$DB->nextRow($resa)) { $rowa['modelid']=$row['modelid']; $rowa['model']=$row['model']; $rowa['vendorid']=$row['vendorid']; $rowa['vendor']=$row['vendor']; $mas_article[]=$rowa; } $smarty->assign('mas_articles_block',$mas_article); //проверяю голосовал ли юзер за данную работу $qv="SELECT recid FROM reviews_vote WHERE userid="._USERID_." AND recid=".intval($row['id'])." LIMIT 1"; $resv=$DB->query($qv); $rowv=$DB->nextRow($resv); //массив для голосов $smarty->assign('vote',array('recid'=>$row['id'],'ctvote'=>$row['ctvote'],'votesum'=>$row['votesum'],'vote'=>intval($rowv['recid']))); //комментарии с постраничной $pagenamb=@$_GET['page']; $smarty->assign('pagenamb',$pagenamb); $mas_comments=show_comments($row['commentsid'],$row['ctcomments'],10,$pagenamb,'/reviews/'.$row['id'].'/&'); $smarty->assign('pagenav',$mas_comments["maspage"]); $smarty->assign('mas_comments',$mas_comments['comments']); $smarty->assign('mas_forum',get_sibnet_forum(5)); $smarty->assign('mas_similar_reviews',get_similar_reviews($row['id'],$row['modelid'],$row['kuzov'],$row['god'],4)); $smarty->assign('review',$row); $smarty->display('reviews/review_show.tpl'); add_one_views('reviews',$row['id']); } else { $mas_back_nav[]=array('name'=>'Отзыва не существует ','link'=>''); $smarty->assign('mas_back_nav',$mas_back_nav); $smarty->display('reviews/review_error.tpl'); } break; } require("../inc/bottom.php"); ?>