Originální verze výpisu novinek od Quick.Cart bohužel obsahuje pouze výpis jediné položky. Tento plugin jsem se rozhodl rozšířit tak, aby dokázal vypsat libovolný počet pozic a zároveň v nich náhodně dokázal zobrazovat i libovolný počet produktů. Velikost obou parametrů je možné jednoduše měnit z nastavení v menu, pro počet pozic je směrodatná nižší hodnota z obou a při zadání hodnoty 0 se box nezobrazí. I zde 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 last product
* @return string
* @param string $sFile
*/
function throwLastProduct( $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] ) )
$aLast[] = $iProduct;
}
if ( isset( $aLast ) && isset( $GLOBALS['config']['last_products'] ) && isset( $GLOBALS['config']['last_products_count'] ) ){
$iNumber = ( count( $aLast ) < $GLOBALS['config']['last_products'] ) ? count( $aLast ) : $GLOBALS['config']['last_products'];
$iCount = ( count( $aLast ) < $GLOBALS['config']['last_products_count'] ) ? count( $aLast ) : $GLOBALS['config']['last_products_count'];
$iNumber = ( $iCount < $iNumber ) ? $iCount : $iNumber;
$iCount--;
if ( $iNumber==0) return null;
sort($aLast);
$aLast = array_reverse($aLast);
for ( $i = 0; $i < $iNumber; $i++ ){
$iId = rand( 0, $iCount );
$aData = $this->aProducts[$aLast[$iId]];
$aLast[$iId] = $aLast[$iCount];
$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, 'LAST_PRODUCT' );
}
return $oTpl->tbHtml( $sFile, 'LAST_PRODUCT_HEAD' ).$content.$oTpl->tbHtml( $sFile, 'LAST_PRODUCT_FOOT' );
}
else
return null;
} // end function throwLastProduct
vložit do souboru templates/container.tpl na řádek 124
<!-- BEGIN LAST_PRODUCT_HEAD --><div id="menuRP"><div class="type">$lang[last_products]</div><div id="boxRP"><!-- END LAST_PRODUCT_HEAD -->
<!-- BEGIN LAST_PRODUCT -->
<div id="lastProduct" 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 LAST_PRODUCT -->
<!-- BEGIN LAST_PRODUCT_FOOT --></div></div><!-- END LAST_PRODUCT_FOOT -->
vložit do souboru templates/themes/default.php na řádek 4
$sLastProduct = $oProduct->throwLastProduct();
vložit do souboru templates/container.tpl na řádek 66
$sLastProduct
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;}
#lastProduct{padding:10px 15px;border-top:1px solid #d1bd9d;}
#lastProduct .photo{margin:0 7px 5px 0;font-size:0px;line-height:0px;}
#lastProduct .photo img{border:2px solid #ddceb7;}
#lastProduct .photo a:hover img{border:2px solid #c7af87;}
#lastProduct h3{font-size:0.9em;}
#lastProduct a{text-decoration:none;}
#lastProduct a:hover{background:inherit;color:#d01c02;text-decoration:underline;}
#lastProduct .price{padding:2px 0 0;background:inherit;color:#f00;font-size:0.9em;}
#lastProduct 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['last_products'] = 3; $config['last_products_count'] = 5;
vložit do souboru lang/en.php na řádek 207
$lang['last_products'] = "Noviny"; $lang['last_products_admin'] = "Počet pozic novinek v boxu"; $lang['last_products_count_admin'] = "Počet náhodných novinek v boxu";
vložit do souboru templates/admin/settings.tpl na řádek 234
<tr> <td>$lang[last_products_admin]</td> <td> <input type="text" name="last_products" value="$config[last_products]" size="3" maxlength="3" alt="int;-1" class="input" /> </td> </tr> <tr> <td>$lang[last_products_count_admin]</td> <td> <input type="text" name="last_products_count" value="$config[last_products_count]" size="3" maxlength="3" alt="int;-1" class="input" /> </td> </tr>
Uvedená práce (dílo) podléhá licenci Creative Commons Attribution-ShareAlike 3.0
To znamená, že kód (dílo) smíte šířit (kopírovat, distribuovat a sdělovat dílo veřejnosti) a upravovat (pozměňovat, doplňovat, využívat celé nebo částečně v jiných dílech). Za podmínek uvedení autora (uvedení odkazu, viz níže) a zachování licence.
Uvedení odkazu: na každé stránce generované obchodem (či jiným systémem), ve kterém byl kód použit, musí být uveden viditelný odkaz na web eFox.cz ve formátu:
<a title="eFox.cz" href="http://efox.cz">Extended by <strong>eFox.cz</strong></a>


Recent Comments