View on
MetaCPAN
search.cpan.org is shutting down
For details read Perl NOC. After June 25th this page will redirect to MetaCPAN.org
John SJ Anderson > HiD-1.5 > HiD::Pager

Download:
HiD-1.5.tar.gz

Dependencies

Annotate this POD

Website

View/Report Bugs
Module Version: 1.5   Source   Latest Release: HiD-1.992

NAME ^

HiD::Pager - Class for paging thru sets of entries

SYNOPSIS ^

  To use pagination with just the blog pages, set the following config
  options:

    pagination:
      entries: 10
      page: 'blog/%{page}s'
      template: 'blog/index.html'

  C<pagination.entries> sets the number of entries per
  page. C<pagination.page> sets the pattern for pages. C<pagination.template>
  is the template file that will be used for each file in turn. A
  C<index.html> will be appended to each page. Note that no 'page1' entry will
  be generated; in the example above, the first page would be at
  'blog/index.html', the second at 'blog/page2/index.html', and so on.

  If you need more control, or want to use pagination inside a
  L<HiD::Generator>, you can instatiate one like so:

    my $pager = HiD::Pager->new({
      entries             => $site->posts ,
      entries_per_page    => 5 ,
      hid                 => $site ,
      page_pattern        => 'blog/%{page}s' ,
    });

    while( my $page_data = $pager->next() ) {
      my $page = HiD::Page->new(
        metadata => { page_data => $page_data },
        # other page data here
      );
      # inject page into site, etc.
    }

    # in page template, assuming Kolon template syntax
    : for $page_data.posts -> $post {
    :   ## render page here
    : }

    : # other useful info for creating intra-page links and metadata
    : $page_data.current_page_url = url of current page
    : $page_data.page_number      = number of current page
    : $page_data.total_pages      = total number of pages
    : $page_data.prev_page        = number of previous page (undef if no previous)
    : $page_data.prev_page_url    = url of previous page (undef if no previous)
    : $page_data.next_page        = number of next page (undef if no next)
    : $page_data.next_page_url    = url of next page (undef if no next)

DESCRIPTION ^

Class providing pagination services for sets of posts. Can be used for main blog post pages by setting up the appropriate configuration, or used inside a HiD::Generator class to provide paged sets of a subset of the posts on a site.

ATTRIBUTES ^

entries

Array of HiD::Post objects being worked with

entries_per_page

Number of entries per page.

hid

All hail the God Object.

page_pattern

Regex used to generate per-page URLs

pager

The Data::Page object that does all the work.

METHODS ^

current_page_url

Returns the URL for the current page in the set.

next

Returns the data structure for the pager information.

next_page_url

Returns the URL for the next page in the set.

prev_page_url

Returns the URL for the previous page in the set.

VERSION ^

version 1.5

AUTHOR ^

John SJ Anderson <genehack@genehack.org>

COPYRIGHT AND LICENSE ^

This software is copyright (c) 2014 by John SJ Anderson.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

syntax highlighting: