MODULE PRODUCTS: recherche champs personnalisés - Version imprimable +- Forum CMS Made Simple FR (https://forum.cmsmadesimple.fr) +-- Forum : Général (https://forum.cmsmadesimple.fr/forum-3.html) +--- Forum : Modules, Tags (https://forum.cmsmadesimple.fr/forum-14.html) +--- Sujet : MODULE PRODUCTS: recherche champs personnalisés (/thread-3223.html) |
MODULE PRODUCTS: recherche champs personnalisés - Bartmoss - 21/05/2014 Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~ Bonjour a tous Comme certain l'ont peux être remarqué, le module Products ne permet pas de faire des recherches sur plus d'un champ personnalisé. Même si le module le permet avec le paramètre action=search, le résultat n'est pas bon et souvent la requête ne renvoie aucun résultat. J'ai essayé de regarder dans le code du module, et je pense avoir identifié d’où vient le problème. Malheureusement, je manque d'aisance en PHP objet pour trouver la portion de code exacte à modifier. Prenons un exemple de requête suite à une recherche sur 2 champs personnalisés: SELECT SQL_CALC_FOUND_ROWS C . * , PH.hierarchy_id FROM cms_module_products C LEFT JOIN cms_module_products_prodtohier PH ON PH.product_id = C.id LEFT JOIN cms_module_products_fieldvals FVA ON C.id = FVA.product_id AND FVA.fielddef_id =5 LEFT JOIN cms_module_products_fieldvals FVB ON C.id = FVB.product_id AND FVB.fielddef_id =1 WHERE C.status = 'published' AND ( FVA.value = 'informatique' ) AND ( FVB.value = '1 pers.' )ORDER BY C.product_name ASC LIMIT 0 , 10000 Les champs perso. sont remplacer par les alias FVA et FVB. J'ai remarqué que le pb viens de d’inversement des valeurs, FVA.value et FVB.value. Dans cet exemple tiré d'un de mes sites, pour que la requête fonctionne il faudrait que FVA.value = '1 pers.' et non pas 'informatique' et que FVB.value = 'informatique'. L'erreur semble venir du fichier class.products_resultset.php et des variables $fieldid, $fieldval. Mais impossible de trouver où l'association commence a déconner. J'ai posté cette remarque sur le bug tracker du module ainsi que sur le forum US. Mais sans réponses pour le moment. Si l'un d'entre vous étant plus a l'aise en PHP object est intéressé pour jeter un coup d'oeil. Car il est quand même dommage de ne pouvoir faire de recherche sur les multiples champs perso du module. |