--- loncom/interface/lonsearchcat.pm 2004/05/07 18:50:14 1.224 +++ loncom/interface/lonsearchcat.pm 2004/05/10 18:59:18 1.227 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Search Catalog # -# $Id: lonsearchcat.pm,v 1.224 2004/05/07 18:50:14 matthew Exp $ +# $Id: lonsearchcat.pm,v 1.227 2004/05/10 18:59:18 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -174,6 +174,7 @@ sub handler { '&launch='.$ENV{'form.launch'}. '&mode='.$ENV{'form.mode'}, text=>"Course and Catalog Search", + target=>'_top', bug=>'Searching',}); } else { &Apache::lonhtmlcommon::add_breadcrumb @@ -182,6 +183,7 @@ sub handler { '&launch='.$ENV{'form.launch'}. '&mode='.$ENV{'form.mode'}, text=>"Catalog Search", + target=>'_top', bug=>'Searching',}); } # @@ -559,9 +561,11 @@ 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 $bodytag=&Apache::loncommon::bodytag('Search'). &Apache::lonhtmlcommon::breadcrumbs(undef,'Searching','Searching', - undef,undef,! $ENV{'form.launch'}); + undef,undef, + $ENV{'form.catalogmode'} ne 'groupsearch'); my $scrout = &search_html_header().$bodytag; if (&Apache::lonnet::allowed('bre',$ENV{'request.role.domain'})) { # Define interface components @@ -689,11 +693,9 @@ Prints the advanced search form. sub print_advanced_search_form{ my ($r,$closebutton,$hidden_fields) = @_; my $bodytag=&Apache::loncommon::bodytag('Advanced Catalog Search'). - &Apache::lonhtmlcommon::breadcrumbs(undef,'Searching', - 'Searching', - undef,undef, - ! $ENV{'form.launch'}); - + &Apache::lonhtmlcommon::breadcrumbs(undef,'Searching','Searching', + undef,undef, + $ENV{'form.catalogmode'} ne 'groupsearch'); my %lt=&Apache::lonlocal::texthash('srch' => 'Search', 'reset' => 'Reset', 'help' => 'Help'); @@ -1188,7 +1190,7 @@ Parse advanced search form and return th sub parse_advanced_search { my ($r,$closebutton,$hidden_fields)=@_; my @BasicFields = ('title','author','subject','keywords','url','version', - 'notes','abstract','extension','owner', + 'notes','abstract','extension','owner','authorspace', # 'custommetadata','customshow', 'modifyinguser','standards','mime'); my @StatsFields = &statfields(); @@ -1400,7 +1402,7 @@ sub parse_advanced_search { $pretty_search_string .= $pretty_domains_string."
\n"; # if (@queries) { - $query="SELET * FROM metadata WHERE ".join(" AND ",@queries); + $query="SELECT * FROM metadata WHERE ".join(" AND ",@queries); } elsif ($customquery) { $query = ''; } @@ -1490,8 +1492,9 @@ sub parse_basic_search { ('title', 'author', 'subject', 'notes', 'abstract', 'keywords')); foreach my $search (&process_phrase_input($search_string)){ - $pretty_search_string .= '
'.''.$search.''; if ($ENV{'form.related'}) { + $pretty_search_string .= ' and
' if ($pretty_search_string ne ''); + $pretty_search_string .= ''.$search.''; my @New_Words; ($search,@New_Words) = &related_version($search); next if (! $search); @@ -1499,6 +1502,9 @@ sub parse_basic_search { $pretty_search_string .= " with related words: @New_Words"; } + } else { + $pretty_search_string .= ' and ' if ($pretty_search_string ne ''); + $pretty_search_string .= ''.$search.''; } # # Build SQL query string based on form page @@ -1511,7 +1517,7 @@ sub parse_basic_search { $pretty_search_string .= ' '.$pretty_domains_string; } $pretty_search_string .= "
\n"; - $pretty_search_string =~ s:^
::; + $pretty_search_string =~ s:^
and ::; # &Apache::lonnet::logthis($final_query); return ($final_query,$pretty_search_string, $libraries_to_query); @@ -1596,9 +1602,7 @@ sub build_SQL_query { -build => 'Text::Query::Build'); $q->prepare($logic_statement); my $matchexp=${$q}{'matchexp'}; chomp $matchexp; - &Apache::lonnet::logthis('matchexp = '.$matchexp); my $sql_query=&recursive_SQL_query_build($field_name,$matchexp); - &Apache::lonnet::logthis('sql_query = '.$sql_query); return $sql_query; } @@ -1871,7 +1875,7 @@ sub print_sort_form { my $bodytag=&Apache::loncommon::bodytag(undef,undef,undef,1). &Apache::lonhtmlcommon::breadcrumbs (undef,'Searching','Searching',undef,undef, - ! ($ENV{'form.catalogmode'} eq 'groupsearch')); + $ENV{'form.catalogmode'} ne 'groupsearch'); ## my %SortableFields=&Apache::lonlocal::texthash( @@ -2138,10 +2142,9 @@ results into MySQL. sub run_search { my ($r,$query,$customquery,$customshow,$serverlist,$pretty_string) = @_; my $bodytag=&Apache::loncommon::bodytag(undef,undef,undef,1); - $bodytag.= - &Apache::lonhtmlcommon::breadcrumbs(undef,'Searching','Searching', - undef,undef,! $ENV{'form.launch'}); - + $bodytag.=&Apache::lonhtmlcommon::breadcrumbs + (undef,'Searching','Searching',undef,undef, + $ENV{'form.catalogmode'} ne 'groupsearch'); my $connection = $r->connection; # # Print run_search header @@ -2933,41 +2936,73 @@ sub detailed_citation_view { { name=>'copyrighttag', translate => 'Copyright/Distribution: [_1]',}, { name=>'count', + format => "%d", translate => 'Access Count: [_1]',}, { name=>'stdno', + format => "%d", translate => 'Number of Students: [_1]',}, { name=>'avetries', + format => "%.2f", translate => 'Average Tries: [_1]',}, { name=>'disc', + format => "%.2f", translate => 'Degree of Discrimination: [_1]',}, { name=>'difficulty', + format => "%.2f", translate => 'Degree of Difficulty: [_1]',}, { name=>'clear', + format => "%.2f", translate => 'Clear: [_1]',}, { name=>'depth', + format => "%.2f", translate => 'Depth: [_1]',}, { name=>'helpful', + format => "%.2f", translate => 'Helpful: [_1]',}, { name=>'correct', + format => "%.2f", translate => 'Correct: [_1]',}, { name=>'technical', + format => "%.2f", translate => 'Technical: [_1]',}, + { name=>'comefrom_list', + type => 'list', + translate => 'Resources that lead up to this resource in maps',}, + { name=>'goto_list', + type => 'list', + translate => 'Resources that follow this resource in maps',}, + { name=>'sequsage_list', + type => 'list', + translate => 'Resources using or importing resource',}, ) { - if (exists($values{$field->{'name'}}) && - $values{$field->{'name'}} ne '') { + next if (! exists($values{$field->{'name'}}) || + $values{$field->{'name'}} eq ''); + if (exists($field->{'type'}) && $field->{'type'} eq 'list') { + $result .= ''.&mt($field->{'translate'}).''; + } elsif (exists($field->{'format'}) && $field->{'format'} ne ''){ + $result.= &mt($field->{'translate'}, + sprintf($field->{'format'}, + $values{$field->{'name'}})).'
'."\n"; + } else { if ($field->{'special'} eq 'url link') { $result.= - &mt($field->{'translate'}, - ''. - $values{$field->{'name'}}. - ''); + &mt($field->{'translate'}, + ''. + $values{$field->{'name'}}. + ''); } else { $result.= &mt($field->{'translate'}, $values{$field->{'name'}}); } $result .= "
\n"; - } + } } $result .= "

"; if (exists($values{'extrashow'}) && $values{'extrashow'} ne '') {