You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(381) |
Nov
(176) |
Dec
(310) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(334) |
Feb
(96) |
Mar
(149) |
Apr
(214) |
May
(120) |
Jun
(56) |
Jul
(10) |
Aug
(273) |
Sep
(182) |
Oct
(56) |
Nov
(125) |
Dec
(22) |
2003 |
Jan
(63) |
Feb
(181) |
Mar
(498) |
Apr
(433) |
May
(39) |
Jun
(512) |
Jul
(276) |
Aug
(156) |
Sep
(101) |
Oct
(66) |
Nov
(24) |
Dec
(161) |
2004 |
Jan
(1) |
Feb
(377) |
Mar
(68) |
Apr
(26) |
May
(107) |
Jun
(333) |
Jul
(13) |
Aug
|
Sep
(76) |
Oct
(88) |
Nov
(170) |
Dec
(91) |
2005 |
Jan
(52) |
Feb
(239) |
Mar
(402) |
Apr
(15) |
May
(2) |
Jun
(1) |
Jul
(13) |
Aug
|
Sep
(71) |
Oct
(34) |
Nov
|
Dec
|
2006 |
Jan
(5) |
Feb
(5) |
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
(3) |
Sep
(7) |
Oct
(2) |
Nov
|
Dec
|
2007 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Chris W. <la...@us...> - 2005-03-01 03:28:50
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/base_template/doc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27837/base_template/doc Removed Files: base_template.pod Log Message: OIN-72: move all docs to ::App class --- base_template.pod DELETED --- |
From: Chris W. <la...@us...> - 2005-03-01 03:28:50
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/base_template/OpenInteract2/App In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27837/base_template/OpenInteract2/App Added Files: BaseTemplate.pm Log Message: OIN-72: move all docs to ::App class --- NEW FILE: BaseTemplate.pm --- package OpenInteract2::App::BaseTemplate; use strict; use base qw( Exporter OpenInteract2::App ); use OpenInteract2::Manage; $OpenInteract2::App::BaseTemplate::VERSION = sprintf("%d.%02d", q$Revision: 1.1 $ =~ /(\d+)\.(\d+)/); @OpenInteract2::App::BaseTemplate::EXPORT = qw( install ); sub get_brick_name { return 'base_template'; } # Not a method, just an exported sub sub install { my ( $website_dir ) = @_; my $manage = OpenInteract2::Manage->new( 'install_package' ); $manage->param( website_dir => $website_dir ); $manage->param( package_class => __PACKAGE__ ); return $manage->execute; } __END__ =pod =head1 NAME OpenInteract2::App::BaseTemplate - Represent templates as objects and allow administrators to edit through the browser =head1 SYNOPSIS # In server configuration file $WEBSITE_DIR/conf/server.ini # Tell OI about the SiteTemplate object: [system_alias] site_template = OpenInteract::SiteTemplate sitetemplate = OpenInteract::SiteTemplate # Fetch a template and display information my $template = $R->site_template->fetch( 'mypkg::mytemplate' ); print "Template info:\n", "Modified on: ", scalar localtime( $template->modified_on ), "\n", "Package: ", $template->package, "\n", "Name: ", $template->name, "\n", "Directory: ", $template->directory, "\n", "Filename: ", $template->filename, "\n", "Contents\n", $template->contents, "\n"; =head1 NOTE This package has changed dramatically. Templates are no longer stored in the database -- they are always stored in the filesystem. This requires a change to the server configuration file (see L<SYNOPSIS>) and, if you've got your templates stored in the database and are upgrading to OI 1.42 or higher you need to run C<script/migrate_to_filesystem.pl>. =head1 DESCRIPTION This package has the C<SiteTemplate> object along with routines to edit the object via the browser. =head1 OBJECTS B<template> Object representing a template to be interpreted by a template processing engine. It is normally specified by name and package -- templates without a package are known as 'global' or 'site' templates -- and contains the template itself plus some filesystem metadata For package templates, the object is smart enough to be able to pull from the global package template directory before the specific package template directory. For instance, say you wanted to add new fields to the form for searching users. Here's what you'd do: B<Using the Filesystem> =over 4 =item 1 Copy the file C<$WEBSITE_DIR/pkg/base_user-1.68/template/user_search_form.tmpl> to C<$WEBSITE_DIR/template/base_user/user_search_form.tmpl>. (Assuming you're using version 1.68 of the C<base_user> package. If not, adjust accordingly.) =item 2 Edit the file C<$WEBSITE_DIR/template/base_user/user_search_form.tmpl> to your heart's content. OI will now use this template when asked for 'base_user::user_search_form>. (Note: you may need to modify the permissions of the template so that browser-based editing works properly. This normally means making it writable by the owner of the webserver process, often 'nobody'.) =item 3 Additionally, OI will continue to use this template even when you upgrade the 'base_user' package. =back B<Using the Browser> =over 4 =item 1 Click the link in the B<Admin Tools> box labeled 'Template: List'. =item 2 Scroll down to the C<base_user> package and click the C<user_search_form> template. =item 3 Edit the template in the textarea provided. When you submit the form OI will save the file to C<$WEBSITE_DIR/template/base_user/user_search_form.tmpl> just as if you had done using in the filesystem. =back =head1 ACTIONS B<template> I<Security enabled>: yes Default action is to list all available templates. You can then choose to edit one of them through a (somewhat crude) browser interface. B<templates_used_box> Display the box of templates used in that particular request with links to edit them via the browser. This provides an easy way during debugging to tweak the site. B<template_tools_box> Displayed whenever you view a template or the listing -- shortcuts to add a new template, or perform actions on the one displayed. =head1 TO DO B<Listing is long> Since there are so many templates in the system, the initial listing of templates is quite long. It would be nice to either have a two-step process (choose a package, then a template) or some sort of JavaScript solution so that all the templates aren't listed. Patches welcome! =head1 SEE ALSO L<OpenInteract2::TT2::Provider|OpenInteract2::TT2::Provider> =head1 AUTHORS Chris Winters E<lt>ch...@cw...E<gt> =cut |
From: Chris W. <la...@us...> - 2005-03-01 03:28:50
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/base_theme/doc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27837/base_theme/doc Removed Files: base_theme.pod Log Message: OIN-72: move all docs to ::App class --- base_theme.pod DELETED --- |
From: Chris W. <la...@us...> - 2005-03-01 03:28:50
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/base_theme/OpenInteract2/App In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27837/base_theme/OpenInteract2/App Added Files: BaseTheme.pm Log Message: OIN-72: move all docs to ::App class --- NEW FILE: BaseTheme.pm --- package OpenInteract2::App::BaseTheme; use strict; use base qw( Exporter OpenInteract2::App ); use OpenInteract2::Manage; $OpenInteract2::App::BaseTheme::VERSION = sprintf("%d.%02d", q$Revision: 1.1 $ =~ /(\d+)\.(\d+)/); @OpenInteract2::App::BaseTheme::EXPORT = qw( install ); sub get_brick_name { return 'base_theme'; } # Not a method, just an exported sub sub install { my ( $website_dir ) = @_; my $manage = OpenInteract2::Manage->new( 'install_package' ); $manage->param( website_dir => $website_dir ); $manage->param( package_class => __PACKAGE__ ); return $manage->execute; } __END__ =pod =head1 NAME OpenInteract2::App::BaseTheme - Package implementing themes in OpenInteract =head1 DESCRIPTION Represent themes for modifying how a website looks. The idea is that by modifying the theme you can represent the same content in very different ways. Not only can you change colors of common elements, but you can choose to place elements in different areas on the page, even choosing to eliminate some of them. One of the more useful features is inheritance. Any theme can inherit from any other theme. All properties defined in the parent theme (or the parent of the parent theme, or...) and not overridden in the child theme will be used as if defined in the child theme. So you can have something like: Parent: bgcolor: white even_row_color: grey odd_row_color: light-orange Child: odd_row_color: beige And the 'bgcolor' property of the child theme will be 'white', the 'even_row_color' property 'grey'. =head1 OBJECTS B<theme> Defines a single theme in the system. It has very little information by itself, relying mainly on the 'parent_id' and the method 'discover_properties()' which finds all properties from the current theme and its parents. B<themeprop> A child element of the B<theme>. Each one is a simple key/value pair. Note that one element can be used by multiple themes since it can be inherited. =head1 ACTIONS B<theme> Create, edit or remove a theme and edit the theme properties. =head1 RULESETS No rulesets created by this package. =head1 TO DO B<Use CSS> Either create a theme to use CSS instead or change all themes to use it. Common browsers have generally excellent support for CSS, so there's little reason not to use it. =head1 SEE ALSO L<OpenInteract2::Theme|OpenInteract2::Theme> =head1 AUTHORS Chris Winters E<lt>ch...@cw...E<gt> =cut |
From: Chris W. <la...@us...> - 2005-03-01 03:28:50
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/base_user/OpenInteract2/App In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27837/base_user/OpenInteract2/App Added Files: BaseUser.pm Log Message: OIN-72: move all docs to ::App class --- NEW FILE: BaseUser.pm --- package OpenInteract2::App::BaseUser; use strict; use base qw( Exporter OpenInteract2::App ); use OpenInteract2::Manage; $OpenInteract2::App::BaseUser::VERSION = sprintf("%d.%02d", q$Revision: 1.1 $ =~ /(\d+)\.(\d+)/); @OpenInteract2::App::BaseUser::EXPORT = qw( install ); sub get_brick_name { return 'base_user'; } # Not a method, just an exported sub sub install { my ( $website_dir ) = @_; my $manage = OpenInteract2::Manage->new( 'install_package' ); $manage->param( website_dir => $website_dir ); $manage->param( package_class => __PACKAGE__ ); return $manage->execute; } __END__ =pod =head1 NAME OpenInteract2::App::BaseUser - Package for representing and manipulating user records in OpenInteract =head1 DESCRIPTION Represent a user in OpenInteract. The user object is used throughout the system. =head1 OBJECTS B<user> Represent a user in OpenInteract. =head1 ACTIONS B<user> Find, create, edit or remove a user object. Normally when a person creates a new user object for herself (see B<newuser> action) she's given write permission to it. Otherwise only the members of B<site admin> should be able to modify users. Note that the B<superuser> can not even be seen by any other users. (He's like a ninja...) For that reason you should never create any objects -- except other user objects -- as the B<superuser>. B<newuser> Allow a user to create her own object. The system will generate a password for the user and email it to the given address. This should ensure that users don't create accounts with bogus emails. As of 1.62 you can control whether a user is automatically logged in after creating an account. Set the action key 'autologin' to 'yes' under the action 'newuser'. You can also set the information in C<conf/override_action.ini> like this: [newuser.autologin] action = replace value = yes =head1 RULESETS No rulesets created by this package. =head1 SEE ALSO L<OpenInteract2::User|OpenInteract2::User> L<OpenInteract2::Manual::Security|OpenInteract2::Manual::Security> =head1 AUTHORS Chris Winters E<lt>ch...@cw...E<gt> =cut |
From: Chris W. <la...@us...> - 2005-03-01 03:28:49
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/base_security/doc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27837/base_security/doc Removed Files: base_security.pod Log Message: OIN-72: move all docs to ::App class --- base_security.pod DELETED --- |
From: Chris W. <la...@us...> - 2005-03-01 03:28:48
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/base_security/OpenInteract2/App In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27837/base_security/OpenInteract2/App Added Files: BaseSecurity.pm Log Message: OIN-72: move all docs to ::App class --- NEW FILE: BaseSecurity.pm --- package OpenInteract2::App::BaseSecurity; use strict; use base qw( Exporter OpenInteract2::App ); use OpenInteract2::Manage; $OpenInteract2::App::BaseSecurity::VERSION = sprintf("%d.%02d", q$Revision: 1.1 $ =~ /(\d+)\.(\d+)/); @OpenInteract2::App::BaseSecurity::EXPORT = qw( install ); sub get_brick_name { return 'base_security'; } # Not a method, just an exported sub sub install { my ( $website_dir ) = @_; my $manage = OpenInteract2::Manage->new( 'install_package' ); $manage->param( website_dir => $website_dir ); $manage->param( package_class => __PACKAGE__ ); return $manage->execute; } __END__ =pod =head1 NAME OpenInteract2::App::BaseSecurity - Represent security object and manipulate security for tasks and objects in OpenInteract =head1 DESCRIPTION See L<OpenInteract2::Manual::Security|OpenInteract2::Manual::Security> and L<SPOPS::Manual::Security|SPOPS::Manual::Security> for the ins and outs of security. =head1 OBJECTS B<security> Represent a security object to store security information about a particular object or action. L<OpenInteract2::CreateSecurity|OpenInteract2::CreateSecurity> Non-SPOPS object that you can use to create object security en masse. Normally you'll use the C<oi2_manage> interface to the L<OpenInteract2::Manage::Website::CreateSecurity|OpenInteract2::Manage::Website::CreateSecurity> module. =head1 ACTIONS B<security> Handles creating, removing and modifying security for SPOPS objects and OpenInteract actions. =head1 RULESETS No rulesets created by this package. =head1 SEE ALSO L<OpenInteract2::Manual::Security|OpenInteract2::Manual::Security> L<SPOPS::Manual::Security|SPOPS::Manual::Security> L<SPOPS::Secure|SPOPS::Secure> =head1 AUTHORS Chris Winters E<lt>ch...@cw...E<gt> =cut |
From: Chris W. <la...@us...> - 2005-03-01 03:28:46
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/base_page/OpenInteract2/App In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27837/base_page/OpenInteract2/App Added Files: BasePage.pm Log Message: OIN-72: move all docs to ::App class --- NEW FILE: BasePage.pm --- package OpenInteract2::App::BasePage; use strict; use base qw( Exporter OpenInteract2::App ); use OpenInteract2::Manage; $OpenInteract2::App::BasePage::VERSION = sprintf("%d.%02d", q$Revision: 1.1 $ =~ /(\d+)\.(\d+)/); @OpenInteract2::App::BasePage::EXPORT = qw( install ); sub get_brick_name { return 'base_page'; } # Not a method, just an exported sub sub install { my ( $website_dir ) = @_; my $manage = OpenInteract2::Manage->new( 'install_package' ); $manage->param( website_dir => $website_dir ); $manage->param( package_class => __PACKAGE__ ); return $manage->execute; } __END__ =pod =head1 NAME OpenInteract2::App::BasePage - Package for displaying and editing 'static' web pages in OpenInteract2 =head1 SYNOPSIS # Too many actions to list, since by default this module picks up all # requests not found in the action table =head1 ACTIONS B<page> Action for searching, creating, displaying, editing and removing 'page' objects. B<pagescan> Scan a directory structure for new 'page' objects and create records for them. B<pagedirectory> Associate (or disassociate) a directory with a directory action. B<contenttype> (lookup) Edit the available content type records. B<edit_document_box> Template action with links for editing the current document/page. (Has aliases B<edit_page_box> and B<editdocumentbox>.) B<file_index> (directory action) Directory action which find a directory 'home' page (normally something like 'index.html', 'home.html', etc.) and displays it on a directory request. The list of 'home' pages is editable in the action definition, or in the global override file. (Has alias B<fileindex>.) B<simple_index> (directory action) Displays a list of files in the directory requested. The default is to display the name, title, size and type of the file, but you can easily modify the template to change the appearance. (Has alias B<simpleindex>.) =head1 OBJECTS B<page> The C<page> object contains metadata about a page to display, including information about where the content is stored. It's recommended to store the content in the filesystem whenever possible -- some databases have problems storing large BLOBs and filesystems are much easier to manage. B<page_content> This object is used when the C<page> object decides it wants to store its content in the database. B<page_directory> The C<page_directory> object maps a directory to an action, so you can create directory index handlers. This is very similar to the normal OI URL-Action mapping, but you do not have to devote an entire URL-space to a single action. (See L<DIRECTORY HANDLERS|DIRECTORY HANDLERS> below.) B<content_type> Simple MIME content type records. =head1 DESCRIPTION The main purpuse of this module is to displays pages. Each 'page' consists of two pieces: a record of metadata always stored in the database, and the content of the page which can be stored in one of several media. The content can be displayable in a web browser, but it doesn't have to be. Additionally, the 'page' can itself have no content at all and exist merely as a pointer to content stored elsewhere. If the page can be displayed in a browser then you can embed the various template directives used elsewhere in OpenInteract. This package -- more specifically, the 'Page' handler in this package -- generally deals with all requests for which a handler is not found. This means a request like: http://www.mysite.com/reports/q1/sales will get passed to the 'Page' handler and that page object ('/reports/q1/sales') fetched. (More on this below.) Again, the content for that object can exist in the database or the filesystem, but to your users it looks like a static HTML page. =head2 Non-HTML pages This module can also deal with other types of files, although its main purpose is to impose security on them. After security is checked it generally hands the filename to OpenInteract so the file contents can be sent to the user further along in the process. But you can manage these files through the web interface and even intermingle (for instance) your PDFs and tarballs along with your HTML files, keeping the same security settings for all of them. =head2 Handling all unspecified requests How does this module handle all unspecified requests? In the OpenInteract server configuration file, toward the bottom, there's a section that looks something like this: [action_info] none = page not_found = page This means if no action is found (an 'empty request') it will be serviced by the 'page' action, which is defined in this module's 'conf/action.perl' file. The empty request is typically 'http://www.mysite.com/', or your home page. (Want to see all the actions defined for your site? Try: oi2_manage list_actions --website_dir=/path/to/my/site from the command-line.) Similarly, the 'not_found' action definition will automatically get picked up by the same 'page' action. This means any request OpenInteract can't match up to an action will get sent to the 'page' action unless rquested not to do so. See L<OpenInteract2::ActionResolver::NotFoundOrEmpty> for more. =head1 RECORDS USED Static pages used to be only displayed from the database using the 'basic_page' SPOPS object. No longer. You can now display HTML pages from the filesystem as well as objects from the database, and refer to them in the exact same way. And people using the browser interface to edit browser-displayable content should be able to edit the content no matter where it is stored. Also, you can mix-and-match whether a particular page is stored in the filesystem or database. Each object knows where its content is stored, and that setting is independent of all other objects. Here's an example: my $page = CTX->lookup_object( 'page' )->fetch( '/reports/q1/sales' ); The variable C<$page> now contains metadata about the page to be displayed -- title, author, keywords, MIME type, size (optional), and other information. The content has not yet been put into the object. To get the content, you just need to call: $page->fetch_content; And it will be retrieved into the object under the key 'content' =head1 ALIASES You can define a page to be an alias for another page. An alias won't have any content of its own, it just acts as a pointer to the other page. This can be useful if you find that people are mistyping a particular page name, or if you've accidentally botched a page spelling in an advertisement, or for whatever reason. Note that an alias isn't a B<real> pointer to the other page. The C<show()> method in the handler just has some extra logic to deal with it. =head1 SECURITY Pages are different from other objects in how their security is treated. Typically, you want to set security for a directory and have that security setting be inherited by all files in that directory, all directories in that directory, files within each of those directories, and so on. This is how Apache does file-based security. OpenInteract implements security the same way, but using a slightly more generic mechanism. Using the L<SPOPS::Secure::Hierarchy|SPOPS::Secure::Hierarchy> module, we simply split up each URL using the directory separator ('/') and apply security at each level under that. Here's an example from the L<SPOPS::Secure::Hierarchy|SPOPS::Secure::Hierarchy> documentation: To accomplish this, every record needs to have an identifier that can be manipulated into a parent identifier. With filesystems (or URLs) this is simple. Given the pseudo-file: /docs/release/devel-only/v1.3/mydoc.html You have the following parents: /docs/release/devel-only/v1.3 /docs/release/devel-only /docs/release/ /docs/ <ROOT OBJECT> (explained below) So setting security for '/docs/release' when it's protected by hierarchical security will also protect '/docs/release/devel-only' and on down the line, as long as the child doesn't have security defined of its own. One additional note: since security is typically set by directory, B<any> file in that directory is protected by the security, HTML and non-HTML alike. This allows you to put graphics, PDF documents, Excel spreadsheets or what have you into a filesystem directory, protect the directory and let OpenInteract deal with the rest. Cool. =head1 MIGRATION A migration script is provided for you to move your pages from the 'static_page' package to the 'base_page' package. It is 'script/static_page2base_page.pl' and should find all of your existing records and port them over to the new structure. You will also need to modify security information to reference the new class. This is a simple matter of an SQL statement: UPDATE sys_security SET class = 'Mysite::Page' WHERE class = 'Mysite::BasicPage' You'll need to replace 'Mysite::' in both class names with the one appropriate to your site. (If you're not sure what your class name is, just run 'SELECT DISTINCT class FROM sys_security'.) Another script, 'script/scan_for_new.pl', may also be useful in migration. You can run it periodically to scan for documents that do not not currently have a metdata record in the database. It will add the metadata record for you. This can be useful to run if you have a directory with files that get updated nightly, or even if you're too lazy to update it yourself. =head1 DIRECTORY HANDLERS As of version 0.48, base_page supports directory handlers. Directory handlers allow you to deal with directory requests separately from both the normal action table and page objects. A directory handler is just like any other handler, except that it gets two extra parameters in the second argument hashref. This handler can do anything you like -- scan the directory for files updated in the last 10 days and display them, whatever you wish. We create a sample handler below, but generally here are the three pieces to a directory handler: =over 4 =item 1. Perl code implementing a handler. This code is just like any other OpenInteract content handler except two extra parameters are passed in the second argument hashref. These arguments are B<directory> -- a string representing the requested directory -- and B<page_directory>, the C<page_directory> object mapped to the handler. This object has three properties: C<directory>, C<action> and C<subdirs_inherit>. Note that the B<directory> parameter and the C<directory> property of the B<page_directory> parameter are not necessarily the same, since subdirectories can inherit a directory handler from parent directories. =item 2. An action describing the handler with a flag to tell OpenInteract that it is a directory handler. This flag is 'is_directory' and should be set to 'yes' for all directory handlers. =item 3. A mapping of a directory to action. Multiple directories can be mapped to the same action, as long as the code behind your action supports it. =back This package comes with a simple handler (action 'simpleindex', in the handler 'OpenInteract::Handler::PageDirectoryIndex') that you can use. =head2 Creating a Sample Directory Handler Here's a simple handler: OpenInteract2/Action/SampleDirHandler.pm ------------------------------ package OpenInteract2::Action::SampleDirHandler; sub my_index { my ( $self ) = @_; my %params = ( page_directory => $self->param( 'page_directory' ), directory => $self->param( 'directory' ) ); return $self->generate_content( \%params, { name => 'mypkg::my_index' } ); } ------------------------------ As you see, we retrieve the parameter key 'page_directory' and pass it along to the template. Here's a template that uses it: template/my_index.tmpl ------------------------------ <h1>Sample handler</h1> <p>A directory index request was made for [% directory %] and the handler was registered for the directory [% page_directory.directory %] and mapped to the action [% dir.action %].</p> ------------------------------ Next, we need to create an action for our handler: conf/action.ini ------------------------------ [sampledir] class = OpenInteract2::Action::SampleDirHandler method = my_index is_directory = yes ------------------------------ Bundle these up into a package, deploy it and restart the server. Now, to setup the mapping, request: http://mysite.com/PageDirectory/ And click C<Map a New Directory Handler>. This takes you to a simple form where we map a directory to our handler. Note that the action we defined in our C<conf/action.ini> file is in the dropdown list next to 'Action' -- OI2 knows how to retrieve all the directory index actions and present them to you at once. Enter: Directory: /mysampledir Action: sampledir Subdirs inherit? (checked) And submit the form. Now request: http://mysite.com/mysampledir You should see (rendered in your browser): ------------------------------ <h1>Sample handler</h1> <p>A directory index request was made for /mysampledir and the handler was registered for the directory /mysampledir/ and mapped to the action sampledir.</p> ------------------------------ Then make a request for: http://mysite.com/mysampledir/subdir/ And you should see (rendered in your browser): ------------------------------ <h1>Sample handler</h1> <p>A directory index request was made for /mysampledir/subdir/ and the handler was registered for the directory /mysampledir/ and mapped to the action sampledir.</p> ------------------------------ Sweet! =head1 TO DO B<Rewrite content> Allow subclasses for the storage facility so that developers can create a custom storage facility to do things like content rewriting, etc. =head1 SEE ALSO C<OpenInteract2::App::BaseSecurity> L<SPOPS::Secure::Hierarchy|SPOPS::Secure::Hierarchy> =head1 AUTHORS Chris Winters E<lt>ch...@cw...E<gt> =cut |
From: Chris W. <la...@us...> - 2005-03-01 03:28:46
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/base_page/doc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27837/base_page/doc Removed Files: base_page.pod Log Message: OIN-72: move all docs to ::App class --- base_page.pod DELETED --- |
From: Chris W. <la...@us...> - 2005-03-01 03:28:46
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/base_group/doc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27837/base_group/doc Removed Files: base_group.pod Log Message: OIN-72: move all docs to ::App class --- base_group.pod DELETED --- |
From: Chris W. <la...@us...> - 2005-03-01 03:28:45
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/base_error/doc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27837/base_error/doc Removed Files: base_error.pod Log Message: OIN-72: move all docs to ::App class --- base_error.pod DELETED --- |
From: Chris W. <la...@us...> - 2005-03-01 03:28:44
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/base_group/OpenInteract2/App In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27837/base_group/OpenInteract2/App Added Files: BaseGroup.pm Log Message: OIN-72: move all docs to ::App class --- NEW FILE: BaseGroup.pm --- package OpenInteract2::App::BaseGroup; use strict; use base qw( Exporter OpenInteract2::App ); use OpenInteract2::Manage; $OpenInteract2::App::BaseGroup::VERSION = sprintf("%d.%02d", q$Revision: 1.1 $ =~ /(\d+)\.(\d+)/); @OpenInteract2::App::BaseGroup::EXPORT = qw( install ); sub get_brick_name { return 'base_group'; } # Not a method, just an exported sub sub install { my ( $website_dir ) = @_; my $manage = OpenInteract2::Manage->new( 'install_package' ); $manage->param( website_dir => $website_dir ); $manage->param( package_class => __PACKAGE__ ); return $manage->execute; } __END__ =pod =head1 NAME OpenInteract2::App::BaseGroup - A package to represent and process simple group records within OpenInteract =head1 SYNOPSIS my $groups = CTX->request->auth_group; foreach my $group ( @{ $groups } ) { my $users = $group->user; print "Group: ", $group->name, "\n"; "Has: ", join( ", ", map { $_->{login_name} } @{ $users } ); } =head1 DESCRIPTION This package contains the 'group' object used for authentication. Every user in the system can belong to multiple groups, and the main use of groups is for security. You can assign security permissions for individual objects, types of objects and actions. =head1 OBJECTS B<group> The object representing a group in OpenInteract2. It's very simple, with just an ID, name and notes. But it can fetch its members with a call to 'user', using a linking table to form the many-to-many relationship. =head1 ACTIONS B<group> Action for listing, creating, editing and removing groups. =head1 RULESETS No rulesets created by this package. =head1 SEE ALSO L<OpenInteract2::App::BaseUser> package L<SPOPS::Secure|SPOPS::Secure> L<SPOPS::Manual::Security|SPOPS::Manual::Security> =head1 AUTHORS Chris Winters E<lt>ch...@cw...E<gt> =cut |
From: Chris W. <la...@us...> - 2005-03-01 03:28:44
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/base_error/OpenInteract2/App In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27837/base_error/OpenInteract2/App Added Files: BaseError.pm Log Message: OIN-72: move all docs to ::App class --- NEW FILE: BaseError.pm --- package OpenInteract2::App::BaseError; use strict; use base qw( Exporter OpenInteract2::App ); use OpenInteract2::Manage; $OpenInteract2::App::BaseError::VERSION = sprintf("%d.%02d", q$Revision: 1.1 $ =~ /(\d+)\.(\d+)/); @OpenInteract2::App::BaseError::EXPORT = qw( install ); sub get_brick_name { return 'base_error'; } # Not a method, just an exported sub sub install { my ( $website_dir ) = @_; my $manage = OpenInteract2::Manage->new( 'install_package' ); $manage->param( website_dir => $website_dir ); $manage->param( package_class => __PACKAGE__ ); return $manage->execute; } __END__ =pod =head1 NAME OpenInteract2::App::BaseError - Browse and remove past errors =head1 DESCRIPTION Simple package that serializes error objects/data (generally those getting to L<OpenInteract2::Log::OIAppender>) to the filesystem. The files are organized in a simple date layout -- see L<OpenInteract2::ErrorStorage> for more information. =head1 OBJECTS None. =head1 ACTIONS B<error_browser> Main action with the means to display a listing of recent errors, browse errors by date, and to drill down into a specific error for details. =head1 RULESETS No rulesets created by this package. =head1 AUTHORS Chris Winters E<lt>ch...@cw...E<gt> =cut |
From: Chris W. <la...@us...> - 2005-03-01 03:28:44
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/base_box/doc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27837/base_box/doc Removed Files: base_box.pod Log Message: OIN-72: move all docs to ::App class --- base_box.pod DELETED --- |
From: Chris W. <la...@us...> - 2005-03-01 03:28:43
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/base/OpenInteract2/App In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27837/base/OpenInteract2/App Added Files: Base.pm Log Message: OIN-72: move all docs to ::App class --- NEW FILE: Base.pm --- package OpenInteract2::App::Base; use strict; use base qw( Exporter OpenInteract2::App ); use OpenInteract2::Manage; $OpenInteract2::App::Base::VERSION = sprintf("%d.%02d", q$Revision: 1.1 $ =~ /(\d+)\.(\d+)/); @OpenInteract2::App::Base::EXPORT = qw( install ); sub get_brick_name { return 'base'; } # Not a method, just an exported sub sub install { my ( $website_dir ) = @_; my $manage = OpenInteract2::Manage->new( 'install_package' ); $manage->param( website_dir => $website_dir ); $manage->param( package_class => __PACKAGE__ ); return $manage->execute; } __END__ =pod =head1 NAME OpenInteract2::App::Base - The parts of OpenInteract that don't fit anywhere else =head1 DESCRIPTION This package has a few pieces of OI that don't really fit anywhere else, including SQL files for sessions and site-wide HTML images (bullet, OI logo, 'powered-by' buttons). =head1 OBJECTS No objects created by this package =head1 ACTIONS B<logout> Logs out the current user. Currently this displays a 'You have logged out page', but this might change. Class: L<OpenInteract2::Action::Logout|OpenInteract2::Action::Logout> B<package> Lists packages installed to your website and allows you to drill down into a package to display its details. Class: L<OpenInteract2::Action::Package|OpenInteract2::Action::Package> =head1 RULESETS No rulesets created by this package. =head1 AUTHORS Chris Winters E<lt>ch...@cw...E<gt> =cut |
From: Chris W. <la...@us...> - 2005-03-01 03:28:43
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/base_box/OpenInteract2/App In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27837/base_box/OpenInteract2/App Added Files: BaseBox.pm Log Message: OIN-72: move all docs to ::App class --- NEW FILE: BaseBox.pm --- package OpenInteract2::App::BaseBox; use strict; use base qw( Exporter OpenInteract2::App ); use OpenInteract2::Manage; $OpenInteract2::App::BaseBox::VERSION = sprintf("%d.%02d", q$Revision: 1.1 $ =~ /(\d+)\.(\d+)/); @OpenInteract2::App::BaseBox::EXPORT = qw( install ); sub get_brick_name { return 'base_box'; } # Not a method, just an exported sub sub install { my ( $website_dir ) = @_; my $manage = OpenInteract2::Manage->new( 'install_package' ); $manage->param( website_dir => $website_dir ); $manage->param( package_class => __PACKAGE__ ); return $manage->execute; } __END__ =pod =head1 NAME OpenInteract2::App::BaseBox - Manage input and output of independent boxes. =head1 SYNOPSIS # Deposit all boxes in the current location on the page: [% OI.action_execute( 'boxes' ) %] # Define global box information in your server.ini [box] handler = MyWebsite::Handler::Box default_template = base_box::main_box_shell default_separator = <br> default_method = run_box system_box_handler = MyWebsite::Handler::SystemBoxes system_box_method = custom_box_handler = custom_box_method = # Define an OI action (in conf/action.ini) to be used for a box with # a class and method: [current_weather_box] class = OpenInteract2::Action::Weather method = box weight = 5 title = Current Weather # Add a box ('name' maps to the above OI action): my $zip = $self->request->auth_user->{zipcode}; my $box = { name => 'current_weather_box', weight => 2, title => "Weather in Zip Code $zip", params => { zip_code => $zip }; $self->controller->add_box( $box ); # Add the same box from a template: [% user_zip = OI.login.zip_code; OI.box_add( 'current_weather_box', weight = 2, title = "Weather in Zip Code $user_zip", zip_code = $user_zip ) -%] # Define an OI action (in conf/action.ini) to be used for a # template-only box: [frequent_links_box] name = frequent_links_box template = mypkg::box_frequent_links weight = 8 title = Frequent Links security = no # Add a template-only box, overriding weight and title: my $box = { name => 'frequent_links_box', weight => 2, title => "Most visited sites" }; push $self->controller->add_box( $box ); # Add the same box from a template, overriding title: [% OI.box_add( 'frequent_links_box', title = 'Most visited sites' ) %] # Remove a box added in another part of the system $self->controller->remove_box( 'motd' ); # Remove the same box from a template [% OI.box_remove( 'motd' ) %] =head1 DESCRIPTION See docs in L<OpenInteract2::Action::Box|OpenInteract2::Action::Box> for everything you can do with boxes and how to configure them.. =head1 OBJECTS No objects created by this package. =head1 ACTIONS The following actions are created by this package: B<boxes> Content component that returns all boxes with content generated and in their shells. B<object_modify_box> Box for editing/removing an object. (Has aliases 'object_mod_box' and 'objectmodbox'.) B<login_box> Box with username/password for users to login. B<user_info_box> Box with username and link to page to edit information. B<admin_tools_box> Links to various administrator tools for maintaining the website. B<powered_by_box> Box with static content displaying the tools used in the website (mod_perl, Template Toolkit, OpenInteract). =head1 RULESETS No rulesets created by this package. =head1 AUTHORS Chris Winters E<lt>ch...@cw...E<gt> =cut |
From: Chris W. <la...@us...> - 2005-03-01 03:28:42
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/base/doc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27837/base/doc Removed Files: base.pod Log Message: OIN-72: move all docs to ::App class --- base.pod DELETED --- |
From: Chris W. <la...@us...> - 2005-03-01 03:27:44
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/system_doc/template In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27523/system_doc/template Modified Files: doc_display.tmpl system_doc_menu.tmpl Removed Files: package_doc_listing.tmpl Log Message: OIN-72: move docs to ::App class and remove package doc display functionality Index: doc_display.tmpl =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/pkg/system_doc/template/doc_display.tmpl,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** doc_display.tmpl 16 Feb 2004 18:04:15 -0000 1.3 --- doc_display.tmpl 1 Mar 2005 03:27:17 -0000 1.4 *************** *** 1,5 **** [%- index_url = OI.make_url( ACTION = 'systemdoc', TASK = 'list' ); ! module_url = OI.make_url( ACTION = 'systemdoc', TASK = 'module_list' ); ! pkg_url = OI.make_url( ACTION = 'systemdoc', TASK = 'package_list' ) -%] [%- PROCESS error_message %] --- 1,4 ---- [%- index_url = OI.make_url( ACTION = 'systemdoc', TASK = 'list' ); ! module_url = OI.make_url( ACTION = 'systemdoc', TASK = 'module_list' ) -%] [%- PROCESS error_message %] *************** *** 7,12 **** <p align="center" bgcolor="#eeeeee"> <a href="[% index_url %]">[% MSG( 'sys_doc.info.system_doc' ) %]</a> | ! <a href="[% module_url %]">[% MSG( 'sys_doc.info.module_listing' ) %]</a> | ! <a href="[% pkg_url %]">[% MSG( 'sys_doc.info.package_listing' ) %]</a> </p> --- 6,10 ---- <p align="center" bgcolor="#eeeeee"> <a href="[% index_url %]">[% MSG( 'sys_doc.info.system_doc' ) %]</a> | ! <a href="[% module_url %]">[% MSG( 'sys_doc.info.module_listing' ) %]</a> </p> Index: system_doc_menu.tmpl =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/pkg/system_doc/template/system_doc_menu.tmpl,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** system_doc_menu.tmpl 9 Nov 2004 13:30:36 -0000 1.4 --- system_doc_menu.tmpl 1 Mar 2005 03:27:17 -0000 1.5 *************** *** 9,14 **** TASK = 'display', module = 'Template::Manual' ); - pkg_url = OI.make_url( ACTION = 'systemdoc', - TASK = 'package_list' ); module_url = OI.make_url( ACTION = 'systemdoc', TASK = 'module_list', --- 9,12 ---- *************** *** 19,23 **** <p>[% MSG( 'sys_doc.menu.starting', oi_man_url, spops_man_url, tt_man_url ) %]</p> - <p>[% MSG( 'sys_doc.menu.package', pkg_url ) %]</p> - <p>[% MSG( 'sys_doc.menu.module', module_url ) %]</p> --- 17,19 ---- --- package_doc_listing.tmpl DELETED --- |
From: Chris W. <la...@us...> - 2005-03-01 03:27:38
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/system_doc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27523/system_doc Modified Files: Changes MANIFEST package.ini Log Message: OIN-72: move docs to ::App class and remove package doc display functionality Index: Changes =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/pkg/system_doc/Changes,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** Changes 28 Feb 2005 00:55:39 -0000 1.10 --- Changes 1 Mar 2005 03:27:16 -0000 1.11 *************** *** 1,4 **** --- 1,10 ---- Revision history for OpenInteract package system_doc. + 2.10 Mon Feb 28 20:33:57 EST 2005 + + OIN-72: move docs from doc/ into OI2::App class; as a result + also remove the code related to displaying package + documentation. + 2.09 Sun Feb 27 16:07:21 EST 2005 Index: MANIFEST =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/pkg/system_doc/MANIFEST,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** MANIFEST 28 Feb 2005 00:55:39 -0000 1.5 --- MANIFEST 1 Mar 2005 03:27:16 -0000 1.6 *************** *** 5,15 **** conf/action.ini data/install_security.dat - doc/system_doc.pod msg/system_doc-messages-en.msg OpenInteract2/PodView.pm OpenInteract2/Action/SystemDoc.pm OpenInteract2/SQLInstall/SystemDoc.pm template/doc_display.tmpl template/module_listing.tmpl - template/package_doc_listing.tmpl template/system_doc_menu.tmpl --- 5,14 ---- conf/action.ini data/install_security.dat msg/system_doc-messages-en.msg OpenInteract2/PodView.pm OpenInteract2/Action/SystemDoc.pm + OpenInteract2/App/SystemDoc.pm OpenInteract2/SQLInstall/SystemDoc.pm template/doc_display.tmpl template/module_listing.tmpl template/system_doc_menu.tmpl Index: package.ini =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/pkg/system_doc/package.ini,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** package.ini 28 Feb 2005 00:55:39 -0000 1.1 --- package.ini 1 Mar 2005 03:27:16 -0000 1.2 *************** *** 1,5 **** [package] name = system_doc ! version = 2.09 author = Chris Winters (ch...@cw...) url = http://www.openinteract.org/ --- 1,5 ---- [package] name = system_doc ! version = 2.10 author = Chris Winters (ch...@cw...) url = http://www.openinteract.org/ |
From: Chris W. <la...@us...> - 2005-03-01 03:27:37
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/system_doc/OpenInteract2/App In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27523/system_doc/OpenInteract2/App Added Files: SystemDoc.pm Log Message: OIN-72: move docs to ::App class and remove package doc display functionality --- NEW FILE: SystemDoc.pm --- package OpenInteract2::App::SystemDoc; use strict; use base qw( Exporter OpenInteract2::App ); use OpenInteract2::Manage; $OpenInteract2::App::SystemDoc::VERSION = sprintf("%d.%02d", q$Revision: 1.1 $ =~ /(\d+)\.(\d+)/); @OpenInteract2::App::SystemDoc::EXPORT = qw( install ); sub get_brick_name { return 'system_doc'; } # Not a method, just an exported sub sub install { my ( $website_dir ) = @_; my $manage = OpenInteract2::Manage->new( 'install_package' ); $manage->param( website_dir => $website_dir ); $manage->param( package_class => __PACKAGE__ ); return $manage->execute; } __END__ =pod =head1 NAME OpenInteract2::App::SystemDoc - Package for browsing OpenInteract, SPOPS and Perl module documentation =head1 SYNOPSIS http://www.mysite.com/SystemDoc/ =head1 DESCRIPTION This module displays System Documentation, including: =over 4 =item * the HTML pages forming the distribution documentation =item * documentation from the individual packages' C<doc/> directories. =item * the OpenInteract and SPOPS manpages =back Just go to C<SystemDoc> on your website -- that will explain much better. =head1 AUTHORS Chris Winters E<lt>ch...@cw...E<gt> =cut |
From: Chris W. <la...@us...> - 2005-03-01 03:27:36
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/system_doc/OpenInteract2/Action In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27523/system_doc/OpenInteract2/Action Modified Files: SystemDoc.pm Log Message: OIN-72: move docs to ::App class and remove package doc display functionality Index: SystemDoc.pm =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/pkg/system_doc/OpenInteract2/Action/SystemDoc.pm,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** SystemDoc.pm 5 Dec 2004 08:51:24 -0000 1.13 --- SystemDoc.pm 1 Mar 2005 03:27:16 -0000 1.14 *************** *** 24,76 **** - sub package_list { - my ( $self ) = @_; - $log ||= get_logger( LOG_APP ); - - # Grab the repository for this website and fetch a list of all the - # packages, then ask each package for its doc files which we'll - # treat as POD and (inelegantly) find the TITLE - - my $parser = Pod::POM->new; - my $pkg_list = CTX->repository->fetch_all_packages(); - my %pkg_docs = (); - foreach my $pkg ( @{ $pkg_list } ) { - my $pkg_id = $pkg->full_name; - my $pkg_dir = $pkg->directory; - my $doc_files = $pkg->get_doc_files; - $log->is_info && - $log->info( "Found ", scalar @{ $doc_files }, " doc files ", - "in $pkg_id" ); - my @doc_titles = (); - foreach my $doc_file ( @{ $doc_files } ) { - $doc_file =~ s/^$pkg_dir//; - $log->is_debug && - $log->debug( "Found doc [$doc_file] in [$pkg_id]" ); - my $content = $pkg->read_file( $doc_file ); - unless ( $content ) { - $log->warn( "Package failed to read content ", - "for [$doc_file]" ); - next; - } - my $pom = $parser->parse_text( $content ); - - # assumes the first head1 is a title... reasonable, but - # still an assumption - - my ( $title ); - foreach my $head1 ( $pom->head1 ) { - $title ||= $head1->content; - } - $log->is_debug && - $log->debug( "Doc [$doc_file] -> [$title]" ); - push @doc_titles, [ $doc_file, $title ]; - } - $pkg_docs{ $pkg_id } = \@doc_titles; - } - return $self->generate_content( - { package_docs => \%pkg_docs }, - { name => 'system_doc::package_doc_listing' } ); - } - # TODO: Get SPOPS|OI2::Manual stuff in here --- 24,27 ---- |
From: Chris W. <la...@us...> - 2005-03-01 03:27:36
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/system_doc/doc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27523/system_doc/doc Removed Files: system_doc.pod Log Message: OIN-72: move docs to ::App class and remove package doc display functionality --- system_doc.pod DELETED --- |
From: Chris W. <la...@us...> - 2005-03-01 01:42:54
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/system_doc/OpenInteract2/App In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29781/system_doc/OpenInteract2/App Log Message: Directory /cvsroot/openinteract/OpenInteract2/pkg/system_doc/OpenInteract2/App added to the repository |
From: Chris W. <la...@us...> - 2005-03-01 01:42:53
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/object_activity/OpenInteract2/App In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29781/object_activity/OpenInteract2/App Log Message: Directory /cvsroot/openinteract/OpenInteract2/pkg/object_activity/OpenInteract2/App added to the repository |
From: Chris W. <la...@us...> - 2005-03-01 01:42:53
|
Update of /cvsroot/openinteract/OpenInteract2/pkg/whats_new/OpenInteract2/App In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29781/whats_new/OpenInteract2/App Log Message: Directory /cvsroot/openinteract/OpenInteract2/pkg/whats_new/OpenInteract2/App added to the repository |