Après quelques heures passées

à comprendre comment marchait le snippet AjaxSearch, je me permet

de vous présenter quelques corrections / évolutions pour ce snippet.
J’ai renuméroté arbitrairement cette version en 1.6.1 puisque issue de la version 1.6. Je verrais avec son auteur si il embarque ou pas ces corrections. En attendant merci si certains d’entre vous peuvent secouer ces évolutions / corrections.
Personnellement j’ai fait les tests avec
Firefox et
IE6 sur des sites
UTF-8 et
ISO-8859-1
Voici les évolutions / corrections effectuées.
1/
Prise en charge du navigateur IE lorsqu’on veut afficher les résultats dans une fenêtre Ajax. Sans affichage d’une horrible barre. Testé en IE6. Donc doit marché en IE7.
Permet d’afficher les résultats dans une fenetre + ou - opaque.
Voir les démos:
UTF-8 :
Récits de voyage, tapez "année" comme mot recherché.
Couleurs des Andes, tapez "rubén" comme mot recherché.
L’erreur provenait d’une utilisation partielle de la librairie Ajax mootools
Fichiers modifiés : snippet-ajaxSearch-tpl.php et AjaxSearch.js
Ajout du parametre AS_opacity pour fixer l’opacité souhaitée de la fenetre résultats. 1.(opaque) par défaut.
Pour comprendre, il convient de regarder la feuille css search.css jointe à titre d’exemple. Voir #ajaxSearch_output
Attention, non vérifié avec la librairie
Scriptaculous.
D’autre part :
- l’extension php mbstring de votre serveur doit etre activée (c’est généralement le cas)
- la variable $database_connection_charset du fichier /manager/includes/config.inc.php doit impérativement être à jour et comporter le charset de la base mysql (utf-8, latin1, ...) sous peine d’avoir un warning (visible dans la fenetre d’affichage).
2/ Prise en charge de l’UTF8 dans la fenetre Ajax résultats.
Corrige le bug d’encodage. Affiche notamment correctement le lien "Cliquez ici pour voir tous les résultats."
Et donne les résultats en pleine page lorsqu’on clique sur le lien.
Cette erreur a été corrigé en tenant compte du charset de la base
Fichiers modifiés : AjaxSearch.php et includes/AjaxSearch.inc.php
Pour un affichage UTF8, les fichiers AjaxSearch/lang utilisés, le fichier include/templates.inc.php
doivent etre encodés en UTF-8. La base en utf8.
Pour un affichage ISO-8859-1, les fichiers AjaxSearch/lang utilisés, le fichier include/templates.inc.php
doivent etre encodés en ANSI (ISO-8859-1). La base doit etre avec un charset latin1.
3/ Prise en charge des
caratères accentués dans les
mots recherchés.
Jusqu’à présent en ISO-8859-1, la saisie d’un mot avec des caractères accentués, gelait littéralement la recherche Ajax. Cette version corrige ces problèmes.
Cette erreur a été corrigée en convertissant les mots de recherche selon le charset de la base et en utilisant la fonction htmlentities avec la fonction urlencode.
Fichiers modifiés : AjaxSearch.php
Prochaine étape :
Par la suite je vais essayer de modifier le snippet pour prendre en compte un paramètre fixant en entrée
une liste restreinte de documents (plusieurs sous-arbres de documents). Et ce pour limiter la recherche à un
sous-ensemble de docs.
Dernier point : le code du plugin n’a pas changé. Il n’y a donc pas lieu de le recharger, contrairement au snippet qu’il faut écraser avec le contenu du fichier snippet-ajaxSearch-tpl.php du répertoire réinstallé.

J’attends vos tests et retours éventuels avant de proposer la modification à son auteur.
Une version 1.7 du snippet est maintenant disponible dans le repository