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 );