--- trunk/WebPac.pm 2003/07/05 22:31:46 73 +++ trunk/WebPac.pm 2003/07/15 12:48:49 111 @@ -15,22 +15,23 @@ use index_DBI; use back2html; -# configuration options -# FIXME they really should go in configuration file! -my $TEMPLATE_PATH = '/data/webpac/template_html'; -my $CHARSET = 'ISO-8859-2'; -my $SWISH = '/usr/bin/swish-e'; -my $INDEX = '/data/webpac/index/isis.index'; -my $MAX_HITS = 0; -my $ON_PAGE = 10; + +# read global.conf configuration +my $cfg_global = new Config::IniFiles( -file => '../global.conf' ) || die "can't open 'global.conf'"; + +# configuration options from global.conf +my $TEMPLATE_PATH = $cfg_global->val('webpac', 'template_html') || die "need template_html in global.conf, section webpac"; +my $CHARSET = $cfg_global->val('webpac', 'charset') || 'ISO-8859-1'; +my $SWISH = $cfg_global->val('webpac', 'swish') || '/usr/bin/swish-e'; +my $INDEX = $cfg_global->val('webpac', 'index') || die "need index in global.conf, section webpac"; +my $MAX_HITS = $cfg_global->val('webpac', 'max_hits') || 0; +my $ON_PAGE =$cfg_global->val('webpac', 'on_page') || 10; + Text::Iconv->raise_error(0); # Conversion errors raise exceptions my $from_utf8 = Text::Iconv->new('UTF8', $CHARSET); -# read global.conf configuration -my $cfg_global = new Config::IniFiles( -file => '../global.conf' ) || die "can't open 'global.conf'"; - sub setup { my $self = shift; @@ -116,6 +117,13 @@ my $tmpl = $self->load_tmpl('results.html'); + sub esc_html { + my $html = shift; + $html =~ s//>/g; + return $html; + } + # call swish my $sh = SWISH->connect('Fork', prog => $SWISH, @@ -127,7 +135,7 @@ push @swish_results, { nr => ($#swish_results + 2), path => $hit->swishdocpath, - headline => $from_utf8->convert($hit->headline), + headline => esc_html($from_utf8->convert($hit->headline)), html => back2html($from_utf8->convert($hit->html)), rank => $hit->swishrank }; @@ -139,7 +147,7 @@ die $SWISH::errstr unless $sh; # construct swish query my $sw_q = join(" and ",@s_arr); - if (@path_arr) { + if (@path_arr && $q->param('show_full')) { $sw_q .= "and (swishdocpath=\""; $sw_q .= join("\" or swishdocpath=\"",@path_arr); $sw_q .= "\")"; @@ -151,8 +159,8 @@ $tmpl->param('hits',$hits); $tmpl->param('search',$sw_q); - $tmpl->param('PAGER_offset',$q->param("PAGER_offset") || 1); - $tmpl->param('last_PAGER_offset',$q->param("last_PAGER_offset") || 1); + $tmpl->param('PAGER_offset',$q->param("PAGER_offset") || 0); + $tmpl->param('last_PAGER_offset',$q->param("last_PAGER_offset") || 0); # create a Pager object my $pager = HTML::Pager->new(