Index: openacs-4/packages/acs-core-docs/www/subsites-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/subsites-requirements.html,v diff -u -r1.27 -r1.27.4.1 --- openacs-4/packages/acs-core-docs/www/subsites-requirements.html 17 Jul 2006 05:38:32 -0000 1.27 +++ openacs-4/packages/acs-core-docs/www/subsites-requirements.html 3 Feb 2008 12:07:41 -0000 1.27.4.1 @@ -1,30 +1,31 @@ -Subsites Requirements

Subsites Requirements

By Rafael H. Schloming and Dennis Gregorovic

+ +Subsites Requirements

Subsites Requirements

By Rafael H. Schloming and Dennis Gregorovic

OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. -

Introduction

The following is a requirements document for OpenACS 4 Subsites, part of the +

Introduction

The following is a requirements document for OpenACS 4 Subsites, part of the OpenACS 4 Kernel. The Subsites system allows one OpenACS server instance to serve multiple user communities, by enabling the suite of available OpenACS -applications to be customized for defined user communities.

Vision Statement

Many online communities are also collections of discrete subcommunities, +applications to be customized for defined user communities.

Vision Statement

Many online communities are also collections of discrete subcommunities, reflecting real-world relationships. For example, a corporate intranet/extranet website serves both units within the company (e.g., offices, departments, teams, projects) and external parties (e.g., customers, partners, vendors). Subsites enable a single OpenACS instance to provide each -subcommunity with its own "virtual website," by assembling OpenACS +subcommunity with its own "virtual website," by assembling OpenACS packages that together deliver a feature set tailored to the needs of the -subcommunity.

System Overview

The OpenACS subsite system allows a single OpenACS installation to serve multiple +subcommunity.

System Overview

The OpenACS subsite system allows a single OpenACS installation to serve multiple communities. At an implementation level this is primarily accomplished by -having an application "scope" its content to a particular package +having an application "scope" its content to a particular package instance. The request processor then figures out which package_id a particular URL references -and then provides this information through the ad_conn api ([ad_conn -package_id], [ad_conn package_url]).

The other piece of the subsite system is a subsite package that provides -subsite admins a "control panel" for administering their subsite. +and then provides this information through the ad_conn api ([ad_conn +package_id], [ad_conn package_url]).

The other piece of the subsite system is a subsite package that provides +subsite admins a "control panel" for administering their subsite. This is the same package used to provide all the community core functionality -available at the "main" site which is in fact simply another -subsite.

Use-cases and User-scenarios

The Subsites functionality is intended for use by two different classes of +available at the "main" site which is in fact simply another +subsite.

Use-cases and User-scenarios

The Subsites functionality is intended for use by two different classes of users:

  1. Package programmers (referred to as 'the programmer') must develop subcommunity-aware applications.

  2. Site administrators (referred to as 'the administrator') use -subsites to provide tailored "virtual websites" to different +subsites to provide tailored "virtual websites" to different subcommunities.

Joe Programmer is working on the forum package and wants to make it subsite-aware. Using [ad_conn package_id], Joe adds code that only displays forum messages associated with the current package instance. Joe is happy to @@ -39,18 +40,18 @@ http://www.company.com/offices/boston/forum, and similarly for the Austin office. At this point, the Boston and Austin office admins can customize the configurations for each of their forums, or they can just use the -defaults.

Related Links

Requirements: Programmer's API

A subsite API is required for programmers to ensure their packages are -subsite-aware. The following functions should be sufficient for this:

10.10.0 Package creation

The system must provide an API call to create a package, and it must be -possible for the context (to which the package belongs) to be specified.

10.20.0 Package deletion

The system must provide an API call to delete a package and all related -objects in the subsite's context.

10.30.0 Object's package information

Given an object ID, the system must provide an API call to determine the -package (ID) to which the object belongs.

10.40.0 URL from package

Given a package (ID), the system must provide an API call to return the -canonical URL for that package.

10.50.0 Main subsite's package_id

The system must provide an API call to return a package ID corresponding -to the main subsite's package ID (the degenerate subsite).

Requirements: The User Interface

The Programmer's User Interface

There is no programmer's UI, other than the API described above.

The Administrator's User Interface

The UI for administrators is a set of HTML pages that are used to drive +defaults.

Related Links

Requirements: Programmer's API

A subsite API is required for programmers to ensure their packages are +subsite-aware. The following functions should be sufficient for this:

10.10.0 Package creation

The system must provide an API call to create a package, and it must be +possible for the context (to which the package belongs) to be specified.

10.20.0 Package deletion

The system must provide an API call to delete a package and all related +objects in the subsite's context.

10.30.0 Object's package information

Given an object ID, the system must provide an API call to determine the +package (ID) to which the object belongs.

10.40.0 URL from package

Given a package (ID), the system must provide an API call to return the +canonical URL for that package.

10.50.0 Main subsite's package_id

The system must provide an API call to return a package ID corresponding +to the main subsite's package ID (the degenerate subsite).

Requirements: The User Interface

The Programmer's User Interface

There is no programmer's UI, other than the API described above.

The Administrator's User Interface

The UI for administrators is a set of HTML pages that are used to drive the underlying API for package instance management (i.e. adding, removing, or altering packages). It is restricted to administrators of the current subsite such that administrators can only manage their own subsites. Of course, -Site-Wide Administrators can manage all subsites.

  • 20.10.0 Package creation

    20.10.1 The administrator should be able to create a -package and make it available at a URL underneath the subsite.

  • 20.20.0 Package deactivation

    20.20.1 The administrator should be able to deactivate -any package, causing it to be inaccessible to users.

    20.20.5 Deactivating a package makes the package no +Site-Wide Administrators can manage all subsites.

    • 20.10.0 Package creation

      20.10.1 The administrator should be able to create a +package and make it available at a URL underneath the subsite.

    • 20.20.0 Package deactivation

      20.20.1 The administrator should be able to deactivate +any package, causing it to be inaccessible to users.

      20.20.5 Deactivating a package makes the package no longer accessible, but it does not remove data created within the context of -that package.

Revision History

Document Revision #Action Taken, NotesWhen?By Whom?
0.1Creation08/18/2000Dennis Gregorovic
0.2Edited, reviewed08/29/2000Kai Wu
View comments on this page at openacs.org
+that package.

Revision History

Document Revision #Action Taken, NotesWhen?By Whom?
0.1Creation08/18/2000Dennis Gregorovic
0.2Edited, reviewed08/29/2000Kai Wu
View comments on this page at openacs.org