Le formulaire de recherche
Pour afficher le formulaire de recherche, il suffit d’insérer la balise :
#FORMULAIRE_RECHERCHE
Le formulaire renvoit par défaut vers spip.php?page=recherche ; vous devez donc réaliser un squelette recherche.html permettant d’afficher les résultats.
Vous pouvez décider d’utiliser une autre page d’affichage des résultats. Pour cela, il faut utiliser la balise de la manière suivante :
[(#FORMULAIRE_RECHERCHE|spip.php?page=xxx)] [1]
où spip.php?page=xxx est la page vers laquelle vous désirez envoyer l’utilisateur, et xxx.html est son squelette.
Historique : Dans les versions antérieures à SPIP 1.9 il faut écrire xxx.php3 et non
spip.php?page=xxxDe façon générale jusqu’à SPIP 1.9, les urls des pages générées par SPIP étaient de la forme http://monsite.net/xxx.php3 et non pas
http://monsite.net/spip.php?page=xxx.
Le squelette des résultats
Les boucles permettant d’afficher les résultats de la recherche sont, en réalité, des boucles déjà abordées ici : ARTICLES, RUBRIQUES, BREVES et depuis [SPIP 1.8.2] FORUMS. Vous pouvez en effet effectuer des recherches non seulement sur les articles, mais aussi sur les rubriques, les brèves et les forums.
- La seule différence, par rapport à ce qui est documenté dans le manuel de référence des boucles, est le choix du critère de sélection, qui doit être {recherche}. Les autres critères d’affichage et les balises de ces boucles restent ici valables.
- Cependant, afin de classer les résultats par pertinence, on utilisera de préférence ce nouveau critère d’affichage : {par points}. Les résultats sont en général affichés par ordre décroissant de score ({par points}{inverse}), c’est-à-dire de pertinence.
- Enfin, on pourra utiliser la balise #POINTS, qui affiche la pertinence des résultats (attention, dans l’absolu cette valeur n’est pas très explicite, elle est surtout utile pour le classement des résultats).
- Introduite par [SPIP 1.5.1], la balise #RECHERCHE affiche la requête formulée par le visiteur.
Exemple de boucle complète :
Surligner la requête dans les autres pages [2]
La mise en évidence des termes de la recherche se fait par le biais de la bibliothèque de fonctions jquery.
- Si la variable recherche existe dans l’url, elle est d’abord nettoyée pour éviter toute attaque par injection, puis, si le terme de la recherche se trouve directement dans un bloc de class="surlignable" (ou dans un bloc descendant d’un bloc de class="surlignable"), il s’affiche en highlight dans un <span class="spip_surligne">.../span>.
- S’il se trouve directement dans un bloc de class="pas_surlignable" (ou dans un bloc descendant d’un bloc de class="pas_surlignable"), il s’affiche normalement (nohighlight).
- L’apparence visuelle du surlignement peut être changée en modifiant la définition de style de .spip_surligne (voir : « Modifier l’habillage graphique »).
Pour bénéficier de la mise en évidence des termes de la recherche dès la première page d’affichage (par exemple dans le cas où la recherche ne renvoit pas vers recherche.html), ajouter dans le fichier mes_options.php :
Les balises #DEBUT_SURLIGNE et #FIN_SURLIGNE ainsi que la variable de personnalisation $nombre_surligne sont obsolètes en 2.0.3.
