Originální verze generování náhodného produktu od Quick.Cart bohužel vypisuje pouze jediný produkt. Rozhodl jsem se tedy tento plugin rozšířit tak, aby generoval nastavitelný počet produktů. Tento počet je možné libovolně měnit z nastavení v menu a při zadání hodnoty 0 se box nezobrazí. Dále je upraven styl výpisu tak, aby se podobal boxu menu s nadpisem.
Čísla řádků odpovídají originálnímu Quick.Cart v3.4.
(upravené soubory ke stažení)
vložit do souboru core/products.php na řádek 324
/**
* Return random product
* @return string
* @param string $sFile
*/
function throwRandomProduct( $sFile = 'container.tpl' ){
$oTpl =& TplParser::getInstance( );
$oFile =& Files::getInstance( );
if( !isset( $oFile->aImagesDefault[2] ) ){
return null;
}
foreach( $oFile->aImagesDefault[2] as $iProduct => $iFile ){
if( isset( $this->aProducts[$iProduct] ) )
$aRandom[] = $iProduct;
}
if( isset( $aRandom ) && isset( $GLOBALS['config']['random_products'] ) ){
$iNumber = ( count($aRandom) < $GLOBALS['config']['random_products'] ) ? count( $aRandom ) : $GLOBALS['config']['random_products'];
if ( $iNumber==0 ) return null;
for( $i = 0; $i < $iNumber; $i++ ){
$iCount = count( $aRandom ) - 1;
$iId = rand( 0, $iCount );
$aData = $this->aProducts[$aRandom[$iId]];
$aRandom[$iId] = $aRandom[$iCount];
unset($aRandom[$iCount]);
$aDataImage = $oFile->aFilesImages[2][$oFile->aImagesDefault[2][$aData['iProduct']]];
$aData['iSizeValue1'] = $aDataImage['iSizeValue1'];
$aData['sFileName'] = $aDataImage['sFileName'];
$aData['sFileDescription'] = ( isset( $aDataImage['sFileDescription'] ) ) ? $aDataImage['sFileDescription'] : null;
$aData['sPrice'] = displayPrice( $aData['fPrice'] );
$aData['iStyle'] = $i;
$oTpl->setVariables( 'aData', $aData );
$content .= $oTpl->tbHtml( $sFile, 'RANDOM_PRODUCT' );
}
return $oTpl->tbHtml( $sFile, 'RANDOM_PRODUCT_HEAD' ).$content.$oTpl->tbHtml( $sFile, 'RANDOM_PRODUCT_FOOT' );
}
else
return null;
} // end function throwRandomProduct
vložit do souboru templates/container.tpl na řádek 124
<!-- BEGIN RANDOM_PRODUCT_HEAD --><div id="menuRP"><div class="type">$lang[random_products]</div><div id="boxRP"><!-- END RANDOM_PRODUCT_HEAD -->
<!-- BEGIN RANDOM_PRODUCT -->
<div id="randomProduct" class="l$aData[iStyle]">
<div class="photo"><a href="$aData[sLinkName]"><img src="$config[dir_files]$aData[iSizeValue1]/$aData[sFileName]" alt="$aData[sFileDescription]" /></a></div>
<h3><a href="$aData[sLinkName]">$aData[sName]</a></h3>
<div class="price"><strong>$aData[sPrice]</strong><span>$config[currency_symbol]</span></div>
</div>
<!-- END RANDOM_PRODUCT -->
<!-- BEGIN RANDOM_PRODUCT_FOOT --></div></div><!-- END RANDOM_PRODUCT_FOOT -->
vložit do souboru templates/themes/default.php na řádek 4
$sRandomProduct = $oProduct->throwRandomProduct();
vložit do souboru templates/container.tpl na řádek 66
$sRandomProduct
vložit do souboru templates/plugins.css na řádek 107
#menuRP{margin:2px 0 10px;}
#boxRP{margin:4px 0;padding:0 15px 2px;background:#f0efcd;text-align:center;}
#randomProduct{padding:10px 15px;border-top:1px solid #d1bd9d;}
#randomProduct .photo{margin:0 7px 5px 0;font-size:0px;line-height:0px;}
#randomProduct .photo img{border:2px solid #ddceb7;}
#randomProduct .photo a:hover img{border:2px solid #c7af87;}
#randomProduct h3{font-size:0.9em;}
#randomProduct a{text-decoration:none;}
#randomProduct a:hover{background:inherit;color:#d01c02;text-decoration:underline;}
#randomProduct .price{padding:2px 0 0;background:inherit;color:#f00;font-size:0.9em;}
#randomProduct strong{padding:0 2px 0 5px;font-weight:bold;}
#boxRP .l0{border-top:0;}
vložit do souboru config/lang_en.php na řádek 44
$config['random_products'] = 3;
vložit do souboru lang/en.php na řádek 207
$lang['random_products'] = "Náhodné produkty"; $lang['random_products_admin'] = "Počet náhodných produktů v boxu";
vložit do souboru templates/admin/settings.tpl na řádek 234
<tr>
<td>$lang[random_products_admin]</td>
<td>
<input type="text" name="random_products" value="$config[random_products]" size="3" maxlength="3" alt="int;-1" class="input" />
</td>
</tr>
Podmínkou použití tohoto pluginu je vložení zpětného odkazu na tento web do patičky obchodu ve formátu:
<a title="eFox.cz" href="http://efox.cz">Extended by <strong>eFox.cz</strong></a>
Vytisknout tento příspěvek


Září 21st, 2009 v 19:35
čus, díky moc i za tento plugin! jenom mi to háže pozadí, které zrovna nepotřebuji. Upravím to asi v souboru plugins.css, můžeš mě navést jaký je to řádek? zkoušel jsem snad všechny a nic… díky
Září 21st, 2009 v 19:42
Zdravím, je to v templates/plugins.css a pozadí boxu by mělo být #boxRP … background
Červen 29th, 2010 v 11:40
Zdravím,
šla by udělat nějak úprava tohoto pluginu, aby se zobrazovaly třeba 3 nejprodávanější produkty?
Červenec 8th, 2010 v 11:12
Také zdravím, určitě šla. Je to i zajímavý námět pro další plugin na web, jen co bude více času, podívám se na to.
Srpen 4th, 2010 v 20:29
Ahoj. Prosim te kde bych mohl zmenit velikost pisma??? Myslim toho popisu. Nemuzu to nikde najit.
Dik.
Jinak je to super
Srpen 7th, 2010 v 21:49
Velikost písma se změní pomocí stylu, pokud popisem myslíš název produktu, pak se jedná o řádek #randomProduct h3{font-size:0.9em;}