}
use C4::Output;
-use C4::Auth qw(:DEFAULT get_session ParseSearchHistoryCookie);
+use C4::Auth qw(:DEFAULT get_session ParseSearchHistorySession SetSearchHistorySession);
use C4::Languages qw(getAllLanguages);
use C4::Search;
use C4::Biblio; # GetBiblioData
}
# Opac search history
- my $newsearchcookie;
if (C4::Context->preference('EnableOpacSearchHistory')) {
- my @recentSearches = ParseSearchHistoryCookie($cgi);
+ my @recentSearches = ParseSearchHistorySession($cgi);
# Adding the new search if needed
my $path_info = $cgi->url(-path_info=>1);
my $query_cgi_history = $cgi->url(-query=>1);
$query_cgi_history =~ s/^$path_info\?//;
$query_cgi_history =~ s/;/&/g;
- my $query_desc_history = "$query_desc, $limit_desc";
+ my $query_desc_history = join ", ", grep { defined $_ } $query_desc, $limit_desc;
if (!$borrowernumber || $borrowernumber eq '') {
- # To a cookie (the user is not logged in)
+ # To the session (the user is not logged in)
if (!$offset) {
push @recentSearches, {
"query_desc" => Encode::decode_utf8($query_desc_history) || "unknown",
}
shift @recentSearches if (@recentSearches > 15);
- # Pushing the cookie back
- $newsearchcookie = $cgi->cookie(
- -name => 'KohaOpacRecentSearches',
- # We uri_escape the whole serialized structure so we're sure we won't have any encoding problems
- -value => uri_escape( encode_json(\@recentSearches) ),
- -expires => ''
- );
- $cookie = [$cookie, $newsearchcookie];
+ SetSearchHistorySession($cgi, \@recentSearches);
}
else {
- # To the session (the user is logged in)
+ # To the database (the user is logged in)
if (!$offset) {
AddSearchHistory($borrowernumber, $cgi->cookie("CGISESSID"), $query_desc_history, $query_cgi_history, $total);
$template->param(ShowOpacRecentSearchLink => 1);