--- trunk/vhost/webpac2.cgi 2009/04/22 12:51:23 1139 +++ trunk/vhost/webpac2.cgi 2009/04/22 14:27:25 1141 @@ -13,16 +13,17 @@ my $range_around = 5; my $entries_per_page = 30; +my $debug = param('debug'); print header; sub dump_yaml { my $name = shift; - print qq|
# $name\n|, YAML::Dump( @_ ), qq|
|; + print qq|
# $name\n|, YAML::Dump( @_ ), qq|
| if $debug; } sub show_pager { - my ($pager,$coderef) = @_; + my ($pager) = @_; my @show_pages; my $after_current = 0; @@ -40,24 +41,33 @@ push @show_pages, ( $pager->current_page + 1 .. $pager->current_page + $after_current + $range_around, '', $pager->last_page ); } - dump_yaml( 'show_pages', \@show_pages ); +# dump_yaml( 'show_pages', \@show_pages ); return '' unless $#show_pages; my ( $prev, $next ) = ( '<<', '>>' ); + sub li_a_href { + my ( $page, $label, $attr ) = @_; + param( 'current_page', $page ); + my $url = self_url( -query => 1 ); + $attr ||= ''; + $label ||= $page; + qq|$label|; + } + return - $pager->previous_page ? $coderef->( $pager->previous_page, $prev ) : $prev - , join( ' ', map { + $pager->previous_page ? li_a_href( $pager->previous_page, $prev ) : qq|| + , ( map { if ( $_ == $pager->current_page ) { - qq|$_|; + qq|
  • $_
  • |; } elsif ( $_ eq '' ) { - qq|...|; + qq||; } else { - $coderef->( $_ ); + li_a_href( $_ ); } } @show_pages ) - , $pager->next_page ? $coderef->( $pager->next_page, $next ) : $next + , $pager->next_page ? li_a_href( $pager->next_page, $next ) : qq|| ; } @@ -130,32 +140,25 @@ my $nres = $node->search( $cond, 0 ); $pager->total_entries( $nres->hits ); + dump_yaml( 'cond', $cond ); if ( ! $nres ) { my $no_results = "No results for search '%s'"; - printf qq|
    $no_results
    |, $search; + printf qq|
    $no_results
    \n\n|, $search; } else { - my $results = "Got %d results for search '%s'"; - printf qq|
    $results
    |, $nres->hits, $search; + my $results = "%d results for search '%s' showing results %d - %d on page %d"; + printf qq|
    $results
    \n\n|, $nres->hits, $search, $pager->first, $pager->last, $pager->current_page; - print - qq|
    |, - join(' ', show_pager( $pager, - sub { - my ($page,$label) = @_; - param( 'current_page', $page ); - my $url = self_url( -query => 1 ); - $label = $page unless defined $label; - qq|$label|; - } - )), - qq|
    | - ; + dump_yaml( 'pager html', show_pager( $pager )); + + my $pager_html = join("\n", show_pager( $pager )); + + print qq|\n\n| if $pager_html; my $start = $pager->first; - print qq|
      |; + print qq|
        \n|; foreach my $i ( 1 .. $nres->doc_num ) { my $rdoc = $nres->get_doc( $i - 1 ); @@ -174,7 +177,9 @@ } print qq|\n|; } - print qq|
      |; + print qq|
    \n\n|; + + print qq|\n\n| if $pager_html; } print qq||;