--- trunk/WebPac.pm 2003/01/11 16:44:03 7 +++ trunk/WebPac.pm 2003/01/16 17:35:54 10 @@ -6,14 +6,14 @@ use HTML::Pager; use HTML::FillInForm; use SWISH; -use Unicode::String qw(utf8 utf16); -require Unicode::Map8; +use Unicode::MapUTF8 qw(to_utf8 from_utf8 utf8_supported_charset); +use DBI; # configuration options # FIX: they really should go in configuration file! my $TEMPLATE_PATH = '/data/webpac/template_html'; my $CHARSET = 'ISO-8859-2'; -my $SWISH = '/data/swish/swish-e'; +my $SWISH = '/usr/local/bin/swish-e'; my $INDEX = '/data/webpac/index/isis.index'; my $MAX_HITS = 500; my $ON_PAGE = 10; @@ -25,7 +25,8 @@ $self->run_modes( 'search' => 'show_search_form', 'results' => 'show_results_list', -# 'user' => 'show_user_detail' +# 'user' => 'show_user_detail', + 'index' => 'show_index', ); $self->start_mode('search'); $self->mode_param('rm'); @@ -56,13 +57,13 @@ my @swish_results; # results from swish # load template for this page - my $tmpl = $self->load_tmpl('results.html'); my @s_arr; # all queries are located here for(my $i = 1; $i <=10; $i++) { - last if (! $q->param("f$i")); + return show_index($self, $i) if ($q->param("f".$i."_index")); + next if (! $q->param("f$i")); next if (! $q->param("v$i")); # re-write query from +/- to and/and not @@ -84,11 +85,10 @@ } } - push @s_arr,$q->param("f$i")."=($s)"; + push @s_arr,$q->param("f$i")."_swish=($s)"; } - my $l2_map = Unicode::Map8->new($CHARSET) || die; - my $us = Unicode::String->new(); + my $tmpl = $self->load_tmpl('results.html'); # call swish my $sh = SWISH->connect('Fork', @@ -98,12 +98,10 @@ results => sub { my ($sh,$hit) = @_; - $us->utf8($hit->swishtitle); - push @swish_results, { nr => ($#swish_results + 2), path => $hit->swishdocpath, - title => $l2_map->to8($us->utf16), + title => to_utf8({ -string => $hit->swishtitle, -charset => $CHARSET }), rank => $hit->swishrank }; # my @fields = $hit->field_names; @@ -161,4 +159,18 @@ return $html; } +sub show_index { + my $self = shift; + my $i = shift; # field number + + my $q = $self->query(); + + my $html; + + $html .= "show index of ".$q->param("f$i")." for ".$q->param("v$i"); + + + return $html; +} + 1;