Я использую модуль, который отображает новые добавленные продукты на домашней странице. Мне нужно настроить модуль так, чтобы в этом списке не было проданных товаров. Другими словами, если товар отсутствует на складе до истечения срока, в течение которого он считается новым, то не показывать этот товар в списке.
Я могу сделать это в части представления, используя {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?
Ваша помощь приветствуется.