[Koha-cvs] koha/opac opac-account.pl opac-addbookbybiblion... [dev_week]
Joshua Ferraro
jmf at kados.org
Fri Aug 18 18:14:16 CEST 2006
CVSROOT: /sources/koha
Module name: koha
Branch: dev_week
Changes by: Joshua Ferraro <kados> 06/08/18 16:14:16
Modified files:
opac : opac-account.pl opac-addbookbybiblionumber.pl
opac-authoritiesdetail.pl
opac-authorities-home.pl opac-detail.pl
opac-ISBDdetail.pl opac-main.pl
opac-MARCdetail.pl opac-passwd.pl
opac-readingrecord.pl opac-reserve.pl
opac-serial-issues.pl opac-shelves.pl
opac-suggestions.pl opac-userdetails.pl
opac-user.pl opac-userupdate.pl
Added files:
opac : livesearch.advanced.pl search
Log message:
Adding langauge switching options to all scripts. Some general cleanup
on module namespaces.
Adding livesearch.advanced.pl and search
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/opac/opac-account.pl?cvsroot=koha&only_with_tag=dev_week&r1=1.8.2.6&r2=1.8.2.6.2.1
http://cvs.savannah.gnu.org/viewcvs/koha/opac/opac-addbookbybiblionumber.pl?cvsroot=koha&only_with_tag=dev_week&r1=1.1.2.6.2.2&r2=1.1.2.6.2.3
http://cvs.savannah.gnu.org/viewcvs/koha/opac/opac-authoritiesdetail.pl?cvsroot=koha&only_with_tag=dev_week&r1=1.1.2.2.2.1&r2=1.1.2.2.2.2
http://cvs.savannah.gnu.org/viewcvs/koha/opac/opac-authorities-home.pl?cvsroot=koha&only_with_tag=dev_week&r1=1.1.2.6.2.1&r2=1.1.2.6.2.2
http://cvs.savannah.gnu.org/viewcvs/koha/opac/opac-detail.pl?cvsroot=koha&only_with_tag=dev_week&r1=1.14.2.19.2.2&r2=1.14.2.19.2.3
http://cvs.savannah.gnu.org/viewcvs/koha/opac/opac-ISBDdetail.pl?cvsroot=koha&only_with_tag=dev_week&r1=1.5.2.10&r2=1.5.2.10.2.1
http://cvs.savannah.gnu.org/viewcvs/koha/opac/opac-main.pl?cvsroot=koha&only_with_tag=dev_week&r1=1.16.2.10&r2=1.16.2.10.2.1
http://cvs.savannah.gnu.org/viewcvs/koha/opac/opac-MARCdetail.pl?cvsroot=koha&only_with_tag=dev_week&r1=1.4.2.14.2.1&r2=1.4.2.14.2.2
http://cvs.savannah.gnu.org/viewcvs/koha/opac/opac-passwd.pl?cvsroot=koha&only_with_tag=dev_week&r1=1.1.2.4&r2=1.1.2.4.2.1
http://cvs.savannah.gnu.org/viewcvs/koha/opac/opac-readingrecord.pl?cvsroot=koha&only_with_tag=dev_week&r1=1.6.2.6&r2=1.6.2.6.2.1
http://cvs.savannah.gnu.org/viewcvs/koha/opac/opac-reserve.pl?cvsroot=koha&only_with_tag=dev_week&r1=1.22.2.9&r2=1.22.2.9.2.1
http://cvs.savannah.gnu.org/viewcvs/koha/opac/opac-serial-issues.pl?cvsroot=koha&only_with_tag=dev_week&r1=1.1.2.10&r2=1.1.2.10.2.1
http://cvs.savannah.gnu.org/viewcvs/koha/opac/opac-shelves.pl?cvsroot=koha&only_with_tag=dev_week&r1=1.3.2.8&r2=1.3.2.8.2.1
http://cvs.savannah.gnu.org/viewcvs/koha/opac/opac-suggestions.pl?cvsroot=koha&only_with_tag=dev_week&r1=1.3.2.7&r2=1.3.2.7.2.1
http://cvs.savannah.gnu.org/viewcvs/koha/opac/opac-userdetails.pl?cvsroot=koha&only_with_tag=dev_week&r1=1.8.2.6&r2=1.8.2.6.2.1
http://cvs.savannah.gnu.org/viewcvs/koha/opac/opac-user.pl?cvsroot=koha&only_with_tag=dev_week&r1=1.14.2.9.2.2&r2=1.14.2.9.2.3
http://cvs.savannah.gnu.org/viewcvs/koha/opac/opac-userupdate.pl?cvsroot=koha&only_with_tag=dev_week&r1=1.11.2.5.2.1&r2=1.11.2.5.2.2
http://cvs.savannah.gnu.org/viewcvs/koha/opac/livesearch.advanced.pl?cvsroot=koha&only_with_tag=dev_week&rev=1.1.2.1
http://cvs.savannah.gnu.org/viewcvs/koha/opac/search?cvsroot=koha&only_with_tag=dev_week&rev=1.1.2.1
Patches:
Index: opac-account.pl
===================================================================
RCS file: /sources/koha/koha/opac/opac-account.pl,v
retrieving revision 1.8.2.6
retrieving revision 1.8.2.6.2.1
diff -u -b -r1.8.2.6 -r1.8.2.6.2.1
--- opac-account.pl 8 Mar 2006 13:46:55 -0000 1.8.2.6
+++ opac-account.pl 18 Aug 2006 16:14:15 -0000 1.8.2.6.2.1
@@ -23,6 +23,12 @@
debug => 1,
});
+# load languages
+my @languages_options = displayLanguages($query);
+my $languages_count = @languages_options;
+if($languages_count > 1){
+ $template->param(languages => \@languages_options);
+}
# get borrower information ....
my ($borr, $flags) = getpatroninformation(undef, $borrowernumber);
Index: opac-addbookbybiblionumber.pl
===================================================================
RCS file: /sources/koha/koha/opac/opac-addbookbybiblionumber.pl,v
retrieving revision 1.1.2.6.2.2
retrieving revision 1.1.2.6.2.3
diff -u -b -r1.1.2.6.2.2 -r1.1.2.6.2.3
--- opac-addbookbybiblionumber.pl 3 Aug 2006 05:25:42 -0000 1.1.2.6.2.2
+++ opac-addbookbybiblionumber.pl 18 Aug 2006 16:14:15 -0000 1.1.2.6.2.3
@@ -2,7 +2,7 @@
#script to provide bookshelf management
# WARNING: This file uses 4-character tabs!
#
-# $Header: /sources/koha/koha/opac/opac-addbookbybiblionumber.pl,v 1.1.2.6.2.2 2006/08/03 05:25:42 kados Exp $
+# $Header: /sources/koha/koha/opac/opac-addbookbybiblionumber.pl,v 1.1.2.6.2.3 2006/08/18 16:14:15 kados Exp $
#
# Copyright 2000-2002 Katipo Communications
#
@@ -46,6 +46,11 @@
authnotrequired => 1,
});
+my @languages_options = displayLanguages($query);
+my $languages_count = @languages_options;
+if($languages_count > 1){
+ $template->param(languages => \@languages_options);
+}
my $x; # for trash
($x,$x,$shelfnumber) = AddShelf('',$newbookshelf,$loggedinuser,$category) if $newbookshelf;
@@ -92,6 +97,12 @@
output_html_with_http_headers $query, $cookie, $template->output;
}
# $Log: opac-addbookbybiblionumber.pl,v $
+# Revision 1.1.2.6.2.3 2006/08/18 16:14:15 kados
+# Adding langauge switching options to all scripts. Some general cleanup
+# on module namespaces.
+#
+# Adding livesearch.advanced.pl and search
+#
# Revision 1.1.2.6.2.2 2006/08/03 05:25:42 kados
# sync with rel_2_2, the bugfixes I made today
#
Index: opac-authoritiesdetail.pl
===================================================================
RCS file: /sources/koha/koha/opac/Attic/opac-authoritiesdetail.pl,v
retrieving revision 1.1.2.2.2.1
retrieving revision 1.1.2.2.2.2
diff -u -b -r1.1.2.2.2.1 -r1.1.2.2.2.2
--- opac-authoritiesdetail.pl 3 Aug 2006 05:25:42 -0000 1.1.2.2.2.1
+++ opac-authoritiesdetail.pl 18 Aug 2006 16:14:15 -0000 1.1.2.2.2.2
@@ -70,6 +70,12 @@
debug => 1,
});
+# load languages
+my @languages_options = displayLanguages($query);
+my $languages_count = @languages_options;
+if($languages_count > 1){
+ $template->param(languages => \@languages_options);
+}
my $record;
if (C4::Context->preference("AuthDisplayHierarchy")){
my $trees=BuildUnimarcHierarchies($authid);
Index: opac-authorities-home.pl
===================================================================
RCS file: /sources/koha/koha/opac/Attic/opac-authorities-home.pl,v
retrieving revision 1.1.2.6.2.1
retrieving revision 1.1.2.6.2.2
diff -u -b -r1.1.2.6.2.1 -r1.1.2.6.2.2
--- opac-authorities-home.pl 21 Jul 2006 17:46:48 -0000 1.1.2.6.2.1
+++ opac-authorities-home.pl 18 Aug 2006 16:14:15 -0000 1.1.2.6.2.2
@@ -75,6 +75,13 @@
debug => 1,
});
+
+ # load the languages
+ my @languages_options = displayLanguages($query);
+ my $languages_count = @languages_options;
+ if($languages_count > 1){
+ $template->param(languages => \@languages_options);
+ }
# multi page display gestion
my $displaynext=0;
my $displayprev=$startfrom;
@@ -152,6 +159,13 @@
flagsrequired => {catalogue => 1},
debug => 1,
});
+
+ # load the languages
+ my @languages_options = displayLanguages($query);
+ my $languages_count = @languages_options;
+ if($languages_count > 1){
+ $template->param(languages => \@languages_options);
+ }
# $template->param("statements" => \@statements,
# "nbstatements" => $nbstatements);
}
@@ -166,6 +180,12 @@
debug => 1,
});
+ # load the languages
+ my @languages_options = displayLanguages($query);
+ my $languages_count = @languages_options;
+ if($languages_count > 1){
+ $template->param(languages => \@languages_options);
+ }
# Gets the entered information
my @marcfields = $query->param('marclist');
my @and_or = $query->param('and_or');
@@ -238,6 +258,12 @@
debug => 1,
});
+ # load the languages
+ my @languages_options = displayLanguages($query);
+ my $languages_count = @languages_options;
+ if($languages_count > 1){
+ $template->param(languages => \@languages_options);
+ }
}
$template->param(authtypesloop => \@authtypesloop,
Index: opac-detail.pl
===================================================================
RCS file: /sources/koha/koha/opac/opac-detail.pl,v
retrieving revision 1.14.2.19.2.2
retrieving revision 1.14.2.19.2.3
diff -u -b -r1.14.2.19.2.2 -r1.14.2.19.2.3
--- opac-detail.pl 3 Aug 2006 05:25:42 -0000 1.14.2.19.2.2
+++ opac-detail.pl 18 Aug 2006 16:14:15 -0000 1.14.2.19.2.3
@@ -18,6 +18,12 @@
flagsrequired => {borrow => 1},
});
+# load the languages
+my @languages_options = displayLanguages($query);
+my $languages_count = @languages_options;
+if($languages_count > 1){
+ $template->param(languages => \@languages_options);
+}
my $biblionumber=$query->param('bib');
$template->param(biblionumber => $biblionumber);
Index: opac-ISBDdetail.pl
===================================================================
RCS file: /sources/koha/koha/opac/opac-ISBDdetail.pl,v
retrieving revision 1.5.2.10
retrieving revision 1.5.2.10.2.1
diff -u -b -r1.5.2.10 -r1.5.2.10.2.1
--- opac-ISBDdetail.pl 8 Mar 2006 13:46:55 -0000 1.5.2.10
+++ opac-ISBDdetail.pl 18 Aug 2006 16:14:15 -0000 1.5.2.10.2.1
@@ -99,6 +99,12 @@
subscriptionsnumber => $subscriptionsnumber,
);
+# load the languages
+my @languages_options = displayLanguages($query);
+my $languages_count = @languages_options;
+if($languages_count > 1){
+ $template->param(languages => \@languages_options);
+}
my $ISBD = C4::Context->preference('ISBD');
# my @blocs = split /\@/,$ISBD;
# my @fields = $record->fields();
Index: opac-main.pl
===================================================================
RCS file: /sources/koha/koha/opac/opac-main.pl,v
retrieving revision 1.16.2.10
retrieving revision 1.16.2.10.2.1
diff -u -b -r1.16.2.10 -r1.16.2.10.2.1
--- opac-main.pl 3 Apr 2006 10:29:23 -0000 1.16.2.10
+++ opac-main.pl 18 Aug 2006 16:14:15 -0000 1.16.2.10.2.1
@@ -46,22 +46,18 @@
authnotrequired => 1,
flagsrequired => {borrow => 1},
});
-my $borrower = getmember('',$borrowernumber);
-my @options;
-my $counter=0;
-foreach my $language (getalllanguages()) {
- next if $language eq 'images';
- next if $language eq 'CVS';
- next if $language=~ /png$/;
- next if $language=~ /css$/;
- my $selected='0';
-# next if $currently_selected_languages->{$language};
- push @options, { language => $language, counter => $counter };
- $counter++;
+
+# load the languages
+my @languages_options = displayLanguages($input);
+my $languages_count = @languages_options;
+if($languages_count > 1){
+ $template->param(languages => \@languages_options);
}
-my $languages_count = @options;
+my $borrower = getmember('',$borrowernumber);
+my @languages_options = displayLanguages($input);
+my $languages_count = @languages_options;
if($languages_count > 1){
- $template->param(languages => \@options);
+ $template->param(languages => \@languages_options);
}
$template->param(itemtypeloop => \@itemtypeloop,
branchloop=>\@branchloop,
Index: opac-MARCdetail.pl
===================================================================
RCS file: /sources/koha/koha/opac/opac-MARCdetail.pl,v
retrieving revision 1.4.2.14.2.1
retrieving revision 1.4.2.14.2.2
diff -u -b -r1.4.2.14.2.1 -r1.4.2.14.2.2
--- opac-MARCdetail.pl 11 Jul 2006 14:16:46 -0000 1.4.2.14.2.1
+++ opac-MARCdetail.pl 18 Aug 2006 16:14:15 -0000 1.4.2.14.2.2
@@ -79,6 +79,12 @@
debug => 1,
});
+# load the languages
+my @languages_options = displayLanguages($query);
+my $languages_count = @languages_options;
+if($languages_count > 1){
+ $template->param(languages => \@languages_options);
+}
# fill arrays
my @loop_data =();
my $tag;
Index: opac-passwd.pl
===================================================================
RCS file: /sources/koha/koha/opac/opac-passwd.pl,v
retrieving revision 1.1.2.4
retrieving revision 1.1.2.4.2.1
diff -u -b -r1.1.2.4 -r1.1.2.4.2.1
--- opac-passwd.pl 8 Mar 2006 13:46:55 -0000 1.1.2.4
+++ opac-passwd.pl 18 Aug 2006 16:14:15 -0000 1.1.2.4.2.1
@@ -41,6 +41,12 @@
debug => 1,
});
+# load the languages
+my @languages_options = displayLanguages($query);
+my $languages_count = @languages_options;
+if($languages_count > 1){
+ $template->param(languages => \@languages_options);
+}
# get borrower information ....
my ($borr, $flags) = getpatroninformation(undef, $borrowernumber);
my $sth = $dbh->prepare("UPDATE borrowers SET password = ? WHERE borrowernumber=?");
Index: opac-readingrecord.pl
===================================================================
RCS file: /sources/koha/koha/opac/opac-readingrecord.pl,v
retrieving revision 1.6.2.6
retrieving revision 1.6.2.6.2.1
diff -u -b -r1.6.2.6 -r1.6.2.6.2.1
--- opac-readingrecord.pl 8 Mar 2006 13:46:55 -0000 1.6.2.6
+++ opac-readingrecord.pl 18 Aug 2006 16:14:15 -0000 1.6.2.6.2.1
@@ -21,6 +21,12 @@
debug => 1,
});
+# load the languages
+my @languages_options = displayLanguages($query);
+my $languages_count = @languages_options;
+if($languages_count > 1){
+ $template->param(languages => \@languages_options);
+}
# get borrower information ....
my ($borr, $flags) = getpatroninformation(undef, $borrowernumber);
Index: opac-reserve.pl
===================================================================
RCS file: /sources/koha/koha/opac/opac-reserve.pl,v
retrieving revision 1.22.2.9
retrieving revision 1.22.2.9.2.1
diff -u -b -r1.22.2.9 -r1.22.2.9.2.1
--- opac-reserve.pl 18 Apr 2006 19:49:13 -0000 1.22.2.9
+++ opac-reserve.pl 18 Aug 2006 16:14:15 -0000 1.22.2.9.2.1
@@ -27,6 +27,12 @@
debug => 1,
});
+# load the languages
+my @languages_options = displayLanguages($query);
+my $languages_count = @languages_options;
+if($languages_count > 1){
+ $template->param(languages => \@languages_options);
+}
# get borrower information ....
my ($borr, $flags) = getpatroninformation(undef, $borrowernumber);
# my @bordat;
Index: opac-serial-issues.pl
===================================================================
RCS file: /sources/koha/koha/opac/opac-serial-issues.pl,v
retrieving revision 1.1.2.10
retrieving revision 1.1.2.10.2.1
diff -u -b -r1.1.2.10 -r1.1.2.10.2.1
--- opac-serial-issues.pl 8 Mar 2006 13:46:55 -0000 1.1.2.10
+++ opac-serial-issues.pl 18 Aug 2006 16:14:15 -0000 1.1.2.10.2.1
@@ -36,6 +36,12 @@
debug => 1,
});
+ # load the languages
+ my @languages_options = displayLanguages($query);
+ my $languages_count = @languages_options;
+ if($languages_count > 1){
+ $template->param(languages => \@languages_options);
+ }
# replace CR by <br> in librarian note
# $subscription->{opacnote} =~ s/\n/\<br\/\>/g;
@@ -60,6 +66,13 @@
debug => 1,
});
+
+ # load the languages
+ my @languages_options = displayLanguages($query);
+ my $languages_count = @languages_options;
+ if($languages_count > 1){
+ $template->param(languages => \@languages_options);
+ }
# replace CR by <br> in librarian note
# $subscription->{opacnote} =~ s/\n/\<br\/\>/g;
Index: opac-shelves.pl
===================================================================
RCS file: /sources/koha/koha/opac/opac-shelves.pl,v
retrieving revision 1.3.2.8
retrieving revision 1.3.2.8.2.1
diff -u -b -r1.3.2.8 -r1.3.2.8.2.1
--- opac-shelves.pl 8 Mar 2006 13:46:55 -0000 1.3.2.8
+++ opac-shelves.pl 18 Aug 2006 16:14:15 -0000 1.3.2.8.2.1
@@ -2,7 +2,7 @@
#script to provide bookshelf management
# WARNING: This file uses 4-character tabs!
#
-# $Header: /sources/koha/koha/opac/opac-shelves.pl,v 1.3.2.8 2006/03/08 13:46:55 tipaul Exp $
+# $Header: /sources/koha/koha/opac/opac-shelves.pl,v 1.3.2.8.2.1 2006/08/18 16:14:15 kados Exp $
#
# Copyright 2000-2002 Katipo Communications
#
@@ -41,6 +41,12 @@
authnotrequired => 1,
});
+# load the languages
+my @languages_options = displayLanguages($query);
+my $languages_count = @languages_options;
+if($languages_count > 1){
+ $template->param(languages => \@languages_options);
+}
if ($query->param('modifyshelfcontents')) {
my $shelfnumber=$query->param('shelfnumber');
my $barcode=$query->param('addbarcode');
@@ -184,6 +190,12 @@
#
# $Log: opac-shelves.pl,v $
+# Revision 1.3.2.8.2.1 2006/08/18 16:14:15 kados
+# Adding langauge switching options to all scripts. Some general cleanup
+# on module namespaces.
+#
+# Adding livesearch.advanced.pl and search
+#
# Revision 1.3.2.8 2006/03/08 13:46:55 tipaul
# some opac systempreferences are set by all pages.
# Moving the $template->param where the template is open. This way, nothing can be forgotten, and code is more readable. Feel free to move to Auth.pm any new systempref
Index: opac-suggestions.pl
===================================================================
RCS file: /sources/koha/koha/opac/opac-suggestions.pl,v
retrieving revision 1.3.2.7
retrieving revision 1.3.2.7.2.1
diff -u -b -r1.3.2.7 -r1.3.2.7.2.1
--- opac-suggestions.pl 4 Apr 2006 14:07:33 -0000 1.3.2.7
+++ opac-suggestions.pl 18 Aug 2006 16:14:15 -0000 1.3.2.7.2.1
@@ -34,6 +34,13 @@
type => "opac",
authnotrequired => 1,
});
+
+ # load the languages
+ my @languages_options = displayLanguages($input);
+ my $languages_count = @languages_options;
+ if($languages_count > 1){
+ $template->param(languages => \@languages_options);
+ }
if (!$borrowernumber) {
$borrowernumber = C4::Context->preference("AnonSuggestions");
}
@@ -44,6 +51,13 @@
type => "opac",
authnotrequired => 1,
});
+
+ # load the languages
+ my @languages_options = displayLanguages($query);
+ my $languages_count = @languages_options;
+ if($languages_count > 1){
+ $template->param(languages => \@languages_options);
+ }
}
if ($op eq "add_confirm") {
Index: opac-userdetails.pl
===================================================================
RCS file: /sources/koha/koha/opac/opac-userdetails.pl,v
retrieving revision 1.8.2.6
retrieving revision 1.8.2.6.2.1
diff -u -b -r1.8.2.6 -r1.8.2.6.2.1
--- opac-userdetails.pl 8 Mar 2006 13:46:55 -0000 1.8.2.6
+++ opac-userdetails.pl 18 Aug 2006 16:14:15 -0000 1.8.2.6.2.1
@@ -21,6 +21,12 @@
debug => 1,
});
+# load the languages
+my @languages_options = displayLanguages($query);
+my $languages_count = @languages_options;
+if($languages_count > 1){
+ $template->param(languages => \@languages_options);
+}
# get borrower information ....
my ($borr, $flags) = getpatroninformation(undef, $borrowernumber);
Index: opac-user.pl
===================================================================
RCS file: /sources/koha/koha/opac/opac-user.pl,v
retrieving revision 1.14.2.9.2.2
retrieving revision 1.14.2.9.2.3
diff -u -b -r1.14.2.9.2.2 -r1.14.2.9.2.3
--- opac-user.pl 23 Jul 2006 15:26:29 -0000 1.14.2.9.2.2
+++ opac-user.pl 18 Aug 2006 16:14:15 -0000 1.14.2.9.2.3
@@ -22,6 +22,12 @@
debug => 1,
});
+# load the languages
+my @languages_options = displayLanguages($query);
+my $languages_count = @languages_options;
+if($languages_count > 1){
+ $template->param(languages => \@languages_options);
+}
# get borrower information ....
my ($borr, $flags) = getpatroninformation(undef, $borrowernumber);
Index: opac-userupdate.pl
===================================================================
RCS file: /sources/koha/koha/opac/opac-userupdate.pl,v
retrieving revision 1.11.2.5.2.1
retrieving revision 1.11.2.5.2.2
diff -u -b -r1.11.2.5.2.1 -r1.11.2.5.2.2
--- opac-userupdate.pl 3 Aug 2006 05:25:42 -0000 1.11.2.5.2.1
+++ opac-userupdate.pl 18 Aug 2006 16:14:15 -0000 1.11.2.5.2.2
@@ -23,6 +23,12 @@
debug => 1,
});
+# load the languages
+my @languages_options = displayLanguages($query);
+my $languages_count = @languages_options;
+if($languages_count > 1){
+ $template->param(languages => \@languages_options);
+}
# get borrower information ....
my ($borr, $flags) = getpatroninformation(undef, $borrowernumber);
@@ -42,6 +48,12 @@
debug => 1,
});
+ # load the languages
+ my @languages_options = displayLanguages($query);
+ my $languages_count = @languages_options;
+ if($languages_count > 1){
+ $template->param(languages => \@languages_options);
+ }
$template->param(errormessage => 'KohaAdminEmailAddress system preference
is not set. Please visit the library to update your user record');
Index: livesearch.advanced.pl
===================================================================
RCS file: livesearch.advanced.pl
diff -N livesearch.advanced.pl
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ livesearch.advanced.pl 18 Aug 2006 16:14:15 -0000 1.1.2.1
@@ -0,0 +1,78 @@
+#!/usr/bin/perl -w
+#use C4::Context;
+#use Apache::DBI;
+use CGI;
+use C4::Context;
+
+my $cgi = new CGI;
+my $zconn=C4::Context->Zconn("biblioserver");
+
+binmode(STDOUT, "utf8"); #output as utf8
+
+print $cgi->header( -type =>'text/xml' );
+
+#my $dbh=DBI->connect("DBI:mysql:demosuggest:localhost","sugg","Free2cirC");
+#my $dbh = C4::Context->dbh;
+
+my $word = $cgi->param('value');
+
+
+if ($word) {
+ # strip out bad stuff -- this takes too long!
+ $word =~ tr/A-Z/a-z/;
+ $word =~ s/(\.|\?|\:|\!|\'|,|\-|\"|\(|\)|\[|\]|\{|\})/ /g;
+ $word =~s/ / /g;
+# $word =~ s/(\.|\?|\:|\!|\'|,|\-|\"|\(|\)|\[|\]|\{|\}|\Athe |\Aa |\Aan )//g;
+ #$word .= "\%";
+ #$word = """.$word.""";
+ my $query = "\"$word\"";
+ if ($query =~ / /) {
+ $query = "\@attr 6=2 $query";
+ }
+ warn "$query";
+ my $result;
+ eval {
+ my $zoom_query_obj = new ZOOM::Query::PQF($query);
+ $result = $zconn->scan($zoom_query_obj);
+ };
+ if ($@) {
+ die "error connecting to Zebra".$@;
+ }
+ my $numresults = 0 | $result->size() if ($result);
+ my $outstring="<?xml version='1.0' encoding='utf-8' ?>";
+ $outstring="<h2 style=\"margin-top: 10px;\">Top 9 search results</h2>";
+ $outstring="<p>Term: ‘<span class=\"highlight0\"><a href=\"/cgi-bin/koha/livesearch.pl/?value=$query\" title=\"Search for this term\">$query</a></span>’</p>";
+ $outstring.="<ul>";
+
+ for ( my $i=1; $i<=10; $i++){
+ my ($suggest,$count) = $result->term($i-1);
+ my $length=length($suggest);
+ $query=$suggest;
+# $query =~ s/(\'s|&|\.|\?|\:|\!|\'|,|\-|\"|\(|\)|\[|\]|\{|\}|\/|)//g;
+ #$outstring.="<li class=\"LSRow\" onmouseover=\"liveSearchHover(this)\" onclick=\"liveSearchClicked(this)\"><a href="."\"http://zoomopac.liblime.com/cgi-bin/koha/opac-zoomsearch.pl?op=get_results&cql_query="$query"\">\n$suggest";
+ $outstring.="
+<li>
+<dl>
+<dt class=\"ls-title\"><a href=\"/cgi-bin/koha/opac-zoomsearch.pl?op=\"get_results\"&cql_query=\"$suggest\"/\" title=\"\">$suggest</a></dt>
+<dd class=\"ls-cmnts\"><small><a href=\"/cgi-bin/koha/opac-zoomsearch.pl?op=\"get_results\"&cql_query=\"$suggest\"\" title=\"Read current comments and post your own\">($count)</a></small></dd>
+<dd class=\"ls-data\">
+<p class=\"ls-sum\"><span>Summary:</span> NPL LiveSearch Test</p><p class=\"ls-snip\"><span>Snippet:</span> “NPL LiveSearch Testing…”</p><div class=\"btm\">
+
+<p class=\"ls-stats\"><span>Stats:</span> 255 words, 1 image</p>
+<p class=\"ls-time\"><span>Posted:</span> 1 year, 7 months ago</p>
+<br />
+</div>
+</dd>
+</dl>
+</li>"
+
+
+
+# $outstring.="\n</a>\n<span class=\"LSResRight\">$count results</span></li>";
+ }
+ $outstring.="
+</ul>
+<p style=\"padding-top: 10px;\"><a href=\"/blog/search/?q=aa\" title=\"View complete result listings for this search\">View all 11 results…</a></p>";
+ print $outstring;
+}
+
Index: search
===================================================================
RCS file: search
diff -N search
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ search 18 Aug 2006 16:14:15 -0000 1.1.2.1
@@ -0,0 +1,591 @@
+#!/usr/bin/perl
+use strict; # always use
+#use warnings; # use only for development
+
+## load our Koha modules
+use C4::Context;
+use C4::Interface::CGI::Output;
+use C4::Auth;
+use C4::Search;
+use C4::Biblio;
+use C4::Koha;
+use POSIX qw(ceil floor);
+
+# create a new CGI object
+use CGI;
+my $cgi = new CGI;
+
+my ($template,$borrowernumber,$cookie);
+
+# decide which template to use
+my $do = $cgi->param("do");
+my $template_name;
+if ((lc($do) =~/search/)|| $cgi->param("q")) {
+ warn "loading results";
+ $template_name = 'opac-results.tmpl';
+}
+else {
+ warn "loading adv search page";
+ $template_name = 'opac-advsearch.tmpl';
+}
+
+# load the template
+($template, $borrowernumber, $cookie) = get_template_and_user({
+ template_name => $template_name,
+ query => $cgi,
+ type => "opac",
+ authnotrequired => 1,}
+);
+
+# load the branches
+my $branches = getallbranches();
+my @branch_loop;
+push @branch_loop, {value => "", branchname => "All Branches", };
+for my $branch_hash (keys %$branches) {
+ push @branch_loop, {value => "branch: $branch_hash", branchname => $branches->{$branch_hash}->{'branchname'}, };
+}
+
+# load the itemtypes
+my ($itemtypecount, at item_type_loop) = getitemtypes();
+$template->param(itemtypeloop=>\@item_type_loop,);
+
+# load the languages
+my @languages_options = displayLanguages($cgi);
+my $languages_count = @languages_options;
+if($languages_count > 1){
+ $template->param(languages => \@languages_options);
+}
+# load the servers
+my $outer_servers_loop = [
+ { inner_servers_loop => [
+ {label => C4::Context->preference('LibraryName')." Catalog", id=>"NPL", name=>"server", value=>"localhost:9900/biblios",checked=>"checked",icon => "npl.png",zed => "1"},
+ {label => "OPLIN Databases", id=>"OPLIN", name=>"server", value=>"",checked=>"",icon => "oplin.ico",zed => "1"},
+ ],
+ },
+];
+$template->param(outer_servers_loop => $outer_servers_loop,);
+
+my $outer_sup_servers_loop = [
+ { inner_sup_servers_loop => [
+ {label => "Google", id=>"GOOG", value=>"google",icon => "google.ico",opensearch => "1"},
+ {label => "Yahoo", id=>"YAH", value=>"yahoo", icon =>"yahoo.ico", zed => "1"},
+ {label => "Worldcat", id=>"WCT", value=>"worldcat", icon => "worldcat.gif", zed => "1"},
+ {label => "Library of Congress", id=>"LOC", name=> "server", value=>"z3950.loc.gov:7090/Voyager", icon =>"loc.ico", zed => "1"},
+ ],
+ },
+];
+$template->param(outer_sup_servers_loop => $outer_sup_servers_loop,);
+
+# Here's a loop that can eventually be stored in the database
+# to store limit types and how to display them
+my $outer_limit_types_loop = [
+
+{ inner_limit_types_loop => [
+ {label => "Books",
+ id => "mc-bks",
+ name => "limit",
+ value => "mc:t",
+ icon => "AF.gif",
+ title => "Books, Pamphlets, Technical reports, Manuscripts, Legal papers, Theses and dissertations",},
+
+ {label => "Visual Materials",
+ id => "mc-vis",
+ name => "limit",
+ value => "mc:v",
+ icon => "AV Aids.gif",
+ title => "Motion pictures, Videorecordings, Filmstrips, Slides, Transparencies, Photos, Cards, Charts, Drawings",},
+
+ {label => "Sound Recordings",
+ id => "mc-sr",
+ name => "limit",
+ value => "mc:s",
+ icon => "AF.gif",
+ title => "Musical, Spoken, Books on Tape, etc. on DVD, CD, Cassette, and LP recordings",},
+
+ ],
+},
+{ inner_limit_types_loop => [
+ {label => "Computer Files",
+ id => "mc-cf",
+ name => "limit",
+ value => "mc:c",
+ icon => "CD-ROM software.gif",
+ title => "Computer files, Data, Software",},
+
+ {label => "Local History Materials",
+ id => "mc-lh",
+ name => "limit",
+ value => "mt-collection:LH",
+ icon => "Local history.gif",
+ title => "Local History Materials",},
+
+ {label => "Maps",
+ id => "mc-map",
+ name => "limit",
+ value => "mc:a",
+ icon => "PF.gif ",
+ title => "Maps, Globes",},
+ ],
+},
+
+];
+
+$template->param(outer_limit_types_loop => $outer_limit_types_loop,);
+
+# Here's a loop that can eventually be stored in the database used to
+# display the advanced search input boxes, indexes, boolean, etc.
+my $indexes = [
+ { value => 'kw', label => 'Keyword' },
+ { value => 'au', label => 'Author' },
+ { value => 'au,phr', label => ' Author Phrase' },
+# { value => 'cpn', label => ' Corporate Name' },
+# { value => 'cfn', label => ' Conference Name' },
+# { value => 'cpn,phr', label => ' Corporate Name Phrase' },
+# { value => 'cfn,phr', label => ' Conference Name Phrase' },
+# { value => 'pn', label => ' Personal Name' },
+# { value => 'pn,phr', label => ' Personal Name Phrase' },
+# { value => 'ln', label => 'Language' },
+# { value => 'mt', label => 'Material Type' },
+# { value => 'mt,phr', label => 'Material Type Phrase' },
+# { value => 'mc', label => 'Musical Composition' },
+# { value => 'mc,phr', label => 'Musical Composition Phrase' },
+
+ { value => 'nt', label => 'Notes/Comments' },
+ { value => 'pb', label => 'Publisher' },
+ { value => 'pl', label => 'Publisher Location' },
+ { value => 'sn', label => 'Standard Number' },
+ { value => 'nb', label => ' ISBN' },
+ { value => 'ns', label => ' ISSN' },
+ { value => 'lcn', label => ' Call Number' },
+ { value => 'su', label => 'Subject' },
+ { value => 'su,phr', label => ' Subject Phrase' },
+# { value => 'de', label => ' Descriptor' },
+# { value => 'ge', label => ' Genre/Form' },
+# { value => 'gc', label => ' Geographic Coverage' },
+
+# { value => 'nc', label => ' Named Corporation and Conference' },
+# { value => 'na', label => ' Named Person' },
+
+ { value => 'ti', label => 'Title' },
+ { value => 'ti,phr', label => ' Title Phrase' },
+ { value => 'se', label => ' Series Title' },
+
+];
+my @search_boxes_array;
+my $search_boxes_count = 3;
+for (my $i=0;$i<=$search_boxes_count;$i++) {
+ my $this_index =[@$indexes]; # clone the data, not just the reference
+ #@$this_index[$i]->{selected} = "selected";
+ if ($i==0) {
+ push @search_boxes_array,
+ {indexes => $this_index,
+ search_boxes_label => "<span class='labels'>Search for:</span>",
+ scan_index => "<label for='scan'></label><input type='checkbox' name='scan' id='scan' value='1'/>Scan Indexes",
+ };
+
+ }
+ elsif ($i==$search_boxes_count) {
+ push @search_boxes_array,
+ {indexes => $indexes,
+ left_content => " <select name='op'><option value='and' selected='selected'>and</option><option value='or'>or</option><option value='not'>not</option></select>",
+ add_field => "1"};
+ }
+ else {
+ push @search_boxes_array,
+ {indexes => $indexes,
+ left_content => " <select name='op'><option value='and' selected='selected'>and</option><option value='or'>or</option><option value='not'>not</option></select>",};
+ }
+}
+$template->param(search_boxes_loop => \@search_boxes_array,);
+
+# Here's another loop that will eventually be stored in the database
+# It controls the languages that show up in the language limit section of the
+# advanced search page
+my $languages_loop = [
+ {value => "", language_label => "No Limit", locale_label => "",selected => "selected",},
+ {value => "ln:ara", language_label => "العربية", locale_label => "Arabic",,},
+ {value => "ln:bul", language_label => "Български", locale_label => "Bulgarian",,},
+ {value => "ln:chi", language_label => "中文", locale_label => "Chinese",,},
+ {value => "ln:scr", language_label => "Hrvatski", locale_label => "Croatian",,},
+ {value => "ln:cze", language_label => "čeština", locale_label => "Czech",,},
+ {value => "ln:dan", language_label => "Dænsk", locale_label => "Danish",,},
+ {value => "ln:dut", language_label => "nedərlɑns", locale_label => "Dutch",,},
+ {value => "ln:eng", language_label => "English", locale_label => "",,},
+ {value => "ln:fre", language_label => "Français", locale_label => "French",,},
+ {value => "ln:ger", language_label => "Deutsch", locale_label => "German",,},
+ {value => "ln:gre", language_label => "ελληνικά", locale_label => "Greek, Modern [1453- ]",,},
+ {value => "ln:heb", language_label => "עברית", locale_label => "Hebrew",,},
+ {value => "ln:hin", language_label => "हिन्दी", locale_label => "Hindi",,},
+ {value => "ln:hun", language_label => "Magyar", locale_label => "Hungarian",,},
+ {value => "ln:ind", language_label => "", locale_label => "Indonesian",,},
+ {value => "ln:ita", language_label => "Italiano", locale_label => "Italian",,},
+ {value => "ln:jpn", language_label => "日本語", locale_label => "Japanese",,},
+ {value => "ln:kor", language_label => "한국어", locale_label => "Korean",,},
+ {value => "ln:lat", language_label => "Latina", locale_label => "Latin",,},
+ {value => "ln:nor", language_label => "Norsk", locale_label => "Norwegian",,},
+ {value => "ln:per", language_label => "فارسى", locale_label => "Persian",,},
+ {value => "ln:pol", language_label => "Polski", locale_label => "Polish",,},
+ {value => "ln:por", language_label => "Português", locale_label => "Portuguese",,},
+ {value => "ln:rum", language_label => "Română", locale_label => "Romanian",,},
+ {value => "ln:rus", language_label => "Русский", locale_label => "Russian",,},
+ {value => "ln:spa", language_label => "Español", locale_label => "Spanish",,},
+ {value => "ln:swe", language_label => "Svenska", locale_label => "Swedish",,},
+ {value => "ln:tha", language_label => "ภาษาไทย", locale_label => "Thai",,},
+ {value => "ln:tur", language_label => "Türkçe", locale_label => "Turkish",,},
+ {value => "ln:ukr", language_label => "Українська", locale_label => "Ukrainian",,},
+
+];
+$template->param(search_languages_loop => $languages_loop,);
+
+# Yet another loop we can move to the DB when the scheme matures:
+my $outer_subtype_limits_loop = [
+
+ { # in MARC21, aud codes are stored in 008/22 (Target audience)
+ name => "limit",
+ inner_subtype_limits_loop => [
+ { value => '', label => 'Any Audience', selected => "selected" },
+ { value => 'aud:a', label => 'Easy', },
+ { value => 'aud:c', label => 'Juvenile', },
+ { value => 'aud:d', label => 'Young Adult', },
+ { value => 'aud:e', label => 'Adult', },
+
+ ],
+ },
+ { # in MARC21, fic is in 008/33, bio in 008/34, mus in LDR/06
+ name => "limit",
+ inner_subtype_limits_loop => [
+ { value => '', label => 'Any Content', selected => "selected" },
+ { value => 'fic:1', label => 'Fiction', },
+ { value => 'fic:0', label => 'Non Fiction', },
+ { value => 'bio:b', label => 'Biography', },
+ { value => 'mus:', label => 'Not working - Musical recording', },
+ { value => 'mus:', label => 'Not working - Non-musical recording', },
+
+ ],
+ },
+ { # MARC21, these are codes stored in 007/00-01
+ name => "limit",
+ inner_subtype_limits_loop => [
+ { value => '', label => 'Any Format', selected => "selected" },
+ { value => 'l-format:ta', label => 'Regular print', },
+ { value => 'l-format:td', label => 'Large print', },
+ { value => 'l-format:fk', label => 'Braille', },
+ { value => '', label => '-----------', },
+ { value => 'l-format:sd', label => 'CD audio', },
+ { value => 'l-format:ss', label => 'Cassette recording', },
+ { value => 'l-format:vf', label => 'VHS tape / Videocassette', },
+ { value => 'l-format:vd', label => 'DVD video / Videodisc', },
+ { value => 'l-format:co', label => 'CD Software', },
+
+ ],
+ },
+ { # in MARC21, these are codes in 008/24-28
+ name => "limit",
+ inner_subtype_limits_loop => [
+ { value => '', label => 'Additional Content Types', },
+ { value => 'ctype:a', label => 'Abstracts/summaries', },
+ { value => 'ctype:b', label => 'Bibliographies', },
+ { value => 'ctype:c', label => 'Catalogs', },
+ { value => 'ctype:d', label => 'Dictionaries', },
+ { value => 'ctype:e', label => 'Encyclopedias ',},
+ { value => 'ctype:f', label => 'Handbooks', },
+ { value => 'ctype:g', label => 'Legal articles',},
+ { value => 'ctype:i', label => 'Indexes', },
+ { value => 'ctype:j', label => 'Patent document', },
+ { value => 'ctype:k', label => 'Discographies', },
+ { value => 'ctype:l', label => 'Legislation', },
+ { value => 'ctype:m', label => 'Theses',},
+ { value => 'ctype:n', label => 'Surveys', },
+ { value => 'ctype:o', label => 'Reviews',},
+ { value => 'ctype:p', label => 'Programmed texts', },
+ { value => 'ctype:q', label => 'Filmographies', },
+ { value => 'ctype:r', label => 'Directories', },
+ { value => 'ctype:s', label => 'Statistics', },
+ { value => 'ctype:t', label => 'Technical reports', },
+ { value => 'ctype:v', label => 'Legal cases and case notes', },
+ { value => 'ctype:w', label => 'Law reports and digests', },
+ { value => 'ctype:z', label => 'Treaties ', },
+ ],
+ },
+];
+$template->param(outer_subtype_limits_loop => $outer_subtype_limits_loop,);
+
+$template->param(branchloop => \@branch_loop,);
+
+# Fetch the paramater list as a hash in scalar context:
+# * returns paramater list as tied hash ref
+# * we can edit the values by changing the key
+# * multivalued CGI paramaters are returned as a packaged string separated by "\0" (null)
+my $params = $cgi->Vars;
+
+# Params that can have more than one value
+#
+# Use the servers defined, or just search our local catalog(default)
+my @servers;
+ at servers = split("\0",$params->{'server'}) if $params->{'server'};
+unless (@servers) {
+ #FIXME: this should be handled in Context.pm
+ @servers = ("localhost:9900/biblios");
+}
+
+# operators include boolean and proximity operators and are used
+# to evaluate multiple operands
+my @operators;
+ at operators = split("\0",$params->{'op'}) if $params->{'op'};
+
+# indexes are query qualifiers, like 'title', 'author', etc. They
+# can be simple or complex
+my @indexes;
+ at indexes = split("\0",$params->{'idx'}) if $params->{'idx'};
+
+# an operand can be a single term, a phrase, or a complete ccl query
+my @operands;
+ at operands = split("\0",$params->{'qf'}) if $params->{'qf'};
+
+# limits are use to limit to results to a pre-defined category such as branch or language
+my @limits;
+ at limits = split("\0",$params->{'limit'}) if $params->{'limit'};
+push @limits, map "yr:".$_, split("\0",$params->{'limit-yr'}) if $params->{'limit-yr'};
+
+# sort by is used to sort the query
+my @sort_by;
+ at sort_by = split("\0",$params->{'sort_by'}) if $params->{'sort_by'};
+
+# Params that can only have one value
+my $query = $params->{'q'};
+my $scan = $params->{'scan'};
+my $expanded_options = $params->{'expanded_options'};
+my $count = $params->{'count'} || 20;
+my $offset = $params->{'offset'} || 0;
+my $hits;
+my $expanded_facet = $params->{'expand_facet'};
+$template->param(expanded_options => $expanded_options);
+unless ( (lc($do) =~/search/ )||($cgi->param("q")) ) {
+ warn "nothing to do, exiting";
+ output_html_with_http_headers $cgi, $cookie, $template->output;
+ exit;
+}
+
+# Define some global variables
+my $error; # used for error handling
+my $search_desc; # the query expressed in terms that humans understand
+my $koha_query; # the query expressed in terms that zoom understands with field weighting and stemming
+my $federated_query;
+my $query_type; # usually not needed, but can be used to trigger ccl, cql, or pqf queries if set
+my @results;
+
+## I. BUILD THE QUERY
+($error,$search_desc,$koha_query,$federated_query,$query_type) = buildQuery($query,\@operators,\@operands,\@indexes,\@limits);
+
+## II. DO THE SEARCH AND GET THE RESULTS
+my $total; # the total results for the whole set
+my $facets;
+my @results_array;
+my $results_hashref;
+eval {
+
+ ($error, $results_hashref, $facets) = getRecords($koha_query,$federated_query,\@sort_by,\@servers,$count,$offset,$expanded_facet,$branches,$query_type,$scan);
+
+};
+if ($@ || $error) {
+ $template->param(query_error => $error.$@);
+ warn "error: ".$error.$@;
+ output_html_with_http_headers $cgi, $cookie, $template->output;
+ exit;
+}
+# At this point, each server has given us a result set
+# now we build that set for template display
+my @sup_results_array;
+for (my $i=0;$i<=@servers;$i++) {
+ my $server = $servers[$i];
+ if ($server =~/localhost/) { # this is the local server
+ my @newresults = searchResults( $search_desc,$results_hashref->{$server}->{"hits"},$count,@{$results_hashref->{$server}->{"RECORDS"}});
+
+ $total = $total + $results_hashref->{$server}->{"hits"};
+ $hits = $results_hashref->{$server}->{"hits"};
+ if ($hits) {
+ # sorting out which results to display.
+ # the result number to start to show
+ $template->param(starting => $offset+1);
+ $template->param(ending => $offset+$count);
+ # the result number to end to show
+ ($offset+$hits<=$count) ? ($template->param(endat => $offset+$hits)) : ($template->param(endat => $count));
+ # the total results found
+ $template->param(total => $hits);
+ $template->param(searchdesc => $search_desc );
+ $template->param(results_per_page => $count);
+ $template->param(SEARCH_RESULTS => \@newresults);
+
+ #this is to show the page numbers to navigate among the results, whether it has to show the number highlighted or not
+ my $numbers;
+ @$numbers = ();
+ my $pg = 1;
+ if (defined($cgi->param('pg'))) {
+ $pg = $cgi->param('pg');
+ }
+ my $start = 0;
+ $start = ($pg - 1) * $hits;
+ my $pages = ceil($count / $hits);
+ my $total_pages = ceil($count / $hits);
+ my $url;
+ if ($pg > 1) {
+ $url = $pg - 1;
+ push @$numbers, {
+ number => "<<",
+ highlight => 0 ,
+ startfrom => 0,
+ pg => '1' };
+
+ push @$numbers, {
+ number => "<",
+ highlight => 0 ,
+ startfrom => ($url-1)*$hits,
+ pg => $url };
+ }
+
+ my $current_ten = $pg / 10;
+
+ if ($current_ten == 0) {
+ $current_ten = 0.1; # In case it's in ten = 0
+ }
+ my $from = $current_ten * 10; # Calculate the initial page
+ my $end_ten = $from + 9;
+ my $to;
+ if ($pages > $end_ten) {
+ $to = $end_ten;
+ } else {
+ $to = $pages;
+ }
+ for (my $i =$from; $i <= $to ; $i++) {
+ if ($i == $pg) {
+ if ($count > $hits) {
+ push @$numbers, {
+ number => $i,
+ highlight => 1 ,
+ startfrom => ($i-1)*$hits ,
+ pg => $i };
+ }
+ } else {
+ push @$numbers, {
+ number => $i,
+ highlight => 0 ,
+ startfrom => ($i-1)*$hits ,
+ pg => $i };
+ }
+ }
+ if ($pg < $pages) {
+ $url = $pg + 1;
+ push @$numbers, {
+ number => ">",
+ highlight => 0 ,
+ startfrom => ($url-1)*$hits,
+ pg => $url };
+
+ push @$numbers, {
+ number => ">>",
+ highlight => 0 ,
+ startfrom => ($total_pages-1)*$hits,
+ pg => $total_pages};
+ }
+ }
+ } # end of the if local
+ else {
+ # check if it's a z3950 or opensearch source
+ my $zed3950 = 1;
+ if ($zed3950) {
+ my @inner_sup_results_array;
+ for my $sup_record ( @{$results_hashref->{$server}->{"RECORDS"}} ) {
+ my $marc_record_object = MARC::Record->new_from_usmarc($sup_record);
+ my $control_number = $marc_record_object->field('010')->subfield('a') if $marc_record_object->field('010');
+ $control_number =~ s/^ //g;
+ my $link = "http://catalog.loc.gov/cgi-bin/Pwebrecon.cgi?SAB1=".$control_number."&BOOL1=all+of+these&FLD1=LC+Control+Number+LCCN+%28K010%29+%28K010%29&GRP1=AND+with+next+set&SAB2=&BOOL2=all+of+these&FLD2=Keyword+Anywhere+%28GKEY%29+%28GKEY%29&PID=6211&SEQ=20060816121838&CNT=25&HIST=1";
+ my $title = $marc_record_object->title();
+ push @inner_sup_results_array, {
+ title => $title,
+ link => $link,
+ };
+ }
+ my $servername = $server;
+ push @sup_results_array, { servername => $servername, inner_sup_results_loop => \@inner_sup_results_array};
+ $template->param(outer_sup_results_loop => \@sup_results_array);
+ }
+ }
+
+} #/end of the for loop
+#$template->param(FEDERATED_RESULTS => \@results_array);
+
+$template->param('Disable_Dictionary'=>C4::Context->preference("Disable_Dictionary")) if (C4::Context->preference("Disable_Dictionary"));
+#my $scan_use = $cgi->param('use1');
+
+$template->param(
+ #classlist => $classlist,
+ total => $total,
+ searchdesc => $search_desc,
+ opacfacets => 1,
+ facets_loop => $facets,
+ suggestion => C4::Context->preference("suggestion"),
+ virtualshelves => C4::Context->preference("virtualshelves"),
+ LibraryName => C4::Context->preference("LibraryName"),
+ OpacNav => C4::Context->preference("OpacNav"),
+ opaccredits => C4::Context->preference("opaccredits"),
+ AmazonContent => C4::Context->preference("AmazonContent"),
+ opacsmallimage => C4::Context->preference("opacsmallimage"),
+ opaclayoutstylesheet => C4::Context->preference("opaclayoutstylesheet"),
+ opaccolorstylesheet => C4::Context->preference("opaccolorstylesheet"),
+ #scan_use => $scan_use,
+ search_error => $error,
+);
+## Now let's find out if we have any supplemental data to show the user
+# and in the meantime, save the current query for statistical purposes, etc.
+my $koha_spsuggest; # a flag to tell if we've got suggestions coming from Koha
+my @koha_spsuggest; # place we store the suggestions to be returned to the template as LOOP
+my $phrases = $search_desc;
+my $ipaddress;
+
+if ( C4::Context->preference("kohaspsuggest") ) {
+ eval {
+ my $koha_spsuggest_dbh;
+ eval {
+ $koha_spsuggest_dbh=DBI->connect("DBI:mysql:suggest:66.213.78.76","auth","Free2cirC");
+ };
+ if ($@) { warn "can't connect to spsuggest db";
+ }
+ else {
+ my $koha_spsuggest_insert = "INSERT INTO phrase_log(phr_phrase,phr_resultcount,phr_ip) VALUES(?,?,?)";
+ my $koha_spsuggest_query = "SELECT display FROM distincts WHERE strcmp(soundex(suggestion), soundex(?)) = 0 order by soundex(suggestion) limit 0,5";
+ my $koha_spsuggest_sth = $koha_spsuggest_dbh->prepare($koha_spsuggest_query);
+ $koha_spsuggest_sth->execute($phrases);
+ while (my $spsuggestion = $koha_spsuggest_sth->fetchrow_array) {
+ $spsuggestion =~ s/(:|\/)//g;
+ my %line;
+ $line{spsuggestion} = $spsuggestion;
+ push @koha_spsuggest,\%line;
+ $koha_spsuggest = 1;
+ }
+
+ # Now save the current query
+ $koha_spsuggest_sth=$koha_spsuggest_dbh->prepare($koha_spsuggest_insert);
+ #$koha_spsuggest_sth->execute($phrases,$count,$ipaddress);
+ $koha_spsuggest_sth->finish;
+
+ $template->param( koha_spsuggest => $koha_spsuggest ) unless $hits;
+ $template->param( SPELL_SUGGEST => \@koha_spsuggest,
+ );
+ }
+ };
+ if ($@) {
+ warn "Kohaspsuggest failure:".$@;
+ }
+}
+
+
+
+# IV. GET THE QUERY HISTORY
+#($error, at query_history) = getQueryHistory($session);
+
+# V. GET SUGGESTIONS
+#($error, at spsuggest) = getSpellingSuggestions($simple_term);
+#($error, at rsuggest) = getRelatedSuggestions($simple_term);
+
+# VI. BUILD THE TEMPLATE
+output_html_with_http_headers $cgi, $cookie, $template->output;
More information about the Koha-cvs
mailing list