Améliorer la fonction search.php Améliorer la fonction search.php
 

News:

CPG Release 1.6.26
Correct PHP8.2 issues with user and language managers.
Additional fixes for PHP 8.2
Correct PHP8 error with SMF 2.0 bridge.
Correct IPTC supplimental category parsing.
Download and info HERE

Main Menu

Améliorer la fonction search.php

Started by schann, October 16, 2014, 03:17:17 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

schann

Bonjour à tous,
je voudrais savoir comment modifier le fichier search.php pour inclure dans la recherche, les mots avec accent é, è à...
Merci pour votre aide
Christophe

François Keller

Bonjour,

ça ne fonctionne pas de base ?
Avez vous lu la DOC ? la FAQ ? et cherché sur le forum avant de poster ?
Did you read the DOC ? the FAQ ? and search the board before posting ?
Mon Blog

schann

Si mais je voudrais que la fonction recherche prenne en compte le mot avec et sans accent comme:  évite, évité et  EVITE
Merci
Christophe

Αndré

#3
Dans include/search.inc.php, ajouter
        require_once('include/transliteration.inc.php');
        $search_string = transliteration_process($search_string, '_');

avant
$search_string = str_replace('"', '"', $search_string);

François Keller

Wouaw, André fait même du support en Français, Bravo et merci

Waouw, André give also support in French, Trank's a lot
Avez vous lu la DOC ? la FAQ ? et cherché sur le forum avant de poster ?
Did you read the DOC ? the FAQ ? and search the board before posting ?
Mon Blog

Αndré

Sorry to reply in English, but my French skills (3 years at grammar school, about 15 years ago) are too limited to clarify that my mod won't work as demanded, simply as I've misread the requirement.

My mod will change every search character with an accent to its equivalent without an accent (search for "transliteration" for more information). So regardless if you search for évite, évité or evite, it will always just will find "evite". This may work if you just use keywords without accents, but I assume this isn't the case. Of course you could also replace each accent character with a placeholder, which matches every character, but this is probably not what you're looking for. I don't know if there are transliteration functions in MySQL (I doubt so). The easiest solution is maybe to use my mod AND replace all characters with accents in title/description/keywords with their equivalents without accents in your gallery.

François Keller

Quote from: Αndré on October 18, 2014, 10:23:54 PM
Sorry to reply in English, but my French skills (3 years at grammar school, about 15 years ago) are too limited to clarify that my mod won't work as demanded, simply as I've misread the requirement.

My mod will change every search character with an accent to its equivalent without an accent (search for "transliteration" for more information). So regardless if you search for évite, évité or evite, it will always just will find "evite". This may work if you just use keywords without accents, but I assume this isn't the case. Of course you could also replace each accent character with a placeholder, which matches every character, but this is probably not what you're looking for. I don't know if there are transliteration functions in MySQL (I doubt so). The easiest solution is maybe to use my mod AND replace all characters with accents in title/description/keywords with their equivalents without accents in your gallery.
Traduction du post d'André:
Désolé de ré"pondre en Anglais, mais mes connaissances en Français ne sont pas sufisantes pour explique que la modification que j'ai donnée ne fonctionnait pas comme demandé, j'avais mal lu la question...

Ma modification remplace chaque caractère accentué recherché avec son équivalent sans accent (cherchez "translittération" pour plus d'informations). En conséquence, si vous cherchez évite, évité ou evite, la recherche ne trouvera qu' "evite". Cela fonctionnera si vous utilisez des mots clé sans accents, mais je suppose que ce n'est pas le cas. Bien sûr, vous pouvez également remplacer chaque lettre accentuée, avec un espace réservé, qui correspond à chaque caractère, mais ce n'est probablement pas ce que vous cherchez. Je ne sais pas si il y a des fonctions de translittération de MySQL (je doute donc). La solution la plus simple est peut-être à utiliser mon mod et remplacer tous les caractères accentués dans les titres / descriptions / des mots-clés avec leurs équivalents sans accent dans votre galerie.

Tank's André for your explanations
Avez vous lu la DOC ? la FAQ ? et cherché sur le forum avant de poster ?
Did you read the DOC ? the FAQ ? and search the board before posting ?
Mon Blog

François Keller

Perso ça dépasse mes capacités, mais en fait il faudrait réussir à créer une chaine de recherche incluant les déclinaisons du mot avec toutes ses possibilités, donc, il faudrait inclure une routine qui analyse le mot de la recherche et remplacer au fut et à mesure les caractères ayant des variantes accentuées pour crée autant de mots...
ça risque d'être assez compliqué puisque les combinaisons deviennent multiples.
La solution d'André reste la plus simple mais empêche la saisie des mots accentués dans les titres descriptions et mots clés ce qui peut amener à des pertes de sens...
pas évident donc comme demande. Il y a peut être une solution, mais il faut la chercher
Avez vous lu la DOC ? la FAQ ? et cherché sur le forum avant de poster ?
Did you read the DOC ? the FAQ ? and search the board before posting ?
Mon Blog