prestamoi Posted June 30, 2010 Share Posted June 30, 2010 Salut à tous,Bon, j'aimerais apporter une modification au rendu des résultats qui apparaissent lorsque l'on tape quelque chose dans la barre de recherche, mais je ne trouve pas l'endroit dans le code où je peux modifier ça.Pour vous donner une idée plus précise de ce que je cherche, je vous ai fait un petit screenshot pour vous montrer ça.J'aimerais donc pouvoir ajouter plus de détails dans ces lignes, comme par exemple une petite description du produit, en plus de son nom.Quelqu'un a-t-il une idée ?Merci et bonne fin de journée Link to comment Share on other sites More sharing options...
prestamoi Posted June 30, 2010 Author Share Posted June 30, 2010 Alors en fait j'ai trouvé l'endroit où on définit ce qui sera affiché, c'est dans blocksearch-top.tpl, dans le dossier du theme utilisé, mais c'est quand même très bourrin. J'avais repéré les lignes : function formatSearch(row) { return row[2] + ' > ' + row[1]; } et du coup j'ai rajouté row [0], qui est l'ID du produit, mais c'est barbare parce que je sais même pas ce qu'il y a dans row..Est-ce que vous savez où je peux voir la requete qui est effectuée quand on tape quelque chose, et ce qu'elle renvoie ? Link to comment Share on other sites More sharing options...
prestamoi Posted July 2, 2010 Author Share Posted July 2, 2010 Résolu.En fait pour modifier la requête qui est exécutée, et eventuellement récupérer d'autres valeurs pour l'autocomplétion proposée, il faut faire 3 choses :1- Modifier la requête SQL : dans la classe Search (fichier Search.php), trouver la fonction find et la ligne if ($ajax) . La requete SQL qui est exécutée au moment des recherches se trouve là. Dans mon cas, je voulais récupérer la description du produit, j'ai donc rajouté dans le SELECT : ", pl.description_short as shortdes"2- Ensuite, il faut récupérer ces valeurs dans la chaine de caractère qui contient les résultats : dans le fichier search.php, trouver l'endroit foreach ($search as $product) echo $product['id_product'].'|'.$product['pname'].'|'.$product['cname'].'|'.$link->getProductLink($product['id_product'], $product['prewrite'], $product['crewrite'])."\n"; die; Et là, il suffit de rajouter le champs qu'on a voulu récupérer. Dans mon cas : foreach ($search as $product) echo $product['id_product'].'|'.$product['pname'].'|'.$product['cname'].'|'.$link->getProductLink($product['id_product'], $product['prewrite'], $product['crewrite']).'|'.$product['shortdes']."\n"; die; 3- Maintenant, on a plus qu'à rajouter cette valeur dans l'affichage de l'autocomplétion : fichier blocksearch-top.tpl, dans le module blocksearch, trouver le code : function formatSearch(row) { return row[2] + ' > ' + row[1]; } et le changer en function formatSearch(row) { return row[2] + ' > ' + row[1] + ' > ' + row[4]; } Et le résultat ::D:D:D:D:D Link to comment Share on other sites More sharing options...
nakog Posted July 28, 2011 Share Posted July 28, 2011 bonjour, J'essaie depuis quelques temps d'ajouter la possibilité de rechercher les categories car actuellement prestashop recherche seulement les produits. Je pense que votre manip peux me permettre de faire cela mais je n'y arrive pas, pensez vous pouvoir m'aider, ce serait vraiment sympa. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now