Jump to content

Ajouter une gestion de la position aux valeurs de caractéristiques


Recommended Posts

Bonjour,

 

J'essaye de mettre en place une gestion de position pour les valeurs de caractéristiques.

 

J'ai donc modifié FeatureValue.php et AdminFeauturesController.php.

J'arrive à faire afficher la position de mes éléments dans la Tab. Quand j'ajoute une valeur la position est bien gérée.

 

Par contre lorsque je veux déplacer une valeur en drag&drop, la valeur se déplace bien, mais aucun changement en BDD.

 

Ma question se tient plus sur de la compréhension du système. Je n'arrive pas bien à comprendre où définir comment appeler ma méthode ajaxProcessUpdateValuesPositions() définie dans AdminFeaturesController.php.

 

J'ai essayé de voir avec la gestion des attributs mais rien y fait, je ne vois vraiment pas comment sont appelées les méthodes d'update de position :( .

 

Merci d'avance de votre aide.

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

1.5 en effet, le AdminFeaturesController.php aurait du me mettre la puce à l'oreille ^^

 

Alors en toute logique, pour faire un appel ajax :

ajax-tab.php?controller=adminfeatures

Variables post : action=UpdateValuesPositions&ajax=1&ajaxMode=1&controller=AdminFeatures&token=XXXXXX

Dans AdminFeaturesController.php

Il faut avoir la méthode displayAjaxUpdateValuesPositions()

Tu peux également avoir une méthode ajaxProcessUpdateValuesPositions() pour faire des précalculs.

 

Est ce que j'ai répondu à ta question ou pas du tout ?

 

Enfin j'ai pas testé mais de mémoire ça fonctionne ainsi ^^

Link to comment
Share on other sites

Désolé de te donner des nouvelles que maintenant, j'avais pas pu me remettre dessus.

Donc ta réponse ne correspondait pas tout à fait à ce dont j'avais besoin, mais grâce à elle j'ai compris ce qu'il me manquait :).

 

En gros, j'avais pas remarqué quand j'avais parcouru les fichiers js d'admin. Mais en refaisant une recherche j'ai trouvé où était fait les appels ajax de position. Il faut donc aller dans le admin-dnd.js et rajouter des tests dans la fonction initTableDnD :

 

else if (table.id.indexOf('feature_value') != -1 && table.id != 'feature')
{
 params = {
  action: 'updateValuesPositions',
  id_feature: ids[1],
  id_feature_value: ids[2],
  way: way
 };
}
else if (table.id == 'feature')
{
 params = {
  action: 'updateFeaturesPositions',
  id_feature: ids[2],
  way: way
 };
}

 

En fait le paramètre d'action n'est pas directement géré dans la liste. C'est un peu dommage d'ailleurs de devoir retoucher un fichier js plutôt qu'un Controller.

 

Après j'ai dû créé un template de ma liste de feature_value pour récupérer l'id feature dans les tr de ma table.

 

Et voilà maintenant ça fonctionne niquel :).

Link to comment
Share on other sites

  • 3 months later...

Bonsoir,

 

Votre conversation m'interesse beaucoup car j'ai exactement ce besoin la sous la version 1.5.4.1.

J'aimerai gerer les positions des valeurs des caractéristiques afin qu'elle s'affichent dans cette ordre la en front (dans les facettes)

 

Je suis "beaucoup moins codeur" que vous, pouvez vous resumer les modfications à faire ? Par contre cela implique des modif dans des fichiers systemes.... qui sera a repercuter sur la mise a jour possible du presta dans une version utltérieure non ?

 

Je vous remercie pour votre réponse.

Link to comment
Share on other sites

  • 1 month later...
  On 4/29/2013 at 10:09 AM, atcha_ said:

Oui c'est sur. Et puis j'ai bien compris comment modifier les listes maintenant :).

Bonjour,
 
Pourrais-tu nous décrire toute la démarche pour mettre en place les positions pour les valeurs des caractéristiques ?
 
Merci d'avance.
Link to comment
Share on other sites

  On 10/24/2013 at 12:22 PM, atcha_ said:

Je ferai un tuto détaillé :). J'en ai un autre aussi à faire pour expliquer comment rajouter la recherche par code bar.

Je vous tiens au courant.

OK merci atcha_, j'attends ton tuto avec impatience !  :)

Link to comment
Share on other sites

  • 3 weeks later...
  • 1 year later...

je relance ce post, car pour ma part en version 16.0  je remarque dans le module Attributes que ids[1] est toujours égale à 1 et donc que les lignes <tr_ ne contiennent pas  l'identifiant du groupe attribut sélectionné donc la mise à jour en base ne s'effectue pas même si l'interface le laisse paraître (au déplacement de la position d'une ligne). Dans quel tpl sont constitués ces lignes ? Est-ce une anomalie qui a été corrigée depuis ?

Link to comment
Share on other sites

Effectivement, je viens de regarder ça n'a pas été implémenté dans la version 1.6 pour l'instant.
Par contre je ne sais pas du tout si le fonctionnement a pu changer ou non. Il faudrait que je me re-penche sur ce problème un de ces quatre.

Par contre je ne comprends pas tu parles d'attributs. Les attributs ont bien une gestion de position. Ce post était pour les caractéristiques.

Link to comment
Share on other sites

merci pour ta réactivité, il s'agit bien de la table des Attributs pour lesquels j'ai remarqué cette ano. C'est en cherchant dans le forum que je suis tombé sur ton post, post d'ailleurs qui m'a permis de comprendre au passage comment çà marche et je t'en remercie... ;-)  çà m'interesse aussi pour les features

 

D'ailleurs je viens de remplacer la valeur 1 par la bonne valeur du groupe attribut et çà marche, reste maintenant à savoir quel est le template qui génère la liste, surement un helper multi controllers, ce qui complexifie la compréhension du passage de paramètres. Une idée ?

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