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

NAME

OpenInteract2::Filter - Initialize and manage content filters

SYNOPSIS

 # Declare a filter 'allcaps' in $WEBSITE_DIR/conf/filter.ini
 
 [filters allcaps]
 class = OpenInteract2::Filter::AllCaps
 
 # You can also declare it in your package's package.conf file
 
 name           mypackage
 version        2.00
 author         Kilroy (kilroy@washere.com)
 filter         allcaps   OpenInteract2::Filter::AllCaps
 
 # Associate the filter with an action
 
 [filter_action]
 news = allcaps
 
 # Create the filter
 
 package OpenInteract2::Filter::AllCaps;
 
 use strict;
 
 sub update {
     my ( $class, $action, $type, $content ) = @_;
     return unless ( $type eq 'filter' );
     $$content =~ s/^(.*)$/\U$1\E/;
 }
 
 # Programmatically add a new filter
 
 CTX->add_filter( 'foobar', { class => 'OpenInteract2::Filter::Foobar' } );

DESCRIPTION

This class provides methods for initializing filters and attaching them to action objects or action classes.

METHODS

All methods are class methods (for now). Note that when we discuss a 'filter' it could mean a class name, instantiated object or subroutine reference. (A filter is just an observer, see Class::Observable for what constitutes an observer.)

create_filter_filename()

Returns the full path to the server filter file, normally $WEBSITE_DIR/conf/filter.ini.

add_filter_to_action( $filter_name, $action | $action_name )

Registers the filter referenced by $filter_name to the action $action or the action class referenced by $action_name. If you pass in $action the filter will go away when the object is disposed at the end of the request; with $action_name the filter will persist until the server is shutdown.

Returns: assigned filter

register_filter( $filter_name, \%filter_info, \%filter_registry )

Creates a filter with the name $filter_name and saves the information in \%filter_registry. If the filter cannot be created (due to a library not being available or an object not being instantiable) an error is logged but no exception thrown.

Returns: created filter, undef if an error encountered

initialize()

Reads filters declared in packages and in the server's filter.ini file, brings in the libraries referenced by the filters, creates a filter name-to-filter registry and saves it to the context.

Note that filters declared at the server will override filters declared in a package if they share the same name.

You'd almost certainly never need to call this as it's called from OpenInteract2::Setup.

Returns: nothing

COPYRIGHT

Copyright (c) 2002-2004 Chris Winters. All rights reserved.

AUTHORS

Chris Winters <chris@cwinters.com>