version 1.138, 2002/07/08 14:52:19
|
version 1.139, 2002/07/08 20:35:36
|
Line 118 The ubiquitous database hash
|
Line 118 The ubiquitous database hash
|
The full path to the (temporary) search database file. This is set and |
The full path to the (temporary) search database file. This is set and |
used in &handler() and is also used in &output_results(). |
used in &handler() and is also used in &output_results(). |
|
|
|
=item %Views |
|
|
|
Hash which associates an output view description with the function |
|
that produces it. Adding a new view type should be as easy as |
|
adding a line to the definition of this hash and making sure the function |
|
takes the proper parameters. |
|
|
=back |
=back |
|
|
=cut |
=cut |
Line 133 my $importbutton; # button to take the s
|
Line 140 my $importbutton; # button to take the s
|
my %hash; # database hash |
my %hash; # database hash |
my $diropendb = ""; # db file |
my $diropendb = ""; # db file |
|
|
|
# View Description Function Pointer |
|
my %Views = ("Detailed Citation View" => \&detailed_citation_view, |
|
"Summary View" => \&summary_view, |
|
"Fielded Format" => \&fielded_format_view, |
|
"XML/SGML" => \&xml_sgml_view ); |
|
|
###################################################################### |
###################################################################### |
###################################################################### |
###################################################################### |
|
|
Line 223 END
|
Line 236 END
|
$searchtype = 'Basic' if ($ENV{'form.basicsubmit'} eq 'SEARCH'); |
$searchtype = 'Basic' if ($ENV{'form.basicsubmit'} eq 'SEARCH'); |
$searchtype = 'Advanced' if ($ENV{'form.advancedsubmit'} eq 'SEARCH'); |
$searchtype = 'Advanced' if ($ENV{'form.advancedsubmit'} eq 'SEARCH'); |
if ($searchtype) { |
if ($searchtype) { |
|
# We are running a search |
my ($query,$customquery,$customshow,$libraries) = |
my ($query,$customquery,$customshow,$libraries) = |
(undef,undef,undef,undef); |
(undef,undef,undef,undef); |
if ($searchtype eq 'Basic') { |
if ($searchtype eq 'Basic') { |
Line 239 END
|
Line 253 END
|
my $reply=&Apache::lonnet::metadata_query($query,$customquery, |
my $reply=&Apache::lonnet::metadata_query($query,$customquery, |
$customshow,$libraries); |
$customshow,$libraries); |
&output_results($searchtype,$r,$reply,$hidden); |
&output_results($searchtype,$r,$reply,$hidden); |
} elsif ($ENV{'form.reqinterface'} eq 'advanced') { |
} else { |
|
# |
|
# We need to get information to search on |
|
# |
|
# Set the default view if it is not already set. |
|
if (!defined($ENV{'form.viewselect'})) { |
|
$ENV{'form.viewselect'} ="Detailed Citation View"; |
|
} |
# Output the advanced interface |
# Output the advanced interface |
$r->print(&advanced_search_form($closebutton,$hidden)); |
if ($ENV{'form.reqinterface'} eq 'advanced') { |
} else { |
$r->print(&advanced_search_form($closebutton,$hidden)); |
# Output normal search interface |
} else { |
$r->print(&basic_search_form($closebutton,$hidden)); |
# Output normal search interface |
|
$r->print(&basic_search_form($closebutton,$hidden)); |
|
} |
} |
} |
return OK; |
return OK; |
} |
} |
Line 295 ENDDOCUMENT
|
Line 318 ENDDOCUMENT
|
' '; |
' '; |
# $scrout.=&simplecheckbox('allversions',$ENV{'form.allversions'}); |
# $scrout.=&simplecheckbox('allversions',$ENV{'form.allversions'}); |
# $scrout.='<font color="#800000">Search historic archives</font>'; |
# $scrout.='<font color="#800000">Search historic archives</font>'; |
$scrout.=<<ENDDOCUMENT; |
$scrout.=<<END; |
</td><td><a href="/adm/searchcat?reqinterface=advanced">Advanced Search</a></td></tr></table> |
</td><td><a href="/adm/searchcat?reqinterface=advanced">Advanced Search</a></td></tr></table> |
</p> |
</p> |
<p> |
<p> |
<input type="submit" name="basicsubmit" value='SEARCH' /> |
<input type="submit" name="basicsubmit" value='SEARCH' /> |
$closebutton |
$closebutton |
<!-- view selection --> |
END |
<select name="viewselect"> |
$scrout.=&selectbox(undef,'viewselect', |
<option value="Detailed Citation View" selected="true" >Detailed Citation View</option> |
$ENV{'form.viewselect'}, |
<option value="Summary View" >Summary View</option> |
undef,undef,undef, |
<option value="Fielded Format">Fielded Format</option> |
sort(keys(%Views))); |
<option value="XML/SGML" >XML/SGML</option> |
$scrout.=<<ENDDOCUMENT; |
</select> |
|
<!-- end of view selection --> |
|
<input type="button" value="HELP" onClick="openhelp()" /> |
<input type="button" value="HELP" onClick="openhelp()" /> |
</p> |
</p> |
</form> |
</form> |
Line 341 $closebutton
|
Line 362 $closebutton
|
<input type="button" value="HELP" onClick="openhelp()" /> |
<input type="button" value="HELP" onClick="openhelp()" /> |
</p> |
</p> |
END |
END |
|
if (!defined($ENV{'form.viewselect'})) { |
|
$ENV{'form.viewselect'} ="Detailed Citation View"; |
|
} |
my $scrout=<<"ENDHEADER"; |
my $scrout=<<"ENDHEADER"; |
<html> |
<html> |
<head> |
<head> |
Line 365 $hidden
|
Line 389 $hidden
|
<table> |
<table> |
<tr><td><font color="#800000" face="helvetica"><b>VIEW:</b></font></td> |
<tr><td><font color="#800000" face="helvetica"><b>VIEW:</b></font></td> |
<td> |
<td> |
<!-- view selection --> |
|
<select name="viewselect" size ="1"> |
|
<option value="Detailed Citation View" selected="true">Detailed Citation View</option> |
|
<option value="Summary View">Summary View</option> |
|
<option value="Fielded Format">Fielded Format</option> |
|
<option value="XML/SGML">XML/SGML</option> |
|
</select> |
|
<!-- end of view selection --> |
|
</td></tr> |
|
ENDHEADER |
ENDHEADER |
|
$scrout.=&selectbox(undef,'viewselect', |
|
$ENV{'form.viewselect'}, |
|
undef,undef,undef, |
|
sort(keys(%Views))); |
|
$scrout.="</td></tr>\n"; |
$scrout.=&searchphrasefield('title', 'title' ,$ENV{'form.title'}); |
$scrout.=&searchphrasefield('title', 'title' ,$ENV{'form.title'}); |
$scrout.=&searchphrasefield('author', 'author' ,$ENV{'form.author'}); |
$scrout.=&searchphrasefield('author', 'author' ,$ENV{'form.author'}); |
$scrout.=&searchphrasefield('subject', 'subject' ,$ENV{'form.subject'}); |
$scrout.=&searchphrasefield('subject', 'subject' ,$ENV{'form.subject'}); |
Line 593 Inputs:
|
Line 613 Inputs:
|
|
|
=item $title |
=item $title |
|
|
Printed above the select box, in uppercase. |
Printed above the select box, in uppercase. If undefined, only a select |
|
box will be returned, with no additional html. |
|
|
=item $name |
=item $name |
|
|
Line 601 The name element of the <select> tag.
|
Line 622 The name element of the <select> tag.
|
|
|
=item $default |
=item $default |
|
|
The default value of the form. Can be $anyvalue or in @idlist. |
The default value of the form. Can be $anyvalue, or in @idlist. |
|
|
=item $anyvalue |
=item $anyvalue |
|
|
The <option value="..."> used to indicate a default of |
The <option value="..."> used to indicate a default of |
none of the values. |
none of the values. Can be undef. |
|
|
=item $anytag |
=item $anytag |
|
|
Line 702 END
|
Line 723 END
|
sub selectbox { |
sub selectbox { |
my ($title,$name,$default,$anyvalue,$anytag,$functionref,@idlist)=@_; |
my ($title,$name,$default,$anyvalue,$anytag,$functionref,@idlist)=@_; |
if (! defined($functionref)) { $functionref = sub { $_[0]}; } |
if (! defined($functionref)) { $functionref = sub { $_[0]}; } |
my $uctitle=uc($title); |
my $selout=''; |
my $selout="\n".'<p><font color="#800000" face="helvetica">'. |
if (defined($title)) { |
'<b>'.$uctitle.': </b></font><select name="'.$name.'">'; |
my $uctitle=uc($title); |
foreach ($anyvalue,@idlist) { |
$selout="\n".'<p><font color="#800000" face="helvetica">'. |
|
'<b>'.$uctitle.': </b></font>'; |
|
} |
|
$selout .= '<select name="'.$name.'">'; |
|
unshift @idlist,$anyvalue if (defined($anyvalue)); |
|
foreach (@idlist) { |
$selout.='<option value="'.$_.'"'; |
$selout.='<option value="'.$_.'"'; |
if ($_ eq $default and !/^any$/) { |
if ($_ eq $default and !/^any$/) { |
$selout.=' selected >'.&{$functionref}($_).'</option>'; |
$selout.=' selected >'.&{$functionref}($_).'</option>'; |
Line 715 sub selectbox {
|
Line 741 sub selectbox {
|
} |
} |
else {$selout.='>'.&{$functionref}($_).'</option>';} |
else {$selout.='>'.&{$functionref}($_).'</option>';} |
} |
} |
return $selout.'</select></p>'; |
return $selout.'</select>'.(defined($title)?'</p>':' '); |
} |
} |
|
|
###################################################################### |
###################################################################### |
Line 1110 sub output_results {
|
Line 1136 sub output_results {
|
## |
## |
## Set viewing function |
## Set viewing function |
## |
## |
my $viewfunction = undef; |
my $viewfunction = $Views{$ENV{'form.viewselect'}}; |
if ($ENV{'form.viewselect'} eq 'Detailed Citation View') { |
|
$viewfunction = \&detailed_citation_view; |
|
} elsif ($ENV{'form.viewselect'} eq 'Summary View') { |
|
$viewfunction = \&summary_view; |
|
} elsif ($ENV{'form.viewselect'} eq 'Fielded Format') { |
|
$viewfunction = \&fielded_format_view; |
|
} elsif ($ENV{'form.viewselect'} eq 'XML/SGML') { |
|
$viewfunction = \&xml_sgml_view; |
|
} |
|
if (!defined($viewfunction)) { |
if (!defined($viewfunction)) { |
$r->print("Internal Error - Bad view selected.\n"); |
$r->print("Internal Error - Bad view selected.\n"); |
$r->rflush(); |
$r->rflush(); |