Jump to content
n.robert

Saisie de 2 mots dans le bloc Recherche

Recommended Posts

Bonjour,

J'utilise Prestashop 1.6.1.22. Mon "souci" se porte sur les résultats d'une recherche quand il y a plus d'un mot de saisi dans le bloc Recherche de mon site. Par exemple, si je saisis "chemisier bleu", le résultat va me retourner tous les produits dans le nom contient "chemisier" ou "bleu", alors que je ne souhaite voir que les produits dont le nom contient l'expression entière "chemisier bleu". J'en déduis que la requête qui est derrière utilise le "ou" et non le "et".

Je voudrais donc savoir s'il y a un paramétrage quelconque à faire et qui m'aurait échappé ou s'il faut aller taper dans le code ?

Vous remerciant par avance de votre aide. 

Share this post


Link to post
Share on other sites

il faut aller taper dans le code^^

Share this post


Link to post
Share on other sites

Bonjour, il faut faire un override de la classe Search et la méthode

public static function find($id_lang, ...

et changer la méthode d'expression de recherche qui est un OU en effet avec comme séparateur l'espace

$words = explode(' ', Search::sanitize($expr, $id_lang, false, $context->language->iso_code));

 

Share this post


Link to post
Share on other sites
On 6/24/2019 at 7:06 PM, Prestashop Addict said:

Bonjour, il faut faire un override de la classe Search et la méthode


public static function find($id_lang, ...

et changer la méthode d'expression de recherche qui est un OU en effet avec comme séparateur l'espace


$words = explode(' ', Search::sanitize($expr, $id_lang, false, $context->language->iso_code));

 

c'est exactement ce que je recherchait. J'ai beaucoup de mots composés, et souvent la recherche se fait mal.

Quel est le fichier pour changer la méthode d'expression de recherche?

merci pour tes infos ;)

Share this post


Link to post
Share on other sites

@Manu1238 comme indiqué il faut modifier la méthode find() dans la  classe Search. Le source est dans /classes/Search.php. Je vous recommande de faire un override pour ne pas modifier directement le code de Prestashop.

 

Share this post


Link to post
Share on other sites
On 7/20/2019 at 1:24 PM, Prestashop Addict said:

@Manu1238 comme indiqué il faut modifier la méthode find() dans la  classe Search. Le source est dans /classes/Search.php. Je vous recommande de faire un override pour ne pas modifier directement le code de Prestashop.

 

bonjour,

j'ai bien ce code dans le fichier:

$words = explode(' ', Search::sanitize($expr, $id_lang, false, $context->language->iso_code));

mais ma recherche ne change pas.

Si j'indique port clés papa par exemple, ca me sort tous les porte clés.

merci pour ton aide

Share this post


Link to post
Share on other sites

la métode est un OU et non pas un ET donc c'est normal

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More