[Tep-j-general] Re: 特価商品におけるランダム数の変更

Back to archive index

Seiji Sogabe sogab****@alles*****
2005年 6月 9日 (木) 06:36:33 JST


曽我部です。

osc_298 wrote:
> 今回お聞きしたいことは、/includes/boxes/specials.phpで、ランダムに表示される数は1と思いますが、
> これを2や3にする場合はどうしたら宜しいでしょうか?

catalog/includes/functions/general.phpの最後に、

> ////
> // Return a random rows from a database query
>   function tep_random_select2($query, $num = 1) {
>     $random_products = array();
>     $random_query = tep_db_query($query);
>     $num_rows = tep_db_num_rows($random_query);
>     if ($num_rows >= $num) {
>       $i = 0;
>       while ($i < $num) {
>         $random_row = tep_rand(0, ($num_rows - 1));
>         tep_db_data_seek($random_query, $random_row);
>         $random_product = tep_db_fetch_array($random_query);
>         if (in_array($random_product, $random_products)) {
>           continue;
>         } else {
>           $random_products[] = $random_product;
>           $i++;
>         }
>       }
>     }
>     
>     return $random_products;
>   }  

を追加。

catalog/includes/boxes/specials.php

12行目に以下を追加。

> define('SPECIAL_PRODUCTS_NUM', 2); // 表示する特価商品の数

13行目の

>   if ($random_product = tep_random_select(
を
>   if ($random_products = tep_random_select2(

> . MAX_RANDOM_SELECT_SPECIALS)) {
を
> . MAX_RANDOM_SELECT_SPECIALS, SPECIAL_PRODUCTS_NUM)) {
に変更。

25行目の
>     $info_box_contents[] = array('align' => 'center',
の前に
>     foreach ($random_products as $random_product) {
を追加。

28行目の
>     new infoBox($info_box_contents);
の前に
>     }
を追加。

でどうでしょうか。

変更イメージがわかりにくいので、specials.phpをZIP圧縮したものを
http://bacons.ddo.jp/download/specials.zip
に置きました。

# SPECIAL_PRODUCTS_NUMは、特価商品数の登録数や特価商品表示数以下である必要があります。

では。

-- 
sogab****@alles*****




Tep-j-general メーリングリストの案内
Back to archive index