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 blokclass="surlignable"
(of een onderliggend blok van eenclass="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»).