lastProduct v0.6 plus

Quick.Cart    Add comments

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 Licence Creative Commons

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>




Leave a Reply

Premium Wordpress Themes by Natty WP. Web Hosting
Images by our golf tips desEXign.