'.
@@ -1535,10 +1540,10 @@ sub parse_advanced_search {
##
## Deal with restrictions to given domains
##
- my ($libraries_to_query,$pretty_domains_string,$domain_sql_restriction) =
- &parse_domain_restrictions();
- push(@queries,$domain_sql_restriction);
- $pretty_search_string .= $pretty_domains_string." \n";
+ my ($libraries_to_query,$pretty_domains_string) = &parse_domain_restrictions();
+ if ($pretty_domains_string) {
+ $pretty_search_string .= $pretty_domains_string." \n";
+ }
#
if (@queries) {
$query="SELECT * FROM metadata WHERE (".join(") AND (",@queries).')';
@@ -1557,30 +1562,21 @@ sub parse_domain_restrictions {
if (! exists($env{'form.domains'}) || $env{'form.domains'} eq '') {
return (undef,'',undef);
}
- my @allowed_domains;
- if (ref($env{'form.domains'})) {
- @allowed_domains = @{$env{'form.domains'}};
- } else {
- @allowed_domains = ($env{'form.domains'});
- }
+ my @allowed_domains = &Apache::loncommon::get_env_multiple('form.domains');
#
my %domain_hash = ();
my $pretty_domains_string;
- my $domain_sql_restriction;
foreach (@allowed_domains) {
$domain_hash{$_}++;
}
if ($domain_hash{'any'}) {
$pretty_domains_string = "In all LON-CAPA domains.";
- $domain_sql_restriction = undef;
} else {
if (@allowed_domains > 1) {
$pretty_domains_string = "In LON-CAPA domains:";
} else {
$pretty_domains_string = "In LON-CAPA domain ";
}
- $domain_sql_restriction =
- '(domain="'.join('" OR domain="',@allowed_domains).'")';
foreach (sort @allowed_domains) {
$pretty_domains_string .= "".$_." ";
}
@@ -1591,8 +1587,7 @@ sub parse_domain_restrictions {
}
}
return ($libraries_to_query,
- $pretty_domains_string,
- $domain_sql_restriction);
+ $pretty_domains_string);
}
######################################################################
@@ -1621,8 +1616,7 @@ sub parse_basic_search {
$env{"form.$_"}=&Apache::lonnet::unescape($env{"form.$_"});
$env{"form.$_"}=~s/[^\w\/\s\(\)\=\-\"\']//g;
}
- my ($libraries_to_query,$pretty_domains_string,$domain_sql_restriction) =
- &parse_domain_restrictions();
+ my ($libraries_to_query,$pretty_domains_string) = &parse_domain_restrictions();
#
# Check to see if enough of a query is filled in
my $search_string = $env{'form.basicexp'};
@@ -1645,9 +1639,6 @@ sub parse_basic_search {
return;
}
push(@Queries,$SQLQuery);
- if (defined($domain_sql_restriction) && $domain_sql_restriction ne '') {
- push(@Queries,$domain_sql_restriction);
- }
#foreach my $q (@Queries) {
# &Apache::lonnet::logthis(' '.$q);
#}
@@ -2291,7 +2282,7 @@ sub update_status {
}
{
- my $max_time = 40; # seconds for the search to complete
+ my $max_time = 300; # seconds for the search to complete
my $start_time = 0;
my $last_time = 0;
@@ -2525,8 +2516,11 @@ END
my %Fields = &parse_raw_result($result,$server);
$Fields{'hostname'} = $server;
#
+ # Skip if external and we did not want that
+ next if ((! $env{'form.inclext'}) && ($Fields{'url'}=~/^\/ext\//));
# Skip based on copyright
next if (! ©right_check(\%Fields));
+
#
# Store the result in the mysql database
my $result = &Apache::lonmysql::store_row($table,\%Fields);
@@ -2685,66 +2679,6 @@ sub display_results {
);
#
# Build sorting selector
-<<<<<<< lonsearchcat.pm
- my @field_order = ('default',
- 'title',
- 'author',
- 'subject',
- 'url',
- 'keywords',
- 'version',
- 'language',
- 'creationdate'=>,
- 'lastrevisiondate',
- 'owner',
- 'copyright',
- 'authorspace',
- 'lowestgradeleve',
- 'highestgradelevel',
- 'standards',
- 'count',
- 'stdno',
- 'avetries',
- 'difficulty',
- 'disc',
- 'clear',
- 'technical',
- 'correct',
- 'helpful',
- 'depth',
- );
- my %sort_fields = ('default' => 'Default',
- 'title' => 'Title',
- 'author' => 'Author',
- 'subject' => 'Subject',
- 'url' => 'URL',
- 'keywords' => 'Keywords',
- 'version' => 'Version',
- 'language' => 'Language',
- 'creationdate'=> 'Creation Date',
- 'lastrevisiondate' => 'Last Revision Date',
- 'owner' => 'Owner',
- 'copyright' => 'Copyright',
- 'authorspace' => 'Authorspace',
- 'lowestgradeleve' => 'Lowest Grade Level',
- 'highestgradelevel' => 'Highest Grade Level',
- 'standards' => 'Standards',
- 'count' => 'Number of Accesses',
- 'stdno' => 'Students Attempting',
- 'avetries' => 'Average Number of Tries',
- 'difficulty' => 'Mean Degree of Difficulty',
- 'disc' => 'Mean Degree of Discrimination',
- 'clear' => 'Evaluation: Clear',
- 'technical' => 'Evaluation: Technically Correct',
- 'correct' => 'Evaluation: Material is Correct',
- 'helpful' => 'Evaluation: Material is Helpful',
- 'depth' => 'Evaluation: Material has Depth',
- 'select_form_order' => \@field_order,
- );
-
- my $sortform = &mt('Sort by [_1]',
- &Apache::loncommon::select_form($env{'form.sortfield'},
-=======
my @fields =
(
{key=>'default' },
@@ -2788,13 +2722,20 @@ sub display_results {
}
my %sort_fields = map {$_->{'key'},$_->{'desc'}} @fields;
$sort_fields{'select_form_order'} = \@field_order;
- $ENV{'form.sortorder'} = 'asc' if (! exists($ENV{'form.sortorder'}));
+ $env{'form.sortorder'} = 'desc' if (! exists($env{'form.sortorder'}));
+ $env{'form.sortfield'} = 'count' if (! exists($env{'form.sortfield'}));
+ if (! exists($env{'form.sortorder'})) {
+ if ($env{'form.sortfield'}=~/^(count|stdno|disc|clear|technical|correct|helpful)$/) {
+ $env{'form.sortorder'}='desc';
+ } else {
+ $env{'form.sortorder'}='asc';
+ }
+ }
my $sortform = &mt('Sort by [_1] [_2]',
- &Apache::loncommon::select_form($ENV{'form.sortfield'},
->>>>>>> 1.242
+ &Apache::loncommon::select_form($env{'form.sortfield'},
'sortfield',
%sort_fields),
- &Apache::loncommon::select_form($ENV{'form.sortorder'},
+ &Apache::loncommon::select_form($env{'form.sortorder'},
'sortorder',
(asc =>&mt('Ascending'),
desc=>&mt('Descending')
@@ -2824,17 +2765,11 @@ sub display_results {
##
## Get results from MySQL table
my $sort_command = 'id>='.$min.' AND id<='.$max;
-<<<<<<< lonsearchcat.pm
- if ($env{'form.sortfield'} ne 'default' &&
- exists($sort_fields{$env{'form.sortfield'}})) {
- $sort_command = $env{'form.sortfield'}.' IS NOT NULL '.
- 'ORDER BY '.$env{'form.sortfield'}.
-=======
my $order;
- if (exists($ENV{'form.sortorder'})) {
- if ($ENV{'form.sortorder'} eq 'asc') {
+ if (exists($env{'form.sortorder'})) {
+ if ($env{'form.sortorder'} eq 'asc') {
$order = 'ASC';
- } elsif ($ENV{'form.sortorder'} eq 'desc') {
+ } elsif ($env{'form.sortorder'} eq 'desc') {
$order = 'DESC';
} else {
$order = '';
@@ -2842,12 +2777,11 @@ sub display_results {
} else {
$order = '';
}
- if ($ENV{'form.sortfield'} ne 'default' &&
- exists($sort_fields{$ENV{'form.sortfield'}})) {
- $sort_command = $ENV{'form.sortfield'}.' IS NOT NULL '.
- 'ORDER BY '.$ENV{'form.sortfield'}.' '.$order.
->>>>>>> 1.242
- ' LIMIT '.($min-1).','.($max-$min);
+ if ($env{'form.sortfield'} ne 'default' &&
+ exists($sort_fields{$env{'form.sortfield'}})) {
+ $sort_command = $env{'form.sortfield'}.' IS NOT NULL '.
+ 'ORDER BY '.$env{'form.sortfield'}.' '.$order.
+ ' LIMIT '.($min-1).','.($max-$min+1);
}
my @Results = &Apache::lonmysql::get_rows($table,$sort_command);
##
@@ -3293,9 +3227,11 @@ extra custom metadata to show.
sub detailed_citation_view {
my ($prefix,%values) = @_;
my $result;
+ my $jumpurl=$values{'url'};
+ $jumpurl=~s/^\/ext\//http\:\/\//;
$result .= ''.$prefix.
' '.' '.
- ''.$values{'title'}."\n";
$result .= "\n";
$result .= ''.$values{'author'}.','.
@@ -3364,7 +3300,7 @@ sub detailed_citation_view {
foreach my $item (split(',',$values{$field->{'name'}})){
$result .= ' '.
''.$item.'';
+ 'href="'.$jumpurl.'">'.$item.'';
}
$result .= '';
} elsif (exists($field->{'format'}) && $field->{'format'} ne ''){
@@ -3375,7 +3311,7 @@ sub detailed_citation_view {
if ($field->{'special'} eq 'url link') {
$result.=
&mt($field->{'translate'},
- ''.
$values{$field->{'name'}}.
'');
@@ -3411,20 +3347,23 @@ sub summary_view {
my ($prefix,%values) = @_;
my $icon=&Apache::loncommon::icon($values{'url'});
my $result=qq{$prefix };
- if (exists($ENV{'form.sortfield'}) &&
- $ENV{'form.sortfield'} !~ /^(default|
+ if (exists($env{'form.sortfield'}) &&
+ $env{'form.sortfield'} !~ /^(default|
author|
url|
title|
owner|
lastrevisiondate|
copyright)$/x) {
- my $tmp = $values{$ENV{'form.sortfield'}};
+ my $tmp = $values{$env{'form.sortfield'}};
if (! defined($tmp)) { $tmp = 'undefined'; }
$result .= ' '.$tmp.' ';
}
+ my $jumpurl=$values{'url'};
+ $jumpurl=~s/^\/ext\//http\:\/\//;
+
$result.=<$values{'title'}
$values{'author'}, $values{'owner'} -- $values{'lastrevisiondate'}
$values{'copyrighttag'}
@@ -3448,17 +3387,20 @@ END
######################################################################
sub compact_view {
my ($prefix,%values) = @_;
+ my $jumpurl=$values{'url'};
+ $jumpurl=~s/^\/ext\//http\:\/\//;
+
my $result =
$prefix.' ';
- if (exists($ENV{'form.sortfield'}) &&
- $ENV{'form.sortfield'} !~ /^(default|author|url|title)$/) {
- my $tmp = $values{$ENV{'form.sortfield'}};
+ if (exists($env{'form.sortfield'}) &&
+ $env{'form.sortfield'} !~ /^(default|author|url|title)$/) {
+ my $tmp = $values{$env{'form.sortfield'}};
if (! defined($tmp)) { $tmp = 'undefined'; }
$result .= ' '.$tmp.' ';
}
- $result.=' '.
+ $result.=' '.
$values{'title'}.''.(' 'x2).
- ''.$values{'author'}.' ';
+ ''.$values{'author'}.' ('.$values{'domain'}.') ';
return $result;
}
@@ -3478,11 +3420,14 @@ sub fielded_format_view {
my ($prefix,%values) = @_;
my $icon=&Apache::loncommon::icon($values{'url'});
my %Translated = &Apache::lonmeta::fieldnames();
+ my $jumpurl=$values{'url'};
+ $jumpurl=~s/^\/ext\//http\:\/\//;
+
my $result=<
- URL:
- - $values{'url'}
END
foreach my $field ('title','author','domain','subject','keywords','notes',
@@ -3783,6 +3728,7 @@ sub cleanup {
}
&untiehash();
&Apache::lonmysql::disconnect_from_db();
+ return OK;
}
__END__
|