randomProduct v0.5 plus

Quick.Cart   535 views Add comments

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>
1 Star2 Stars3 Stars4 Stars5 Stars (2 votes, average: 3,00 out of 5)
Loading ... Loading ...
Vytisknout tento příspěvek Vytisknout tento příspěvek


6 Responses to “randomProduct v0.5 plus”

  1. Trambus napsal: | Odpovědět

    č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

    • admin napsal: | Odpovědět

      Zdravím, je to v templates/plugins.css a pozadí boxu by mělo být #boxRP … background

  2. Jay Gridley napsal: | Odpovědět

    Zdravím,
    šla by udělat nějak úprava tohoto pluginu, aby se zobrazovaly třeba 3 nejprodávanější produkty?

    • admin napsal: | Odpovědět

      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.

  3. tommy napsal: | Odpovědět

    Ahoj. Prosim te kde bych mohl zmenit velikost pisma??? Myslim toho popisu. Nemuzu to nikde najit.
    Dik.
    Jinak je to super

    • admin napsal: | Odpovědět

      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;}

Leave a Reply

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