--- trunk/vhost/webpac2.cgi 2009/04/22 13:20:49 1140 +++ 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; @@ -46,18 +47,27 @@ 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 ) : qq|$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 ) : qq|$next| + , $pager->next_page ? li_a_href( $pager->next_page, $next ) : qq|| ; } @@ -135,28 +145,20 @@ 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 = "%d results for search '%s' showing results %d - %d on page %d"; - printf qq|
    $results
    |, $nres->hits, $search, $pager->first, $pager->last, $pager->current_page; + printf qq|
    $results
    \n\n|, $nres->hits, $search, $pager->first, $pager->last, $pager->current_page; - my $pager_html = - 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|; - } - )) - ; + dump_yaml( 'pager html', show_pager( $pager )); + + my $pager_html = join("\n", show_pager( $pager )); - print qq|
    $pager_html
    | if $pager_html; + 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 ); @@ -175,9 +177,9 @@ } print qq|\n|; } - print qq|
      |; + print qq|
    \n\n|; - print qq|
    $pager_html
    | if $pager_html; + print qq|\n\n| if $pager_html; } print qq||;