From c1ce902f91d15b5b625265726bee4ff6b3100de5 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 14 Dec 2018 10:31:09 +0100 Subject: [PATCH] FIX #9629 #9625 --- htdocs/accountancy/bookkeeping/list.php | 1 - htdocs/core/lib/functions.lib.php | 17 ++++++++++------ htdocs/main.inc.php | 26 +++++++++++++++++++++---- 3 files changed, 33 insertions(+), 11 deletions(-) diff --git a/htdocs/accountancy/bookkeeping/list.php b/htdocs/accountancy/bookkeeping/list.php index 5613e42b4c4..c8df00f6cdc 100644 --- a/htdocs/accountancy/bookkeeping/list.php +++ b/htdocs/accountancy/bookkeeping/list.php @@ -641,7 +641,6 @@ if ($num > 0) $object->id = $line->id; $object->piece_num = $line->piece_num; print $object->getNomUrl(1,'',0,'',1); - //print '' . $line->piece_num . ''; print ''; if (! $i) $totalarray['nbfield']++; } diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 9cc9f315e82..e903777211d 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -321,13 +321,18 @@ function GETPOST($paramname, $check='none', $method=0, $filter=null, $options=nu } } } - if (! empty($_SESSION['lastsearch_contextpage_'.$relativepathstring])) // If there is saved contextpage + // If there is saved contextpage, page or limit + if ($paramname == 'contextpage' && ! empty($_SESSION['lastsearch_contextpage_'.$relativepathstring])) { - if ($paramname == 'contextpage') - { - $out = $_SESSION['lastsearch_contextpage_'.$relativepathstring]; - //var_dump($paramname.' '.$out); - } + $out = $_SESSION['lastsearch_contextpage_'.$relativepathstring]; + } + elseif ($paramname == 'page' && ! empty($_SESSION['lastsearch_page_'.$relativepathstring])) + { + $out = $_SESSION['lastsearch_page_'.$relativepathstring]; + } + elseif ($paramname == 'limit' && ! empty($_SESSION['lastsearch_limit_'.$relativepathstring])) + { + $out = $_SESSION['lastsearch_limit_'.$relativepathstring]; } } // Else, retreive default values if we are not doing a sort diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index 0f2f8af452e..2579b870bcd 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -732,18 +732,27 @@ if (! defined('NOLOGIN')) $relativepathstring = preg_replace('/^custom\//', '', $relativepathstring); //var_dump($relativepathstring); - // We click on a link that leave a page we have to save search criteria. We save them from tmp to no tmp + // We click on a link that leave a page we have to save search criteria, contextpage, limit and page. We save them from tmp to no tmp if (! empty($_SESSION['lastsearch_values_tmp_'.$relativepathstring])) { $_SESSION['lastsearch_values_'.$relativepathstring]=$_SESSION['lastsearch_values_tmp_'.$relativepathstring]; unset($_SESSION['lastsearch_values_tmp_'.$relativepathstring]); } - // We also save contextpage if (! empty($_SESSION['lastsearch_contextpage_tmp_'.$relativepathstring])) { $_SESSION['lastsearch_contextpage_'.$relativepathstring]=$_SESSION['lastsearch_contextpage_tmp_'.$relativepathstring]; unset($_SESSION['lastsearch_contextpage_tmp_'.$relativepathstring]); } + if (! empty($_SESSION['lastsearch_page_tmp_'.$relativepathstring]) && $_SESSION['lastsearch_page_tmp_'.$relativepathstring] > 1) + { + $_SESSION['lastsearch_page_'.$relativepathstring]=$_SESSION['lastsearch_page_tmp_'.$relativepathstring]; + unset($_SESSION['lastsearch_page_tmp_'.$relativepathstring]); + } + if (! empty($_SESSION['lastsearch_limit_tmp_'.$relativepathstring]) && $_SESSION['lastsearch_limit_tmp_'.$relativepathstring] != $conf->liste_limit) + { + $_SESSION['lastsearch_limit_'.$relativepathstring]=$_SESSION['lastsearch_limit_tmp_'.$relativepathstring]; + unset($_SESSION['lastsearch_limit_tmp_'.$relativepathstring]); + } } $action = ''; @@ -1967,7 +1976,8 @@ if (! function_exists("llxFooter")) function llxFooter($comment='',$zone='private', $disabledoutputofmessages=0) { global $conf, $langs, $user, $object; - global $delayedhtmlcontent, $contextpage; + global $delayedhtmlcontent; + global $contextpage, $page, $limit; $ext='layout='.$conf->browser->layout.'&version='.urlencode(DOL_VERSION); @@ -2002,8 +2012,16 @@ if (! function_exists("llxFooter")) if (preg_match('/list\.php$/', $relativepathstring)) { unset($_SESSION['lastsearch_contextpage_tmp_'.$relativepathstring]); - if (! empty($contextpage)) $_SESSION['lastsearch_contextpage_tmp_'.$relativepathstring]=$contextpage; + unset($_SESSION['lastsearch_page_tmp_'.$relativepathstring]); + unset($_SESSION['lastsearch_limit_tmp_'.$relativepathstring]); + + if (! empty($contextpage)) $_SESSION['lastsearch_contextpage_tmp_'.$relativepathstring]=$contextpage; + if (! empty($page) && $page > 1) $_SESSION['lastsearch_page_tmp_'.$relativepathstring]=$page; + if (! empty($limit) && $limit != $conf->limit) $_SESSION['lastsearch_limit_tmp_'.$relativepathstring]=$limit; + unset($_SESSION['lastsearch_contextpage_'.$relativepathstring]); + unset($_SESSION['lastsearch_page_'.$relativepathstring]); + unset($_SESSION['lastsearch_limit_'.$relativepathstring]); } // Core error message