Jump to content

Bloc Navigation à facette / product-sort.tpl => Problème ORDERBY 'position'


abigael

Recommended Posts

Bonsoir,

 

Je me permet de laisser un topic sur le forum au cas où quelqu'un aurait le même problème que moi.

 

Je suis actuellement en 1.4.3. Lorsque je suis dans une catégorie, le tri des produits généré par le fichier product-sort (tri par prix, ordre alphabétique, etc) fonctionne parfaitement ainsi lorsque j'utilise la navigation à facette le tri reste actif. SAUF quand je sélectionne ranger mes produits par leur ordre dans la catégorie... soit 'position' .

Lorsque je choisi ce tri cela me range mes produits dans l'ordre croissant de leur ID.

 

Je ne sais pas si je suis claire. Si ce n'est pas le cas j'en suis désolée. Mais j'aimerai vraiment corriger cette erreur sans à avoir à télécharger une nouvelle version de prestashop.

 

 

Quelqu'un aurait il une solution ou des idées à me suggérer ?

 

Merci

Link to comment
Share on other sites

Bonjour,

 

Le module block navigation à facettes de la version 1.4.3 est buggée (Il n'était qu'en version béta)...

Je vous recommande de passer à la 1.4.5 qui propose le module terminé et opérationnel à 100%

 

Attention, le module de la 1.4.5 ne fonctionne que sur un Prestashop 1.4.5

 

V++

 

Atch

Link to comment
Share on other sites

justement je veux éviter la mise à jour. Puis j'ai juste une chose à corriger sur ce module c'est pour ça que j'espèrerais une solution miracle.

 

Pourriez vous détailler votre crainte concernant une mise à jour éventuelle?

 

V++

 

Atch

Link to comment
Share on other sites

Le site est déjà en ligne. J'ai fait beaucoup de modifications interne déjà. ( oui c'est mal je sais ) . J'ai nettoyé pas mal le code aussi en suivant les recommandations de google speed. J’espérais aussi qu'en corrigeant simplement l'erreur que j'ai, cela soit plus rapide.

Link to comment
Share on other sites

Essayez de remplacer dans blocklayered.php à la ligne 739 :

 

 

$this->products = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('
SELECT p.id_product, p.on_sale, p.out_of_stock, p.available_for_order, p.quantity, p.minimal_quantity, p.id_category_default, p.customizable, p.show_price, p.`weight`,
p.ean13, pl.available_later, pl.description_short, pl.link_rewrite, pl.name, i.id_image, il.legend,  m.name manufacturer_name, p.condition, p.id_manufacturer,
DATEDIFF(p.`date_add`, DATE_SUB(NOW(), INTERVAL '.(Validate::isUnsignedInt(Configuration::get('PS_NB_DAYS_NEW_PRODUCT')) ? Configuration::get('PS_NB_DAYS_NEW_PRODUCT') : 20).' DAY)) > 0 AS new
FROM '._DB_PREFIX_.'product p
LEFT JOIN '._DB_PREFIX_.'product_lang pl ON (pl.id_product = p.id_product)
LEFT JOIN '._DB_PREFIX_.'image i ON (i.id_product = p.id_product AND i.cover = 1)
LEFT JOIN '._DB_PREFIX_.'image_lang il ON (i.id_image = il.id_image AND il.id_lang = '.(int)($cookie->id_lang).')
LEFT JOIN '._DB_PREFIX_.'manufacturer m ON (m.id_manufacturer = p.id_manufacturer)
WHERE p.`active` = 1 AND pl.id_lang = '.(int)$cookie->id_lang.$queryFilters
.' ORDER BY '.Tools::getProductsOrder('by', Tools::getValue('orderby')).' '.Tools::getProductsOrder('way', Tools::getValue('orderway'))
.' LIMIT '.(((int)Tools::getValue('p', 1) - 1) * $n.','.$n));

 

par :

 

 

if(Tools::getValue('orderby') == 'position' OR Tools::getValue('orderby') == 'price')
{
$this->products = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('
SELECT p.id_product, p.on_sale, p.out_of_stock, p.available_for_order, p.quantity, p.minimal_quantity, p.id_category_default, p.customizable, p.show_price, p.`weight`,
p.ean13, pl.available_later, pl.description_short, pl.link_rewrite, pl.name, i.id_image, il.legend,  m.name manufacturer_name, p.condition, p.id_manufacturer,
DATEDIFF(p.`date_add`, DATE_SUB(NOW(), INTERVAL '.(Validate::isUnsignedInt(Configuration::get('PS_NB_DAYS_NEW_PRODUCT')) ? Configuration::get('PS_NB_DAYS_NEW_PRODUCT') : 20).' DAY)) > 0 AS new
FROM '._DB_PREFIX_.'category_product cp
LEFT JOIN '._DB_PREFIX_.'product p ON p.id_product = cp.id_product
LEFT JOIN '._DB_PREFIX_.'product_lang pl ON (pl.id_product = p.id_product)
LEFT JOIN '._DB_PREFIX_.'image i ON (i.id_product = p.id_product AND i.cover = 1)
LEFT JOIN '._DB_PREFIX_.'image_lang il ON (i.id_image = il.id_image AND il.id_lang = '.(int)($cookie->id_lang).')
LEFT JOIN '._DB_PREFIX_.'manufacturer m ON (m.id_manufacturer = p.id_manufacturer)
WHERE cp.id_category = '.$parent->id_category.' AND p.`active` = 1 AND pl.id_lang = '.(int)$cookie->id_lang.$queryFilters
.' ORDER BY '.Tools::getProductsOrder('by', Tools::getValue('orderby')).' '.Tools::getProductsOrder('way', Tools::getValue('orderway')) 
.' LIMIT '.(((int)Tools::getValue('p', 1) - 1) * $n.','.$n));
}
else
{
$this->products = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('
SELECT p.id_product, p.on_sale, p.out_of_stock, p.available_for_order, p.quantity, p.minimal_quantity, p.id_category_default, p.customizable, p.show_price, p.`weight`,
p.ean13, pl.available_later, pl.description_short, pl.link_rewrite, pl.name, i.id_image, il.legend,  m.name manufacturer_name, p.condition, p.id_manufacturer,
DATEDIFF(p.`date_add`, DATE_SUB(NOW(), INTERVAL '.(Validate::isUnsignedInt(Configuration::get('PS_NB_DAYS_NEW_PRODUCT')) ? Configuration::get('PS_NB_DAYS_NEW_PRODUCT') : 20).' DAY)) > 0 AS new
FROM '._DB_PREFIX_.'product p
LEFT JOIN '._DB_PREFIX_.'product_lang pl ON (pl.id_product = p.id_product)
LEFT JOIN '._DB_PREFIX_.'image i ON (i.id_product = p.id_product AND i.cover = 1)
LEFT JOIN '._DB_PREFIX_.'image_lang il ON (i.id_image = il.id_image AND il.id_lang = '.(int)($cookie->id_lang).')
LEFT JOIN '._DB_PREFIX_.'manufacturer m ON (m.id_manufacturer = p.id_manufacturer)
WHERE p.`active` = 1 AND pl.id_lang = '.(int)$cookie->id_lang.$queryFilters
.' ORDER BY '.Tools::getProductsOrder('by', Tools::getValue('orderby')).' '.Tools::getProductsOrder('way', Tools::getValue('orderway'))
.' LIMIT '.(((int)Tools::getValue('p', 1) - 1) * $n.','.$n));
}

Link to comment
Share on other sites

  • 3 weeks 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...