NAME

Posy::Plugin::EditInfo - Posy plugin to edit supplementary entry information.

VERSION

This describes version 0.03 of Posy::Plugin::EditInfo.

SYNOPSIS

    @plugins = qw(Posy::Core
	...
	Posy::Plugin::Info
	Posy::Plugin::EditInfo
	...);

    @actions = qw(init_params
	...
	process_edit_info_form
	...);

    @entry_actions = qw(init_params
	...
	set_edit_info_form
	...);

DESCRIPTION

This plugin enables the user to create and edit .info files of the type used by Posy::Plugin::Info. This relies on external .htaccess setup for password protection, so if you can't set such a thing up, do not use this module unless you want anyone to be able to create .info files.

This plugin provides $entry_edit_info_form flavour variable, and 'set_edit_info_form' and 'process_edit_info_form' actions.

Password Protection

For details of how to set up password protection for a directory, check your webserver documentation. Here is some advice, however.

If you password-protect your whole site, then nobody could even view the site without having a user-password. This is probably not what you want. The easiest method of protecting editing is to make a copy of your posy.cgi script (say, posy_edit.cgi) and make separate directory to put it in (say, "cgi-bin/posy_edit_info/"), put the posy_edit.cgi script into it, and password-protect that directory.

Then edit posy_edit.cgi to add the Posy::Plugin::EditInfo configuration requirements (and remove extra plugins that you don't actually need for this).

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.

edit_info_url

The url of the edit-info CGI script. (default: $self->{url})

edit_info_spec

Define the info-fields and their properties.

    edit_info_spec:
      order:
        - Author
        - Title
	- Series
        - SeriesOrder
	- Rating
	- Summary
      default:
	type: string
	size: 40
	rows: 4
	cols: 60
      options:
        Summary:
	  rows: 5
          cols: 70

The 'order' part of the spec is the order the fields are to be presented in the form. The 'options' part of the spec gives optional options for each field, while the 'default' part of the spec gives the default kind of form layout for fields are if they don't appear in the 'options' part, and the default type to use if the field isn't given a type in the info_type_spec.

The type of a field depends on the info_type_spec definition used by Posy::Plugin::Info. Types are 'string', 'text', 'number', 'title', and 'limited'

Possible options depend on the type of field:

string/number/title

Displayed as a "text" input field. The 'size' gives the size of the field.

text

Displayed as a "textarea" input field. The "rows" and "cols" are the rows and columns.

limited

Displayed as a "select" input field, using its associated 'values' to be the list of options for that select.

OBJECT METHODS

Documentation for developers and those wishing to write plugins.

init

Do some initialization; make sure that default config values are set.

Flow Action Methods

Methods implementing actions. All such methods expect a reference to a flow-state hash, and generally will update either that hash or the object itself, or both in the course of their running.

process_edit_info_form

$self->process_edit_info_form($flow_state);

Processes the EntryInfo-related parameters and saves the data to the correct .info file.

Entry Action Methods

Methods implementing per-entry actions.

set_edit_info_form

$self->set_edit_info_form($flow_state, $current_entry, $entry_state);

Creates the EditInfo form and puts it into the $entry_edit_info_form flavour variable.

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::EditInfo

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.

Therefore you will need to change the PERL5LIB variable to add /home/fred/perl/lib

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

REQUIRES

Posy
Posy::Core
Posy::Plugin::Info

Test::More

SEE ALSO

perl(1). Posy

BUGS

Please report any bugs or feature requests to the author.

AUTHOR

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

COPYRIGHT AND LICENCE

Copyright (c) 2005 by Kathryn Andersen

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