diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 5bc3ad0056c..a0db5c8333d 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -224,7 +224,54 @@ function dol_shutdown() */ function GETPOSTISSET($paramname) { - return (isset($_POST[$paramname]) || isset($_GET[$paramname])); + $isset = 0; + + $relativepathstring = $_SERVER["PHP_SELF"]; + // Clean $relativepathstring + if (constant('DOL_URL_ROOT')) $relativepathstring = preg_replace('/^'.preg_quote(constant('DOL_URL_ROOT'), '/').'/', '', $relativepathstring); + $relativepathstring = preg_replace('/^\//', '', $relativepathstring); + $relativepathstring = preg_replace('/^custom\//', '', $relativepathstring); + //var_dump($relativepathstring); + //var_dump($user->default_values); + + // Code for search criteria persistence. + // Retrieve values if restore_lastsearch_values + if (!empty($_GET['restore_lastsearch_values'])) // Use $_GET here and not GETPOST + { + if (!empty($_SESSION['lastsearch_values_'.$relativepathstring])) // If there is saved values + { + $tmp = json_decode($_SESSION['lastsearch_values_'.$relativepathstring], true); + if (is_array($tmp)) + { + foreach ($tmp as $key => $val) + { + if ($key == $paramname) // We are on the requested parameter + { + $isset = 1; + break; + } + } + } + } + // If there is saved contextpage, page or limit + if ($paramname == 'contextpage' && !empty($_SESSION['lastsearch_contextpage_'.$relativepathstring])) + { + $isset = 1; + } + elseif ($paramname == 'page' && !empty($_SESSION['lastsearch_page_'.$relativepathstring])) + { + $isset = 1; + } + elseif ($paramname == 'limit' && !empty($_SESSION['lastsearch_limit_'.$relativepathstring])) + { + $isset = 1; + } + } + else { + $isset = (isset($_POST[$paramname]) || isset($_GET[$paramname])); + } + + return $isset; } /**