The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Parley - Message board / forum application

SYNOPSIS

To run a test/development server:

  script/parley_server.pl

To run under FastCGI:

  cp config/parley /etc/apache2/sites-available
  a2ensite parley
  /etc/init.d/apache2 restart

Also see: "Deployment" in Catalyst::Manual::Cookbook

Start the email engine:

  script/parley_email_engine.pl

DESCRIPTION

Parley is a forum/message-board application. It's raison d'etre is to try to fill a void in the perl application space.

FEATURES

Multiple forums

Have numerous forums to separate areas of discussion.

Paging for long threads

Save the scroll-wheel on your mouse.

Sign-Up with email/URL based authentication

Sign-Up and Authentication runs without moderator intervention.

User preferences

Time-zone; time format; user avatar; notifications

Non-plaintext passwords stored in database

There's nothing worse than letting someone with database access read your favourite password.

Password reset / Lost password

People forget. This way they can reset their password without needing human help.

ForumCode

BBCode-esque markup in posts.

Terms & Conditions

If you add new T&Cs, all users will be required to agree to them next time they log-in. No more hidden, unnoticed T&C updates.

Users can view historical T&Cs.

SEE ALSO

Catalyst, http://developer.berlios.de/projects/parley/

AUTHOR

Chisel Wright <chiselwright@users.berlios.de>

LICENSE

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

TECHNICAL STUFF

General users don't need to read beyond this point. The following information describes the top-level interface for the Parley module.

METHODS

application_email_address($c)

    Return Value: $string

Returns the email address string for the application built from the from_name and from_address in the alerts section of parley.yml

is_logged_in($c)

    Return Value: 0 or 1

Returns 1 or 0 depending on whether there is a logged-in user or not.

login_if_required($c,$message)

    Return Value: Void Context

If a user isn't logged in, send them to the login page, optionally setting the message for the login box.

Once logged in the user should (by virtue of stored session data, and login magic) be redirected to wherever they were trying to view before the required login.

send_email($c,\%options)

    Return Value: 0 or 1

Send an email using the render() method in the TT view. \%options should contain the following keys:

headers

Header fields to be passed though to the call to Catalyst::Plugin::Email.

person

A Parley::Schema::Person object for the intended recipient of the message.

Or, any object with an email() method, and methods to match "[% person.foo() %]" methods called in the email template(s).

template

Used to store the name of the email template(s) to be sent. Currently the application only sends plain-text emails, so only one file is specified.

The text template name should be passed in ->{template}{text}.

The html template name should be passed in ->{template}{html}. (Not Implemented)

EVIL, LAZY STASH ACCESS

I know someone will look at this at some point and tell me this is evil, but I've added some get/set method shortcuts for commonly used stash items.

$c->_authed_user

get/set value stored in $c->stash->{_authed_user}:

  $c->_authed_user( $some_value );
$c->_current_post

get/set value stored in $c->stash->{_current_post}:

  $c->current_post( $some_value );
$c->_current_thread

get/set value stored in $c->stash->{_current_thread}:

  $c->_current_thread( $some_value );
$c->_current_forum

get/set value stored in $c->stash->{_current_forum}:

  $c->_current_forum( $some_value );