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 :

  1. Placez la boite de recherche sur toutes les pages, de préférence "au dessus du magma" (visible sans scroller).
  2. 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.
  3. 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".
  4. 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 un accesskey à 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