Jump to content

Fehler Pagination / Sortierung


Recommended Posts

Hallo,

 

erst einmal ein großes Lob an dieses tolle Forum. Bis jetzt hat es mir bei fast allen Problemen schon weiter geholfen.
Nun habe ich aber ein Problem wo ich mit unserem Shop nicht weiter komme.

 

Es geht um die Sortierfunktion nach Preis, Artikelname ect. bei den Herstellern und auf den Kategorieseiten

 

Prestashop 1.6.1.2 mit BASEO Smart SEO Plus Manager

 

Herstellerseite:

So würde die URL für die Sortierung richtig lautet:

MeineSeite.de/marke/pleaser?p=3?orderby=price&orderway=asc&orderway=asc

Es wird aber immer versucht folgende URL aufzurufen:

MeineSeite.de/marke/pleaser&orderway=asc?p=4

 

Kategorieseite:

Hier funktioniert die Sortierung soweit, wenn ich aber die Sortierung ändere z.B. von Preis

MeineSeite.de/schuhe/high-heels/peeptoes?orderby=price&orderway=asc&orderway=asc&p=3

nach Produktname

MeineSeite.de/schuhe/high-heels/peeptoes&p=3?orderby=name&orderway=asc&orderway=asc

endet das ganze auch wieder in einem 404.

 

Vielleicht weiß ja einer von euch woran das liegen kann, irgendwie scheint er ja ein Problem mit dem ? und & zu haben.

 

Hier einmal meine Products-Sort.tpl des Templates

{*
* 2007-2014 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:
* http://opensource.org/licenses/afl-3.0.php
* 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 http://www.prestashop.com for more information.
*
*  @author PrestaShop SA <[email protected]>
*  @copyright  2007-2014 PrestaShop SA
*  @license    http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*}
<ul class="display">
    <li class="grid"><a rel="nofollow" href="#" title="{l s='Grid'}"></a></li>
    <li class="list"><a rel="nofollow" href="#" title="{l s='List'}"></a></li>
</ul>
{if isset($orderby) AND isset($orderway)}
{* On 1.5 the var request is setted on the front controller. The next lines assure the retrocompatibility with some modules *}
{if !isset($request)}
	<!-- Sort products -->
	{if isset($smarty.get.id_category) && $smarty.get.id_category}
		{assign var='request' value=$link->getPaginationLink('category', $category, false, true)}
	{elseif isset($smarty.get.id_manufacturer) && $smarty.get.id_manufacturer}
		{assign var='request' value=$link->getPaginationLink('manufacturer', $manufacturer, false, true)}
	{elseif isset($smarty.get.id_supplier) && $smarty.get.id_supplier}
		{assign var='request' value=$link->getPaginationLink('supplier', $supplier, false, true)}
	{else}
		{assign var='request' value=$link->getPaginationLink(false, false, false, true)}
	{/if}
{/if}
{if $page_name == 'best-sales' && (!isset($smarty.get.orderby) || empty($smarty.get.orderby))}{$orderby = ''}{$orderbydefault = ''}{/if}
<form id="productsSortForm{if isset($paginationId)}_{$paginationId}{/if}" action="{$request|escape:'html':'UTF-8'}" class="productsSortForm">
	<div class="select selector1">
		<label for="selectProductSort{if isset($paginationId)}_{$paginationId}{/if}">{l s='Sort by'}</label>
		<select id="selectProductSort{if isset($paginationId)}_{$paginationId}{/if}" class="selectProductSort form-control">
			<option value="{if $page_name != 'best-sales'}{$orderbydefault|escape:'html':'UTF-8'}:{$orderwaydefault|escape:'html':'UTF-8'}{/if}"{if !in_array($orderby, array('price', 'name', 'quantity', 'reference')) && $orderby eq $orderbydefault} selected="selected"{/if}>--</option>
			{if !$PS_CATALOG_MODE}
				<option value="price:asc"{if $orderby eq 'price' AND $orderway eq 'asc'} selected="selected"{/if}>{l s='Price: Lowest first'}</option>
				<option value="price:desc"{if $orderby eq 'price' AND $orderway eq 'desc'} selected="selected"{/if}>{l s='Price: Highest first'}</option>
			{/if}
			<option value="name:asc"{if $orderby eq 'name' AND $orderway eq 'asc'} selected="selected"{/if}>{l s='Product Name: A to Z'}</option>
			<option value="name:desc"{if $orderby eq 'name' AND $orderway eq 'desc'} selected="selected"{/if}>{l s='Product Name: Z to A'}</option>
			{if $PS_STOCK_MANAGEMENT && !$PS_CATALOG_MODE}
				<option value="quantity:desc"{if $orderby eq 'quantity' AND $orderway eq 'desc'} selected="selected"{/if}>{l s='In stock'}</option>
			{/if}
			<option value="reference:asc"{if $orderby eq 'reference' AND $orderway eq 'asc'} selected="selected"{/if}>{l s='Reference: Lowest first'}</option>
			<option value="reference:desc"{if $orderby eq 'reference' AND $orderway eq 'desc'} selected="selected"{/if}>{l s='Reference: Highest first'}</option>
		</select>
	</div>
