Jump to content

[Solved - Pagination not showing on Instant Search Results]


Recommended Posts

Just like to give a shout out to Mark Balmer for this beautiful solution to a problem I encountered using PS 1.4.7.0

 

See the original link here:

http://forge.prestas...owse/PSCFI-3498

 

 

 

You can get pagination working by following the instructions below:

1. Create a new template page called pagination_instant.tpl in your theme folder.

2. Paste the following into it:

{*[list]
[*]2007-2011 PrestaShop
*
[*]NOTICE OF LICENSE
*
[*]This source file is subject to the Academic Free License (AFL 3.0)
[*]that is bundled with this package in the file LICENSE.txt.
[*]It is also available through the world-wide-web at this URL:
[*][url="http://opensource.org/licenses/afl-3.0.php"]http://opensource.or...ses/afl-3.0.php[/url]
[*]If you did not receive a copy of the license and are unable to
[*]obtain it through the world-wide-web, please send an email
[*]to [email protected] so we can send you a copy immediately.
*
[*]DISCLAIMER
*
[*]Do not edit or add to this file if you wish to upgrade PrestaShop to newer
[*]versions in the future. If you wish to customize PrestaShop for your
[*]needs please refer to [url="http://www.prestashop.com"]http://www.prestashop.com[/url] for more information.
*
[*]@author PrestaShop SA <[email protected]>
[*]@copyright 2007-2011 PrestaShop SA
[*]@version Release: $Revision: 6594 $
[*]@license [url="http://opensource.org/licenses/afl-3.0.php"]http://opensource.or...ses/afl-3.0.php[/url] Academic Free License (AFL 3.0)
[*]International Registered Trademark & Property of PrestaShop SA
*}
[/list]
{if isset($p) AND $p} {assign var='requestPage' value=$link->getPaginationLink(false, false, false, false, true, false)} {assign var='requestInstantPage' value=$requestPage|replace:'instantSearch=1&q':'search_query'} {assign var='requestNb' value=$link->getPaginationLink(false, false, true, false, false, true)}
<!-- Pagination -->
<div id="pagination" class="pagination">
{if $start!=$stop}
<ul class="pagination">
{if $p != 1} {assign var='p_previous' value=$p-1}
<li id="pagination_previous"><a href="{$link->goPage($requestInstantPage, $p_previous)}">« {l s='Previous'}</a></li>
{else}
<li id="pagination_previous" class="disabled"><span>« {l s='Previous'}</span></li>
{/if}
{if $start>3}
<li><a href="{$link->goPage($requestInstantPage, 1)}">1</a></li>
<li class="truncate">...</li>
{/if} {section name=pagination start=$start loop=$stop+1 step=1} {if $p == $smarty.section.pagination.index}
<li class="current"><span>{$p|escape:'htmlall':'UTF-8'}</span></li>
{else}
<li><a href="{$link->goPage($requestInstantPage, $smarty.section.pagination.index)}">{$smarty.section.pagination.index|escape:'htmlall':'UTF-8'}</a></li>
{/if}
{/section}
{if $pages_nb>$stop+2}
<li class="truncate">...</li>
<li><a href="{$link->goPage($requestInstantPage, $pages_nb)}">{$pages_nb|intval}</a></li>
{/if}
{if $pages_nb > 1 AND $p != $pages_nb}
{assign var='p_next' value=$p+1}
<li id="pagination_next"><a href="{$link->goPage($requestInstantPage, $p_next)}">{l s='Next'} »</a></li>
{else}
<li id="pagination_next" class="disabled"><span>{l s='Next'} »</span></li>
{/if}
</ul>
{/if} {if $nb_products > 10}
<form action="{if !is_array($requestNb)}{$requestNb}{else}{$requestNb.requestUrl}{/if}" method="get" class="pagination">
<p>
{if isset($search_query) AND $search_query}<input type="hidden" name="search_query" value="{$search_query|escape:'htmlall':'UTF-8'}" />{/if}
{if isset($tag) AND $tag AND !is_array($tag)}<input type="hidden" name="tag" value="{$tag|escape:'htmlall':'UTF-8'}" />{/if}
<input type="submit" class="button_mini" value="{l s='OK'}" />
<label for="nb_item">{l s='items:'}</label>
<select name="n" id="nb_item">
{assign var="lastnValue" value="0"}
{foreach from=$nArray item=nValue}
{if $lastnValue <= $nb_products}
<option value="{$nValue|escape:'htmlall':'UTF-8'}" {if $n == $nValue}selected="selected"{/if}>{$nValue|escape:'htmlall':'UTF-8'}</option>
{/if}
{assign var="lastnValue" value=$nValue}
{/foreach}
</select>
{if is_array($requestNb)}
{foreach from=$requestNb item=requestValue key=requestKey}
{if $requestKey != 'requestUrl'}
<input type="hidden" name="{$requestKey|escape:'htmlall':'UTF-8'}" value="{$requestValue|escape:'htmlall':'UTF-8'}" />
{/if}
{/foreach}
{/if}
</p>
</form>
{/if}
</div>
<!-- /Pagination -->
{/if}

 

3. Amend your theme's search.tpl (around line 50)

 

from:

{if !isset($instantSearch) || (isset($instantSearch) && !$instantSearch)}{include file="$tpl_dir./pagination.tpl"}{/if}

 

to:

{if !isset($instantSearch) || (isset($instantSearch) && !$instantSearch)}{include file="$tpl_dir./pagination.tpl"}{else}{include file="$tpl_dir./pagination_instant.tpl"}{/if}

  • Like 2
Link to comment
Share on other sites

  • 3 months later...
  • 7 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...