--- trunk/WebPac.pm 2003/07/05 23:07:47 76 +++ trunk/WebPac.pm 2003/07/15 15:07:42 112 @@ -77,12 +77,18 @@ my @path_arr = $q->param('path'); my $full = $q->param('full'); + my @persist_vars = ( 'rm' ); + for(my $i = 1; $i <=30; $i++) { return show_index($self, $i) if ($q->param("f".$i."_index")); + next if (! $q->param("v$i")); next if (! $q->param("f$i")); + push @persist_vars, "f$i"; + push @persist_vars, "v$i"; + # re-write query from +/- to and/and not my @param_vals = $q->param("v$i"); my @swish_q; @@ -117,6 +123,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, @@ -128,7 +141,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 }; @@ -140,7 +153,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 .= "\")"; @@ -171,18 +184,7 @@ rows => $hits, page_size => $ON_PAGE, # some optional parameters - persist_vars => [ - 'rm', - 'f1', 'v1', - 'f2', 'v2', - 'f3', 'v3', - 'f4', 'v4', - 'f5', 'v5', - 'f6', 'v6', - 'f7', 'v7', - 'f8', 'v8', - 'f9', 'v9', - ], + persist_vars => [ @persist_vars ], #cell_space_color => '#000000', #cell_background_color => '#ffffff', #nav_background_color => '#dddddd',