2014-07-11 82 views
0

我正在使用在主頁中顯示新增產品的模塊。我需要自定義模塊,以便該列表不包含銷售的產品。換句話說,如果產品在被限制的天數之前缺貨,則新產品已經結束,則不要在列表中顯示該產品。從新產品列表中排除缺貨產品 - Prestashop

我可以在視圖部分使用{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考慮排除產品脫銷?

或者至少,我如何從$products中刪除數量= 0的產品使用PHP?

您的幫助表示讚賞。

回答

2

好了,我現在使用的解決方案是:

product.php,我改變了SQL查詢中getNewProducts方法中的NewProductsController,使其考慮到如果產品在股票

我添加可用第2086行的AND 'quantity'!=0和第2086行的$sql->where('p.'quantity' != 0');。 Prestashop 1.6.0.6。

當然,最好覆蓋類Product.php而不是修改它。

我希望它能提供幫助。