--- loncom/interface/lonsearchcat.pm 2006/03/23 22:01:58 1.260
+++ loncom/interface/lonsearchcat.pm 2006/06/29 16:08:43 1.271
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Search Catalog
#
-# $Id: lonsearchcat.pm,v 1.260 2006/03/23 22:01:58 albertel Exp $
+# $Id: lonsearchcat.pm,v 1.271 2006/06/29 16:08:43 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -78,6 +78,8 @@ use HTML::Entities();
use Parse::RecDescent;
use Apache::lonnavmaps;
use Apache::lonindexer();
+use lib '/home/httpd/lib/perl/';
+use LONCAPA;
######################################################################
######################################################################
@@ -153,7 +155,7 @@ sub handler {
##
my $domain = $r->dir_config('lonDefDomain');
$diropendb= "/home/httpd/perl/tmp/".
- "$env{'user.domain'}_$env{'user.name'}_searchcat.db";
+ "$env{'user.domain'}_$env{'user.name'}_sel_res.db";
#
# set the name of the persistent database
# $env{'form.persistent_db_id'} can only have digits in it.
@@ -164,8 +166,8 @@ sub handler {
}
my $persistent_db_file = "/home/httpd/perl/tmp/".
- &Apache::lonnet::escape($domain).
- '_'.&Apache::lonnet::escape($env{'user.name'}).
+ &escape($domain).
+ '_'.&escape($env{'user.name'}).
'_'.$env{'form.persistent_db_id'}.'_persistent_search.db';
##
&Apache::lonhtmlcommon::clear_breadcrumbs();
@@ -199,8 +201,9 @@ sub handler {
'We were unable to retrieve data describing your search. '.
'This is a serious error and has been logged. '.
'Please alert your LON-CAPA administrator.';
- return &Apache::loncommon::simple_error_page($r,'Search Error',
- $msg);
+ &Apache::loncommon::simple_error_page($r,'Search Error',
+ $msg);
+ return OK;
}
}
} else {
@@ -212,7 +215,7 @@ sub handler {
untie %groupsearch_db if (tied(%groupsearch_db));
if (($env{'form.cleargroupsort'} eq '1') ||
(($env{'form.launch'} eq '1') &&
- ($env{'form.catalogmode'} eq 'groupsearch'))) {
+ ($env{'form.catalogmode'} eq 'import'))) {
if (tie(%groupsearch_db,'GDBM_File',$diropendb,&GDBM_WRCREAT(),0640)) {
&start_fresh_session();
untie %groupsearch_db;
@@ -221,8 +224,9 @@ sub handler {
# This is a stupid error to give to the user.
# It really tells them nothing.
my $msg = 'Unable to tie hash to db file.';
- return &Apache::loncommon::simple_error_page($r,'Search Error',
- $msg);
+ &Apache::loncommon::simple_error_page($r,'Search Error',
+ $msg);
+ return OK;
}
}
##
@@ -256,7 +260,7 @@ sub handler {
$closebutton .="onClick='self.close()'";
}
$closebutton .=">\n";
- } elsif ($env{'form.catalogmode'} eq 'groupsearch') {
+ } elsif ($env{'form.catalogmode'} eq 'import') {
$closebutton="symb());
+ $url .= &escape($resource->symb());
my $title = $resource->compTitle();
$r->print('
'.
($title?$title:$url).' - '.$disctype.'
');
@@ -583,7 +589,7 @@ sub checkonthis {
my ($extension)=($url=~/\.(\w+)$/);
if (&Apache::loncommon::fileembstyle($extension) eq 'ssi' &&
($url) && ($fulltext)) {
- $result.=&Apache::lonnet::ssi_body($url.'?symb='.&Apache::lonnet::escape($symb));
+ $result.=&Apache::lonnet::ssi_body($url.'?symb='.&escape($symb));
}
$result=~s/\s+/ /gs;
my $applies = 0;
@@ -599,7 +605,7 @@ sub checkonthis {
$href=&Apache::lonenc::encrypted($href)
.'?symb='.&Apache::lonenc::encrypted($symb);
} else {
- $href.='?symb='.&Apache::lonnet::escape($symb);
+ $href.='?symb='.&escape($symb);
}
$r->print(''.($title?$title:$url).
'
');
@@ -654,11 +660,10 @@ Prints the form for the basic search. S
######################################################################
sub print_basic_search_form {
my ($r,$closebutton,$hidden_fields) = @_;
- my $result = ($env{'form.catalogmode'} ne 'groupsearch');
+ my $result = ($env{'form.catalogmode'} ne 'import');
my $bread_crumb =
- &Apache::lonhtmlcommon::breadcrumbs(undef,'Searching','Search_Basic',
- undef,undef,
- $env{'form.catalogmode'} ne 'groupsearch');
+ &Apache::lonhtmlcommon::breadcrumbs('Searching','Search_Basic',
+ $env{'form.catalogmode'} ne 'import');
my $scrout = &Apache::loncommon::start_page('Search').$bread_crumb;
if (&Apache::lonnet::allowed('bre',$env{'request.role.domain'})) {
# Define interface components
@@ -700,10 +705,8 @@ sub print_basic_search_form {
}
$scrout.='
'.
- &Apache::lonhtmlcommon::textbox
- ('basicexp',
- &HTML::Entities::encode($env{'form.basicexp'},'<>&"'),50
- ).
+ &Apache::lonhtmlcommon::textbox('basicexp',
+ $env{'form.basicexp'},50).
' '. ''.&searchhelp().''.' | '.
''.
@@ -790,10 +793,8 @@ Prints the advanced search form.
sub print_advanced_search_form{
my ($r,$closebutton,$hidden_fields) = @_;
my $bread_crumb =
- &Apache::lonhtmlcommon::breadcrumbs(undef,'Searching',
- 'Search_Advanced',
- undef,undef,
- $env{'form.catalogmode'} ne 'groupsearch');
+ &Apache::lonhtmlcommon::breadcrumbs('Searching','Search_Advanced',
+ $env{'form.catalogmode'} ne 'import');
my %lt=&Apache::lonlocal::texthash('srch' => 'Search',
'reset' => 'Reset',
'help' => 'Help');
@@ -1148,7 +1149,7 @@ sub get_persistent_form_data {
# End kludge (hopefully)
next if (exists($env{$name}));
my @values = map {
- &Apache::lonnet::unescape($_);
+ &unescape($_);
} split(',',$persistent_db{$name});
next if (@values <1);
if ($arrays_allowed{$name}) {
@@ -1194,7 +1195,7 @@ sub get_persistent_data {
next;
}
my @values = map {
- &Apache::lonnet::unescape($_);
+ &unescape($_);
} split(',',$persistent_db{$name});
if (@values <= 1) {
push @Values,$values[0];
@@ -1231,7 +1232,7 @@ sub make_persistent {
foreach my $name (keys(%save)) {
my @values = (ref($save{$name}) ? @{$save{$name}} : ($save{$name}));
# We handle array references, but not recursively.
- my $store = join(',', map { &Apache::lonnet::escape($_); } @values );
+ my $store = join(',', map { &escape($_); } @values );
$persistent_db{$name} = $store;
}
untie(%persistent_db);
@@ -1314,7 +1315,7 @@ sub parse_advanced_search {
foreach ('mode','form','element') {
# is this required? Hmmm.
next if (! exists($env{'form.'.$_}));
- $env{'form.'.$_}=&Apache::lonnet::unescape($env{'form.'.$_});
+ $env{'form.'.$_}=&unescape($env{'form.'.$_});
$env{'form.'.$_}=~s/[^\w\/\s\(\)\=\-\"\']//g;
}
# Preprocess the category form element.
@@ -1582,7 +1583,7 @@ sub parse_basic_search {
foreach ('mode','form','element') {
# is this required? Hmmm.
next unless (exists($env{"form.$_"}));
- $env{"form.$_"}=&Apache::lonnet::unescape($env{"form.$_"});
+ $env{"form.$_"}=&unescape($env{"form.$_"});
$env{"form.$_"}=~s/[^\w\/\s\(\)\=\-\"\']//g;
}
my ($libraries_to_query,$pretty_domains_string) = &parse_domain_restrictions();
@@ -2103,17 +2104,17 @@ sub print_sort_form {
END
my $start_page = &Apache::loncommon::start_page('Results',$js,
- {'only_body' => 1});
+ {'no_title' => 1});
my $breadcrumbs=
- &Apache::lonhtmlcommon::breadcrumbs
- (undef,'Searching','Searching',undef,undef,
- $env{'form.catalogmode'} ne 'groupsearch');
+ &Apache::lonhtmlcommon::breadcrumbs('Searching','Searching',
+ $env{'form.catalogmode'} ne 'import');
my $result = < |