Jump to content

[RESOLU] Modifier le résultat qui apparait sous la barre de recherche


Recommended Posts

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 :)

26175_51WPwLnjNCKE1TW2p8Rx_t

Link to comment
Share on other sites

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

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:D

26280_LGYyS3T9dtt0U9k58PKg_t

Link to comment
Share on other sites

  • 1 year later...

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

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