listVotedProductSlider

boboo

Avatar: boboo

2014-11-23 19:10

A taki sobie pluginek na bazie sliderProducts by OpenSolution.
Aby działał poprawnie, konieczne jest wcześniejsze zainstalowanie dodatku "productsVotes", bo plugin ma w założeniu puszczać w slider zadaną ilość produktów, które mają najwyższe "gwiazdkowe" noty.

Aby zainstalować, bierzemy plugin sliderProducts ze strony OpenSolution i instalujemy go prawie w całości według przykazań.
2 wyjątki:
funkcję listProductsSlider() z oryginalnego pluginu zamieniamy na tę:

/**
  * List voted products for slider
  * @return string
  */
public function listVotedProductsSlider(){
 global 
$lang,$config;
 
$oFile=Files::getInstance();
 
$content=null;
 if(isset(
$this->aProducts)){
  foreach(
$this->aProducts as $iKey=>$aValue){ // tworzymy array z ID produktu i średnią głosów
   
$aVotedProducts[$iKey]=isset($aValue['iAvarageVotes'])?$aValue['iAvarageVotes']/$aValue['iVotesCount']:0;
  }
  
arsort($aVotedProducts); // sortujemy od najwyższej średniej głosów z zachowaniem ID produktu
  
$aVotedProducts=array_slice($aVotedProducts,0,3,true); // bierzemy 3 górne produkty (lub ile tam chcemy - wtedy odpowiednio zmienić "3" na inną liczbę)
  
$i=0;
  
$sBasketPage=(!empty($config['basket_page'])&&isset($oPage->aPages[$config['basket_page']]))?$oPage->aPages[$config['basket_page']]['sLinkName']:null;
  foreach(
$aVotedProducts as $iProduct=>$fValue){ // dla tych 3 wybranych produktów tworzymy boxy do slidera
   
$aData=$this->aProducts[$iProduct];
    
$content.='<div class="l'.(($i%2)?0:1).'">'.$oFile->getDefaultImage($aData['iProduct'],2,true,$aData['sLinkName']).'<h2><a href="'.$aData['sLinkName'].'">'.$aData['sName'].'</a></h2>';
    if(!empty(
$aData['sDescriptionShort'])){
     
$aData['sDescriptionShort']=changeTxt($aData['sDescriptionShort'],'nlNds');
     
$content.='<div class="description">'.$aData['sDescriptionShort'].'</div>';
    }
    if(
is_numeric($aData['mPrice'])){
     
$content.='<div class="price"><em>'.$lang['Price'].':</em><strong>'.displayPrice($aData['mPrice']).'</strong><span>'.$config['currency_symbol'].'</span></div>';
     if(isset(
$sBasketPage)){
      
$content.='<div class="basket"><a href="'.$sBasketPage.'&iProductAdd='.$aData['iProduct'].'&iQuantity=1" rel="nofollow" title="'.$lang['Basket_add'].': '.$aData['sName'].'">'.$lang['Basket_add'].'</a></div>';
     }
    }
    else{
     
$content.='<div class="noPrice"><strong>'.$aData['mPrice'].'</strong></div>';
    }
    
$content.='</div>';
    
$i++;
  }
 }
 if(isset(
$content)){
  return 
'<div id="productsSlider"><a title="" href="#" class="prev"></a><div class="slides">'.$content.'</div><a title="" href="#" class="next"></a></div>';
 }
// end function listVotedProductsSlider



oraz zamieniamy:
echo $oProduct->listProductsSlider( ); // products in slider
na:
echo $oProduct->listVotedProductsSlider( ); // products in slider

Jak się komuś chce zrobić ładną instrukcję na wzór OS, to proszę bardzo.

» Quick.Cart v6.x

boboo :-)

Do góry
o nas | kontakt