--- loncom/interface/lonsearchcat.pm 2001/03/12 17:28:32 1.7
+++ loncom/interface/lonsearchcat.pm 2001/03/15 13:23:15 1.11
@@ -36,9 +36,15 @@ sub handler {
%metadatafields=();
+ my $hidden='';
+ $hidden=<
+END
+
# ------------------------------------------------ First, check out environment
$metadatafields{'owner'}=$ENV{'user.name'}.'@'.$ENV{'user.domain'};
+# --------------------------------- Compute various listings of metadata values
%language=();
$language{'any'}='Any language';
@@ -74,610 +80,132 @@ sub handler {
return &basicsearch($r,$ENV{'form.basicexp'});
}
- $scrout="";
+ $scrout=''; # building a part of screen output
$scrout.=&searchphrasefield('Limit by title','title',
- '');
+ $ENV{'form.title'});
$scrout.=&searchphrasefield('Limit by author','author',
- '');
+ $ENV{'form.author'});
$scrout.=&searchphrasefield('Limit by subject','subject',
- '');
+ $ENV{'form.subject'});
+
+ $scrout.=&searchphrasefield('Limit by keywords','keywords',
+ $ENV{'form.keywords'});
+
+ $scrout.=&searchphrasefield('Limit by URL','url',
+ $ENV{'form.url'});
+
+ $scrout.=&searchphrasefield('Limit by version','version',
+ $ENV{'form.version'});
$scrout.=&searchphrasefield('Limit by notes','notes',
- '');
+ $ENV{'form.notes'});
$scrout.=&searchphrasefield('Limit by abstract','abstract',
- '');
+ $ENV{'form.abstract'});
+ $ENV{'form.mime'}='notxxx' unless length($ENV{'form.mime'});
$scrout.=&selectbox('Limit by MIME type','mime',
- 'notxxx',%mimetag);
+ $ENV{'form.mime'},%mimetag);
+
+ $ENV{'form.language'}='any' unless length($ENV{'form.language'});
$scrout.=&selectbox('Limit by language','language',
- 'any',%language);
+ $ENV{'form.language'},%language);
- $scrout.=<
LIMIT BY CREATION DATE RANGE:
-between:
-
-
-and:
-
-
-
+between:
+CREATIONDATESTART
+ $scrout.=&dateboxes('creationdatestart',1,1,1976,
+ $ENV{'form.creationdatestart_month'},
+ $ENV{'form.creationdatestart_day'},
+ $ENV{'form.creationdatestart_year'},
+ );
+ $scrout.=<";
- $scrout.=<
LIMIT BY LAST REVISION DATE RANGE:
-
between:
-
-
-and:
-
-
-
+
between:
+LASTREVISIONDATESTART
+ $scrout.=&dateboxes('lastrevisiondatestart',1,1,1976,
+ $ENV{'form.lastrevisiondatestart_month'},
+ $ENV{'form.lastrevisiondatestart_day'},
+ $ENV{'form.lastrevisiondatestart_year'},
+ );
+ $scrout.=<';
$scrout.=&searchphrasefield('Limit by publisher/owner','owner',
- $metadatafields{'owner'});
+ $ENV{'form.owner'});
+# $metadatafields{'owner'});
+ $ENV{'form.copyright'}='any' unless length($ENV{'form.copyright'});
$scrout.=&selectbox('Limit by copyright/distribution','copyright',
- 'any',%cprtag);
+ $ENV{'form.copyright'},%cprtag);
# ---------------------------------------------------------------- Print screen
$r->print(<
The LearningOnline Network with CAPA
-
Search Catalog
@@ -694,6 +222,18 @@ sub textfield {
'';
}
+sub simpletextfield {
+ my ($name,$value)=@_;
+ return '';
+}
+
+sub simplecheckbox {
+ my ($name,$value)=@_;
+ my $checked='';
+ $checked="CHECKED" if $value eq 'on';
+ return '';
+}
+
sub searchphrasefield {
my ($title,$name,$value)=@_;
my $instruction=<$uctitle:".
- ": $instruction
".
+ " $instruction
".
'';
}
+sub dateboxes {
+ my ($name,$defaultmonth,$defaultday,$defaultyear,
+ $currentmonth,$currentday,$currentyear)=@_;
+ ($defaultmonth,$defaultday,$defaultyear)=('','','');
+ my $month=<
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+END
+ $month=~s/(\"$currentmonth\")/$1 SELECTED/ if length($currentmonth);
+ my $day=<
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+END
+ $day=~s/(\"$currentday\")/$1 SELECTED/ if length($currentday);
+ my $year=<
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+END
+ $year=~s/(\"$currentyear\")/$1 SELECTED/ if length($currentyear);
+ return "$month$day$year";
+}
+
sub selectbox {
my ($title,$name,$value,%options)=@_;
my $uctitle=uc($title);
@@ -724,11 +408,8 @@ sub basicsearch {
my ($r,$expression)=@_;
my $query=$expression;
-# $query="select * from metadata where concat(title,':\@:',author) like '\%Sci\%'";
$query="select * from metadata where concat(title,\" \",author) like '\%$expression\%'";
-# my $reply=&Apache::lonnet::reply("querysend:DESCRIBE metadata","msul3");
my $reply=&Apache::lonnet::reply("querysend:$query",'msul3');
-# my $reply=&Apache::lonnet::reply('querysend:select * from metadata','msul3');
my @results;
@@ -753,17 +434,27 @@ sub basicsearch {
my $compiledresult='';
foreach my $result (@results) {
- my ($title,$author,$subject,$notes,$abstract,$mime,$lang,
+ my ($title,$author,$subject,$url,$keywords,$version,
+ $notes,$abstract,$mime,$lang,
$creationdate,$lastrevisiondate,$owner,$copyright
)=map {&Apache::lonnet::unescape($_)} (split(/\,/,$result));
my $shortabstract=$abstract;
$shortabstract=substr($abstract,0,200) if length($abstract)>200;
- $compiledresult=<
+END
+ $compiledresult.=<
+
+
+END
+ $compiledresult.=<URL: $url
Title: $title
Author(s): $author
Subject: $subject
-Keyword(s): not available yet
+Keyword(s): $keywords
Notes: $notes
Abstract: $shortabstract
MIME Type: $mimetag{$mime}
@@ -781,21 +472,57 @@ END
$compiledresult="There were no results that matched your query";
}
-# Question... allow to ask question from this page, or click to
-# search again?
- $r->print(<
+END
+ }
+ } (keys %ENV);
+
+ $r->print(<
The LearningOnline Network with CAPA
+BEGINNING
+ $r->print(<
+SCRIPT
+ $r->print(<
Search Catalog