--- 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;
}