--- no_pager/index.cgi 2006/08/16 23:49:37 19 +++ no_pager/index.cgi 2006/08/17 21:16:18 24 @@ -25,7 +25,12 @@ my $json; -#warn "config = ", dump($config); +sub debug { + my ($text,$var) = @_; + print "
$text = ", dump($var), "
"; +} + +#debug('config', $config); sub json { return @@ -34,12 +39,27 @@ ''; } +sub sort_order { + my $out; + + my $sort = $q->param('sort'); + + $out .= ''; +} + sub get_results { my $p = {@_}; - my ($search,$page) = ( $p->{search} || '', $p->{page} || 0); - - warn "get_results( $search , $page )\n"; + my ($search,$page) = ( $p->{search} , $p->{page}); sub next_page { return '
' . @@ -70,12 +90,19 @@ $cond->set_phrase( $search ); $cond->set_max( $on_page ); $cond->set_skip( $skip ); + $cond->set_order( $p->{sort} ) if ($p->{sort}); my $nres = $node->search($cond, ( $config->{estraier}->{depth} || 0 ) ); my $out; if (defined($nres)) { + + if ($nres->doc_num == 0) { + $v->{status} = qq{Error getting results for page $page.}; + return next_page('No results found.'); + } + $v->{hits} = $nres->hits; $v->{time} = $nres->hint('TIME'); $v->{max_page} = int( ($nres->hits + $on_page - 1) / $on_page ); @@ -115,20 +142,26 @@ return $text; } + my @template; + open(my $t, 'result.html') || die "result.html: $!"; + while(<$t>) { + push @template, $_; + } + close($t); + # for each document in results for my $i ( 0 ... $nres->doc_num - 1 ) { my $rdoc = $nres->get_doc($i); - - $out .= '
' . - '

' . $rdoc->attr('@title') . '

' . - '

' . html_snippet( $rdoc->snippet ) . '

' . - '

' . attr_regex( $rdoc, 'source' ) . '

'; my $uri = attr_regex( $rdoc, '@uri' ); - $out .= - qq{$uri } . - attr_regex( $rdoc, '@mdate' ) . - ' [' . ( $skip + $i + 1 ) . ']'; + my $nr = $skip + $i + 1; + + map { + my $l = $_; + $l =~ s/<%(.+?)%>/eval "$1"/ge; + $out .= $l; + } @template; + } } else { @@ -136,10 +169,10 @@ } if ($v->{page} == $v->{max_page}) { - $out .= next_page('All results shown'); + $out .= next_page('
All results shown'); } else { $out .= next_page( - 'Loading results...
', + '
Loading results...
', 'If you are using the scroll bar, release the mouse to see more results.' ); } @@ -153,6 +186,7 @@ print get_results( search => $q->param('search') || '', page => $q->param('page') || 0, + sort => $q->param('sort') || undef, ); @@ -161,6 +195,7 @@ my $get_results = get_results( search => $q->param('search') || '', page => 1, + sort => $q->param('sort') || undef, ); my $f = $q->path_info; @@ -172,6 +207,6 @@ s/<%(.+?)%>/eval "$1"/ge; print; } - close($f); + close($s); }