
==== NAME ====

Posy::Plugin::Paginate - Posy plugin to paginate multiple entries.


==== VERSION ====

This describes version ``0.25'' of Posy::Plugin::Paginate.


==== DESCRIPTION ====

This plugin enables categories or chronological listsing with multiple
entries in them, to be broken up into a number of pages, with previous and
next links. Page length is defined by the 'num_entries' configuration
setting; it will select entries depending on the 'page'
($paginate_param_name) parameter.

This provides the following variables that can be used within your flavour
files.

``flow_paginate_prev_link''
Contains a link to the previous page, and is empty if this link is not
valid.

``flow_paginate_next_link''
Contains a link to the next page, and is empty if this link is not valid.

``flow_paginate_page_list''
Contains links to all the pages, labelled by number. For example, if there
are four total pages, this would contain, by default,

    [1] [2] [3] [4]

See "paginate_pnum_prefix" for information on formatting this.


==   Cautions   ==

This plugin does not work if you have a hybrid site (partially
static-generated, partially dynamic) and also use the
Posy::Plugin:;Canonical plugin, since the Canonical plugin will redirect
your query. Also, if you have a hybrid site, don't forget to set the
"paginate_url" config variable.


==   Activation   ==

This plugin needs to be added to both the plugins list and the actions list.

In the actions list, 'filter_by_page' needs to go somewhere after
``sort_entries'' and before ``head_render'', since the entries need to have
been sorted, and the selection needs to be done before the head template is
rendered, so that links could be put in the head part of the page if
required.


==   Configuration   ==

This expects configuration settings in the $self->{config} hash, which, in
the default Posy setup, can be defined in the main "config" file in the
config directory.

``paginate_param_name''
Give the name of the "page" parameter. (default: 'page') This can be useful
if you don't want it to conflict with a parameter of the same name. Set this
to '' to disable pagination.

``paginate_prev_label''
The label for the "prev" link. (default: '&lt;&lt;- prev')

``paginate_next_label''
The label for the "next" link. (default: 'next -&gt;&gt;')

``paginate_pnum_prefix''
When listing all the pages in $flow_paginate_page_list, each link is given a
prefix and a suffix. The default prefix is '['.

``paginate_pnum_suffix''
The suffix for the links inside $flow_paginate_page_list. The default suffix
is ']'.

``paginate_url''
The URL to use for the pagination links. This defaults to the global
$self->{url} value, but may need to be overridden for things like a hybrid
static/dynamic site. This is because the global $self->{url} for static
generation needs to hide the name of the script used to generate it, but
this plugin needs to know the path to the CGI script.


==== INSTALLATION ====

Installation needs will vary depending on the particular setup a person has.


==   Administrator, Automatic   ==

If you are the administrator of the system, then the dead simple method of
installing the modules is to use the CPAN or CPANPLUS system.

    cpanp -i Posy::Plugin::Paginate

This will install this plugin in the usual places where modules get
installed when one is using CPAN(PLUS).


==   Administrator, By Hand   ==

If you are the administrator of the system, but don't wish to use the
CPAN(PLUS) method, then this is for you. Take the *.tar.gz file and untar it
in a suitable directory.

To install this module, run the following commands:

    perl Build.PL
    ./Build
    ./Build test
    ./Build install

Or, if you're on a platform (like DOS or Windows) that doesn't like the "./"
notation, you can do this:

   perl Build.PL
   perl Build
   perl Build test
   perl Build install


==   User With Shell Access   ==

If you are a user on a system, and don't have root/administrator access, you
need to install Posy somewhere other than the default place (since you don't
have access to it). However, if you have shell access to the system, then
you can install it in your home directory.

Say your home directory is "/home/fred", and you want to install the modules
into a subdirectory called "perl".

Download the *.tar.gz file and untar it in a suitable directory.

    perl Build.PL --install_base /home/fred/perl
    ./Build
    ./Build test
    ./Build install

This will install the files underneath /home/fred/perl.

You will then need to make sure that you alter the PERL5LIB variable to find
the modules, and the PATH variable to find the scripts (posy_one,
posy_static).

Therefore you will need to change: your path, to include
/home/fred/perl/script (where the script will be)

        PATH=/home/fred/perl/script:${PATH}

the PERL5LIB variable to add /home/fred/perl/lib

        PERL5LIB=/home/fred/perl/lib:${PERL5LIB}


==== REQUIRES ====

    Posy
    Posy::Core

    Test::More


==== AUTHOR ====

    Kathryn Andersen (RUBYKAT)
    perlkat AT katspace dot com
    http://www.katspace.com


==== COPYRIGHT AND LICENCE ====

Copyright (c) 2005 by Kathryn Andersen

Parts of this taken from the original 'paginate' blosxom plugin copyright
(c) 2003 by l.m.orchard http://www.decafbad.com

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.

