--- loncom/interface/lonsearchcat.pm 2006/03/15 20:56:16 1.256 +++ loncom/interface/lonsearchcat.pm 2006/06/13 14:42:24 1.269 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Search Catalog # -# $Id: lonsearchcat.pm,v 1.256 2006/03/15 20:56:16 albertel Exp $ +# $Id: lonsearchcat.pm,v 1.269 2006/06/13 14:42:24 www 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; ###################################################################### ###################################################################### @@ -116,9 +118,6 @@ sub handler { my $diropendb; # The full path to the (temporary) search database file. # This is set and used in &handler() and is also used in # &output_results(). - my $bodytag; # LON-CAPA standard body tag, gotten from - # &Apache::lonnet::bodytag. - # No title, no table, just a
tag. my $loaderror=&Apache::lonnet::overloaderror($r); if ($loaderror) { return $loaderror; } @@ -156,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. @@ -165,10 +164,10 @@ sub handler { ($env{'form.launch'} eq '1')) { $env{'form.persistent_db_id'} = time; } - $bodytag=&Apache::loncommon::bodytag(undef,undef,undef,1); + 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(); @@ -202,7 +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 &error_page($r,$msg); + &Apache::loncommon::simple_error_page($r,'Search Error', + $msg); + return OK; } } } else { @@ -214,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; @@ -223,7 +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 &error_page($r,$msg); + &Apache::loncommon::simple_error_page($r,'Search Error', + $msg); + return OK; } } ## @@ -257,7 +260,7 @@ sub handler { $closebutton .="onClick='self.close()'"; } $closebutton .=">\n"; - } elsif ($env{'form.catalogmode'} eq 'groupsearch') { + } elsif ($env{'form.catalogmode'} eq 'import') { $closebutton="print(&Apache::loncommon::start_page('Search Error'). - &mt($msg). - &Apache::loncommon::end_page()); - return OK; -} - # # The mechanism used to store values away and retrieve them does not # handle the case of missing environment variables being significant. @@ -554,7 +553,7 @@ sub course_search { } else { $url .= '?symb='; } - $url .= &Apache::lonnet::escape($resource->symb()); + $url .= &escape($resource->symb()); my $title = $resource->compTitle(); $r->print(''.
- &Apache::lonhtmlcommon::textbox
- ('basicexp',
- &HTML::Entities::encode($env{'form.basicexp'},'<>&"'),50
- ).
+ &Apache::lonhtmlcommon::textbox('basicexp',
+ $env{'form.basicexp'},50).
' '. ''.&searchhelp().''.' | '.
''.
@@ -797,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');
@@ -1155,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}) {
@@ -1201,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];
@@ -1238,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);
@@ -1321,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.
@@ -1589,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();
@@ -2065,10 +2059,6 @@ a link to change the search query.
######################################################################
sub print_sort_form {
my ($r,$pretty_query_string) = @_;
- my $bodytag=&Apache::loncommon::bodytag(undef,undef,undef,1).
- &Apache::lonhtmlcommon::breadcrumbs
- (undef,'Searching','Searching',undef,undef,
- $env{'form.catalogmode'} ne 'groupsearch');
##
my %SortableFields=&Apache::lonlocal::texthash(
@@ -2101,14 +2091,8 @@ sub print_sort_form {
&Apache::lonnet::logthis(&Apache::lonmysql::get_error());
return;
}
- my $result;
- my $html = &Apache::lonxml::xmlbegin();
- my $head = &Apache::lonxml::headtag('Results');
- my $end_head = &Apache::loncommon::endheadtag();
- $result.=< |