</form>
<!-- /Sort products -->
	{if !isset($paginationId) || $paginationId == ''}
		{addJsDef request=$request}
	{/if}
{/if}
 

Und hier die Pagination.tpl:

{*
* 2007-2014 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:
* http://opensource.org/licenses/afl-3.0.php
* 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 http://www.prestashop.com for more information.
*
*  @author PrestaShop SA <[email protected]>
*  @copyright  2007-2014 PrestaShop SA
*  @license    http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*}

{if isset($no_follow) AND $no_follow}
	{assign var='no_follow_text' value='rel="nofollow"'}
{else}
	{assign var='no_follow_text' value=''}
{/if}

{if isset($p) AND $p}
	{if isset($smarty.get.id_category) && $smarty.get.id_category && isset($category)}
		{if !isset($current_url)}
			{assign var='requestPage' value=$link->getPaginationLink('category', $category, false, false, true, false)}
		{else}
			{assign var='requestPage' value=$current_url}
		{/if}
		{assign var='requestNb' value=$link->getPaginationLink('category', $category, true, false, false, true)}
	{elseif isset($smarty.get.id_manufacturer) && $smarty.get.id_manufacturer && isset($manufacturer)}
		{assign var='requestPage' value=$link->getPaginationLink('manufacturer', $manufacturer, false, false, true, false)}
		{assign var='requestNb' value=$link->getPaginationLink('manufacturer', $manufacturer, true, false, false, true)}
	{elseif isset($smarty.get.id_supplier) && $smarty.get.id_supplier && isset($supplier)}
		{assign var='requestPage' value=$link->getPaginationLink('supplier', $supplier, false, false, true, false)}
		{assign var='requestNb' value=$link->getPaginationLink('supplier', $supplier, true, false, false, true)}
	{else}
		{if !isset($current_url)}
			{assign var='requestPage' value=$link->getPaginationLink(false, false, false, false, true, false)}
		{else}
			{assign var='requestPage' value=$current_url}
		{/if}
		{assign var='requestNb' value=$link->getPaginationLink(false, false, true, false, false, true)}
	{/if}
	<!-- Pagination -->
	<div id="pagination{if isset($paginationId)}_{$paginationId}{/if}" class="pagination clearfix">
		{if $start!=$stop}
			<ul class="pagination clearfix li_fl">
				{if $p != 1}
					{assign var='p_previous' value=$p-1}
					<li id="pagination_previous{if isset($paginationId)}_{$paginationId}{/if}" class="pagination_previous"><a {$no_follow_text} href="{$link->goPage($requestPage, $p_previous)}" title="{l s='Previous'}" rel="prev">« <span>{l s='Previous'}</span></a></li>
				{else}
					<li id="pagination_previous{if isset($paginationId)}_{$paginationId}{/if}" class="disabled pagination_previous"><span>« <span>{l s='Previous'}</span></span></li>
				{/if}
				{if $start==3}
					<li><a {$no_follow_text}  href="{$link->goPage($requestPage, 1)}"><span>1</span></a></li>
					<li><a {$no_follow_text}  href="{$link->goPage($requestPage, 2)}"><span>2</span></a></li>
				{/if}
				{if $start==2}
					<li><a {$no_follow_text}  href="{$link->goPage($requestPage, 1)}"><span>1</span></a></li>
				{/if}
				{if $start>3}
					<li><a {$no_follow_text}  href="{$link->goPage($requestPage, 1)}"><span>1</span></a></li>
					<li class="truncate"><span><span>...</span></span></li>
				{/if}
				{section name=pagination start=$start loop=$stop+1 step=1}
					{if $p == $smarty.section.pagination.index}
						<li class="active current"><span><span>{$p|escape:'html':'UTF-8'}</span></span></li>
					{else}
						<li><a {$no_follow_text} href="{$link->goPage($requestPage, $smarty.section.pagination.index)}"><span>{$smarty.section.pagination.index|escape:'html':'UTF-8'}</span></a></li>
					{/if}
				{/section}
				{if $pages_nb>$stop+2}
					<li class="truncate"><span><span>...</span></span></li>
					<li><a href="{$link->goPage($requestPage, $pages_nb)}"><span>{$pages_nb|intval}</span></a></li>
				{/if}
				{if $pages_nb==$stop+1}
					<li><a href="{$link->goPage($requestPage, $pages_nb)}"><span>{$pages_nb|intval}</span></a></li>
				{/if}
				{if $pages_nb==$stop+2}
					<li><a href="{$link->goPage($requestPage, $pages_nb-1)}"><span>{$pages_nb-1|intval}</span></a></li>
					<li><a href="{$link->goPage($requestPage, $pages_nb)}"><span>{$pages_nb|intval}</span></a></li>
				{/if}
				{if $pages_nb > 1 AND $p != $pages_nb}
					{assign var='p_next' value=$p+1}
					<li id="pagination_next{if isset($paginationId)}_{$paginationId}{/if}" class="pagination_next"><a {$no_follow_text} href="{$link->goPage($requestPage, $p_next)}" title="{l s='Next'}" rel="next"><span>{l s='Next'}</span> »</a></li>
				{else}
					<li id="pagination_next{if isset($paginationId)}_{$paginationId}{/if}" class="disabled pagination_next"><span><span>{l s='Next'}</span> »</span></li>
				{/if}
			</ul>
		{/if}
	    {if $nb_products > $products_per_page && $start!=$stop}
	    	{if Configuration::get('STSN_CATEGORY_SHOW_ALL_BTN')}
			<form class="showall" action="{if !is_array($requestNb)}{$requestNb}{else}{$requestNb.requestUrl}{/if}" method="get">
				<div>
					{if isset($search_query) AND $search_query}
						<input type="hidden" name="search_query" value="{$search_query|escape:'html':'UTF-8'}" />
					{/if}
					{if isset($tag) AND $tag AND !is_array($tag)}
						<input type="hidden" name="tag" value="{$tag|escape:'html':'UTF-8'}" />
					{/if}
	                <button type="submit" class="show_all_products">
	                	{l s='Show all'}
	                </button>
					{if is_array($requestNb)}
						{foreach from=$requestNb item=requestValue key=requestKey}
							{if $requestKey != 'requestUrl' && $requestKey != 'p'}
								<input type="hidden" name="{$requestKey|escape:'html':'UTF-8'}" value="{$requestValue|escape:'html':'UTF-8'}" />
							{/if}
						{/foreach}
					{/if}
	                <input name="n" id="nb_item" class="hidden" value="{$nb_products}" />
				</div>
			</form>
			{/if}
		{/if}
	</div>
    <div class="product-count hidden-xs">
    	{if ($n*$p) < $nb_products }
    		{assign var='productShowing' value=$n*$p}
        {else}
        	{assign var='productShowing' value=($n*$p-$nb_products-$n*$p)*-1}
        {/if}
        {if $p==1}
        	{assign var='productShowingStart' value=1}
        {else}
        	{assign var='productShowingStart' value=$n*$p-$n+1}
        {/if}
        {if $nb_products > 1}
        	{l s='Showing %1$d - %2$d of %3$d items' sprintf=[$productShowingStart, $productShowing, $nb_products]}
		{else}
        	{l s='Showing %1$d - %2$d of 1 item' sprintf=[$productShowingStart, $productShowing]}
       	{/if}
    </div>
	<!-- /Pagination -->
{/if}

Edited by eleazar 
Tut mir leid, aber externe Links auf Verkaufsseiten gestatten die Forenregeln nicht. Und bitte künftig keine Auszüge aus dem PrestaShop-Quelltext in epischer Breite zitieren. Deine Frage allein hätte schon ausgereicht. (see edit history)
Link to comment
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...