diff --git a/modbib.pl b/modbib.pl index 1baf558469..4f88819d91 100755 --- a/modbib.pl +++ b/modbib.pl @@ -63,7 +63,7 @@ $data->{'title'} = &tidyhtml($data->{'title'}); print << "EOF"; Modify Website Links -
+ @@ -81,7 +81,9 @@ print << "EOF"; - + @@ -123,6 +125,11 @@ print << "EOF";
+ EOF print endmenu(); diff --git a/thesaurus_popup.pl b/thesaurus_popup.pl new file mode 100755 index 0000000000..cc9ab5db78 --- /dev/null +++ b/thesaurus_popup.pl @@ -0,0 +1,73 @@ +#!/usr/bin/perl + +# written 10/5/2002 by Paul +# build Subject field using bibliothesaurus table + +use strict; +use CGI; +use C4::Database; +use C4::Search; +use C4::Circulation::Circ2; +use C4::Output; + +# get all the data .... +my %env; + +my $input = new CGI; +my $subject = $input->param('subject'); +my $search_string= $input->param('search_string'); +my $op = $input->param('op'); +my $freelib_text = $input->param('freelib_text'); + +my $dbh=C4Connect; + +# make the page ... +print $input->header; +if ($op eq "select") { + $subject = $subject."|$freelib_text"; +} +print <<"EOF"; + + + Subject builder + + + +
+

+ +

+ +EOF +# /search thesaurus terms starting by search_string + if ($search_string) { + print ''; + print ' + + + + +EOF + } + print <<"EOF"; + + + + + + +EOF diff --git a/updater/thesaurus_create.pl b/updater/thesaurus_create.pl new file mode 100755 index 0000000000..17c9ebcc6f --- /dev/null +++ b/updater/thesaurus_create.pl @@ -0,0 +1,61 @@ +#!/usr/bin/perl + +use strict; +# This script generates and fill the thesaurus table +# with the data in bibliothesaurus + +use C4::Database; +use C4::Catalogue; +use DBI; +use C4::Acquisitions; +use C4::Output; + +my $dbh=C4Connect; + +sub dosql { + my ($dbh,$sql_cmd)=@_; + my $sti=$dbh->prepare($sql_cmd); + $sti->execute; + if ($sti->err) { + print "error : ".$sti->errstr." \n tried to execute : $sql_cmd\n"; + $sti->finish; + } +} + +my $sth=$dbh->prepare("show tables"); +$sth->execute; +my %tables; +while (my ($table) = $sth->fetchrow) { + $tables{$table}=1; +# print "table $table\n"; +} + +print "creating thesaurus...\n"; +dosql($dbh,"CREATE TABLE bibliothesaurus (code BIGINT not null AUTO_INCREMENT, freelib CHAR (255) not null , stdlib CHAR (255) not null , type CHAR (80) not null , PRIMARY KEY (code), INDEX (freelib),index(stdlib),index(type))"); + my $sti=$dbh->prepare("select count(*) as tot from bibliosubject"); + $sti->execute; + my $total = $sti->fetchrow_hashref; + my $sti=$dbh->prepare("select subject from bibliosubject"); + $sti->execute; + my $i; + while (my $line =$sti->fetchrow_hashref) { + $i++; + if ($i % 1000==0) { + print "$i / $total->{'tot'}\n"; + } +# print "$i $line->{'subject'}\n"; + my $sti2=$dbh->prepare("select count(*) as t from bibliothesaurus where freelib=".$dbh->quote($line->{'subject'})); + $sti2->execute; + if ($sti2->err) { + print "error : ".$sti2->errstr."\n"; + die; + } + my $line2=$sti2->fetchrow_hashref; + if ($line2->{'t'} ==0) { + dosql($dbh,"insert into bibliothesaurus (freelib,stdlib) values (".$dbh->quote($line->{'subject'}).",".$dbh->quote($line->{'subject'}).")"); +# } else { +# print "pas ecriture pour : $line->{'subject'}\n"; + } + + } +
Subject +... +
Copyright Date