1 |
#======================================================================= |
2 |
# Module for using Template-Toolkit for generating output |
3 |
# $Id: TemplateHTMLTemplate.pm,v 1.1 2001/12/08 21:49:14 whmoseley Exp $ |
4 |
# |
5 |
# This module probably does not automatically support all the features |
6 |
# of the swish.cgi script (such as selecting index files). See |
7 |
# the TemplateToolkit.pm module for examples. |
8 |
# |
9 |
#======================================================================= |
10 |
package TemplateHTMLTemplate; |
11 |
use strict; |
12 |
|
13 |
use HTML::Template; |
14 |
use HTML::FillInForm; |
15 |
use CGI (); |
16 |
|
17 |
use vars '$Template'; |
18 |
|
19 |
use TemplateDefault; # ugly hack |
20 |
|
21 |
|
22 |
sub show_template { |
23 |
my ( $class, $template_params, $results ) = @_; |
24 |
|
25 |
my $cgi = $results->CGI; |
26 |
|
27 |
|
28 |
my $template = HTML::Template->new( %{$template_params->{options}} ); |
29 |
|
30 |
my $params = { |
31 |
TITLE => ($results->config('title') || 'Search Page'), |
32 |
QUERY_SIMPLE => CGI::escapeHTML( $results->{query_simple} ), |
33 |
MESSAGE => CGI::escapeHTML( $results->errstr ), |
34 |
QUERY_HREF => $results->{query_href}, |
35 |
MY_URL => $cgi->script_name, |
36 |
|
37 |
HITS => $results->navigation('hits'), |
38 |
FROM => $results->navigation('from'), |
39 |
TO => $results->navigation('to'), |
40 |
SHOWING => $results->navigation('showing'), |
41 |
|
42 |
PAGES => $results->navigation('pages'), |
43 |
NEXT => $results->navigation('next'), |
44 |
NEXT_COUNT => $results->navigation('next_count'), |
45 |
PREV => $results->navigation('prev'), |
46 |
PREV_COUNT => $results->navigation('prev_count'), |
47 |
|
48 |
|
49 |
RUN_TIME => $results->header('run time') || 'unknown', |
50 |
SEARCH_TIME => $results->header('search time') || 'unknown', |
51 |
MOD_PERL => $ENV{MOD_PERL}, |
52 |
}; |
53 |
|
54 |
$params->{FILES} = $results->results if $results->results; |
55 |
|
56 |
|
57 |
|
58 |
my $MapNames = $results->config('name_labels') || {}; |
59 |
my $Sorts = $results->config('sorts'); |
60 |
my $MetaNames = $results->config('metanames'); |
61 |
|
62 |
|
63 |
# set a default |
64 |
if ( $MetaNames && !$cgi->param('metanames') ) { |
65 |
$cgi->param('metaname', $MetaNames->[0] ); |
66 |
} |
67 |
|
68 |
$params->{SORTS} = [ map { { NAME => $_, LABEL => ($MapNames->{$_} || $_) } } @$Sorts ] if $Sorts; |
69 |
$params->{METANAMES} = [ map { { NAME => $_, LABEL => ($MapNames->{$_} || $_) } } @$MetaNames ] if $MetaNames; |
70 |
|
71 |
|
72 |
$template->param( $params ); |
73 |
my $page = $template->output; |
74 |
|
75 |
|
76 |
my $fif = new HTML::FillInForm; |
77 |
|
78 |
print $cgi->header, |
79 |
'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">', |
80 |
$fif->fill( |
81 |
scalarref => \$page, |
82 |
fobject => $cgi, |
83 |
); |
84 |
} |
85 |
|
86 |
1; |
87 |
|