--- trunk/WebPac.pm 2003/01/11 19:55:30 9 +++ trunk/WebPac.pm 2003/01/22 20:24:32 11 @@ -6,15 +6,17 @@ 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; +use lib '..'; +use index_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; @@ -91,9 +93,6 @@ my $tmpl = $self->load_tmpl('results.html'); - my $l2_map = Unicode::Map8->new($CHARSET) || die; - my $us = Unicode::String->new(); - # call swish my $sh = SWISH->connect('Fork', prog => $SWISH, @@ -102,12 +101,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; @@ -171,10 +168,29 @@ my $q = $self->query(); + my $field = $q->param("f$i"); + my $limit = $q->param("v$i"); + + my $html; - $html .= "show index of ".$q->param("f$i")." for ".$q->param("v$i"); + my $index = new index_DBI(); + if (! $index->check($field)) { + my $tmpl = $self->load_tmpl('no_index.html'); + $tmpl->param('field',$field); + $html = $tmpl->output; + return $html; + } + + my @index_arr = $index->fetch($field,'item',$limit); + + $html .= "show index of $field"; + $html .= " for $limit" if ($limit); + + while (my $row = shift @index_arr) { + $html .= "
".$row->{item}."\n"; + } return $html; }