De zoekbakens en -lussen

SPIP beschikt over een geïntegreerde zoekmachine. Voor de weergave van de zoekresultaten moet dus een pagina worden voorzien.

Het zoekformulier

Om het zoekformulier weer te geven, moet het volgende baken worden aangegeven:

#FORMULAIRE_RECHERCHE

Dit formulier stuurt standaard door naar spip.php?page=recherche; je moet des een skelet recherche.html Voorzien voor de weergave van de zoekresultaten.

Je kunt een andere pagina voorzien, maar moet dit dan als parameter aan het baken toevoegen:

#FORMULAIRE_RECHERCHE{#URL_PAGE{xxx}}

waarbij xxx de pagina waarop je de zoekresultaten wilt weergeven. De naam van het skelet is dus xxx.html.

Het skelet met zoekresultaten

De lussen die gebruikt worden voor de weergave van de zoekresultaten zijn de bekende: ARTICLES, RUBRIQUES, BREVES en FORUMS. Naast artikelen kun je ook zoeken in rubrieken, nieuwsberichten en forums.

-  Het enige verschil ten opzichte van wat staat gedocumenteerd, is het gebruik van een afwijkende voorwaarde: {recherche}. De overige voorwaardes voor weergave zijn gewoon van toepassing.

-  Om de resultaten op pertinentie te sorteren, gebruiken we een extra voorwaarde: {par points}. Omdat ze meestal op aflopende score worden weergegeven, gebruiken we {!par points}.

-  Tenslotte kun je ook het baken #POINTS, wat de pertinentie van de resultaten toont (let op: de waarde zelf zegt niet veel, maar kan wel helpen bij het klasseren van de resultaten).

-  Het baken #RECHERCHE toont de zoekopdracht die de bezoeker invoerde.

Voorbeeld van een lus:

<h1><:resultats_recherche:>[ (#RECHERCHE)]</h1>

<B_articles>
<h2><:info_articles_trouves:></h2>
<ul>
	<BOUCLE_articles(ARTICLES) {recherche} {!par points}>
	<li>#POINTS <a href="#URL_ARTICLE">#TITRE</a></li>
	</BOUCLE_articles>
</ul>
</B_articles>

In dit voorbeeld worden de codes (<:...:>) gebruikt die met SPIP worden meegeleverd voor meertalige strings.

Het gezochte op andere pagina’s "highlighten"

SPIP biedt de mogelijkheid om het gezochte op de pagina’s aan te duiden. Vanaf SPIP 3.0 moet je deze keuze aangeven in het bestand mes_options.php met

define('_SURLIGNE_RECHERCHE_REFERERS',true);

Om vanaf de eerste weergegeven pagina te profiteren van het highlighten van de zoektermen (bijvoorbeeld als de resulaten niet worden weergegeven door recherche.html), voeg je aan bestand mes_options.php toe:

if (isset($_REQUEST['recherche'])) {
  $_GET['var_recherche'] = $_REQUEST['recherche'];
}


De highlighting gebeurt door gebruikmaking van jQuery bibliotheek die de zoekterm een gele achtergrond geeft

  • Staat de variabele recherche in de URL dan wordt eerst gezorgd dat er geen sprake kan zijn van injecties. Bevindt de zoekterm zich direct in een blok class="surlignable" (of een onderliggend blok van een class="surlignable"), dan wordt deze gehighlight met een <span class="spip_surligne">.../span>
  • Bevindt de term zich binnen een blok class="pas_surlignable", dan wordt ze normaal weergegeven.
  • De visuele weergave van een highlight kan worden aangepast door de stijl aan te passen van .spip_surligne (zie: «De grafische weergave aanpassen»).

Auteur Hanjo Gepubliceerd op: Aangepast: 21/03/23

Vertalingen: عربي, català, Deutsch, English, Español, français, italiano, Nederlands, українська