use strict;
use warnings;
-use C4::Auth qw(:DEFAULT get_session);
+use C4::Auth qw(:DEFAULT get_session ParseSearchHistoryCookie);
use CGI;
-use Storable qw(freeze thaw);
+use JSON qw/decode_json encode_json/;
use C4::Context;
use C4::Output;
use C4::Log;
# Deleting cookie's content
my $recentSearchesCookie = $cgi->cookie(
-name => 'KohaOpacRecentSearches',
- -value => freeze([]),
+ -value => encode_json([]),
-expires => ''
);
# Showing search history
} else {
- # Getting the cookie
- my $searchcookie = $cgi->cookie('KohaOpacRecentSearches');
- if ($searchcookie && thaw(uri_unescape($searchcookie))) {
- my @recentSearches = @{thaw(uri_unescape($searchcookie))};
+ my @recentSearches = ParseSearchHistoryCookie($cgi);
if (@recentSearches) {
# As the dates are stored as unix timestamps, let's do some formatting
$template->param(recentSearches => \@recentSearches);
}
- }
}
} else {
# And if the user is logged in, we deal with the database
my $dateformat = $date->DHTMLcalendar() . " %H:%i:%S"; # Current syspref date format + standard time format
# Getting the data with date format work done by mysql
- my $query = "SELECT userid, sessionid, query_desc, query_cgi, total, DATE_FORMAT(time, \"$dateformat\") as time FROM search_history WHERE userid = ? AND sessionid = ?";
+ my $query = "SELECT userid, sessionid, query_desc, query_cgi, total, time FROM search_history WHERE userid = ? AND sessionid = ?";
my $sth = $dbh->prepare($query);
$sth->execute($loggedinuser, $cgi->cookie("CGISESSID"));
my $searches = $sth->fetchall_arrayref({});
# If at least one search from previous sessions has been performed
if ($sth->fetchrow_array > 0) {
- $query = "SELECT userid, sessionid, query_desc, query_cgi, total, DATE_FORMAT(time, \"$dateformat\") as time FROM search_history WHERE userid = ? AND sessionid != ?";
+ $query = "SELECT userid, sessionid, query_desc, query_cgi, total, time FROM search_history WHERE userid = ? AND sessionid != ?";
$sth = $dbh->prepare($query);
$sth->execute($loggedinuser, $cgi->cookie("CGISESSID"));
my $previoussearches = $sth->fetchall_arrayref({});