Jump to content

Wyłączenie produktów z kategorii z wyświetlania w nowosciach


przemx

Recommended Posts

ok, dzięki,

w tym celu trzeba zmodyfikować zapytanie sql, niestety nie ma innej opcji.

 

w pliku classes/Product.php jest funkcja o nazwie:

public static function getNewProducts($id_lang, $page_number = 0, $nb_products = 10,
		$count = false, $order_by = null, $order_way = null, Context $context = null)

wewnątrz jest kod z zapytaniem sql:
 

$sql = 'SELECT COUNT(p.`id_product`) AS nb
					FROM `'._DB_PREFIX_.'product` p
					'.Shop::addSqlAssociation('product', 'p').'
					WHERE product_shop.`active` = 1
					AND product_shop.`date_add` > "'.date('Y-m-d', strtotime('-'.(Configuration::get('PS_NB_DAYS_NEW_PRODUCT') ? (int)Configuration::get('PS_NB_DAYS_NEW_PRODUCT') : 20).' DAY')).'"
					'.($front ? ' AND product_shop.`visibility` IN ("both", "catalog")' : '').'
					AND p.`id_product` IN (
						SELECT cp.`id_product`
						FROM `'._DB_PREFIX_.'category_group` cg
						LEFT JOIN `'._DB_PREFIX_.'category_product` cp ON (cp.`id_category` = cg.`id_category`)
						WHERE cg.`id_group` '.$sql_groups.'
					)';

trzeba dodać warunek do klauzuli WHERE który pominie kategorie

WHERE cg.`id_group` '.$sql_groups.' AND p.`id_category` NOT IN (3,4,6,8)

 

gdzie 3,4,6,8 to numery identyfikacyjne kategorii które chcesz pominąć - możesz dodać tyle ile chcesz kategorii, możesz zdefiniować tylko jedną, wszystko zależy od Ciebie ;)

Link to comment
Share on other sites

  • 7 months later...

Próbuję wykonać taką operację na wersji 1.6 i coś nie mogę wyszukać tego zapytania.. Mógł byś powiedzieć gdzie dokładnie ma być to zapytanie?

 

Pogmerałem troche:

$sql_groups = 'AND p.`id_product` IN (
                SELECT cp.`id_product`
                FROM `'._DB_PREFIX_.'category_group` cg
                LEFT JOIN `'._DB_PREFIX_.'category_product` cp ON (cp.`id_category` = cg.`id_category`)
                WHERE cg.`id_group` '.(count($groups) ? 'IN ('.implode(',', $groups).')' : '= 1').'  AND cp.`id_category` NOT IN (44,54,55,56,57,58)
            )';

U mnie to wygląda tak i działa :)

Edited by ufiartist (see edit history)
Link to comment
Share on other sites

  • 6 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...