Donate Share

OpenInteract

File Release Notes and Changelog

Release Name: OpenInteract2 1.99_04

Notes:


Changes: 1.99_04 (2.0 beta 4), 22 May 2004 Major Changes * Added basic localization support. See OpenInteract2::Manual::I18N for more information. Note that a number of OI2 classes have been modified to support additional data for i18n infrastructure. Also note: you don't have to use i18n if you don't want to :-) * You can now migrate your 1.x data automatically. The base SQL installation class OpenInteract2::SQLinstall has hooks for doing it yourself or for declaring a few pieces of information which it will use to copy data from table to table or to copy data to SPOPS objects which get saved to tables as normal. Read its docs under 'DEVELOPERS: MIGRATING DATA' for more information. All packages shipped in the distribution should be able to migrate themselves from a 1.x system. The management task 'migrate_data' (OpenInteract2::Manage::Website::MigratePackageData) is the external hook to this. Run: oi2_manage task_info --task=migrate_data for description and parameter information. * Added new package 'comments' to core distribution. It implements a simple flat comment thread for any object, so you can have comments on news items, links, documents, users, etc. * Added new package 'whats_new' to core distribution. With this you can register an SPOPS object with the service and track new additions to a central location. So when users click "What's new?" they see new documents, news items, comments, etc. * OpenInteract2 now runs under Apache 2/mod_perl 2. This has not been tested very deeply and I've got about two hours of experience with mod_perl 2, but at least it's something to work with. * A couple of table fieldname changes were necessary to make OI2 work under Sybase Adaptive Server Anywhere (ASA). So if you have an earlier beta you'll need to change the name of 'sys_error.message' to 'sys_error.err_message' and the 'comment' table to 'oi_comment'. The former has a backward-compatibility change in the SPOPS configuration (under 'field_map') so you won't even notice. * Tons of cleanup, rewriting, redoing... Minor Changes Apache2::OpenInteract2 * Add interface for Apache2/mod_perl2. HTTP::Daemon::OpenInteract2 * Disambiguate 'close()' call on filehandle since we have a 'close()' method. OpenInteract2::Action * Add "clone()" which copies the properties and parameters of the given object into a new object of the same class. We use this to cache actions created from the action configuration (profiling showed a good bit of time spent on this operation). OpenInteract2::Action::Common* * Added SYNOPSIS documentation displaying all configuration entries OpenInteract2::Config::Initializer * Added documentation for people wishing to catch the 'localization' event, fired when we generate a new localization class. OpenInteract2::Config::Package * Add configuration item 'message_file' so users can declare one or more message files. OpenInteract2::ContentGenerator * Remove unused 'instance_sub' method. "OpenInteract2::ContentGenerator::TT2Context" * Move to OpenInteract2::TT2::Context "OpenInteract2::ContentGenerator::TT2Plugin" * Add 'require' for Text::Sentence in 'limit_sentences()'. Thanks to Mike Castle for pointing out the error. * Move to OpenInteract2::TT2::Plugin OpenInteract2::ContentGenerator::TemplateSource * Add new template source type 'message_key' which asks the language handle to lookup the template name (the normal 'package::name' syntax) given a particular key. OpenInteract2::ContentGenerator::TT2Process * Modify 'initialize()' to save data as state in the content generator object ($self) rather than use class variables and store it in CTX -- the TT object is now a content generator property, not a CTX property. * Configuration data has moved from 'template_process' to 'content_generator' declaration and is pushed into 'initialize()' rather than being pulled from the server config/CTX. * You can no longer specify the methods in 'custom_init_class' and 'custom_variable_class' -- you need to use predefined methods for each ('custom_template_initialize' and 'customize_template_vars', respectively). "OpenInteract2::ContentGenerator::TT2Provider" * Move to OpenInteract2::TT2::Provider OpenInteract2::Context * Add method 'lookup_mail_config' as shortcut into 'email' configuration. * Add step during setup() 'initialize messages' to read in the localized messages from all packages. * Modify docs for "lookup_content_generator_config()" (only returns class associated with name) and "content_generator()" (clarify what's returned). * Remove 'template()' method since content generators can store their own state now, and if you need a Template object you can get it from the content generator or create one yourself. * Add 'lookup_datasource_type_config()' as shortcut into 'datasource_type' configuration * Add 'lookup_id_config()' as shortcut into 'id' configuration. * Add 'lookup_cache_config()' as shortcut into 'cache' configuration. * Add 'lookup_config_watcher_config()' as shortcut into 'config_watcher' configuration OpenInteract2::Exception::Parameter * Move to separate class so we can do customized stringification (previously just a declaration in OI2::Exception) OpenInteract2::I18N * Add base class for use with Locale::Maketext OpenInteract2::I18N::Initializer * Add class to read message keys and generate Locale::Maketext subclasses from them. (Called from OI2::Setup) OpenInteract2::Manage::Website::CreateSuperuserPassword * Add check so that if 'login.disable_superuser_password_change' is set we'll throw an exception. OpenInteract2::Manage::Website::PackageCheckExportInstall * Add new task to check a package, export it if the check succeeds, and install it to a website if the export succeeds. OpenInteract2::Manual::I18N * Add section of manual to deal with I18N/L10N issues. OpenInteract2::Package * Add "get_message_files()" to retrieve the files with localized messages. * In 'create_skeleton()' reject any blank/all-space package names. OpenInteract2::Reponse::Apache2 * Add interface for Apache2/mod_perl2 output. OpenInteract2::Request * Add 'auth_clear()' method to clear all 'auth_*' properties from current request. Generally used when loggin a user out. OpenInteract2::Request::Apache2 * Add interface for Apache2/mod_perl2 input, although we're not using the mp2 version of Apache::Request yet because I couldn't get it working properly on my machine. (Lots of 'child pid 12671 exit signal Bus error (10)' type messages...) Instead we just borrow the parameter/upload parsing from OpenInteract2::Request::CGI. OpenInteract2::Setup * Add "read_localized_messages()" to read in the localized messages. OpenInteract2::SQLInstall * Add "migrate_data()" method along with implementations to copy data between tables and from a table to objects. * Modify the data file and structure file installations to report the full path to the files used rather than the filename itself. * Fix bug where a '0' specified in the object ID in a security specification would actually try to insert a hashref of the default security information. (Ah, perl's true/false semantics...) sample/README * Add description of what the sample files are for and how to create a public source directory. sample/apache2/* * Add Apache 2/mod_perl 2 configuration files, copied over to a new website when it's created. sample/msg/* * Add global message files (only US English for now, like to help?) sample/website/conf/server.ini * Add key 'dir.package' so we can get the base package directory easily. * Add key 'dir.msg' so we can get the global message directory * Remove 'template_process' configuration section, moving the data into the respective 'content_generator' section. * Modify content generator type 'HTMLT' to be 'HTMLTemplate', and 'TextTmpl' to be 'TextTemplate'. (Seems friendlier...) * Add section 'language' to support I18N efforts. * Add 'login.disable_superuser_password_change' to stop people from changing superuser password using oi2_manage. * Rename 'cache_info' to 'cache', and remove subsections 'data' and 'template' -- all 'data' items are in 'cache' and 'template' items moved to the TT2 content generator configuration. * Remove 'context.info.request' and 'context_info.response', the adapters are responsible for setting this. * Rename 'display_info' to 'redirect' since that's all it was holding. * Remove key 'system_class.security' since you can just do CTX->lookup_object( 'security' ) instead.