NAME
OpenInteract2::Manual - User Guide and Reference Manual for OpenInteract
DESCRIPTION
This is the manual for OpenInteract2. It includes information about how to setup OpenInteract2 (including databases, web servers, etc.), how to develop modules in OpenInteract and how to extend it for your own purposes. It is also a reference for the features OpenInteract2 has with pointers to the relevant module documentation for details.
This manual provides an overview of the framework along with examples, directions, etc. If you need implementation-specific information, please see the documentation for the appropriate module. (All modules are listed below.)
The manual is broken down into:
-
An introduction to the capabilities and architecture of OpenInteract2 -- a good starting point.
OpenInteract2::Manual::QuickStart
A quick start guide for setting up a website.
OpenInteract2::Manual::Tutorial
Create a new package and modify an existing one. Developers should read this first.
OpenInteract2::Manual::TutorialAdvanced
Add advanced features to an application.
OpenInteract2::Manual::Architecture
More in-depth discussion of the major areas of OpenInteract and a walk-through for a request.
OpenInteract2::Manual::Conversion
Read this if you're upgrading an existing OpenInteract 1.x site to OpenInteract 2, particularly if you're going to be migrating custom packages you've developed.
OpenInteract2::Manual::Changes
Listing of the changes between OI versions. The major architectural changes between 1.x and 2.x are also listed here.
OpenInteract2::Manual::Templates
Using templates, focusing on the Template Toolkit.
OpenInteract2::Manual::Widgets
Using template widgets in the Template Toolkit.
OpenInteract2::Manual::Packages
Learn about a package: how we create distributable OpenInteract2 applications.
-
Internationalization and localization issues in OpenInteract2.
OpenInteract2::Manual::Caching
How to setup and use content caching.
OpenInteract2::Manual::Logging
How to use and configure logging.
OpenInteract2::Manual::Authentication
How to setup authentication and related actions.
OpenInteract2::Manual::Security
How task and object security works and how you can change it.
OpenInteract2::Manual::Management
Managing OpenInteract2 using
oi2_manageand the OpenInteract2::Manage framework.OpenInteract2::Manual::AdminDatabase
Setup databases.
OpenInteract2::Manual::AdminApache
Setup Apache/mod_perl.
OpenInteract2::Manual::Datasource
How to setup and use datasources.
OpenInteract2::Manual::DataImport
Importing data into OpenInteract datasources.
-
How OpenInteract2 enhances SPOPS objects and makes them easier for you to configure.
OpenInteract2::Manual::SearchResults
Serializing and retrieving search results.
-
How to setup and use LDAP support.
MODULES
Apache::OpenInteract2: OpenInteract2 Content handler for Apache 1.x
Apache::OpenInteract2::HttpAuth: Use HTTP authentication to check logins against OpenInteract2 users
Apache2::OpenInteract2: OpenInteract2 Content handler for Apache 2.x
HTTP::Daemon::OpenInteract2: Standalone HTTP daemon for OpenInteract 2
OpenInteract2::Action: Represent and dispatch actions
OpenInteract2::Action::Common: Base class for common functionality
OpenInteract2::Action::CommonAdd: Tasks to display empty form and create an object
OpenInteract2::Action::CommonDisplay: Task to display an object
OpenInteract2::Action::CommonRemove: Task to remove an object
OpenInteract2::Action::CommonSearch: Implement searching functionality for SPOPS::DBI-based objects
OpenInteract2::Action::CommonUpdate: Task to update an object
OpenInteract2::Action::TemplateOnly: Base class for template-only actions
OpenInteract2::ActionResolver: Small classes and chain of responsibility to resolve URLs to action objects
OpenInteract2::ActionResolver::NameAndTask: Create an action from the URL's initial path and optional task
OpenInteract2::ActionResolver::NotFoundOrEmpty: Use the 'not_found' or 'empty' actions
OpenInteract2::ActionResolver::UserDir: Be able to create action from user directory request
OpenInteract2::App: Base class for CPAN-distributable OpenInteract application bundles
OpenInteract2::Auth: Base class for logging in OpenInteract users
OpenInteract2::Auth::AdminCheck: See whether user is admin
OpenInteract2::Auth::Group: Retreive groups into OpenInteract
OpenInteract2::Auth::User: Base class for creating OpenInteract users
OpenInteract2::Brick: [% brick_summary %]
OpenInteract2::Brick::Apache: All resources used for creating Apache 1.x configurations in a new website
OpenInteract2::Brick::Apache2: All resources used for creating Apache 2.x configurations in a new website
OpenInteract2::Brick::Base: Base-64 encoded OI2 package 'base-2.15.zip' shipped with distribution
OpenInteract2::Brick::BaseBox: Base-64 encoded OI2 package 'base_box-2.21.zip' shipped with distribution
OpenInteract2::Brick::BaseError: Base-64 encoded OI2 package 'base_error-3.02.zip' shipped with distribution
OpenInteract2::Brick::BaseGroup: Base-64 encoded OI2 package 'base_group-2.20.zip' shipped with distribution
OpenInteract2::Brick::BasePage: Base-64 encoded OI2 package 'base_page-2.32.zip' shipped with distribution
OpenInteract2::Brick::BaseSecurity: Base-64 encoded OI2 package 'base_security-2.22.zip' shipped with distribution
OpenInteract2::Brick::BaseTemplate: Base-64 encoded OI2 package 'base_template-3.17.zip' shipped with distribution
OpenInteract2::Brick::BaseTheme: Base-64 encoded OI2 package 'base_theme-2.13.zip' shipped with distribution
OpenInteract2::Brick::BaseUser: Base-64 encoded OI2 package 'base_user-2.41.zip' shipped with distribution
OpenInteract2::Brick::CGI: Script for running OI2 as a CGI
OpenInteract2::Brick::Comments: Base-64 encoded OI2 package 'comments-1.23.zip' shipped with distribution
OpenInteract2::Brick::Daemon: Configuration used for creating the standalone webserver
OpenInteract2::Brick::FullText: Base-64 encoded OI2 package 'full_text-2.61.zip' shipped with distribution
OpenInteract2::Brick::Lookup: Base-64 encoded OI2 package 'lookup-2.09.zip' shipped with distribution
OpenInteract2::Brick::Messages: All global localization messages
OpenInteract2::Brick::News: Base-64 encoded OI2 package 'news-2.25.zip' shipped with distribution
OpenInteract2::Brick::ObjectActivity: Base-64 encoded OI2 package 'object_activity-2.13.zip' shipped with distribution
OpenInteract2::Brick::Package: All resources used for creating a package
OpenInteract2::Brick::PackageCPAN: All resources used for creating a CPAN distribution from a package
OpenInteract2::Brick::PackageFromTable: All resources used for creating a package based on a table
OpenInteract2::Brick::SystemDoc: Base-64 encoded OI2 package 'system_doc-2.10.zip' shipped with distribution
OpenInteract2::Brick::WebsiteConfig: Various non-server-specific configuration files for OI2 website
OpenInteract2::Brick::WhatsNew: Base-64 encoded OI2 package 'whats_new-2.12.zip' shipped with distribution
OpenInteract2::Brick::Widgets: All global TT2 template files
OpenInteract2::Cache: - Caches objects to avoid database hits and content to avoid template processing
OpenInteract2::Cache::File: - Implement caching in the filesystem
OpenInteract2::Config: - Centralized configuration information
OpenInteract2::Config::Bootstrap: Represents a server bootstrap configuration
OpenInteract2::Config::GlobalOverride: - Process global override settings for a set of configuration directives
OpenInteract2::Config::Ini: Read/write INI-style (++) configuration files
OpenInteract2::Config::IniFile: OI configuration using INI files
OpenInteract2::Config::Initializer: Observable configuration initialization events
OpenInteract2::Config::Package: Read, write and check package config files
OpenInteract2::Config::PackageChanges: Represent entries from a package Changes file
OpenInteract2::Config::PerlFile: Subclass OpenInteract2::Config to read/write information from/to a perl file
OpenInteract2::Config::Readonly: Simple read/write for readonly files
OpenInteract2::Constants: Define codes used throughout OpenInteract
OpenInteract2::ContentGenerator: Coordinator for classes generating content
OpenInteract2::ContentGenerator::HtmlTemplate: Content generator using HTML::Template
OpenInteract2::ContentGenerator::TT2Process: Process Template Toolkit templates in OpenInteract
OpenInteract2::ContentGenerator::TemplateSource: Common routines for loading content from OI2 templates
OpenInteract2::ContentGenerator::TextTemplate: Content generator using Text::Template
OpenInteract2::Context: Provides the environment for a server
OpenInteract2::Controller: Top-level controller to generate and place content
OpenInteract2::Controller::MainTemplate: Controller for content to be placed in a main template
OpenInteract2::Controller::ManageBoxes: Mixin methods for managing boxes
OpenInteract2::Controller::ManageTemplates: Mixin methods for managing templates
OpenInteract2::Controller::Raw: Basic controller just outputting action content
OpenInteract2::Conversion::ActionConfig: Convert old action.perl files into INI configurations
OpenInteract2::Conversion::IniConfig: Parent class for converting perl configurations to INI format
OpenInteract2::Conversion::SPOPSConfig: Convert old spops.perl files into INI configurations
OpenInteract2::Cookie: Generic cookie methods
OpenInteract2::CreateSecurity: Batch create security for one or more objects or classes
OpenInteract2::Datasource::DBI: Create DBI database handles
OpenInteract2::Datasource::LDAP: Centralized connection location to LDAP directories
OpenInteract2::DatasourceManager: Base class for datasource connection managers
OpenInteract2::Error: Simple property object that knows how to un/serialize from/to a file
OpenInteract2::ErrorStorage: Serialize serious errors to the filesystem
OpenInteract2::Exception: Base class for exceptions in OpenInteract
OpenInteract2::Exception::Parameter: Parameter exceptions
OpenInteract2::Exception::Security: Security exceptions
OpenInteract2::File: Safe filesystem operations for OpenInteract
OpenInteract2::Filter::AllCaps: Sample filter to translate content into all caps.
OpenInteract2::FullTextIndexer: Base class for OI2 indexers
OpenInteract2::FullTextIterator: Iterator to scroll through search results
OpenInteract2::FullTextRules: Rules for automatically indexing SPOPS objects
OpenInteract2::I18N: Base class for localized messages
OpenInteract2::I18N::Initializer: Read in localization messages and generate maketext classes
OpenInteract2::Log: Initialization for log4p logger
OpenInteract2::Log::OIAppender: Appender to put error message in OI error log
OpenInteract2::Manage: Provide common functions and factory for management tasks
OpenInteract2::Manage::Package: Parent for all package management tasks
OpenInteract2::Manage::Package::Check: Check validity of a package
OpenInteract2::Manage::Package::CreateCPAN: Create a CPAN distribution from a package
OpenInteract2::Manage::Package::CreatePackage: Create a sample package
OpenInteract2::Manage::Package::CreatePackageFromTable: Create a package with full CRUDS capability based on a database table
OpenInteract2::Manage::Package::Export: Export a package into a portable format
OpenInteract2::Manage::Website: Parent for website management tasks
OpenInteract2::Manage::Website::CleanExpiredSessions: Remove expired and empty sessions
OpenInteract2::Manage::Website::CleanOrphanedUsers: Remove users who created an account but never logged in
OpenInteract2::Manage::Website::Create: Create a new website
OpenInteract2::Manage::Website::CreateSecurity: Create security for multiple SPOPS objects
OpenInteract2::Manage::Website::CreateSecurityForAction: Create security for an OI2 action
OpenInteract2::Manage::Website::CreateSecurityForSPOPS: Create security for multiple SPOPS objects
OpenInteract2::Manage::Website::CreateSuperuserPassword: Change password for superuser
OpenInteract2::Manage::Website::InstallPackage: Install a package distribution to a website
OpenInteract2::Manage::Website::InstallPackageData: Install object/table data from packages
OpenInteract2::Manage::Website::InstallPackageSecurity: Managment task
OpenInteract2::Manage::Website::InstallPackageSql: Install SQL structures, object/SQL data and security objects
OpenInteract2::Manage::Website::InstallPackageStructure: Managment task
OpenInteract2::Manage::Website::ListActions: List all actions in a website
OpenInteract2::Manage::Website::ListObjects: Task to list all SPOPS objects in a website
OpenInteract2::Manage::Website::ListPackages: List packages installed to a website
OpenInteract2::Manage::Website::PackageCheckExportInstall: Check, export and install a package in one fell swoop
OpenInteract2::Manage::Website::ReindexObjects: Index objects for a particular class
OpenInteract2::Manage::Website::RemovePackage: Remove a package from a website
OpenInteract2::Manage::Website::TestDB: Managment task
OpenInteract2::Manage::Website::TestLDAP: Task to test configured LDAP connections
OpenInteract2::Manage::Website::ThemeDump: Dump a theme to a themeball
OpenInteract2::Manage::Website::ThemeInstall: Install a theme from a themeball
OpenInteract2::Manage::Website::UpdatePackageFromWebsite: Managment task
OpenInteract2::Manage::Website::Upgrade: Upgrade website from a new OpenInteract distribution
OpenInteract2::Manage::Website::ViewSession: View contents of a session
OpenInteract2::Observer: Initialize and manage observers to OpenInteract components
OpenInteract2::Observer::Controller::GetFiltersFromRequest: Scan parameters for filtering directives
OpenInteract2::Package: Perform actions on individual packages
OpenInteract2::ParamContainer: Base for classes that want to hold parameters
OpenInteract2::Repository: Operations to manipulate package repositories.
OpenInteract2::Request: Represent a single request
OpenInteract2::Request::Apache: Read parameters, uploaded files and headers
OpenInteract2::Request::Apache2: Read parameters, uploaded files and headers from Apache2/mod_perl2
OpenInteract2::Request::CGI: Read parameters, uploaded files and headers
OpenInteract2::Request::LWP: Read parameters, uploaded files and headers
OpenInteract2::Request::Standalone: Manually create a request object
OpenInteract2::Response: Information about and actions on an HTTP response
OpenInteract2::Response::Apache: Response handler using Apache/mod_perl 1.x
OpenInteract2::Response::Apache2: Response handler using Apache/mod_perl 2.x
OpenInteract2::Response::CGI: Response handler using CGI
OpenInteract2::Response::LWP: Response handler using LWP
OpenInteract2::Response::Standalone: Standalone response handler, mostly for testing
OpenInteract2::ResultsIterator: Iterator to scroll through search results that are objects of different classes.
OpenInteract2::ResultsManage: Save and retrieve generic search results
OpenInteract2::SPOPS: Define common behaviors for all SPOPS objects in the OpenInteract Framework
OpenInteract2::SPOPS::DBI: Common SPOPS::DBI-specific methods for objects
OpenInteract2::SPOPS::LDAP: Common SPOPS::LDAP-specific methods for objects
OpenInteract2::SQLInstall: - Dispatcher for installing various SQL data from packages to database
OpenInteract2::SessionManager: Implement session management for OpenInteract
OpenInteract2::SessionManager::DBI: Create sessions within a DBI data source
OpenInteract2::SessionManager::File: Create sessions within a filesystem
OpenInteract2::SessionManager::SQLite: Create sessions within a SQLite data source
OpenInteract2::Setup: Base/Factory class for setup actions in OpenInteract2
OpenInteract2::Setup::CheckDatasources: Ensure datasource configurations are correct
OpenInteract2::Setup::CreateTemporaryLibraryDirectory: Copy package modules to a single directory tree
OpenInteract2::Setup::DependencySource: Provide dependency information for Algorithm::Dependency
OpenInteract2::Setup::InitializeActions: Include and initialize all OpenInteract2 actions
OpenInteract2::Setup::InitializeCache: Initialize the cache
OpenInteract2::Setup::InitializeContentGenerators: Initialize content generator objects
OpenInteract2::Setup::InitializeControllers: Initialize all controller classes
OpenInteract2::Setup::InitializeObservers: Initialize action and configuration observers
OpenInteract2::Setup::InitializeSPOPS: Initialize SPOPS classes
OpenInteract2::Setup::InitializeTimezone: Create the global timezone object
OpenInteract2::Setup::ReadActionTable: Reads actions from all packages and stores them in context
OpenInteract2::Setup::ReadLocalizedMessages: Find and read all localization data and create lookup tables
OpenInteract2::Setup::ReadPackages: Read all packages from the repository and register with the context
OpenInteract2::Setup::ReadRepository: Reads the package repository and stores in context
OpenInteract2::Setup::ReadSPOPSConfig: Read SPOPS object declarations from all packages
OpenInteract2::Setup::ReadServerConfig: Read the server configuration
OpenInteract2::Setup::RegisterActionTypes: Find action types and register them
OpenInteract2::Setup::RegisterRequestAndResponse: Register all request and response implementations declared in server configuration
OpenInteract2::Setup::RequireClasses: Bring in one or a set of classes
OpenInteract2::Setup::RequireIndexers: Bring in all indexer classes
OpenInteract2::Setup::RequireSessionClasses: Bring in all session implementation classes
OpenInteract2::Setup::RequireSystemClasses: Bring in declared 'system_classes'
OpenInteract2::TT2::Context: Provide a custom context for templates in OpenInteract
OpenInteract2::TT2::Plugin: Custom OpenInteract functionality in templates
OpenInteract2::TT2::Provider: Retrieve templates for the Template Toolkit
OpenInteract2::URL: Create URLs, parse URLs and generate action mappings
OpenInteract2::Upload: Represent a file upload
OpenInteract2::Util: Package of routines that do not really fit anywhere else
COPYRIGHT
Copyright (c) 2001-2004 Chris Winters. All rights reserved.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the file titled "COPYING-DOCS".
AUTHORS
Chris Winters <chris@cwinters.com>
The following people have offered patches, advice, development funds, etc. to OpenInteract and OpenInteract2:
Salve Nilsen and his team at the Norwegian Meteorological Institute (http://met.no/) have provided ideas, use cases, bug reports and invaluable advice throughout the OpenInteract2 beta process.
Teemu Arina and his team at Dicole (http://www.dicole.com/) have created a substantial and innovative groupware product called MimerDesk. They've also been very active in submitting patches, bug reports and ideas for development, particularly i18n support, based on their day-to-day usage.
John Sequeira and HappyCool (running the National Auto Sport Association) donated money toward the OpenInteract server which runs the website, wiki site, demo sites and JIRA issue tracking.
Greg Fenton and the folks at iAnywhere contributed a fully-licensed version of SQL Anywhere Studio version 9 at YAPC 2004.
intes.net (http://www.intes.net/) funded and supported OpenInteract development through its 1.x versions.
Andreas Nolte <andreas.nolte@bertelsmann.de> and his team have contributed lots of great ideas and have been super for bouncing ideas around.
Christian Lemburg <lemburg@aixonix.de>, Rusty Foster <rusty@kuro5hin.org>, Christopher Proto, and many other folks have helped out. (Please email me if I've forgotten you!)