Jour 29 : Permettre la recherche partout
Tout site Web a besoin d'une fonctionnalit� de recherche. Pause.
R�gles d'un bon moteur de recherche :
- Placez la boite de recherche sur toutes les pages, de pr�f�rence "au dessus du magma" (visible sans scroller).
- Permettez la recherche de tout par d�faut. Si vous avez une option pour chercher les entr�es, les commentaires ou les deux, permettez les deux par d�faut.
- N'encombrez pas votre boite de recherche avec des options avanc�es, comme de la logique bool�enne, respect de la casse ou expressions r�guli�res. Choisir les d�fauts qui mim�tisent le comportement de Google (prendre tous les mots, ne pas prendre les mots partiels, ne pas prendre les diff�rences de casse, ne pas utiliser les expressions r�guli�res) et rendre toutes les options visibles sur une page "recherche avanc�e".
- Donnez � votre boite de recherche une �tiquette appropri�e et une touche d'acc�s. Je recommande
accesskey="4"
. (Note : Pendant le jour 15, J'ai donn� un exemple sur la fa�on d'assigner unaccesskey
� votre formulaire de recherche et je me suis tromp�. Pour une compatibilit� maximum entre les navigateurs, il vous faut d�finir l'accesskey
sur le<label>
, non pas sur l'<input>
. Voir les exemples suivants pour la syntaxe ad�quate.)
Qui en bénéficie ?
Jackie, Michel, Guillaume, Liliane, Marc et en fait � peu pr�s tout le monde b�n�ficient d'un moteur de recherche bien r�alis�. Plus particuli�rement sur un carnet Web ou un site orient� nouvelles, o� le contenu est organis� tout d'abord chronologiquement, c'est tr�s frustant de trouver une entr�e sp�cifique qui a disparu de la page principale. Tr�s peu de personnes connaissent la syntaxe "site:example.org" de Google (pour restreindre les r�sultats de la recherche � un domaine particulier) et Google r�indexe uniquement une fois par moi. Fournissez votre propre moteur de recherche.
Comment le réaliser ?
Greymatter a un syst�me de recherche int�gr�, mais vous aurez besoin de param�trer le gabarit l�g�rement pour fournir un accesskey
pour la bo�te de recherche. Se rendre � "Edit Templates", "Miscellaneous Templates", "Search Form Template"et trouver un formulaire comme ceci :
<FORM ACTION="{{cgiwebpath}}/gm-comments.cgi" METHOD=POST>
<INPUT TYPE=TEXT NAME="gmsearch" SIZE=20>
<INPUT TYPE=SUBMIT VALUE="Search">
</FORM>
Et changez le en :
<FORM ACTION="{{cgiwebpath}}/gm-comments.cgi" METHOD=POST>
<label for="gmsearch" accesskey="4">Search for:</label>
<INPUT TYPE=TEXT id="gmsearch" NAME="gmsearch" SIZE=20>
<INPUT TYPE=SUBMIT VALUE="Search">
</FORM>
Les utilisateurs de Movable Type peuvent essayer le plugiciel (plug-in) MT-Search. J'utilise cela sur mon site � venir qui fonctionne avec MT. Je l'ai essay� sur mon carnet Web principal (plus de 900 entr�es) et c'�tait assez lent, mais il semble qu'il fonctionne plut�t bien sur des sites plus petits. Ce n'est plus d�velopp�, mais cela fonctionne bien, m�me avec la derni�re version de Movable Type (NdT : � l'�poque de la r�daction). (Note : Si vous utilisez la version MySQL de Movable Type 2.2, vous aurez besoin de changer un peu mt-search.cgi.)
Si vous avez un carnet Web sur votre propre nom de domaine, vous pouvez utiliser un service de recherche tiers qui indexe votre contenu et fournit les r�sultats de la recherche � la demande. Quelques solutions populaires comprennent Atomz Express Search, que Blogger.com recommande et Google Free Web Search, que j'utilise sur mon propre carnet Web. Les deux sont param�trables jusqu'� un certain point et assez rapide, bien que les index de leur contenu ne soient pas toujours � jour. Les deux vous permettent de param�trer l'habillage de votre boite de recherche ; ma boite de recherche Google ressemble � ceci (notez l'utilisation d'un <label>
et d'un accesskey
):
<form id="searchform" method="get" action="http://www.google.com/custom">
<p id="searchlabel"><label for="q" accesskey="4">Search this site:</label></p>
<p id="searchinput"><input type="text" id="q" name="q" size="18" maxlength="255" value=" " /></p>
<p id="searchsubmit"><input type="submit" value="Search" />
<input type="hidden" name="cof" value="LW:116;L:http://diveintomark.org/images/eyes.jpg;LH:68;AH:left;GL:0;S:http://diveintomark.org/;AWFID:0d8ffcebe359c844;" />
<input type="hidden" name="domains" value="diveintomark.org" />
<input type="hidden" name="sitesearch" value="diveintomark.org" />
</p>
</form>
Note : Vous pouvez couper et coller ceci dans votre carnet Web. Si vous voulez utiliser le syst�me de recherche gratuite de Google, vous aurez besoin de vous enregistrer et d'ins�rer votre propre code qui sera plac� dans le champs cach� cof
.
Approfondir
- Jay Allen : MT-Search, a search plug-in for Movable Type.
- Phil Ringnalda : mt-search.cgi and MySQL. Important information getting MT-Search to work with Movable Type 2.2 and MySQL.
- Atomz Express Search.
- Google Free Web Search.
- Blogger.com: How do I add a search engine to my blog? Recommends Atomz, but links to others not listed here.
- Jukka Korpela: Improving accessibility with
accesskey
in HTML forms and links. Near the end, it explains why to use "4" as theaccesskey
for your site search. - Jakob Nielsen: Is Navigation Useful?
Users often rely on search as their main hunting strategy.
- Jakob Nielsen: Search Usability. Five years old and still incredibly relevant.
- PHP.net: URL HOWTO. PHP.net has the most amazing site search I've ever seen. Beyond the standard search box, they use custom 404 ErrorDocuments (which would usually just throw a "page not found" error) to intelligently search the site based on the URL. So you can type an address like php.net/phpinfo into your browser's location bar, and php.net will redirect you to the reference page on the phpinfo function.