X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=cataloguing%2Fysearch.pl;h=49dfa3931f910f6d65266b12167bd453fc37a3dc;hb=54616c37e25b969907f9da2cf021e7e23ced836c;hp=5cd0205a23c1ec2c850b390b05d65849e8cc2e45;hpb=b030ef9f4f4f0e82ca5bf2e31d012084b466071b;p=koha.git diff --git a/cataloguing/ysearch.pl b/cataloguing/ysearch.pl index 5cd0205a23..49dfa3931f 100755 --- a/cataloguing/ysearch.pl +++ b/cataloguing/ysearch.pl @@ -24,25 +24,25 @@ =cut -use strict; - -#use warnings; FIXME - Bug 2505 +use Modern::Perl; use CGI; use C4::Context; +use C4::Charset; use C4::Auth qw/check_cookie_auth/; +use JSON qw/ to_json /; my $input = new CGI; -my $query = $input->param('query'); +my $query = $input->param('term'); my $table = $input->param('table'); my $field = $input->param('field'); # Prevent from disclosing data die() unless ($table eq "biblioitems"); -binmode STDOUT, ":utf8"; +binmode STDOUT, ":encoding(UTF-8)"; print $input->header( -type => 'text/plain', -charset => 'UTF-8' ); -my ( $auth_status, $sessionID ) = check_cookie_auth( $input->cookie('CGISESSID'), { cataloguing => '*' } ); +my ( $auth_status, $sessionID ) = check_cookie_auth( $input->cookie('CGISESSID'), { editcatalogue => '*' } ); if ( $auth_status ne "ok" ) { exit 0; } @@ -55,24 +55,9 @@ $sql .= qq( ORDER BY $field); my $sth = $dbh->prepare($sql); $sth->execute("$query%", "% $query%", "%-$query%"); +my $a = []; while ( my $rec = $sth->fetchrow_hashref ) { - print nsb_clean($rec->{$field}) . "\n"; -} - -sub nsb_clean { - my $NSB = '\x88' ; # NSB : begin Non Sorting Block - my $NSE = '\x89' ; # NSE : Non Sorting Block end - my $NSB2 = '\x98' ; # NSB : begin Non Sorting Block - my $NSE2 = '\x9C' ; # NSE : Non Sorting Block end - # handles non sorting blocks - my ($string) = @_ ; - $_ = $string ; - s/$NSB//g ; - s/$NSE//g ; - s/$NSB2//g ; - s/$NSE2//g ; - $string = $_ ; - - return($string) ; + push @$a, { fieldvalue => nsb_clean($rec->{$field}) }; } +print to_json($a);