Site Search
{* set number of items to display on one page *}
{assign var="limit" value="20"}
{* determine the current page *}
{if $smarty.request.page}
{assign var="current_page" value=$smarty.request.page|intval}
{else}
{assign var="current_page" value=0}
{/if}
{* get the search results *}
{init_search_results name="search" start=$current_page*$limit limit=$limit use_fulltext=1}
{* determine the current label (type of objects currently displayed) *}
{if $smarty.request.label}
{assign var="current_label" value=$smarty.request.label}
{else}
{assign var="current_label" value=$search[0]->name}
{/if}
{* clean the keywords *}
{assign var="query" value=$smarty.request.query|xss_clean|htmlspecialchars}
{* Search header *}
<h1>{sysword word="Keyword" type="Search"}: {$query} ({$search_counttotal})</h1>
{foreach from=$search item="label"}
{if $label->name == $current_label}
<span>{$label->title} ({$label->counttotal})</span>
{* set the current object type total found count *}
{assign var="current_count" value=$label->counttotal}
{* set the current object type total pages count *}
{assign var="total_pages" value=$current_count/$limit|ceil}
{else}
<a href="?{if $smarty.request.label}{$smarty.server.QUERY_STRING|replace:"label=`$current_label`":"label=`$label->name`"|replace:"&page=`$current_page`":""}{else}{$smarty.server.QUERY_STRING|replace:"&page=`$current_page`":""|cat:"&label=`$label->name`"}{/if}">{$label->title} ({$label->counttotal})</a>
{/if}
{/foreach}
{if $search_counttotal}
{* Search results *}
{foreach from=$search item="label"}
{if $label->name == $current_label}
{foreach from=$label->results item="object"}
<p><a href="{$object->href}">{$object->title}</a><p>
{/foreach}
{/if}
{/foreach}
{else}
{* No results article *}
{init_article name="art" system_message="no_search_results"}
{if strlen($query) < 4}
<p>Search keyword too short</p>
{/if}
{if $art->show_headline}
<h1>{$art->buttons}{$art->title}</h1>
{/if}
<p>{$art->lead}<br>{$art->body}</p>
{/if}
{if $current_count}
{* Paging *}
{if $current_page-1 >= 0}<a href="?{if isset($smarty.request.page)}{$smarty.server.QUERY_STRING|replace:"page=`$current_page`":"page=0"}{else}{$smarty.server.QUERY_STRING|cat:"&page=0"}{/if}">«</a> <a href="?{if isset($smarty.request.page)}{$smarty.server.QUERY_STRING|replace:"page=`$current_page`":"page=`$current_page-1`"}{else}{$smarty.server.QUERY_STRING|cat:"&page=`$current_page-1`"}{/if}"><</a>{/if}
{if $total_pages <= 5}
{assign var="pages_loop" value=$total_pages}
{assign var="pages_loop_start" value="0"}
{else}
{assign var="pages_loop_start" value=$current_page-2}
{if $pages_loop_start < 0}{assign var="pages_loop_start" value=0}{/if}
{assign var="pages_loop" value=$pages_loop_start+5}
{/if}
{section name="pages" loop=$pages_loop start=$pages_loop_start}
{if $smarty.section.pages.index != $current_page}<a href="?{if isset($smarty.request.page)}{$smarty.server.QUERY_STRING|replace:"page=`$current_page`":"page=`$smarty.section.pages.index`"}{else}{$smarty.server.QUERY_STRING|cat:"&page=`$smarty.section.pages.index`"}{/if}">{/if}{$smarty.section.pages.index+1}{if $smarty.section.pages.index != $current_page}</a>{/if}
{/section}
{if $current_page+1 != $total_pages}<a href="?{if isset($smarty.request.page)}{$smarty.server.QUERY_STRING|replace:"page=`$current_page`":"page=`$current_page+1`"}{else}{$smarty.server.QUERY_STRING|cat:"&page=`$current_page+1`"}{/if}">></a> <a href="?{if isset($smarty.request.page)}{$smarty.server.QUERY_STRING|replace:"page=`$current_page`":"page=`$total_pages-1`"}{else}{$smarty.server.QUERY_STRING|cat:"&page=`$total_pages-1`"}{/if}">»</a>{/if}
{/if}