Jump to content

Bug sur la position des produits de la page d'accueil


RobertoCastro

Recommended Posts

Bonjour,

j'ai constaté ce problème sur la version 1.2.4 sur des installations propres sans aucune modification de ma part.

Lorsque je suis dans l'onglet catalogue du BO je veux modifier l'ordre des produits de la page d'accueil avec les petites flèches noires.

Les positions ne changent pas et j'ai le message suivant : "Failed to update the position."

Je constate également que la table ps_category_product de base possède 2 lignes avec la position 0 et ce pour 2 produits différents de la page d'accueil.

Je ne sais pas si il y a un lien. Je n'ai pas cherché encore plus loin. J'avais déjà constaté sur la version 1.2.3, lorsque je modifiais la fiche d'un produit ça créait des conflits dans les positions.

Avant d'aller plus loin dans mes recherches, je voulais savoir si c'était un bug connu des dernières versions. Je n'ai rien trouvé là-dessus sur le bug tracker.

Merci de votre attention et à bientôt.

Link to comment
Share on other sites

  • 2 months later...

C'est assez simple à corriger pourtant.
La méthode updatePosition de la classe Product met à jour la position à l'aide de la valeur de $id_category.
Quand on se trouve sur l'accueil de la gestion des produits, on n'a pas cette valeur...

Du coup, Tools::getValue('id_category') retourne 0. Or, la catégorie de l'accueil ne vaut pas 0, mais 1 (et c'est d'ailleurs sans doute ça la principale erreur ;))



Donc, pour corriger le soucis, deux solutions.

Pour les bricoleurs, il faut aller dans classes/product, et chercher la méthode updatePosition. Au début on met quelques chose du genre $lacategorie = Tools::getValue('id_category')?Tools::getValue('id_category'):1; puis, on remplace le "Tools::getValue('id_category')" initial de la première requête par "$lacategorie" (ligne 296 sur ma version, mais j'ai un peu modifier partout donc ce sera peut-être un autre numéro chez vous). Problème réglé.

Pour les non bricoleur, il faut cliquer sur l'icône en forme de maison tout en haut, dans "Catégorie actuelle : Home Accueil". Et du coup, l'id_category apparait.

Bonne journée à tous.
(PS : bug un peu bête et pas difficile à corriger, j'espère que vous ferez remonter l'info sur le bugtrack', je ne ferai pas l'effort de l'anglais désolé :))

Link to comment
Share on other sites

  • 5 months later...

Merci Hannibal pour la solution !
je vous la propose en un peux plus clair… :-)

1 >> Ouvrez | Open >> classes/Product.php

2 >> Chercher vers la ligne : 290 | search line : 290

3 >> Remplacer ça : | Change this

public function updatePosition($way, $position = NULL)
   {
       if (!$res = Db::getInstance()->ExecuteS('
       SELECT cp.`id_product`, cp.`position`, cp.`id_category` 
       FROM `'._DB_PREFIX_.'category_product` cp
       WHERE cp.`id_category` = '.intval(Tools::getValue('id_category')).' 
       ORDER BY cp.`position` '.(intval($way) ? 'ASC' : 'DESC')))



Par |With

    
public function updatePosition($way, $position = NULL)
   {
       $lacategorie = Tools::getValue('id_category')?Tools::getValue('id_category'):1;
       if (!$res = Db::getInstance()->ExecuteS('
       SELECT cp.`id_product`, cp.`position`, cp.`id_category` 
       FROM `'._DB_PREFIX_.'category_product` cp
       WHERE cp.`id_category` = '.$lacategorie.' 
       ORDER BY cp.`position` '.(intval($way) ? 'ASC' : 'DESC')))



Et voila ça marche !

Link to comment
Share on other sites

  • 2 weeks later...

Bonjour,

Je suis intéressée par votre réponse car j'ai exactement le même problème que Roberto Castro. Mais voilà je n'ai déjà pas tout à fait les mêmes lignes de code que vous (LeRedac) ? Pouvez-vous me dire ce que je dois garder et enlever ?

public function updatePosition($way, $position = NULL)
{
$valor = Tools::getValue('id_category');

if ($valor==0)
$valore = 1;

if (!$res = Db::getInstance()->ExecuteS('
SELECT cp.`id_product`, cp.`position`, cp.`id_category`
FROM `'._DB_PREFIX_.'category_product` cp
WHERE cp.`id_category` = '.intval($valor).'
ORDER BY cp.`position` '.(intval($way) ? 'ASC' : 'DESC')))


Merci par avance, car ces histoires de positions de produits dans la liste c'est galère...

Link to comment
Share on other sites

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...