Search page

{* 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}">&laquo;</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}">&lt;</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}">&gt;</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}">&raquo;</a>{/if}
{/if}