0

ホームページに新しく追加された製品を表示するモジュールを使用しています。このリストに販売された製品が含まれないように、モジュールをカスタマイズする必要があります。つまり、新品と見なされる日数が経過する前に商品が在庫切れの場合、この商品はリストに表示されません。

を使用してビュー部分で実行できます{if $product.quantity < 0}{/if}が、私の目標はコントローラーで実行することです。これが私のコードです:

function hookHome($params)
        {
        global $smarty, $cookie;


          $nb = intval(Configuration::get('HOME_NEW_PRODUCTS_NBR'));
        $rand = intval(Configuration::get('HOME_NEW_PRODUCTS_RANDOM'));
        if ($rand == 1) {
          $products = Product::getNewProducts(intval($cookie->id_lang), 0, $nb); 
        if ( $products )
        {
        shuffle($products);
        array_slice($products, ($nb ? $nb : 10));
        }
        }
        else 
        {
          $products = Product::getNewProducts(intval($cookie->id_lang), NULL - 0, (intval($nb ? $nb : 4)), false, NULL, NULL);
        }       
        $smarty->assign(array(
    ....
        'products' => $products,
    ....
    );
        return $this->display(__FILE__, 'homenewproducts.tpl');
        }

ProductメソッドgetNewProductsが在庫切れの製品を除外することを考慮に入れるように、クラスをオーバーライドするにはどうすればよいですか?

または、少なくとも、$productsPHP を使用して数量 =0 の製品から削除するにはどうすればよいですか?

あなたの助けに感謝します。

4

1 に答える 1

2

さて、私が現在使用しているソリューションは次のとおりです。

では、 のメソッド内のproduct.phpSQL クエリを変更して、製品の在庫があるかどうかを考慮するようにしました。getNewProductsNewProductsController

AND 'quantity'!=02062 $sql->where('p.'quantity' != 0');行目と 2086行目に追加しました。プレスタショップ 1.6.0.6。

もちろん、クラス Product.php を変更するよりもオーバーライドすることをお勧めします。

お役に立てば幸いです。

于 2014-07-12T01:45:53.187 に答える