De overzicht/resultaatpagina van de objecten-module toont de zoekresultaten. De template-variabele results bevat de lijst met gevonden objecten.
De resultaten kunnen bijvoorbeeld in een tabel worden weergegeven:
<table> <thead> <tr> <th>Veld 1</th> <th>Veld 2<br />Veld 3</th> <th>Veld 4</th> </tr> </thead> <tbody> <!-- TMPL_LOOP NAME="results" --> <tr> <td><a href="/<!-- TMPL_VAR NAME="seo_url" -->"><!-- TMPL_VAR NAME="field1" --></a></td> <td><!-- TMPL_VAR NAME="field2" --><br /><!-- TMPL_VAR NAME="field3" --></td> <td><!-- TMPL_VAR NAME="field4" --></td> </tr> <!-- /TMPL_LOOP --> <tbody> </table> <!-- TMPL_IF NAME="prevpage" --><a href="/<!-- TMPL_VAR NAME="surl"-->;page=<!-- TMPL_VAR NAME="prevpage" -->">Vorige</a><!-- /TMPL_IF --> <!-- TMPL_LOOP NAME="pages" --> <!-- TMPL_IF NAME="current" --> <!-- TMPL_VAR NAME="page" --> <!-- TMPL_ELSE --> <a href="/<!-- TMPL_VAR NAME="surl"-->;page=<!-- TMPL_VAR NAME="page" -->"><!-- TMPL_VAR NAME="page" --></a> <!-- /TMPL_IF NAME="current" --> <!-- /TMPL_LOOP --> <!-- TMPL_IF NAME="nextpage" --><a href="/<!-- TMPL_VAR NAME="surl" -->;page=<!-- TMPL_VAR NAME="nextpage" -->">Volgende</a><!-- /TMPL_IF -->
Per object/regel bevat results alle gegevens van een object, zie Gegevens.
Bovendien bevat het per object de variabele seo_url. Dit is de url naar de detailpagina van het object.
Naast het resultaat zijn ook verschillende variabelen beschikbaar voor de paginering:
Het aantal objecten/resultaten per pagina kan worden beinvloed door een veld perpage aan het formulier toe te voegen, bijv. middels een dropdown met 3 waarden:
<label>Resultaten per pagina</label> <select name="perpage"> <option value="10">10 huizen</option> <option value="20">20 huizen</option> <option value="30">30 huizen</option> </select>
perpage kan uiteraard ook direct aan de url worden meegegeven:
/cgi/objects.cgi?site=website;perpage=13
Het resultaat kan op elk gewenst gegeven worden gesorteerd. Geef in een formulierelement genaamd sort de naam van het gewenste gegeven mee (bijv. field1 of field3).
Er kan ook op meerdere velden tegelijk worden gesorteert, geef ik dat geval de gewenste velden op gescheiden met een , (komma, bijvoorbeeld: field1,field5,field6).
Standaard wordt van laag naar hoog gesorteerd. De sorteerrichting kan per veld worden opgekeerd door er een min-teken voor te zetten (bijvoorbeeld: field1,-field3).
Voorbeeld:
<a href="/<!-- TMPL_VAR NAME="sort_url" -->;sort=field5">sorteer op prijs</a>
De resultaten kunnen ook random gesorteerd worden, bijv. om op een homepage bij elk bezoek andere objecten te tonen. Geef in dat geval sort=random op.
Natural search
Alle waarden worden opgeslagen als strings, dus ook een getal. Maar als getallen als tekst worden gesorteerd wordt bijv.
1 2 12
gesorteerd als
1 12 2
Om getallen correct te sorteren dient de optie 'natural sort' gebruikt te worden. Dit kan worden bereikt door de veldnaam vooraf te laten gaan door ns, bijvoorbeeld
<input type="hidden" name="sort" value="nsfield3" />
Vrij zoekveld (keyword)
Staat er (ook) een vrij zoekveld op het formulier, dan wordt het resultaat eerst gesorteerd op weging (=score op basis van frequentie van zoekwoord in tekst per object) en dan op de sort parameter. Om dat (=sortering op weging) te voorkomen moet de parameter no_keyword_sort meegegeven worden:
<input type="text" name="no_keyword_sort " value="1" />
De TMPL_LOOP variabele seen bevat een lijst van de 5 laatst bekeken objecten. Elk item in de lijst bevat alle gegevens van het object. Deze variabele is beschikbaar op alle pagina's (ook XML output).
Voorbeeld:
Andere huizen die u al heeft bekeken: <ul> <!-- TMPL_LOOP NAME="seen" --> <li> <a href="/<!-- TMPL_VAR NAME="seo_url" -->"> <img src="/!-- TMPL_VAR NAME="field10" -->" alt="" /> </a> </li> <!-- /TMPL_LOOP --> </ul>