Jump to content

Backend catégories > positionnement


Recommended Posts

Bonjour,

J'ai pu découvrir dans la nouvelle version de Prestashop, la possibilité d'administrer le positionnement ses catégories. Toutefois, il me semble avoir découvert un soucis avec cette fonctionnalité.
Effectivement, lorsque l'on déplace une sous-catégorie dans une autre catégorie parent, cette dernière garde sa valeur de position définit lors de sa catégorie parent d'origine. Cela pose alors des problèmes de superposition car cette sous-catégorie peut se retrouver avec la même valeur de position qu'une autre sous-catégorie de sa catégorie parent d'adoption.

Voici un petit shéma pour mieux comprendre.

Soit 2 catégories parent : Son et Informatique :

- (1) Son
---- (1) ipods
---- (2) enceintes
---- (3) cartes son

- (2) Informatique
---- (1) mémoires
---- (2) cartes graphique
---- (3) cartes mères
---- (4) souris

Je souhaite déplacer la sous-catégorie Carte son (position 3 de la catégorie parent "Son") dans la catégorie parent "Informatique". Voici donc le résultat que j'obtiens :


- (1) Son
---- (1) ipods
---- (2) enceintes

- (2) Informatique
---- (1) mémoires
---- (2) cartes graphique
---- (3) cartes mères
---- (3) cartes son
---- (4) souris

On voit donc que "cartes son" a gardé sa position 3 et se superpose à la position de "cartes mères" qui est également de 3 dans la catégorie parent "Informatique".

Imaginez un arbre de catégories bien plus conséquent et compliqué et plusieurs mises à jour de ce type... on va vite se retrouver bloqué non ?
Est-ce un fonctionnement problématique que vous avez également constaté ? Existe t'il une alternative ? Est-ce un bug ?

Cordialement.

Mon installation :
Prestashop : 1.4.1.0
PHP : 5.3.0
Apache : 2.2.11

Link to comment
Share on other sites

Oui, il me semble également.
Par contre, si je me retrouve dans un cas de figure où mon arbre de catégories est conséquent, que j'ai fait bcp de migrations de catégories, je peux me retrouver avec plusieurs sous catégories ayant la même valeur de positions. Par conséquent, une nouvelle mise à jour de positionnement à l'intérieur de cette catégorie parent va poser problème.

Exemple :

- (2) Informatique
—— (1) mémoires
—— (2) cartes graphique
—— (3) cartes mères
—— (3) clavier
—— (3) cartes son
—— (4) souris

Comment dans ce cas de figure je place "cartes son" à la 3ème place ? "cartes mère" et "cartes son" vont échanger leur valeur de position (c'est à dire 3) mais si l'ordre alphabétique s'active, je reste avec le même positionnement qu'au départ soit "cartes mère", "cartes son" et "claviers" et non "cartes son", "cartes mère" et "claviers" et comme je souhaiterai.

Link to comment
Share on other sites

Effectivement.
Mais ça ne me semble pas génial question IHM. Et encore moins quand il faut expliquer ça à un client.
Pourtant, on voit bien que des fonctions ont été développées dans la classe Category pour régénérer le positionnement

static public function cleanPositions($id_category_parent) (ligne 866)


Mais ne me semble pas appliqué lors d'un update de catégorie...

Link to comment
Share on other sites

Bonjour,
J'ai corrigé le problème sur notre version de développement. Maintenant, la catégorie déplacée se place toujours en dernière position.
Vous pouvez récupérer le correctif en allant sur la page du bug posté par Samy_R, onglet "Source".


Merci pour la mise à jour Thomas.
Toutefois, si je peux me permettre, il n'est pas nécessaire de vérifier si un doublon de positionnement est existant dans la catégorie adoptive. Récupérer le dernier positionnement et l'appliquer à la sous-catégorie adoptée suffit.
En appliquant ça, il me semble impossible d'avoir des doublons de positionnement et votre fonction getDuplicatePosition() serait alors superflue non ?
Link to comment
Share on other sites

Le fait de ne pas savoir qu'elle a été déplacée n'est pas important selon moi vu qu'on lui force quoi qu'il arrive la dernière position de sa catégorie adoptive (le $this->id_parent étant l'ID de la catégorie adoptive dans ce cas).
J'ai peut-être omis quelques paramètres dans ma réflexion remarquez :)

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