126 lines
3.7 KiB
Perl
Executable file
126 lines
3.7 KiB
Perl
Executable file
#!/usr/bin/perl
|
|
|
|
# written 10/5/2002 by Paul
|
|
# build result field using bibliothesaurus table
|
|
|
|
|
|
# Copyright 2000-2002 Katipo Communications
|
|
#
|
|
# This file is part of Koha.
|
|
#
|
|
# Koha is free software; you can redistribute it and/or modify it under the
|
|
# terms of the GNU General Public License as published by the Free Software
|
|
# Foundation; either version 2 of the License, or (at your option) any later
|
|
# version.
|
|
#
|
|
# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License along with
|
|
# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
|
|
# Suite 330, Boston, MA 02111-1307 USA
|
|
|
|
use strict;
|
|
use C4::Auth;
|
|
use CGI;
|
|
use C4::Context;
|
|
use HTML::Template;
|
|
use C4::Search;
|
|
use C4::Output;
|
|
use C4::Authorities;
|
|
use C4::Interface::CGI::Output;
|
|
# get all the data ....
|
|
my %env;
|
|
|
|
my $input = new CGI;
|
|
my $result = $input->param('result');
|
|
my $search_string= $input->param('search_string');
|
|
$search_string = $result unless ($search_string);
|
|
my $op = $input->param('op');
|
|
my $id = $input->param('id');
|
|
my $category = $input->param('category');
|
|
my $index= $input->param('index');
|
|
my $insert = $input->param('insert');
|
|
my $nohierarchy = $input->param('nohierarchy'); # if 1, just show the last part of entry (Marseille). If 0, show everything (Europe -- France --Marseille)
|
|
my $dbh = C4::Context->dbh;
|
|
|
|
# make the page ...
|
|
#print $input->header;
|
|
if ($op eq "select") {
|
|
my $sti = $dbh->prepare("select father,stdlib from bibliothesaurus where id=?");
|
|
$sti->execute($id);
|
|
my ($father,$freelib_text) = $sti->fetchrow_array;
|
|
if (length($result)>0) {
|
|
if ($nohierarchy) {
|
|
$result .= "|$freelib_text";
|
|
} else {
|
|
$result .= "|$father $freelib_text";
|
|
}
|
|
} else {
|
|
if ($nohierarchy) {
|
|
$result = "$freelib_text";
|
|
} else {
|
|
$result = "$father $freelib_text";
|
|
}
|
|
}
|
|
}
|
|
if ($op eq "add") {
|
|
newauthority($dbh,$category,$insert,$insert,'',1,'');
|
|
$search_string=$insert;
|
|
}
|
|
my ($template, $loggedinuser, $cookie)
|
|
= get_template_and_user({template_name => "thesaurus_popup.tmpl",
|
|
query => $input,
|
|
type => "intranet",
|
|
authnotrequired => 0,
|
|
flagsrequired => {parameters => 1},
|
|
debug => 1,
|
|
});
|
|
# /search thesaurus terms starting by search_string
|
|
my @freelib;
|
|
my %stdlib;
|
|
my $select_list;
|
|
if ($search_string) {
|
|
# my $sti=$dbh->prepare("select id,freelib from bibliothesaurus where freelib like '".$search_string."%' and category ='$category'");
|
|
my $sti=$dbh->prepare("select id,freelib,father from bibliothesaurus where match (category,freelib) AGAINST (?) and category =?");
|
|
$sti->execute($search_string,$category);
|
|
while (my $line=$sti->fetchrow_hashref) {
|
|
if ($nohierarchy) {
|
|
$stdlib{$line->{'id'}} = "$line->{'freelib'}";
|
|
} else {
|
|
$stdlib{$line->{'id'}} = "$line->{'father'} $line->{'freelib'}";
|
|
}
|
|
push(@freelib,$line->{'id'});
|
|
}
|
|
$select_list= CGI::scrolling_list( -name=>'id',
|
|
-values=> \@freelib,
|
|
-default=> "",
|
|
-size=>1,
|
|
-multiple=>0,
|
|
-labels=> \%stdlib
|
|
);
|
|
}
|
|
my @x = SearchDeeper('',$category,$search_string);
|
|
#my @son;
|
|
#foreach (my $value @$x) {
|
|
# warn \@$x[$value]->{'stdlib'};
|
|
#}
|
|
my $dig_list= CGI::scrolling_list( -name=>'search_string',
|
|
-values=> \@x,
|
|
-default=> "",
|
|
-size=>1,
|
|
-multiple=>0,
|
|
);
|
|
|
|
$template->param(select_list => $select_list,
|
|
search_string => $search_string,
|
|
dig_list => $dig_list,
|
|
result => $result,
|
|
category => $category,
|
|
index => $index,
|
|
nohierarchy => $nohierarchy,
|
|
);
|
|
output_html_with_http_headers $input, $cookie, $template->output;
|
|
|
|
|