Jump to content
TWDesign

[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 license@prestashop.com 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 <contact@prestashop.com>
[*]@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

Share this post


Link to post
Share on other sites

Works great!

 

There's just one thing, it seems that, the ending slash in line 26 is showing up in the pages...:

 

[/list]

 

But it works,

 

Thank you!

Edited by fogolin (see edit history)

Share this post


Link to post
Share on other sites

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...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More