FIX search filter on extrafields were not restored avec "Back to list"

This commit is contained in:
Laurent Destailleur 2020-01-31 19:46:03 +01:00
parent d530c7f708
commit aa54aaeb01

View File

@ -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;
}
/**