Index: openacs-4/packages/acs-admin/acs-admin.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-admin/acs-admin.info,v diff -u -r1.41 -r1.42 --- openacs-4/packages/acs-admin/acs-admin.info 11 Jul 2009 23:47:23 -0000 1.41 +++ openacs-4/packages/acs-admin/acs-admin.info 17 Oct 2010 21:06:07 -0000 1.42 @@ -7,21 +7,21 @@ <initial-install-p>t</initial-install-p> <singleton-p>t</singleton-p> - <version name="5.6.0d1" url="http://openacs.org/repository/download/apm/acs-admin-5.6.0d1.apm"> + <version name="5.6.0" url="http://openacs.org/repository/download/apm/acs-admin-5.6.0.apm"> <owner url="mailto:dhogaza@pacifier.com">Don Baccus</owner> <summary>An interface for Site-wide administration of an OpenACS Installation.</summary> <maturity>3</maturity> - <release-date>2009-06-19</release-date> + <release-date>2010-06-17</release-date> <vendor url="http://openacs.org">OpenACS</vendor> <license url="http://www.gnu.org/copyleft/gpl.html">GPL</license> <maturity>3</maturity> <description format="text/html">Provides a UI for administering site-wide services (including package installation, cache, authentication, and user accounts) for an OpenACS system. </description> - <provides url="acs-admin" version="5.6.0d1"/> - <requires url="acs-kernel" version="5.6.0d1"/> - <requires url="acs-mail-lite" version="5.6.0d1"/> + <provides url="acs-admin" version="5.6.0"/> + <requires url="acs-kernel" version="5.6.0"/> + <requires url="acs-mail-lite" version="5.6.0"/> <callbacks> </callbacks> Index: openacs-4/packages/acs-admin/www/index.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-admin/www/index.tcl,v diff -u -r1.14 -r1.15 --- openacs-4/packages/acs-admin/www/index.tcl 3 Apr 2010 23:13:47 -0000 1.14 +++ openacs-4/packages/acs-admin/www/index.tcl 17 Oct 2010 21:06:07 -0000 1.15 @@ -35,10 +35,11 @@ } else { set admin_url "" } - if { [db_string global_params_exist {}] != 0 } { - set global_param_url [export_vars -base /shared/parameters {package_key {scope global}}] + if { [catch {db_1row global_params_exist {}} errmsg] || + $global_params == 0 } { + set global_param_url "" } else { - set global_param_url "" + set global_param_url [export_vars -base /shared/parameters {package_key {scope global}}] } if { $admin_url eq "" && $global_param_url eq "" } { continue Index: openacs-4/packages/acs-admin/www/index.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-admin/www/index.xql,v diff -u -r1.5 -r1.6 --- openacs-4/packages/acs-admin/www/index.xql 3 Apr 2010 23:13:47 -0000 1.5 +++ openacs-4/packages/acs-admin/www/index.xql 17 Oct 2010 21:06:07 -0000 1.6 @@ -20,7 +20,7 @@ <fullquery name="global_params_exist"> <querytext> - select count(*) + select count(*) as global_params from apm_parameters where package_key = :package_key and scope = 'global' Index: openacs-4/packages/acs-admin/www/apm/package-add-2.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-admin/www/apm/package-add-2.tcl,v diff -u -r1.9 -r1.10 --- openacs-4/packages/acs-admin/www/apm/package-add-2.tcl 13 Apr 2009 23:10:27 -0000 1.9 +++ openacs-4/packages/acs-admin/www/apm/package-add-2.tcl 17 Oct 2010 21:06:07 -0000 1.10 @@ -115,6 +115,8 @@ $package_key $version_name $version_uri $summary $description \ $description_format $vendor $vendor_uri $auto_mount] apm_version_enable -callback apm_dummy_callback $version_id + apm_build_one_package_relationships $package_key + apm_build_subsite_packages_list apm_package_install_owners -callback apm_dummy_callback \ [apm_package_install_owners_prepare $owner_name $owner_uri] $version_id Index: openacs-4/packages/acs-admin/www/apm/packages-install-2.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-admin/www/apm/packages-install-2.tcl,v diff -u -r1.11 -r1.12 --- openacs-4/packages/acs-admin/www/apm/packages-install-2.tcl 15 Apr 2010 10:23:30 -0000 1.11 +++ openacs-4/packages/acs-admin/www/apm/packages-install-2.tcl 17 Oct 2010 21:06:07 -0000 1.12 @@ -36,7 +36,7 @@ # Save the package info, we may need it for dependency satisfaction later lappend pkg_info_list [pkg_info_new $package(package.key) $spec_file \ - $package(embeds) $package(provides) $package(requires) ""] + $package(embeds) $package(extends) $package(provides) $package(requires) ""] if { [lsearch -exact $install $package(package.key)] != -1 } { # This is a package which we should install Index: openacs-4/packages/acs-admin/www/apm/packages-install.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-admin/www/apm/packages-install.tcl,v diff -u -r1.21 -r1.22 --- openacs-4/packages/acs-admin/www/apm/packages-install.tcl 15 Apr 2010 10:23:30 -0000 1.21 +++ openacs-4/packages/acs-admin/www/apm/packages-install.tcl 17 Oct 2010 21:06:07 -0000 1.22 @@ -120,7 +120,7 @@ } else { apm_log APMDebug "APM: Adding $package(package.key) to list for installation." lappend pkg_info_list [pkg_info_new $package(package.key) $spec_file \ - $package(embeds) $package(provides) $package(requires) ""] + $package(embeds) $package(extends) $package(provides) $package(requires) ""] lappend pkg_key_list $package(package.key) } } Index: openacs-4/packages/acs-admin/www/apm/version-dependencies.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-admin/www/apm/version-dependencies.tcl,v diff -u -r1.6 -r1.7 --- openacs-4/packages/acs-admin/www/apm/version-dependencies.tcl 10 Mar 2010 00:44:03 -0000 1.6 +++ openacs-4/packages/acs-admin/www/apm/version-dependencies.tcl 17 Oct 2010 21:06:07 -0000 1.7 @@ -27,7 +27,7 @@ doc_body_append "<li>[string totitle $dependency_type_prep] service $service_uri, version $service_version" if { $dependency_type ne "provide" } { - doc_body_append "(<a href=\"version-dependency-remove?[export_url_vars dependency_id version_id dependency_type]\">remove</a>)\n" + doc_body_append "(<a href=\"version-dependency-remove?[export_url_vars package_key dependency_id version_id dependency_type]\">remove</a>)\n" } # If this package provides a service, show a list of all packages that require it, Index: openacs-4/packages/acs-admin/www/apm/version-dependency-remove.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-admin/www/apm/version-dependency-remove.tcl,v diff -u -r1.4 -r1.5 --- openacs-4/packages/acs-admin/www/apm/version-dependency-remove.tcl 5 Jan 2010 01:34:54 -0000 1.4 +++ openacs-4/packages/acs-admin/www/apm/version-dependency-remove.tcl 17 Oct 2010 21:06:07 -0000 1.5 @@ -7,22 +7,21 @@ {version_id:integer} {dependency_id:integer} dependency_type:notnull + package_key:notnull } db_transaction { switch $dependency_type { - provide { + + provide - require { apm_dependency_remove $dependency_id + } + embed - extend { + apm_unregister_disinherited_params $package_key $dependency_id + apm_dependency_remove $dependency_id + apm_build_one_package_relationships $package_key } - require { - apm_interface_remove $dependency_id - } - - extend { - apm_interface_remove $dependency_id - } - default { ad_return complaint 1 "Dependency Entry Error: Depenendencies are either interfaces or requirements." } Fisheye: Tag 1.3 refers to a dead (removed) revision in file `openacs-4/packages/acs-admin/www/apm/version-parameters-oracle.xql'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.3 refers to a dead (removed) revision in file `openacs-4/packages/acs-admin/www/apm/version-parameters-postgresql.xql'. Fisheye: No comparison available. Pass `N' to diff? Index: openacs-4/packages/acs-admin/www/apm/version-parameters.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-admin/www/apm/version-parameters.tcl,v diff -u -r1.7 -r1.8 --- openacs-4/packages/acs-admin/www/apm/version-parameters.tcl 30 Mar 2010 22:06:51 -0000 1.7 +++ openacs-4/packages/acs-admin/www/apm/version-parameters.tcl 17 Oct 2010 21:06:07 -0000 1.8 @@ -63,10 +63,10 @@ } } +set parent_package_keys [lrange [apm_one_package_inherit_order $package_key] 0 end-1] - append body "[ad_table -Torderby $orderby \ - -bind [ad_tcl_vars_to_ns_set version_id package_key] \ + -bind [ad_tcl_vars_to_ns_set version_id package_key parent_package_keys] \ -Textra_vars {version_id} \ -Tmissing_text "No parameters registered in this section." \ parameter_table "" $table_def] Index: openacs-4/packages/acs-admin/www/apm/version-parameters.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-admin/www/apm/version-parameters.xql,v diff -u -r1.1 -r1.2 --- openacs-4/packages/acs-admin/www/apm/version-parameters.xql 27 Apr 2001 01:41:12 -0000 1.1 +++ openacs-4/packages/acs-admin/www/apm/version-parameters.xql 17 Oct 2010 21:06:07 -0000 1.2 @@ -11,5 +11,21 @@ </querytext> </fullquery> +<fullquery name="parameter_table"> + <querytext> + + select ap.parameter_name, coalesce(ap.description, 'No Description') as description, + ap.datatype, ap.default_value, ap.parameter_id, ap.scope, + coalesce(ap.section_name, 'No Section') as section_name + from apm_parameters ap + where package_key = :package_key + and not exists (select 1 + from apm_parameters ap2 + where ap.parameter_name = ap2.parameter_name + and ap2.package_key in ('[join $parent_package_keys ',']')) + $sql_clauses + + </querytext> +</fullquery> </queryset> Index: openacs-4/packages/acs-api-browser/acs-api-browser.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-api-browser/acs-api-browser.info,v diff -u -r1.29 -r1.30 --- openacs-4/packages/acs-api-browser/acs-api-browser.info 11 Jul 2009 23:47:23 -0000 1.29 +++ openacs-4/packages/acs-api-browser/acs-api-browser.info 17 Oct 2010 21:06:07 -0000 1.30 @@ -7,18 +7,18 @@ <initial-install-p>t</initial-install-p> <singleton-p>t</singleton-p> - <version name="5.6.0d1" url="http://openacs.org/repository/download/apm/acs-api-browser-5.6.0d1.apm"> + <version name="5.6.0" url="http://openacs.org/repository/download/apm/acs-api-browser-5.6.0.apm"> <owner url="http://openacs.org">OpenACS</owner> <summary>Interactive documentation for the Tcl and SQL APIs.</summary> - <release-date>2009-06-19</release-date> + <release-date>2010-06-17</release-date> <maturity>3</maturity> <vendor url="http://openacs.org">OpenACS</vendor> <license url="http://www.gnu.org/copyleft/gpl.html">GPL</license> <maturity>3</maturity> <description format="text/html">On line interactive documentation for the locally installed Tcl and SQL APIs. Links to the Tcl core and AOLServer online documentation as well.</description> - <provides url="acs-api-browser" version="5.6.0d1"/> - <requires url="acs-kernel" version="5.6.0d1"/> + <provides url="acs-api-browser" version="5.6.0"/> + <requires url="acs-kernel" version="5.6.0"/> <callbacks> </callbacks> Index: openacs-4/packages/acs-authentication/acs-authentication.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-authentication/acs-authentication.info,v diff -u -r1.32 -r1.33 --- openacs-4/packages/acs-authentication/acs-authentication.info 11 Jul 2009 23:47:23 -0000 1.32 +++ openacs-4/packages/acs-authentication/acs-authentication.info 17 Oct 2010 21:06:07 -0000 1.33 @@ -7,20 +7,20 @@ <initial-install-p>t</initial-install-p> <singleton-p>t</singleton-p> - <version name="5.6.0d1" url="http://openacs.org/repository/download/apm/acs-authentication-5.6.0d1.apm"> + <version name="5.6.0" url="http://openacs.org/repository/download/apm/acs-authentication-5.6.0.apm"> <owner url="mailto:lars@collaboraid.biz">Lars Pind</owner> <summary>Authentication, account management, and related functionality.</summary> - <release-date>2009-06-19</release-date> + <release-date>2010-06-17</release-date> <maturity>3</maturity> <vendor url="http://www.collaboraid.biz">Collaboraid</vendor> <maturity>3</maturity> <license url="http://www.gnu.org/copyleft/gpl.html">GPL version 2</license> <description format="text/html">Implements authentication-related security functions for OpenACS, including password, account and session management, bulk account creation etc. Provides a contract based interface for different authentication methods such as PAM or LDAP based authentication.</description> - <provides url="acs-authentication" version="5.6.0d1"/> - <requires url="acs-kernel" version="5.6.0d1"/> - <requires url="acs-service-contract" version="5.6.0d1"/> - <requires url="acs-mail-lite" version="5.6.0d1"/> + <provides url="acs-authentication" version="5.6.0"/> + <requires url="acs-kernel" version="5.6.0"/> + <requires url="acs-service-contract" version="5.6.0"/> + <requires url="acs-mail-lite" version="5.6.0"/> <callbacks> <callback type="after-install" proc="auth::package_install"/> Index: openacs-4/packages/acs-automated-testing/acs-automated-testing.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-automated-testing/acs-automated-testing.info,v diff -u -r1.30 -r1.31 --- openacs-4/packages/acs-automated-testing/acs-automated-testing.info 17 Sep 2009 15:57:01 -0000 1.30 +++ openacs-4/packages/acs-automated-testing/acs-automated-testing.info 17 Oct 2010 21:06:07 -0000 1.31 @@ -7,10 +7,10 @@ <initial-install-p>t</initial-install-p> <singleton-p>t</singleton-p> - <version name="5.6.0d1" url="http://openacs.org/repository/download/apm/acs-automated-testing-5.6.0d1.apm"> + <version name="5.6.0" url="http://openacs.org/repository/download/apm/acs-automated-testing-5.6.0.apm"> <owner url="http://openacs.org">OpenACS</owner> <summary>The interface to the automated testing facilities within OpenACS.</summary> - <release-date>2009-06-19</release-date> + <release-date>2010-06-17</release-date> <maturity>3</maturity> <vendor url="http://openacs.org">OpenACS</vendor> <maturity>3</maturity> @@ -20,8 +20,8 @@ OpenACS system. Also provides a UI for managing automatic-rebuild servers as in a test farm.</description> - <provides url="acs-automated-testing" version="5.6.0d1"/> - <requires url="acs-kernel" version="5.6.0d1"/> + <provides url="acs-automated-testing" version="5.6.0"/> + <requires url="acs-kernel" version="5.6.0"/> <callbacks> </callbacks> Index: openacs-4/packages/acs-bootstrap-installer/acs-bootstrap-installer.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-bootstrap-installer/acs-bootstrap-installer.info,v diff -u -r1.32 -r1.33 --- openacs-4/packages/acs-bootstrap-installer/acs-bootstrap-installer.info 11 Jul 2009 23:47:24 -0000 1.32 +++ openacs-4/packages/acs-bootstrap-installer/acs-bootstrap-installer.info 17 Oct 2010 21:06:07 -0000 1.33 @@ -7,18 +7,18 @@ <initial-install-p>t</initial-install-p> <singleton-p>t</singleton-p> - <version name="5.6.0d1" url="http://openacs.org/repository/download/apm/acs-bootstrap-installer-5.6.0d1.apm"> + <version name="5.6.0" url="http://openacs.org/repository/download/apm/acs-bootstrap-installer-5.6.0.apm"> <owner url="mailto:dhogaza@pacifier.com">Don Baccus</owner> <summary>Bootstraps an OpenACS installation.</summary> - <release-date>2009-06-19</release-date> + <release-date>2010-06-17</release-date> <maturity>3</maturity> <vendor url="http://openacs.org">OpenACS</vendor> <license url="http://www.gnu.org/copyleft/gpl.html">GPL</license> <maturity>3</maturity> <description format="text/html">This package bootstraps OpenACS. If the core packages have not yet been installed, it calls the installer which leads the user through the steps necessary to do so. It also checks that the installation meets the requirements for a successful install of OpenACS.</description> - <provides url="acs-bootstrap-installer" version="5.6.0d1"/> - <requires url="acs-kernel" version="5.6.0d1"/> + <provides url="acs-bootstrap-installer" version="5.6.0"/> + <requires url="acs-kernel" version="5.6.0"/> <callbacks> </callbacks> Index: openacs-4/packages/acs-content-repository/acs-content-repository.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/acs-content-repository.info,v diff -u -r1.92 -r1.93 --- openacs-4/packages/acs-content-repository/acs-content-repository.info 4 Oct 2010 21:59:20 -0000 1.92 +++ openacs-4/packages/acs-content-repository/acs-content-repository.info 17 Oct 2010 21:06:07 -0000 1.93 @@ -10,7 +10,7 @@ <version name="5.7.0d2" url="http://openacs.org/repository/download/apm/acs-content-repository-5.7.0d2.apm"> <owner url="http://openacs.org">OpenACS</owner> <summary>The canonical repository for OpenACS content.</summary> - <release-date>2009-06-19</release-date> + <release-date>2010-06-17</release-date> <maturity>3</maturity> <vendor url="http://openacs.org">OpenACS</vendor> <description format="text/html">Provides the API for creating and managing user generated content including Index: openacs-4/packages/acs-core-docs/acs-core-docs.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/acs-core-docs.info,v diff -u -r1.29 -r1.30 --- openacs-4/packages/acs-core-docs/acs-core-docs.info 11 Jul 2009 23:47:24 -0000 1.29 +++ openacs-4/packages/acs-core-docs/acs-core-docs.info 17 Oct 2010 21:06:07 -0000 1.30 @@ -7,19 +7,19 @@ <initial-install-p>t</initial-install-p> <singleton-p>t</singleton-p> - <version name="5.6.0d1" url="http://openacs.org/repository/download/apm/acs-core-docs-5.6.0d1.apm"> + <version name="5.6.0" url="http://openacs.org/repository/download/apm/acs-core-docs-5.6.0.apm"> <owner url="mailto:docs@openacs.org">OpenACS Documentation Team</owner> <summary>Documentation for the OpenACS Core.</summary> - <release-date>2009-06-19</release-date> + <release-date>2010-06-17</release-date> <vendor url="http://openacs.org">OpenACS</vendor> <license url="http://www.gnu.org/copyleft/gpl.html">GPL</license> <maturity>3</maturity> <description format="text/html">Static HTML documentation for the OpenACS core (includes the DocBook sources). </description> - <provides url="acs-core-docs" version="5.6.0d1"/> - <requires url="acs-kernel" version="5.6.0d1"/> - <requires url="acs-tcl" version="5.6.0d1"/> + <provides url="acs-core-docs" version="5.6.0"/> + <requires url="acs-kernel" version="5.6.0"/> + <requires url="acs-tcl" version="5.6.0"/> <callbacks> </callbacks> Index: openacs-4/packages/acs-core-docs/www/acs-admin.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/acs-admin.html,v diff -u -r1.41 -r1.42 --- openacs-4/packages/acs-core-docs/www/acs-admin.html 13 Sep 2009 23:54:39 -0000 1.41 +++ openacs-4/packages/acs-core-docs/www/acs-admin.html 17 Oct 2010 21:06:07 -0000 1.42 @@ -1,2 +1,2 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Part II. Administrator's Guide</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="index.html" title="OpenACS Core Documentation"><link rel="previous" href="release-notes.html" title="OpenACS Release Notes"><link rel="next" href="install-overview.html" title="Chapter 2. Installation Overview"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="release-notes.html">Prev</a> </td><th width="60%" align="center"></th><td width="20%" align="right"> <a accesskey="n" href="install-overview.html">Next</a></td></tr></table><hr></div><div class="part" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="acs-admin"></a>Administrator's Guide</h1></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>2. <a href="install-overview.html">Installation Overview</a></dt><dd><dl><dt><a href="install-steps.html">Basic Steps</a></dt><dt><a href="individual-programs.html">Prerequisite Software</a></dt></dl></dd><dt>3. <a href="complete-install.html">Complete Installation</a></dt><dd><dl><dt><a href="unix-installation.html">Install a Unix-like system and supporting software</a></dt><dt><a href="oracle.html">Install Oracle 8.1.7</a></dt><dt><a href="postgres.html">Install PostgreSQL</a></dt><dt><a href="aolserver4.html">Install AOLserver 4</a></dt><dt><a href="openacs.html">Install OpenACS 5.5.0</a></dt><dt><a href="win2k-installation.html">OpenACS Installation Guide for Windows2000</a></dt><dt><a href="mac-installation.html">OpenACS Installation Guide for Mac OS X</a></dt></dl></dd><dt>4. <a href="configuring-new-site.html">Configuring a new OpenACS Site</a></dt><dd><dl><dt><a href="configuring-install-packages.html">Installing OpenACS packages</a></dt><dt><a href="configuring-mounting-packages.html">Mounting OpenACS packages</a></dt><dt><a href="configuring-configuring-packages.html">Configuring an OpenACS package</a></dt><dt><a href="configuring-configuring-permissions.html">Setting Permissions on an OpenACS package</a></dt><dt><a href="how-do-I.html">How Do I?</a></dt></dl></dd><dt>5. <a href="upgrade.html">Upgrading</a></dt><dd><dl><dt><a href="upgrade-overview.html">Overview</a></dt><dt><a href="upgrade-4.5-to-4.6.html">Upgrading 4.5 or higher to 4.6.3</a></dt><dt><a href="upgrade-4.6.3-to-5.html">Upgrading OpenACS 4.6.3 to 5.0</a></dt><dt><a href="upgrade-5-0-dot.html">Upgrading an OpenACS 5.0.0 or greater installation</a></dt><dt><a href="upgrade-openacs-files.html">Upgrading the OpenACS files</a></dt><dt><a href="upgrade-supporting.html">Upgrading Platform components</a></dt></dl></dd><dt>6. <a href="maintenance-web.html">Production Environments</a></dt><dd><dl><dt><a href="install-openacs-keepalive.html">Starting and Stopping an OpenACS instance.</a></dt><dt><a href="install-openacs-inittab.html">AOLserver keepalive with inittab</a></dt><dt><a href="install-next-add-server.html">Running multiple services on one machine</a></dt><dt><a href="high-avail.html">High Availability/High Performance Configurations</a></dt><dt><a href="maintenance-deploy.html">Staged Deployment for Production Networks</a></dt><dt><a href="install-ssl.html">Installing SSL Support for an OpenACS service</a></dt><dt><a href="analog-setup.html">Set up Log Analysis Reports</a></dt><dt><a href="uptime.html">External uptime validation</a></dt><dt><a href="maint-performance.html">Diagnosing Performance Problems</a></dt></dl></dd><dt>7. <a href="database-management.html">Database Management</a></dt><dd><dl><dt><a href="remote-postgres.html">Running a PostgreSQL database on another server</a></dt><dt><a href="install-openacs-delete-tablespace.html">Deleting a tablespace</a></dt><dt><a href="install-next-nightly-vacuum.html">Vacuum Postgres nightly</a></dt></dl></dd><dt>A. <a href="install-redhat.html">Install Red Hat 8/9</a></dt><dt>B. <a href="install-more-software.html">Install additional supporting software</a></dt><dd><dl><dt><a href="openacs-unpack.html">Unpack the OpenACS tarball</a></dt><dt><a href="install-cvs.html">Initialize CVS (OPTIONAL)</a></dt><dt><a href="psgml-for-emacs.html">Add PSGML commands to emacs init file (OPTIONAL)</a></dt><dt><a href="install-daemontools.html">Install Daemontools (OPTIONAL)</a></dt><dt><a href="install-qmail.html">Install qmail (OPTIONAL)</a></dt><dt><a href="analog-install.html">Install Analog web file analyzer</a></dt><dt><a href="install-nspam.html">Install nspam</a></dt><dt><a href="install-full-text-search-tsearch2.html">Install Full Text Search using Tsearch2</a></dt><dt><a href="install-full-text-search-openfts.html">Install Full Text Search using OpenFTS (deprecated see tsearch2)</a></dt><dt><a href="install-nsopenssl.html">Install nsopenssl</a></dt><dt><a href="install-tclwebtest.html">Install tclwebtest.</a></dt><dt><a href="install-php.html">Install PHP for use in AOLserver</a></dt><dt><a href="install-squirrelmail.html">Install Squirrelmail for use as a webmail system for OpenACS</a></dt><dt><a href="install-pam-radius.html">Install PAM Radius for use as external authentication</a></dt><dt><a href="install-ldap-radius.html">Install LDAP for use as external authentication</a></dt><dt><a href="aolserver.html">Install AOLserver 3.3oacs1</a></dt></dl></dd><dt>C. <a href="credits.html">Credits</a></dt><dd><dl><dt><a href="install-origins.html">Where did this document come from?</a></dt><dt><a href="os-install.html">Linux Install Guides</a></dt><dt><a href="os-security.html">Security Information</a></dt><dt><a href="install-resources.html">Resources</a></dt></dl></dd></dl></div>Section missing</div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="release-notes.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="install-overview.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS Release Notes </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> Chapter 2. Installation Overview</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/acs-admin.html#comments">View comments on this page at openacs.org</a></center></body></html> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Part II. Administrator's Guide</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="index.html" title="OpenACS Core Documentation"><link rel="previous" href="release-notes.html" title="OpenACS Release Notes"><link rel="next" href="install-overview.html" title="Chapter 2. Installation Overview"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="release-notes.html">Prev</a> </td><th width="60%" align="center"></th><td width="20%" align="right"> <a accesskey="n" href="install-overview.html">Next</a></td></tr></table><hr></div><div class="part" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="acs-admin"></a>Administrator's Guide</h1></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>2. <a href="install-overview.html">Installation Overview</a></dt><dd><dl><dt><a href="install-steps.html">Basic Steps</a></dt><dt><a href="individual-programs.html">Prerequisite Software</a></dt></dl></dd><dt>3. <a href="complete-install.html">Complete Installation</a></dt><dd><dl><dt><a href="unix-installation.html">Install a Unix-like system and supporting software</a></dt><dt><a href="oracle.html">Install Oracle 8.1.7</a></dt><dt><a href="postgres.html">Install PostgreSQL</a></dt><dt><a href="aolserver4.html">Install AOLserver 4</a></dt><dt><a href="openacs.html">Install OpenACS 5.6.0</a></dt><dt><a href="win2k-installation.html">OpenACS Installation Guide for Windows2000</a></dt><dt><a href="mac-installation.html">OpenACS Installation Guide for Mac OS X</a></dt></dl></dd><dt>4. <a href="configuring-new-site.html">Configuring a new OpenACS Site</a></dt><dd><dl><dt><a href="configuring-install-packages.html">Installing OpenACS packages</a></dt><dt><a href="configuring-mounting-packages.html">Mounting OpenACS packages</a></dt><dt><a href="configuring-configuring-packages.html">Configuring an OpenACS package</a></dt><dt><a href="configuring-configuring-permissions.html">Setting Permissions on an OpenACS package</a></dt><dt><a href="how-do-I.html">How Do I?</a></dt></dl></dd><dt>5. <a href="upgrade.html">Upgrading</a></dt><dd><dl><dt><a href="upgrade-overview.html">Overview</a></dt><dt><a href="upgrade-4.5-to-4.6.html">Upgrading 4.5 or higher to 4.6.3</a></dt><dt><a href="upgrade-4.6.3-to-5.html">Upgrading OpenACS 4.6.3 to 5.0</a></dt><dt><a href="upgrade-5-0-dot.html">Upgrading an OpenACS 5.0.0 or greater installation</a></dt><dt><a href="upgrade-openacs-files.html">Upgrading the OpenACS files</a></dt><dt><a href="upgrade-supporting.html">Upgrading Platform components</a></dt></dl></dd><dt>6. <a href="maintenance-web.html">Production Environments</a></dt><dd><dl><dt><a href="install-openacs-keepalive.html">Starting and Stopping an OpenACS instance.</a></dt><dt><a href="install-openacs-inittab.html">AOLserver keepalive with inittab</a></dt><dt><a href="install-next-add-server.html">Running multiple services on one machine</a></dt><dt><a href="high-avail.html">High Availability/High Performance Configurations</a></dt><dt><a href="maintenance-deploy.html">Staged Deployment for Production Networks</a></dt><dt><a href="install-ssl.html">Installing SSL Support for an OpenACS service</a></dt><dt><a href="analog-setup.html">Set up Log Analysis Reports</a></dt><dt><a href="uptime.html">External uptime validation</a></dt><dt><a href="maint-performance.html">Diagnosing Performance Problems</a></dt></dl></dd><dt>7. <a href="database-management.html">Database Management</a></dt><dd><dl><dt><a href="remote-postgres.html">Running a PostgreSQL database on another server</a></dt><dt><a href="install-openacs-delete-tablespace.html">Deleting a tablespace</a></dt><dt><a href="install-next-nightly-vacuum.html">Vacuum Postgres nightly</a></dt></dl></dd><dt>8. <a href="backup-recovery.html">Backup and Recovery</a></dt><dd><dl><dt><a href="install-next-backups.html">Backup Strategy</a></dt><dt><a href="snapshot-backup.html">Manual backup and recovery</a></dt><dt><a href="automated-backup.html">Automated Backup</a></dt><dt><a href="backups-with-cvs.html">Using CVS for backup-recovery</a></dt></dl></dd><dt>A. <a href="install-redhat.html">Install Red Hat 8/9</a></dt><dt>B. <a href="install-more-software.html">Install additional supporting software</a></dt><dd><dl><dt><a href="openacs-unpack.html">Unpack the OpenACS tarball</a></dt><dt><a href="install-cvs.html">Initialize CVS (OPTIONAL)</a></dt><dt><a href="psgml-for-emacs.html">Add PSGML commands to emacs init file (OPTIONAL)</a></dt><dt><a href="install-daemontools.html">Install Daemontools (OPTIONAL)</a></dt><dt><a href="install-qmail.html">Install qmail (OPTIONAL)</a></dt><dt><a href="analog-install.html">Install Analog web file analyzer</a></dt><dt><a href="install-nspam.html">Install nspam</a></dt><dt><a href="install-full-text-search-tsearch2.html">Install Full Text Search using Tsearch2</a></dt><dt><a href="install-full-text-search-openfts.html">Install Full Text Search using OpenFTS (deprecated see tsearch2)</a></dt><dt><a href="install-nsopenssl.html">Install nsopenssl</a></dt><dt><a href="install-tclwebtest.html">Install tclwebtest.</a></dt><dt><a href="install-php.html">Install PHP for use in AOLserver</a></dt><dt><a href="install-squirrelmail.html">Install Squirrelmail for use as a webmail system for OpenACS</a></dt><dt><a href="install-pam-radius.html">Install PAM Radius for use as external authentication</a></dt><dt><a href="install-ldap-radius.html">Install LDAP for use as external authentication</a></dt><dt><a href="aolserver.html">Install AOLserver 3.3oacs1</a></dt></dl></dd><dt>C. <a href="credits.html">Credits</a></dt><dd><dl><dt><a href="install-origins.html">Where did this document come from?</a></dt><dt><a href="os-install.html">Linux Install Guides</a></dt><dt><a href="os-security.html">Security Information</a></dt><dt><a href="install-resources.html">Resources</a></dt></dl></dd></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="release-notes.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="install-overview.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS Release Notes </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> Chapter 2. Installation Overview</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/acs-admin.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/acs-package-dev.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/acs-package-dev.html,v diff -u -r1.29 -r1.30 --- openacs-4/packages/acs-core-docs/www/acs-package-dev.html 13 Sep 2009 23:54:39 -0000 1.29 +++ openacs-4/packages/acs-core-docs/www/acs-package-dev.html 17 Oct 2010 21:06:07 -0000 1.30 @@ -1,5 +1,3 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Part III. For OpenACS Package Developers</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="index.html" title="OpenACS Core Documentation"><link rel="previous" href="install-resources.html" title="Resources"><link rel="next" href="tutorial.html" title="Chapter 8. Development Tutorial"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="install-resources.html">Prev</a> </td><th width="60%" align="center"></th><td width="20%" align="right"> <a accesskey="n" href="tutorial.html">Next</a></td></tr></table><hr></div><div class="part" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="acs-package-dev"></a>For OpenACS Package Developers</h1></div></div><div></div></div><div class="partintro" lang="en"><div><div></div><div></div></div><p>Tutorials and reference material for creating new OpenACS packages. - </p><div class="toc"><p><b>Table of Contents</b></p><dl><dt>8. <a href="tutorial.html">Development Tutorial</a></dt><dd><dl><dt><a href="tutorial-database.html">Setting Up Database Objects</a></dt><dt><a href="tutorial-pages.html">Creating Web Pages</a></dt><dt><a href="tutorial-debug.html">Debugging and Automated Testing</a></dt></dl></dd><dt>9. <a href="tutorial-advanced.html">Advanced Topics</a></dt><dd><dl><dt><a href="tutorial-specs.html">Write the Requirements and Design Specs</a></dt><dt><a href="tutorial-cvs.html">Add the new package to CVS</a></dt><dt><a href="tutorial-etp-templates.html">OpenACS Edit This Page Templates</a></dt><dt><a href="tutorial-comments.html">Adding Comments</a></dt><dt><a href="tutorial-admin-pages.html">Admin Pages</a></dt><dt><a href="tutorial-categories.html">Categories</a></dt><dt><a href="profile-code.html">Profile your code</a></dt><dt><a href="tutorial-distribute.html">Prepare the package for distribution.</a></dt><dt><a href="tutorial-upgrades.html">Distributing upgrades of your package</a></dt><dt><a href="tutorial-notifications.html">Notifications</a></dt><dt><a href="tutorial-hierarchical.html">Hierarchical data</a></dt><dt><a href="tutorial-vuh.html">Using .vuh files for pretty urls</a></dt><dt><a href="tutorial-css-layout.html">Laying out a page with CSS instead of tables</a></dt><dt><a href="tutorial-html-email.html">Sending HTML email from your application</a></dt><dt><a href="tutorial-caching.html">Basic Caching</a></dt><dt><a href="tutorial-schedule-procs.html">Scheduled Procedures</a></dt><dt><a href="tutorial-wysiwyg-editor.html">Enabling WYSIWYG</a></dt><dt><a href="tutorial-parameters.html">Adding in parameters for your package</a></dt><dt><a href="tutorial-upgrade-scripts.html">Writing upgrade scripts</a></dt><dt><a href="tutorial-second-database.html">Connect to a second database</a></dt><dt><a href="tutorial-future-topics.html">Future Topics</a></dt></dl></dd><dt>10. <a href="dev-guide.html">Development Reference</a></dt><dd><dl><dt><a href="packages.html">OpenACS Packages</a></dt><dt><a href="objects.html">OpenACS Data Models and the Object System</a></dt><dt><a href="request-processor.html">The Request Processor</a></dt><dt><a href="db-api.html">The OpenACS Database Access API</a></dt><dt><a href="templates.html">Using Templates in OpenACS</a></dt><dt><a href="permissions.html">Groups, Context, Permissions</a></dt><dt><a href="parties.html">Parties in OpenACS</a></dt><dt><a href="permissions-tediously-explained.html">OpenACS Permissions Tediously Explained</a></dt><dt><a href="object-identity.html">Object Identity</a></dt><dt><a href="programming-with-aolserver.html">Programming with AOLserver</a></dt><dt><a href="form-builder.html">Using Form Builder: building html forms dynamically</a></dt></dl></dd><dt>11. <a href="eng-standards.html">Engineering Standards</a></dt><dd><dl><dt><a href="style-guide.html">OpenACS Style Guide</a></dt><dt><a href="cvs-guidelines.html"> - CVS Guidelines - </a></dt><dt><a href="eng-standards-versioning.html">Release Version Numbering</a></dt><dt><a href="eng-standards-constraint-naming.html">Constraint naming standard</a></dt><dt><a href="eng-standards-filenaming.html">ACS File Naming and Formatting Standards</a></dt><dt><a href="eng-standards-plsql.html">PL/SQL Standards</a></dt><dt><a href="variables.html">Variables</a></dt><dt><a href="automated-testing-best-practices.html">Automated Testing</a></dt></dl></dd><dt>12. <a href="doc-standards.html">Documentation Standards</a></dt><dd><dl><dt><a href="docbook-primer.html">OpenACS Documentation Guide</a></dt><dt><a href="nxml-mode.html">Using nXML mode in Emacs</a></dt><dt><a href="filename.html">Detailed Design Documentation Template</a></dt><dt><a href="requirements-template.html">System/Application Requirements Template</a></dt></dl></dd><dt>13. <a href="i18n.html">Internationalization</a></dt><dd><dl><dt><a href="i18n-overview.html">Internationalization and Localization Overview</a></dt><dt><a href="i18n-introduction.html">How Internationalization/Localization works in OpenACS</a></dt><dt><a href="i18n-convert.html">How to Internationalize a Package</a></dt><dt><a href="i18n-design.html">Design Notes</a></dt><dt><a href="i18n-translators.html">Translator's Guide</a></dt></dl></dd><dt>D. <a href="cvs-tips.html">Using CVS with an OpenACS Site</a></dt></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="install-resources.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="tutorial.html">Next</a></td></tr><tr><td width="40%" align="left">Resources </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> Chapter 8. Development Tutorial</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/acs-package-dev.html#comments">View comments on this page at openacs.org</a></center></body></html> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Part III. For OpenACS Package Developers</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="index.html" title="OpenACS Core Documentation"><link rel="previous" href="install-resources.html" title="Resources"><link rel="next" href="tutorial.html" title="Chapter 9. Development Tutorial"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="install-resources.html">Prev</a> </td><th width="60%" align="center"></th><td width="20%" align="right"> <a accesskey="n" href="tutorial.html">Next</a></td></tr></table><hr></div><div class="part" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="acs-package-dev"></a>For OpenACS Package Developers</h1></div></div><div></div></div><div class="partintro" lang="en"><div><div></div><div></div></div><p>Tutorials and reference material for creating new OpenACS packages. + </p><div class="toc"><p><b>Table of Contents</b></p><dl><dt>9. <a href="tutorial.html">Development Tutorial</a></dt><dd><dl><dt><a href="tutorial-newpackage.html">Creating an Application Package</a></dt><dt><a href="tutorial-database.html">Setting Up Database Objects</a></dt><dt><a href="tutorial-pages.html">Creating Web Pages</a></dt><dt><a href="tutorial-debug.html">Debugging and Automated Testing</a></dt></dl></dd><dt>10. <a href="tutorial-advanced.html">Advanced Topics</a></dt><dd><dl><dt><a href="tutorial-specs.html">Write the Requirements and Design Specs</a></dt><dt><a href="tutorial-cvs.html">Add the new package to CVS</a></dt><dt><a href="tutorial-etp-templates.html">OpenACS Edit This Page Templates</a></dt><dt><a href="tutorial-comments.html">Adding Comments</a></dt><dt><a href="tutorial-admin-pages.html">Admin Pages</a></dt><dt><a href="tutorial-categories.html">Categories</a></dt><dt><a href="profile-code.html">Profile your code</a></dt><dt><a href="tutorial-distribute.html">Prepare the package for distribution.</a></dt><dt><a href="tutorial-upgrades.html">Distributing upgrades of your package</a></dt><dt><a href="tutorial-notifications.html">Notifications</a></dt><dt><a href="tutorial-hierarchical.html">Hierarchical data</a></dt><dt><a href="tutorial-vuh.html">Using .vuh files for pretty urls</a></dt><dt><a href="tutorial-css-layout.html">Laying out a page with CSS instead of tables</a></dt><dt><a href="tutorial-html-email.html">Sending HTML email from your application</a></dt><dt><a href="tutorial-caching.html">Basic Caching</a></dt><dt><a href="tutorial-schedule-procs.html">Scheduled Procedures</a></dt><dt><a href="tutorial-wysiwyg-editor.html">Enabling WYSIWYG</a></dt><dt><a href="tutorial-parameters.html">Adding in parameters for your package</a></dt><dt><a href="tutorial-upgrade-scripts.html">Writing upgrade scripts</a></dt><dt><a href="tutorial-second-database.html">Connect to a second database</a></dt><dt><a href="tutorial-future-topics.html">Future Topics</a></dt></dl></dd><dt>11. <a href="dev-guide.html">Development Reference</a></dt><dd><dl><dt><a href="packages.html">OpenACS Packages</a></dt><dt><a href="objects.html">OpenACS Data Models and the Object System</a></dt><dt><a href="request-processor.html">The Request Processor</a></dt><dt><a href="db-api.html">The OpenACS Database Access API</a></dt><dt><a href="templates.html">Using Templates in OpenACS</a></dt><dt><a href="permissions.html">Groups, Context, Permissions</a></dt><dt><a href="subsites.html">Writing OpenACS Application Pages</a></dt><dt><a href="parties.html">Parties in OpenACS</a></dt><dt><a href="permissions-tediously-explained.html">OpenACS Permissions Tediously Explained</a></dt><dt><a href="object-identity.html">Object Identity</a></dt><dt><a href="programming-with-aolserver.html">Programming with AOLserver</a></dt><dt><a href="form-builder.html">Using Form Builder: building html forms dynamically</a></dt></dl></dd><dt>12. <a href="eng-standards.html">Engineering Standards</a></dt><dd><dl><dt><a href="style-guide.html">OpenACS Style Guide</a></dt><dt><a href="eng-standards-versioning.html">Release Version Numbering</a></dt><dt><a href="eng-standards-constraint-naming.html">Constraint naming standard</a></dt><dt><a href="eng-standards-filenaming.html">ACS File Naming and Formatting Standards</a></dt><dt><a href="eng-standards-plsql.html">PL/SQL Standards</a></dt><dt><a href="variables.html">Variables</a></dt><dt><a href="automated-testing-best-practices.html">Automated Testing</a></dt></dl></dd><dt>13. <a href="doc-standards.html">Documentation Standards</a></dt><dd><dl><dt><a href="docbook-primer.html">OpenACS Documentation Guide</a></dt><dt><a href="psgml-mode.html">Using PSGML mode in Emacs</a></dt><dt><a href="nxml-mode.html">Using nXML mode in Emacs</a></dt><dt><a href="filename.html">Detailed Design Documentation Template</a></dt><dt><a href="requirements-template.html">System/Application Requirements Template</a></dt></dl></dd><dt>14. <a href="i18n.html">Internationalization</a></dt><dd><dl><dt><a href="i18n-overview.html">Internationalization and Localization Overview</a></dt><dt><a href="i18n-introduction.html">How Internationalization/Localization works in OpenACS</a></dt><dt><a href="i18n-convert.html">How to Internationalize a Package</a></dt><dt><a href="i18n-design.html">Design Notes</a></dt><dt><a href="i18n-translators.html">Translator's Guide</a></dt></dl></dd></dl></div></div>CVS Section missing</div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="install-resources.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="tutorial.html">Next</a></td></tr><tr><td width="40%" align="left">Resources </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> Chapter 9. Development Tutorial</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/acs-package-dev.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/acs-plat-dev.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/acs-plat-dev.html,v diff -u -r1.27 -r1.28 --- openacs-4/packages/acs-core-docs/www/acs-plat-dev.html 13 Sep 2009 23:54:39 -0000 1.27 +++ openacs-4/packages/acs-core-docs/www/acs-plat-dev.html 17 Oct 2010 21:06:07 -0000 1.28 @@ -1,2 +1,2 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Part IV. For OpenACS Platform Developers</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="index.html" title="OpenACS Core Documentation"><link rel="previous" href="cvs-tips.html" title="Appendix D. Using CVS with an OpenACS Site"><link rel="next" href="kernel-doc.html" title="Chapter 14. Kernel Documentation"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="cvs-tips.html">Prev</a> </td><th width="60%" align="center"></th><td width="20%" align="right"> <a accesskey="n" href="kernel-doc.html">Next</a></td></tr></table><hr></div><div class="part" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="acs-plat-dev"></a>For OpenACS Platform Developers</h1></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>14. <a href="kernel-doc.html">Kernel Documentation</a></dt><dd><dl><dt><a href="kernel-overview.html">Overview</a></dt><dt><a href="object-system-requirements.html">Object Model Requirements</a></dt><dt><a href="object-system-design.html">Object Model Design</a></dt><dt><a href="permissions-requirements.html">Permissions Requirements</a></dt><dt><a href="permissions-design.html">Permissions Design</a></dt><dt><a href="groups-requirements.html">Groups Requirements</a></dt><dt><a href="groups-design.html">Groups Design</a></dt><dt><a href="subsites-design.html">Subsites Design Document</a></dt><dt><a href="apm-requirements.html">Package Manager Requirements</a></dt><dt><a href="apm-design.html">Package Manager Design</a></dt><dt><a href="i18n-requirements.html">OpenACS Internationalization Requirements</a></dt><dt><a href="security-requirements.html">Security Requirements</a></dt><dt><a href="security-design.html">Security Design</a></dt><dt><a href="security-notes.html">Security Notes</a></dt><dt><a href="rp-requirements.html">Request Processor Requirements</a></dt><dt><a href="rp-design.html">Request Processor Design</a></dt><dt><a href="tcl-doc.html">Documenting Tcl Files: Page Contracts and Libraries</a></dt><dt><a href="bootstrap-acs.html">Bootstrapping OpenACS</a></dt><dt><a href="ext-auth-requirements.html">External Authentication Requirements</a></dt></dl></dd><dt>15. <a href="releasing-openacs.html">Releasing OpenACS</a></dt><dd><dl><dt><a href="releasing-openacs-core.html">OpenACS Core and .LRN</a></dt><dt><a href="update-repository.html">How to Update the OpenACS.org repository</a></dt><dt><a href="releasing-package.html">How to package and release an OpenACS Package</a></dt><dt><a href="update-translations.html">How to Update the translations</a></dt></dl></dd></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="cvs-tips.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="kernel-doc.html">Next</a></td></tr><tr><td width="40%" align="left">Appendix D. Using CVS with an OpenACS Site </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> Chapter 14. Kernel Documentation</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/acs-plat-dev.html#comments">View comments on this page at openacs.org</a></center></body></html> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Part IV. For OpenACS Platform Developers</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="index.html" title="OpenACS Core Documentation"><link rel="previous" href="i18n-translators.html" title="Translator's Guide"><link rel="next" href="kernel-doc.html" title="Chapter 15. Kernel Documentation"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="i18n-translators.html">Prev</a> </td><th width="60%" align="center"></th><td width="20%" align="right"> <a accesskey="n" href="kernel-doc.html">Next</a></td></tr></table><hr></div><div class="part" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="acs-plat-dev"></a>For OpenACS Platform Developers</h1></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>15. <a href="kernel-doc.html">Kernel Documentation</a></dt><dd><dl><dt><a href="kernel-overview.html">Overview</a></dt><dt><a href="object-system-requirements.html">Object Model Requirements</a></dt><dt><a href="permissions-requirements.html">Permissions Requirements</a></dt><dt><a href="permissions-design.html">Permissions Design</a></dt><dt><a href="groups-requirements.html">Groups Requirements</a></dt><dt><a href="groups-design.html">Groups Design</a></dt><dt><a href="subsites-requirements.html">Subsites Requirements</a></dt><dt><a href="subsites-design.html">Subsites Design Document</a></dt><dt><a href="apm-requirements.html">Package Manager Requirements</a></dt><dt><a href="apm-design.html">Package Manager Design</a></dt><dt><a href="db-api-detailed.html">Database Access API</a></dt><dt><a href="i18n-requirements.html">OpenACS Internationalization Requirements</a></dt><dt><a href="security-requirements.html">Security Requirements</a></dt><dt><a href="security-design.html">Security Design</a></dt><dt><a href="security-notes.html">Security Notes</a></dt><dt><a href="rp-requirements.html">Request Processor Requirements</a></dt><dt><a href="rp-design.html">Request Processor Design</a></dt><dt><a href="bootstrap-acs.html">Bootstrapping OpenACS</a></dt><dt><a href="ext-auth-requirements.html">External Authentication Requirements</a></dt></dl></dd><dt>16. <a href="releasing-openacs.html">Releasing OpenACS</a></dt><dd><dl><dt><a href="releasing-openacs-core.html">OpenACS Core and .LRN</a></dt><dt><a href="update-repository.html">How to Update the OpenACS.org repository</a></dt><dt><a href="releasing-package.html">How to package and release an OpenACS Package</a></dt><dt><a href="update-translations.html">How to Update the translations</a></dt></dl></dd></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="i18n-translators.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="kernel-doc.html">Next</a></td></tr><tr><td width="40%" align="left">Translator's Guide </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> Chapter 15. Kernel Documentation</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/acs-plat-dev.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/aolserver.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/aolserver.html,v diff -u -r1.48 -r1.49 --- openacs-4/packages/acs-core-docs/www/aolserver.html 13 Sep 2009 23:54:39 -0000 1.48 +++ openacs-4/packages/acs-core-docs/www/aolserver.html 17 Oct 2010 21:06:07 -0000 1.49 @@ -83,17 +83,17 @@ communicate with the database. There is one script each for Oracle and PostgreSQL. They don't conflict, so if you plan to use both databases, install both.</p><div class="itemizedlist"><ul type="disc"><li><p>Oracle</p><pre class="screen">[root aolserver]# <b class="userinput"><tt>cd /usr/local/aolserver/bin</tt></b> -[root bin]# <b class="userinput"><tt>cp /var/tmp/openacs-5.5.0/packages/acs-core-docs/www/files/nsd-oracle.txt ./nsd-oracle</tt></b> +[root bin]# <b class="userinput"><tt>cp /var/tmp/openacs-5.6.0/packages/acs-core-docs/www/files/nsd-oracle.txt ./nsd-oracle</tt></b> [root bin]# <b class="userinput"><tt>chmod 750 nsd-oracle</tt></b> [root bin]# <span class="action"><span class="action">cd /usr/local/aolserver/bin -cp /var/tmp/openacs-5.5.0/packages/acs-core-docs/www/files/nsd-oracle.txt ./nsd-oracle +cp /var/tmp/openacs-5.6.0/packages/acs-core-docs/www/files/nsd-oracle.txt ./nsd-oracle chmod 750 nsd-oracle</span></span></pre></li><li><p>PostgreSQL</p><pre class="screen">[root aolserver]# <b class="userinput"><tt>cd /usr/local/aolserver/bin</tt></b> -[root bin]# <b class="userinput"><tt>cp /var/tmp/openacs-5.5.0/packages/acs-core-docs/www/files/nsd-postgres.txt ./nsd-postgres</tt></b> +[root bin]# <b class="userinput"><tt>cp /var/tmp/openacs-5.6.0/packages/acs-core-docs/www/files/nsd-postgres.txt ./nsd-postgres</tt></b> [root bin]# <b class="userinput"><tt>chmod 755 nsd-postgres</tt></b> [root bin]# <span class="action"><span class="action">cd /usr/local/aolserver/bin -cp /var/tmp/openacs-5.5.0/packages/acs-core-docs/www/files/nsd-postgres.txt ./nsd-postgres +cp /var/tmp/openacs-5.6.0/packages/acs-core-docs/www/files/nsd-postgres.txt ./nsd-postgres chmod 755 nsd-postgres</span></span></pre></li></ul></div></li><li><a name="install-tdom"></a><p><b>Install tDOM. </b>Download the <a href="individual-programs.html#source-tdom">tDOM tarball</a>, unpack it, adjust the configuration file to match our patched distribution of aolserver, and compile it.</p><pre class="screen">[root root]# <b class="userinput"><tt>cd /usr/local/src</tt></b> Index: openacs-4/packages/acs-core-docs/www/aolserver4.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/aolserver4.html,v diff -u -r1.23 -r1.24 --- openacs-4/packages/acs-core-docs/www/aolserver4.html 13 Sep 2009 23:54:39 -0000 1.23 +++ openacs-4/packages/acs-core-docs/www/aolserver4.html 17 Oct 2010 21:06:07 -0000 1.24 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Install AOLserver 4</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="complete-install.html" title="Chapter 3. Complete Installation"><link rel="previous" href="postgres.html" title="Install PostgreSQL"><link rel="next" href="openacs.html" title="Install OpenACS 5.5.0"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="postgres.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Complete Installation</th><td width="20%" align="right"> <a accesskey="n" href="openacs.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="aolserver4"></a>Install AOLserver 4</h2></div></div><div></div></div><div class="authorblurb"><p>by <a href="mailto:sussdorff@sussdorff.de" target="_top">Malte Sussdorff</a></p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Install AOLserver 4</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="complete-install.html" title="Chapter 3. Complete Installation"><link rel="previous" href="postgres.html" title="Install PostgreSQL"><link rel="next" href="openacs.html" title="Install OpenACS 5.6.0"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="postgres.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Complete Installation</th><td width="20%" align="right"> <a accesskey="n" href="openacs.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="aolserver4"></a>Install AOLserver 4</h2></div></div><div></div></div><div class="authorblurb"><p>by <a href="mailto:sussdorff@sussdorff.de" target="_top">Malte Sussdorff</a></p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><div class="orderedlist"><ol type="1"><li><p><b>Check suitability of previously installed TCL. </b>Start tcl (type <b class="userinput"><tt>tclsh</tt></b> or find it using <b class="userinput"><tt>which tclsh</tt></b>). @@ -100,16 +100,16 @@ maintainers: this should be moved to the next page and integrated into the text there) </p><div class="itemizedlist"><ul type="disc"><li><p>Oracle</p><pre class="screen">[root aolserver]# <b class="userinput"><tt>cd /usr/local/aolserver/bin</tt></b> -[root bin]# <b class="userinput"><tt>cp /tmp/openacs-5.5.0/packages/acs-core-docs/www/files/nsd-oracle.txt ./nsd-oracle</tt></b> +[root bin]# <b class="userinput"><tt>cp /tmp/openacs-5.6.0/packages/acs-core-docs/www/files/nsd-oracle.txt ./nsd-oracle</tt></b> [root bin]# <b class="userinput"><tt>chmod 750 nsd-oracle</tt></b> [root bin]# <span class="action"><span class="action">cd /usr/local/aolserver/bin -cp /var/tmp/openacs-5.5.0/packages/acs-core-docs/www/files/nsd-oracle.txt ./nsd-oracle +cp /var/tmp/openacs-5.6.0/packages/acs-core-docs/www/files/nsd-oracle.txt ./nsd-oracle chmod 750 nsd-oracle</span></span></pre></li><li><p>PostgreSQL</p><pre class="screen">[root aolserver]# <b class="userinput"><tt>cd /usr/local/aolserver/bin</tt></b> -[root bin]# <b class="userinput"><tt>cp /var/tmp/openacs-5.5.0/packages/acs-core-docs/www/files/nsd-postgres.txt ./nsd-postgres</tt></b> +[root bin]# <b class="userinput"><tt>cp /var/tmp/openacs-5.6.0/packages/acs-core-docs/www/files/nsd-postgres.txt ./nsd-postgres</tt></b> [root bin]# <b class="userinput"><tt>chmod 755 nsd-postgres</tt></b> [root bin]# <span class="action"><span class="action">cd /usr/local/aolserver/bin -cp /var/tmp/openacs-5.5.0/packages/acs-core-docs/www/files/nsd-postgres.txt ./nsd-postgres +cp /var/tmp/openacs-5.6.0/packages/acs-core-docs/www/files/nsd-postgres.txt ./nsd-postgres chmod 755 nsd-postgres</span></span></pre></li></ul></div><p>You may need to edit these scripts if you are not using - /usr/local/aolserver as the directory of Aolserver4.</p></li><li><p><b>Change startup script (optional). </b>If you want to run AOLserver on a port below 1024 (normally, for a webserver you will use 80), you will have to change the <tt class="computeroutput">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">service0</span></span>/etc/daemontools/run</tt> script according to the documentation found there (namely: Add the -b <span class="replaceable"><span class="replaceable">yourip:yourport</span></span> switch)</p></li><li><p><a href="aolserver.html#install-aolserver-permissions">Test AOLserver</a>.</p></li></ol></div><div class="cvstag">($Id$)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="postgres.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="openacs.html">Next</a></td></tr><tr><td width="40%" align="left">Install PostgreSQL </td><td width="20%" align="center"><a accesskey="u" href="complete-install.html">Up</a></td><td width="40%" align="right"> Install OpenACS 5.5.0</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/aolserver4.html#comments">View comments on this page at openacs.org</a></center></body></html> + /usr/local/aolserver as the directory of Aolserver4.</p></li><li><p><b>Change startup script (optional). </b>If you want to run AOLserver on a port below 1024 (normally, for a webserver you will use 80), you will have to change the <tt class="computeroutput">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">service0</span></span>/etc/daemontools/run</tt> script according to the documentation found there (namely: Add the -b <span class="replaceable"><span class="replaceable">yourip:yourport</span></span> switch)</p></li><li><p><a href="aolserver.html#install-aolserver-permissions">Test AOLserver</a>.</p></li></ol></div><div class="cvstag">($Id$)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="postgres.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="openacs.html">Next</a></td></tr><tr><td width="40%" align="left">Install PostgreSQL </td><td width="20%" align="center"><a accesskey="u" href="complete-install.html">Up</a></td><td width="40%" align="right"> Install OpenACS 5.6.0</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/aolserver4.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/apm-design.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/apm-design.html,v diff -u -r1.36 -r1.37 --- openacs-4/packages/acs-core-docs/www/apm-design.html 13 Sep 2009 23:54:39 -0000 1.36 +++ openacs-4/packages/acs-core-docs/www/apm-design.html 17 Oct 2010 21:06:07 -0000 1.37 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Package Manager Design</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 14. Kernel Documentation"><link rel="previous" href="apm-requirements.html" title="Package Manager Requirements"><link rel="next" href="i18n-requirements.html" title="OpenACS Internationalization Requirements"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="apm-requirements.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="i18n-requirements.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="apm-design"></a>Package Manager Design</h2></div></div><div></div></div><div class="authorblurb"><p>By Bryan Quinn</p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Package Manager Design</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 15. Kernel Documentation"><link rel="previous" href="apm-requirements.html" title="Package Manager Requirements"><link rel="next" href="db-api-detailed.html" title="Database Access API"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="apm-requirements.html">Prev</a> </td><th width="60%" align="center">Chapter 15. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="db-api-detailed.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="apm-design"></a>Package Manager Design</h2></div></div><div></div></div><div class="authorblurb"><p>By Bryan Quinn</p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="apm-design-essentials"></a>Essentials</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p><a href="/acs-admin/apm" target="_top">OpenACS Administrator directory</a></p></li><li><p><a href="apm-requirements.html">Package Manager Requirements</a></p></li><li><p><a href="packages.html">Packages</a></p></li><li><p><a href="../images/apm.pdf" target="_top">ER diagram</a></p></li><li><p>Tcl API </p><div class="itemizedlist"><ul type="circle"><li><p><a href="/api-doc/procs-file-view?path=packages%2facs%2dtcl%2ftcl%2fapm%2dprocs%2etcl" target="_top"> @@ -24,7 +24,7 @@ </p></li><li><p><span class="strong">OpenACS Services:</span> the aforementioned building blocks. Examples of services include the <a href="/doc/acs-content-repository" target="_top">OpenACS Content Repository</a>, the <a href="/doc/acs-templating" target="_top">OpenACS Templating -System</a>, and the <a href="kernel-doc.html" title="Chapter 14. Kernel Documentation">OpenACS Kernel</a>, which includes +System</a>, and the <a href="kernel-doc.html" title="Chapter 15. Kernel Documentation">OpenACS Kernel</a>, which includes APM.</p></li></ul></div><p>An installation of the OpenACS includes the OpenACS Kernel, some services that extend the kernel's functionality, and some applications intended for end-users. Packages function as individual pieces of <a href="subsites-design.html" title="Subsites Design Document">subsites</a>. A subsite can contain multiple @@ -541,4 +541,4 @@ all of this functionality in one interface and it can be confusing from a usability perspective.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="apm-design-authors"></a>Authors</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>System creator: Bryan Quinn, Jon Salz, Michael Yoon, Lars Pind, Todd Nightingale.</p></li><li><p>System owner: Bryan Quinn</p></li><li><p>Documentation author: Bryan Quinn, building from earlier versions by Jon -Salz, Michael Yoon, and Lars Pind.</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="apm-design-rev-history"></a>Revision History</h3></div></div><div></div></div><div class="informaltable"><table cellspacing="0" border="1"><colgroup><col><col><col><col></colgroup><tbody><tr><td><span class="strong">Document Revision #</span></td><td><span class="strong">Action Taken, Notes</span></td><td><span class="strong">When?</span></td><td><span class="strong">By Whom?</span></td></tr><tr><td>0.1</td><td>Creation</td><td>9/25/2000</td><td>Bryan Quinn</td></tr><tr><td>0.8</td><td>Ready for QA</td><td>9/29/2000</td><td>Bryan Quinn</td></tr><tr><td>0.9</td><td>Edited for ACS 4 Beta release</td><td>10/02/2000</td><td>Kai Wu</td></tr><tr><td>1.0</td><td>Edited for OpenACS 4.5 Beta release</td><td>03/02/2002</td><td>Roberto Mello</td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="apm-requirements.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="i18n-requirements.html">Next</a></td></tr><tr><td width="40%" align="left">Package Manager Requirements </td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right"> OpenACS Internationalization Requirements</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/apm-design.html#comments">View comments on this page at openacs.org</a></center></body></html> +Salz, Michael Yoon, and Lars Pind.</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="apm-design-rev-history"></a>Revision History</h3></div></div><div></div></div><div class="informaltable"><table cellspacing="0" border="1"><colgroup><col><col><col><col></colgroup><tbody><tr><td><span class="strong">Document Revision #</span></td><td><span class="strong">Action Taken, Notes</span></td><td><span class="strong">When?</span></td><td><span class="strong">By Whom?</span></td></tr><tr><td>0.1</td><td>Creation</td><td>9/25/2000</td><td>Bryan Quinn</td></tr><tr><td>0.8</td><td>Ready for QA</td><td>9/29/2000</td><td>Bryan Quinn</td></tr><tr><td>0.9</td><td>Edited for ACS 4 Beta release</td><td>10/02/2000</td><td>Kai Wu</td></tr><tr><td>1.0</td><td>Edited for OpenACS 4.5 Beta release</td><td>03/02/2002</td><td>Roberto Mello</td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="apm-requirements.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="db-api-detailed.html">Next</a></td></tr><tr><td width="40%" align="left">Package Manager Requirements </td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right"> Database Access API</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/apm-design.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/apm-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/apm-requirements.html,v diff -u -r1.32 -r1.33 --- openacs-4/packages/acs-core-docs/www/apm-requirements.html 13 Sep 2009 23:54:39 -0000 1.32 +++ openacs-4/packages/acs-core-docs/www/apm-requirements.html 17 Oct 2010 21:06:07 -0000 1.33 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Package Manager Requirements</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 14. Kernel Documentation"><link rel="previous" href="subsites-design.html" title="Subsites Design Document"><link rel="next" href="apm-design.html" title="Package Manager Design"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="subsites-design.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="apm-design.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="apm-requirements"></a>Package Manager Requirements</h2></div></div><div></div></div><div class="authorblurb"><p>By Bryan Quinn and Todd Nightingale</p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Package Manager Requirements</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 15. Kernel Documentation"><link rel="previous" href="subsites-design.html" title="Subsites Design Document"><link rel="next" href="apm-design.html" title="Package Manager Design"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="subsites-design.html">Prev</a> </td><th width="60%" align="center">Chapter 15. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="apm-design.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="apm-requirements"></a>Package Manager Requirements</h2></div></div><div></div></div><div class="authorblurb"><p>By Bryan Quinn and Todd Nightingale</p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="apm-requirements-intro"></a>Introduction</h3></div></div><div></div></div><p>The following is a requirements document for the OpenACS Package Manager Index: openacs-4/packages/acs-core-docs/www/automated-backup.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/automated-backup.html,v diff -u -r1.10 -r1.11 --- openacs-4/packages/acs-core-docs/www/automated-backup.html 12 Jul 2009 01:08:24 -0000 1.10 +++ openacs-4/packages/acs-core-docs/www/automated-backup.html 17 Oct 2010 21:06:07 -0000 1.11 @@ -1,4 +1,4 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Automated Backup</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.0"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="backup-recovery.html" title="Chapter 8. Backup and Recovery"><link rel="previous" href="snapshot-backup.html" title="Manual backup and recovery"><link rel="next" href="backups-with-cvs.html" title="Using CVS for backup-recovery"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="snapshot-backup.html">Prev</a> </td><th width="60%" align="center">Chapter 8. Backup and Recovery</th><td width="20%" align="right"> <a accesskey="n" href="backups-with-cvs.html">Next</a></td></tr></table><hr></div><div class="sect1" title="Automated Backup"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="automated-backup"></a>Automated Backup</h2></div></div></div><p>The recommended backup strategy for a production sit is to use an automated script which first backs up the database to a file in <code class="filename">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/database-backup</code> and then backs up all of <code class="filename">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></code> to a single zip file, and then copies that zip file to another computer.</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Make sure that the manual backup process described above works.</p></li><li class="listitem"><p>Customize the default backup script. Edit <code class="filename">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/etc/backup.sh</code> with your specific parameters.</p></li><li class="listitem"><p> - Make sure the file is executable:</p><pre class="programlisting">chmod +x backup.sh</pre></li><li class="listitem"><p> - Set this file to run automatically by adding a line to root's crontab. (Typically, with <code class="computeroutput">export EDITOR=emacs; crontab -e</code>.) This example runs the backup script at 1:30 am every day.</p><pre class="programlisting">30 1 * * * sh /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/etc/backup.sh</pre></li></ol></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="snapshot-backup.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="backups-with-cvs.html">Next</a></td></tr><tr><td width="40%" align="left">Manual backup and recovery </td><td width="20%" align="center"><a accesskey="u" href="backup-recovery.html">Up</a></td><td width="40%" align="right"> Using CVS for backup-recovery</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/automated-backup.html#comments">View comments on this page at openacs.org</a></center></body></html> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Automated Backup</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="backup-recovery.html" title="Chapter 8. Backup and Recovery"><link rel="previous" href="snapshot-backup.html" title="Manual backup and recovery"><link rel="next" href="backups-with-cvs.html" title="Using CVS for backup-recovery"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="snapshot-backup.html">Prev</a> </td><th width="60%" align="center">Chapter 8. Backup and Recovery</th><td width="20%" align="right"> <a accesskey="n" href="backups-with-cvs.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="automated-backup"></a>Automated Backup</h2></div></div><div></div></div><p>The recommended backup strategy for a production sit is to use an automated script which first backs up the database to a file in <tt class="filename">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/database-backup</tt> and then backs up all of <tt class="filename">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></tt> to a single zip file, and then copies that zip file to another computer.</p><div class="orderedlist"><ol type="1"><li><p>Make sure that the manual backup process described above works.</p></li><li><p>Customize the default backup script. Edit <tt class="filename">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/etc/backup.sh</tt> with your specific parameters.</p></li><li><p> + Make sure the file is executable:</p><pre class="programlisting">chmod +x backup.sh</pre></li><li><p> + Set this file to run automatically by adding a line to root's crontab. (Typically, with <tt class="computeroutput">export EDITOR=emacs; crontab -e</tt>.) This example runs the backup script at 1:30 am every day.</p><pre class="programlisting">30 1 * * * sh /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/etc/backup.sh</pre></li></ol></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="snapshot-backup.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="backups-with-cvs.html">Next</a></td></tr><tr><td width="40%" align="left">Manual backup and recovery </td><td width="20%" align="center"><a accesskey="u" href="backup-recovery.html">Up</a></td><td width="40%" align="right"> Using CVS for backup-recovery</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/automated-backup.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/automated-testing-best-practices.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/automated-testing-best-practices.html,v diff -u -r1.24 -r1.25 --- openacs-4/packages/acs-core-docs/www/automated-testing-best-practices.html 13 Sep 2009 23:54:39 -0000 1.24 +++ openacs-4/packages/acs-core-docs/www/automated-testing-best-practices.html 17 Oct 2010 21:06:07 -0000 1.25 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Automated Testing</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="eng-standards.html" title="Chapter 11. Engineering Standards"><link rel="previous" href="variables.html" title="Variables"><link rel="next" href="doc-standards.html" title="Chapter 12. Documentation Standards"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="variables.html">Prev</a> </td><th width="60%" align="center">Chapter 11. Engineering Standards</th><td width="20%" align="right"> <a accesskey="n" href="doc-standards.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="automated-testing-best-practices"></a>Automated Testing</h2></div></div><div></div></div><div class="authorblurb"><p>By <a href="mailto:davis@xarg.net" target="_top">Jeff Davis</a></p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Automated Testing</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="eng-standards.html" title="Chapter 12. Engineering Standards"><link rel="previous" href="variables.html" title="Variables"><link rel="next" href="doc-standards.html" title="Chapter 13. Documentation Standards"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="variables.html">Prev</a> </td><th width="60%" align="center">Chapter 12. Engineering Standards</th><td width="20%" align="right"> <a accesskey="n" href="doc-standards.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="automated-testing-best-practices"></a>Automated Testing</h2></div></div><div></div></div><div class="authorblurb"><p>By <a href="mailto:davis@xarg.net" target="_top">Jeff Davis</a></p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><p>Best practices in writing OpenACS automated tests</p><div class="itemizedlist"><ul type="disc"><li><p><b>Special characters in Tcl. </b> @@ -25,4 +25,4 @@ Make sure that if a duplicate name is entered that there is a reasonable error rather than a server error. Check for insert, move, copy, and rename. -</p></li></ul></div><div class="cvstag">($Id$)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="variables.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="doc-standards.html">Next</a></td></tr><tr><td width="40%" align="left">Variables </td><td width="20%" align="center"><a accesskey="u" href="eng-standards.html">Up</a></td><td width="40%" align="right"> Chapter 12. Documentation Standards</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/automated-testing-best-practices.html#comments">View comments on this page at openacs.org</a></center></body></html> +</p></li></ul></div><div class="cvstag">($Id$)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="variables.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="doc-standards.html">Next</a></td></tr><tr><td width="40%" align="left">Variables </td><td width="20%" align="center"><a accesskey="u" href="eng-standards.html">Up</a></td><td width="40%" align="right"> Chapter 13. Documentation Standards</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/automated-testing-best-practices.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/backup-recovery.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/backup-recovery.html,v diff -u -r1.40 -r1.41 --- openacs-4/packages/acs-core-docs/www/backup-recovery.html 12 Jul 2009 01:08:24 -0000 1.40 +++ openacs-4/packages/acs-core-docs/www/backup-recovery.html 17 Oct 2010 21:06:07 -0000 1.41 @@ -1,12 +1,12 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter 8. Backup and Recovery</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.0"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="acs-admin.html" title="Part II. Administrator's Guide"><link rel="previous" href="install-next-nightly-vacuum.html" title="Vacuum Postgres nightly"><link rel="next" href="install-next-backups.html" title="Backup Strategy"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="install-next-nightly-vacuum.html">Prev</a> </td><th width="60%" align="center">Part II. Administrator's Guide</th><td width="20%" align="right"> <a accesskey="n" href="install-next-backups.html">Next</a></td></tr></table><hr></div><div class="chapter" title="Chapter 8. Backup and Recovery"><div class="titlepage"><div><div><h2 class="title"><a name="backup-recovery"></a>Chapter 8. Backup and Recovery</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="install-next-backups.html">Backup Strategy</a></span></dt><dt><span class="sect1"><a href="snapshot-backup.html">Manual backup and recovery</a></span></dt><dt><span class="sect1"><a href="automated-backup.html">Automated Backup</a></span></dt><dt><span class="sect1"><a href="backups-with-cvs.html">Using CVS for backup-recovery</a></span></dt></dl></div><div class="authorblurb"><div class="cvstag">($Id$)</div><p>By <a class="ulink" href="mailto:dhogaza@pacifier.com" target="_top">Don Baccus</a> with additions - by <a class="ulink" href="mailto:joel@aufrecht.org" target="_top">Joel Aufrecht</a></p><p>We will cover some basic backup and recovery strategies. These are intended to +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter 8. Backup and Recovery</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="acs-admin.html" title="Part II. Administrator's Guide"><link rel="previous" href="install-next-nightly-vacuum.html" title="Vacuum Postgres nightly"><link rel="next" href="install-next-backups.html" title="Backup Strategy"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="install-next-nightly-vacuum.html">Prev</a> </td><th width="60%" align="center">Part II. Administrator's Guide</th><td width="20%" align="right"> <a accesskey="n" href="install-next-backups.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="backup-recovery"></a>Chapter 8. Backup and Recovery</h2></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="install-next-backups.html">Backup Strategy</a></dt><dt><a href="snapshot-backup.html">Manual backup and recovery</a></dt><dt><a href="automated-backup.html">Automated Backup</a></dt><dt><a href="backups-with-cvs.html">Using CVS for backup-recovery</a></dt></dl></div><div class="authorblurb"><div class="cvstag">($Id$)</div><p>By <a href="mailto:dhogaza@pacifier.com" target="_top">Don Baccus</a> with additions + by <a href="mailto:joel@aufrecht.org" target="_top">Joel Aufrecht</a></p><p>We will cover some basic backup and recovery strategies. These are intended to be robust but simple enough to set up. For a large scale production site you would probably need to create your own backup strategies (in particular full dumps from oracle, while easy to set up, are far from the best solution). </p><p>There are three basic things which need to be backed up, the database data, the server source tree, and the acs-content-repository (which is in the server source tree).</p><p> - </p><div class="figure"><a name="id537767"></a><p class="title"><b>Figure 8.1. Backup and Recovery Strategy</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/backup.png" align="middle" alt="Backup and Recovery Strategy"></div></div></div><p><br class="figure-break"> + </p><div class="figure"><a name="id2947204"></a><p class="title"><b>Figure 8.1. Backup and Recovery Strategy</b></p><div class="mediaobject" align="center"><img src="../images/backup.png" align="middle" alt="Backup and Recovery Strategy"></div></div><p> </p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. Index: openacs-4/packages/acs-core-docs/www/backups-with-cvs.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/backups-with-cvs.html,v diff -u -r1.10 -r1.11 --- openacs-4/packages/acs-core-docs/www/backups-with-cvs.html 12 Jul 2009 01:08:24 -0000 1.10 +++ openacs-4/packages/acs-core-docs/www/backups-with-cvs.html 17 Oct 2010 21:06:07 -0000 1.11 @@ -1,31 +1,31 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Using CVS for backup-recovery</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.0"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="backup-recovery.html" title="Chapter 8. Backup and Recovery"><link rel="previous" href="automated-backup.html" title="Automated Backup"><link rel="next" href="install-redhat.html" title="Appendix A. Install Red Hat 8/9"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="automated-backup.html">Prev</a> </td><th width="60%" align="center">Chapter 8. Backup and Recovery</th><td width="20%" align="right"> <a accesskey="n" href="install-redhat.html">Next</a></td></tr></table><hr></div><div class="sect1" title="Using CVS for backup-recovery"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="backups-with-cvs"></a>Using CVS for backup-recovery</h2></div></div></div><p>CVS-only backup is often appropriate for development sites. If you are already using CVS and your data is not important, you probably don't +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Using CVS for backup-recovery</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="backup-recovery.html" title="Chapter 8. Backup and Recovery"><link rel="previous" href="automated-backup.html" title="Automated Backup"><link rel="next" href="install-redhat.html" title="Appendix A. Install Red Hat 8/9"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="automated-backup.html">Prev</a> </td><th width="60%" align="center">Chapter 8. Backup and Recovery</th><td width="20%" align="right"> <a accesskey="n" href="install-redhat.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="backups-with-cvs"></a>Using CVS for backup-recovery</h2></div></div><div></div></div><p>CVS-only backup is often appropriate for development sites. If you are already using CVS and your data is not important, you probably don't need to do anything to back up your files. Just make sure that your current work is checked into the system. You can then roll back based on date - note the current system time, down to the minute. For maximum safety, you can apply a tag to your current - files. You will still need to back up your database.</p><p> Note that, if you did the CVS options in this document, the <code class="filename">/var/lib/aolserver/$OPENACS_SERVICE_NAME/etc</code> directory is not included in cvs and you may want to add it.</p><pre class="screen">[root root]# <strong class="userinput"><code>su - $OPENACS_SERVICE_NAME</code></strong> -[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <strong class="userinput"><code>cd /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></code></strong> -[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <strong class="userinput"><code>cvs commit -m "last-minute commits before upgrade to 4.6"</code></strong> + files. You will still need to back up your database.</p><p> Note that, if you did the CVS options in this document, the <tt class="filename">/var/lib/aolserver/$OPENACS_SERVICE_NAME/etc</tt> directory is not included in cvs and you may want to add it.</p><pre class="screen">[root root]# <b class="userinput"><tt>su - $OPENACS_SERVICE_NAME</tt></b> +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <b class="userinput"><tt>cd /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></tt></b> +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <b class="userinput"><tt>cvs commit -m "last-minute commits before upgrade to 4.6"</tt></b> cvs commit: Examining . cvs commit: Examining bin <span class="emphasis"><em>(many lines omitted)</em></span> -[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <strong class="userinput"><code>cvs tag before_upgrade_to_4_6</code></strong> +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <b class="userinput"><tt>cvs tag before_upgrade_to_4_6</tt></b> cvs server: Tagging bin T bin/acs-4-0-publish.sh T bin/ad-context-server.pl (many lines omitted) -[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <strong class="userinput"><code>exit</code></strong> +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <b class="userinput"><tt>exit</tt></b> [root root]# <span class="action"><span class="action">su - $OPENACS_SERVICE_NAME cd /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span> -cvs commit -m "last-minute commits before upgrade to 4.6" +cvs commit -m "last-minute commits before upgrade to 4.6" cvs tag before_upgrade_to_4_6 -exit</span></span></pre><p>To restore files from a cvs tag such as the one used above:</p><pre class="screen">[root root]# <strong class="userinput"><code>su - $OPENACS_SERVICE_NAME</code></strong> -[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <strong class="userinput"><code>cd /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></code></strong> -[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <strong class="userinput"><code>cvs up -r current</code></strong> -[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <strong class="userinput"><code>exit</code></strong> +exit</span></span></pre><p>To restore files from a cvs tag such as the one used above:</p><pre class="screen">[root root]# <b class="userinput"><tt>su - $OPENACS_SERVICE_NAME</tt></b> +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <b class="userinput"><tt>cd /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></tt></b> +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <b class="userinput"><tt>cvs up -r current</tt></b> +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <b class="userinput"><tt>exit</tt></b> <span class="action"><span class="action">su - $OPENACS_SERVICE_NAME cd /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span> cvs up -r current</span></span></pre></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="automated-backup.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="install-redhat.html">Next</a></td></tr><tr><td width="40%" align="left">Automated Backup </td><td width="20%" align="center"><a accesskey="u" href="backup-recovery.html">Up</a></td><td width="40%" align="right"> Appendix A. Install Red Hat 8/9</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/backups-with-cvs.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/bootstrap-acs.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/bootstrap-acs.html,v diff -u -r1.45 -r1.46 --- openacs-4/packages/acs-core-docs/www/bootstrap-acs.html 13 Sep 2009 23:54:39 -0000 1.45 +++ openacs-4/packages/acs-core-docs/www/bootstrap-acs.html 17 Oct 2010 21:06:07 -0000 1.46 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Bootstrapping OpenACS</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 14. Kernel Documentation"><link rel="previous" href="tcl-doc.html" title="Documenting Tcl Files: Page Contracts and Libraries"><link rel="next" href="ext-auth-requirements.html" title="External Authentication Requirements"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tcl-doc.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="ext-auth-requirements.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="bootstrap-acs"></a>Bootstrapping OpenACS</h2></div></div><div></div></div><div class="authorblurb"><p>By <a href="mailto:jsalz@mit.edu" target="_top">Jon Salz</a> </p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Bootstrapping OpenACS</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 15. Kernel Documentation"><link rel="previous" href="rp-design.html" title="Request Processor Design"><link rel="next" href="ext-auth-requirements.html" title="External Authentication Requirements"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="rp-design.html">Prev</a> </td><th width="60%" align="center">Chapter 15. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="ext-auth-requirements.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="bootstrap-acs"></a>Bootstrapping OpenACS</h2></div></div><div></div></div><div class="authorblurb"><p>By <a href="mailto:jsalz@mit.edu" target="_top">Jon Salz</a> </p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><div class="itemizedlist"><ul type="disc"><li><p>Tcl code: /tcl/0-acs-init.tcl and /packages/acs-kernel/bootstrap.tcl</p></li></ul></div><p>This document describes the startup (bootstrapping) process for an AOLserver @@ -86,4 +86,4 @@ At this point, <tt class="computeroutput">bootstrap.tcl</tt> is done executing. AOLserver proceeds to source the remaining files in the <tt class="computeroutput">/tcl</tt> directory (i.e., unpackaged libraries) and begins listening for connections. -</p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="tcl-doc.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="ext-auth-requirements.html">Next</a></td></tr><tr><td width="40%" align="left">Documenting Tcl Files: Page Contracts and Libraries </td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right"> External Authentication Requirements</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/bootstrap-acs.html#comments">View comments on this page at openacs.org</a></center></body></html> +</p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="rp-design.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="ext-auth-requirements.html">Next</a></td></tr><tr><td width="40%" align="left">Request Processor Design </td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right"> External Authentication Requirements</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/bootstrap-acs.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/complete-install.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/complete-install.html,v diff -u -r1.21 -r1.22 --- openacs-4/packages/acs-core-docs/www/complete-install.html 13 Sep 2009 23:54:39 -0000 1.21 +++ openacs-4/packages/acs-core-docs/www/complete-install.html 17 Oct 2010 21:06:07 -0000 1.22 @@ -1,2 +1,2 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter 3. Complete Installation</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="acs-admin.html" title="Part II. Administrator's Guide"><link rel="previous" href="individual-programs.html" title="Prerequisite Software"><link rel="next" href="unix-installation.html" title="Install a Unix-like system and supporting software"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="individual-programs.html">Prev</a> </td><th width="60%" align="center">Part II. Administrator's Guide</th><td width="20%" align="right"> <a accesskey="n" href="unix-installation.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="complete-install"></a>Chapter 3. Complete Installation</h2></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="unix-installation.html">Install a Unix-like system and supporting software</a></dt><dt><a href="oracle.html">Install Oracle 8.1.7</a></dt><dt><a href="postgres.html">Install PostgreSQL</a></dt><dt><a href="aolserver4.html">Install AOLserver 4</a></dt><dt><a href="openacs.html">Install OpenACS 5.5.0</a></dt><dt><a href="win2k-installation.html">OpenACS Installation Guide for Windows2000</a></dt><dt><a href="mac-installation.html">OpenACS Installation Guide for Mac OS X</a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="individual-programs.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="unix-installation.html">Next</a></td></tr><tr><td width="40%" align="left">Prerequisite Software </td><td width="20%" align="center"><a accesskey="u" href="acs-admin.html">Up</a></td><td width="40%" align="right"> Install a Unix-like system and supporting software</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/complete-install.html#comments">View comments on this page at openacs.org</a></center></body></html> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter 3. Complete Installation</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="acs-admin.html" title="Part II. Administrator's Guide"><link rel="previous" href="individual-programs.html" title="Prerequisite Software"><link rel="next" href="unix-installation.html" title="Install a Unix-like system and supporting software"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="individual-programs.html">Prev</a> </td><th width="60%" align="center">Part II. Administrator's Guide</th><td width="20%" align="right"> <a accesskey="n" href="unix-installation.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="complete-install"></a>Chapter 3. Complete Installation</h2></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="unix-installation.html">Install a Unix-like system and supporting software</a></dt><dt><a href="oracle.html">Install Oracle 8.1.7</a></dt><dt><a href="postgres.html">Install PostgreSQL</a></dt><dt><a href="aolserver4.html">Install AOLserver 4</a></dt><dt><a href="openacs.html">Install OpenACS 5.6.0</a></dt><dt><a href="win2k-installation.html">OpenACS Installation Guide for Windows2000</a></dt><dt><a href="mac-installation.html">OpenACS Installation Guide for Mac OS X</a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="individual-programs.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="unix-installation.html">Next</a></td></tr><tr><td width="40%" align="left">Prerequisite Software </td><td width="20%" align="center"><a accesskey="u" href="acs-admin.html">Up</a></td><td width="40%" align="right"> Install a Unix-like system and supporting software</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/complete-install.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/configuring-configuring-packages.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/configuring-configuring-packages.html,v diff -u -r1.6 -r1.7 --- openacs-4/packages/acs-core-docs/www/configuring-configuring-packages.html 13 Sep 2009 23:54:39 -0000 1.6 +++ openacs-4/packages/acs-core-docs/www/configuring-configuring-packages.html 17 Oct 2010 21:06:07 -0000 1.7 @@ -2,7 +2,7 @@ <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Configuring an OpenACS package</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="configuring-new-site.html" title="Chapter 4. Configuring a new OpenACS Site"><link rel="previous" href="configuring-mounting-packages.html" title="Mounting OpenACS packages"><link rel="next" href="configuring-configuring-permissions.html" title="Setting Permissions on an OpenACS package"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="configuring-mounting-packages.html">Prev</a> </td><th width="60%" align="center">Chapter 4. Configuring a new OpenACS Site</th><td width="20%" align="right"> <a accesskey="n" href="configuring-configuring-permissions.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="configuring-configuring-packages"></a>Configuring an OpenACS package</h2></div></div><div></div></div><div class="authorblurb"><p>by <a href="mailto:jade@rubick.com" target="_top">Jade Rubick</a></p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. - </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2918645"></a>Configuring an OpenACS package</h3></div></div><div></div></div><p>After you've installed and mounted your package, you can + </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2944552"></a>Configuring an OpenACS package</h3></div></div><div></div></div><p>After you've installed and mounted your package, you can configure each instance to act as you would like. </p><p>This is done from the Applications page. Log in, go to the Admin or Control Panel, click on the subsite the application is in, and click on Applications. If you click on the 'Parameters' Index: openacs-4/packages/acs-core-docs/www/configuring-configuring-permissions.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/configuring-configuring-permissions.html,v diff -u -r1.6 -r1.7 --- openacs-4/packages/acs-core-docs/www/configuring-configuring-permissions.html 13 Sep 2009 23:54:39 -0000 1.6 +++ openacs-4/packages/acs-core-docs/www/configuring-configuring-permissions.html 17 Oct 2010 21:06:07 -0000 1.7 @@ -2,7 +2,7 @@ <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Setting Permissions on an OpenACS package</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="configuring-new-site.html" title="Chapter 4. Configuring a new OpenACS Site"><link rel="previous" href="configuring-configuring-packages.html" title="Configuring an OpenACS package"><link rel="next" href="how-do-I.html" title="How Do I?"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="configuring-configuring-packages.html">Prev</a> </td><th width="60%" align="center">Chapter 4. Configuring a new OpenACS Site</th><td width="20%" align="right"> <a accesskey="n" href="how-do-I.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="configuring-configuring-permissions"></a>Setting Permissions on an OpenACS package</h2></div></div><div></div></div><div class="authorblurb"><p>by <a href="mailto:jade@rubick.com" target="_top">Jade Rubick</a></p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. - </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2923380"></a>Setting Permission on an OpenACS package</h3></div></div><div></div></div><p>After you've installed and mounted your package, you can + </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2968560"></a>Setting Permission on an OpenACS package</h3></div></div><div></div></div><p>After you've installed and mounted your package, you can configure each instance to act as you would like. </p><p>This is done from the Applications page. Log in, go to the Admin or Control Panel, click on the subsite the application is in, and click on Applications. If you click on the 'Permissions' Index: openacs-4/packages/acs-core-docs/www/configuring-install-packages.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/configuring-install-packages.html,v diff -u -r1.6 -r1.7 --- openacs-4/packages/acs-core-docs/www/configuring-install-packages.html 13 Sep 2009 23:54:39 -0000 1.6 +++ openacs-4/packages/acs-core-docs/www/configuring-install-packages.html 17 Oct 2010 21:06:07 -0000 1.7 @@ -2,7 +2,7 @@ <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Installing OpenACS packages</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="configuring-new-site.html" title="Chapter 4. Configuring a new OpenACS Site"><link rel="previous" href="configuring-new-site.html" title="Chapter 4. Configuring a new OpenACS Site"><link rel="next" href="configuring-mounting-packages.html" title="Mounting OpenACS packages"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="configuring-new-site.html">Prev</a> </td><th width="60%" align="center">Chapter 4. Configuring a new OpenACS Site</th><td width="20%" align="right"> <a accesskey="n" href="configuring-mounting-packages.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="configuring-install-packages"></a>Installing OpenACS packages</h2></div></div><div></div></div><div class="authorblurb"><p>by <a href="mailto:jade@rubick.com" target="_top">Jade Rubick</a></p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. - </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2970184"></a>Installing OpenACS packages</h3></div></div><div></div></div><p>An OpenACS package extends your website and lets it do + </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2912365"></a>Installing OpenACS packages</h3></div></div><div></div></div><p>An OpenACS package extends your website and lets it do things it wasn't able to do before. You can have a weblog, a forums, a calendar, or even do sophisticated project-management via your website.</p><p>After you've installed OpenACS, you can congratulate Index: openacs-4/packages/acs-core-docs/www/configuring-mounting-packages.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/configuring-mounting-packages.html,v diff -u -r1.6 -r1.7 --- openacs-4/packages/acs-core-docs/www/configuring-mounting-packages.html 13 Sep 2009 23:54:39 -0000 1.6 +++ openacs-4/packages/acs-core-docs/www/configuring-mounting-packages.html 17 Oct 2010 21:06:07 -0000 1.7 @@ -2,7 +2,7 @@ <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Mounting OpenACS packages</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="configuring-new-site.html" title="Chapter 4. Configuring a new OpenACS Site"><link rel="previous" href="configuring-install-packages.html" title="Installing OpenACS packages"><link rel="next" href="configuring-configuring-packages.html" title="Configuring an OpenACS package"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="configuring-install-packages.html">Prev</a> </td><th width="60%" align="center">Chapter 4. Configuring a new OpenACS Site</th><td width="20%" align="right"> <a accesskey="n" href="configuring-configuring-packages.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="configuring-mounting-packages"></a>Mounting OpenACS packages</h2></div></div><div></div></div><div class="authorblurb"><p>by <a href="mailto:jade@rubick.com" target="_top">Jade Rubick</a></p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. - </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2953290"></a>Mounting OpenACS packages</h3></div></div><div></div></div><p>After you've installed your packages, you have to 'mount' + </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2931424"></a>Mounting OpenACS packages</h3></div></div><div></div></div><p>After you've installed your packages, you have to 'mount' them in order to make them appear on your website.</p><p>Make sure you are logged in, and then click on the 'Admin' or 'Control Panel' link to get to the Site-Wide Administration page (at /acs-admin). Click on the subsite you'd Index: openacs-4/packages/acs-core-docs/www/db-api-detailed.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/db-api-detailed.html,v diff -u -r1.44 -r1.45 --- openacs-4/packages/acs-core-docs/www/db-api-detailed.html 12 Jul 2009 01:08:26 -0000 1.44 +++ openacs-4/packages/acs-core-docs/www/db-api-detailed.html 17 Oct 2010 21:06:07 -0000 1.45 @@ -1,24 +1,24 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Database Access API</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.0"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 14. Kernel Documentation"><link rel="previous" href="apm-design.html" title="Package Manager Design"><link rel="next" href="i18n-requirements.html" title="OpenACS Internationalization Requirements"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="apm-design.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="i18n-requirements.html">Next</a></td></tr></table><hr></div><div class="sect1" title="Database Access API"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="db-api-detailed"></a>Database Access API</h2></div></div></div><div class="authorblurb"><p>By <a class="ulink" href="mailto:jsalz@mit.edu" target="_top">Jon Salz</a>. Revised and expanded by Roberto Mello (rmello at fslc dot usu dot edu), July 2002. </p> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Database Access API</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 15. Kernel Documentation"><link rel="previous" href="apm-design.html" title="Package Manager Design"><link rel="next" href="i18n-requirements.html" title="OpenACS Internationalization Requirements"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="apm-design.html">Prev</a> </td><th width="60%" align="center">Chapter 15. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="i18n-requirements.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="db-api-detailed"></a>Database Access API</h2></div></div><div></div></div><div class="authorblurb"><p>By <a href="mailto:jsalz@mit.edu" target="_top">Jon Salz</a>. Revised and expanded by Roberto Mello (rmello at fslc dot usu dot edu), July 2002. </p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. - </div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Tcl procedures: /packages/acs-kernel/10-database-procs.tcl</p></li><li class="listitem"><p>Tcl initialization: /packages/acs-kernel/database-init.tcl</p></li></ul></div><div class="sect2" title="The Big Picture"><div class="titlepage"><div><div><h3 class="title"><a name="db-api-detailed-bigpicture"></a>The Big Picture</h3></div></div></div><p> + </div><div class="itemizedlist"><ul type="disc"><li><p>Tcl procedures: /packages/acs-kernel/10-database-procs.tcl</p></li><li><p>Tcl initialization: /packages/acs-kernel/database-init.tcl</p></li></ul></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="db-api-detailed-bigpicture"></a>The Big Picture</h3></div></div><div></div></div><p> One of OpenACS's great strengths is that code written for it is very close to the database. It is very easy to interact with the database from anywhere within OpenACS. Our goal is to develop a coherent API for database access which makes this even easier. </p><p>There were four significant problems with the way OpenACS previously used the -database (i.e., directly through the <code class="computeroutput">ns_db</code> interface):</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p><span class="strong"><strong>Handle management</strong></span>. We required code to pass database +database (i.e., directly through the <tt class="computeroutput">ns_db</tt> interface):</p><div class="orderedlist"><ol type="1"><li><p><span class="strong">Handle management</span>. We required code to pass database handles around, and for routines which needed to perform database access but didn't receive a database handle as input, it was difficult to know from -which of the three "magic pools" (main, subquery, and log) to +which of the three "magic pools" (main, subquery, and log) to allocate a new handle. -</p></li><li class="listitem"><p><span class="strong"><strong>Nested transactions</strong></span>. In our Oracle driver, <code class="computeroutput">begin -transaction</code> really means "turn auto-commit mode off" and -<code class="computeroutput">end transaction</code> means "commit the current transaction and -turn auto-commit mode on." Thus if transactional code needed to call a +</p></li><li><p><span class="strong">Nested transactions</span>. In our Oracle driver, <tt class="computeroutput">begin +transaction</tt> really means "turn auto-commit mode off" and +<tt class="computeroutput">end transaction</tt> means "commit the current transaction and +turn auto-commit mode on." Thus if transactional code needed to call a routine which needed to operate transactionally, the semantics were non-obvious. Consider: </p><pre class="programlisting"> @@ -29,47 +29,47 @@ } db_transaction { -db_dml unused "insert into greeble(bork) values(33)" +db_dml unused "insert into greeble(bork) values(33)" foo $db -db_dml unused "insert into greeble(bork) values(50)" +db_dml unused "insert into greeble(bork) values(50)" } </pre><p> -This would insert greeble #33 and do all the stuff in <code class="computeroutput">foo</code> -transactionally, but the <code class="computeroutput">end transaction</code> in <code class="computeroutput">foo</code> +This would insert greeble #33 and do all the stuff in <tt class="computeroutput">foo</tt> +transactionally, but the <tt class="computeroutput">end transaction</tt> in <tt class="computeroutput">foo</tt> would actually cause a commit, and greeble #50 would later be inserted in auto-commit mode. This could cause subtle bugs: e.g., in the case that the -insert for greeble #50 failed, part of the "transaction" would have +insert for greeble #50 failed, part of the "transaction" would have already have been committed!. This is not a good thing. -</p></li><li class="listitem"><p><span class="strong"><strong>Unorthodox use of variables</strong></span>. The standard mechanism for +</p></li><li><p><span class="strong">Unorthodox use of variables</span>. The standard mechanism for mapping column values into variables involved the use of the -<code class="computeroutput">set_variables_after_query</code> routine, which relies on an uplevel -variable named <code class="computeroutput">selection</code> (likewise for -<code class="computeroutput">set_variables_after_subquery</code> and <code class="computeroutput">subselection</code>). +<tt class="computeroutput">set_variables_after_query</tt> routine, which relies on an uplevel +variable named <tt class="computeroutput">selection</tt> (likewise for +<tt class="computeroutput">set_variables_after_subquery</tt> and <tt class="computeroutput">subselection</tt>). -</p></li><li class="listitem"><p><span class="strong"><strong>Hard-coded reliance on Oracle</strong></span>. It's difficult to +</p></li><li><p><span class="strong">Hard-coded reliance on Oracle</span>. It's difficult to write code supporting various different databases (dynamically using the appropriate dialect based on the type of database being used, e.g., using -<code class="computeroutput">DECODE</code> on Oracle and <code class="computeroutput">CASE ... WHEN</code> on +<tt class="computeroutput">DECODE</tt> on Oracle and <tt class="computeroutput">CASE ... WHEN</tt> on Postgres).</p></li></ol></div><p> The Database Access API addresses the first three problems by: -</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>making use of database handles transparent</p></li><li class="listitem"><p>wrapping common database operations (including transaction management) in +</p><div class="orderedlist"><ol type="1"><li><p>making use of database handles transparent</p></li><li><p>wrapping common database operations (including transaction management) in Tcl control structures (this is, after all, what Tcl is good at!)</p></li></ol></div><p> It lays the groundwork for addressing the fourth problem by assigning each SQL statement a logical name. In a future version of the OpenACS Core, this API will translate logical statement names into actual SQL, based on the type of database in use. (To smooth the learning curve, we provide a facility for -writing SQL inline for a "default SQL dialect", which we assume to +writing SQL inline for a "default SQL dialect", which we assume to be Oracle for now.) </p><p>To be clear, SQL abstraction is <span class="emphasis"><em>not</em></span> fully implemented in OpenACS 3.3.1. The statement names supplied to each call are not used by the API at all. The API's design for SQL abstraction is in fact incomplete; -unresolved issues include:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>how to add <code class="computeroutput">WHERE</code> clause criteria dynamically</p></li><li class="listitem"><p>how to build a dynamic <code class="computeroutput">ORDER BY</code> clause (Ben Adida has a -proposed solution for this)</p></li><li class="listitem"><p>how to define a statement's formal interface (i.e., what bind -variables it expects, what columns its <code class="computeroutput">SELECT</code> clause must +unresolved issues include:</p><div class="itemizedlist"><ul type="disc"><li><p>how to add <tt class="computeroutput">WHERE</tt> clause criteria dynamically</p></li><li><p>how to build a dynamic <tt class="computeroutput">ORDER BY</tt> clause (Ben Adida has a +proposed solution for this)</p></li><li><p>how to define a statement's formal interface (i.e., what bind +variables it expects, what columns its <tt class="computeroutput">SELECT</tt> clause must contain if it's a query) without actually implementing the statement in a specific SQL dialect</p></li></ul></div><p> So why is the incremental change of adding statement naming to the API worth @@ -78,81 +78,81 @@ design. Therefore, we know that the effort will not be wasted, and taking advantage of the new support for bind variables will already require code that uses 3.3.0 version of the API to be updated. -</p></div><div class="sect2" title="The Bell Tolls for set_variables_after_query"><div class="titlepage"><div><div><h3 class="title"><a name="db-api-detailed-set-var-aft-query"></a>The Bell Tolls for <code class="computeroutput">set_variables_after_query</code></h3></div></div></div><p> -<code class="computeroutput">set_variables_after_query</code> is gone! (Well, it's still there, +</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="db-api-detailed-set-var-aft-query"></a>The Bell Tolls for <tt class="computeroutput">set_variables_after_query</tt></h3></div></div><div></div></div><p> +<tt class="computeroutput">set_variables_after_query</tt> is gone! (Well, it's still there, but you'll never need to use it.) The new API routines set local variables automatically. For instance: </p><pre class="programlisting"> -db_1row select_names "select first_names, last_name from users where user_id = [ad_get_user_id]" -doc_body_append "Hello, $first_names $last_name!" +db_1row select_names "select first_names, last_name from users where user_id = [ad_get_user_id]" +doc_body_append "Hello, $first_names $last_name!" </pre><p> -Like <code class="computeroutput">ns_db 1row</code>, this will bomb if the query doesn't return +Like <tt class="computeroutput">ns_db 1row</tt>, this will bomb if the query doesn't return any rows (no such user exists). If this isn't what you want, you can write: </p><pre class="programlisting"> -if { [db_0or1row select_names "select first_names, last_name from users where user_id = [ad_get_user_id]"] } { - doc_body_append "Hello, $first_names $last_name!" +if { [db_0or1row select_names "select first_names, last_name from users where user_id = [ad_get_user_id]"] } { + doc_body_append "Hello, $first_names $last_name!" } else { # Executed if the query returns no rows. - doc_body_append "There's no such user!" + doc_body_append "There's no such user!" } </pre><p> Selecting a bunch of rows is a lot prettier now: </p><pre class="programlisting"> -db_foreach select_names "select first_names, last_name from users" { - doc_body_append "Say hi to $first_names $last_name for me!<br>" +db_foreach select_names "select first_names, last_name from users" { + doc_body_append "Say hi to $first_names $last_name for me!<br>" } </pre><p> -That's right, <code class="computeroutput">db_foreach</code> is now like <code class="computeroutput">ns_db -select</code> plus a <code class="computeroutput">while</code> loop plus -<code class="computeroutput">set_variables_after_query</code> plus an <code class="computeroutput">if</code> statement +That's right, <tt class="computeroutput">db_foreach</tt> is now like <tt class="computeroutput">ns_db +select</tt> plus a <tt class="computeroutput">while</tt> loop plus +<tt class="computeroutput">set_variables_after_query</tt> plus an <tt class="computeroutput">if</tt> statement (containing code to be executed if no rows are returned). </p><pre class="programlisting"> -db_foreach select_names "select first_names, last_name from users where last_name like 'S%'" { - doc_body_append "Say hi to $first_names $last_name for me!<br>" +db_foreach select_names "select first_names, last_name from users where last_name like 'S%'" { + doc_body_append "Say hi to $first_names $last_name for me!<br>" } if_no_rows { - doc_body_append "There aren't any users with last names beginnings with S!" + doc_body_append "There aren't any users with last names beginnings with S!" } -</pre></div><div class="sect2" title="Handle Management"><div class="titlepage"><div><div><h3 class="title"><a name="db-api-detailed-handles"></a>Handle Management</h3></div></div></div><p> +</pre></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="db-api-detailed-handles"></a>Handle Management</h3></div></div><div></div></div><p> The new API keeps track of which handles are in use, and automatically allocates new handles when they are necessary (e.g., to perform subqueries while a select is active). For example: </p><pre class="programlisting"> -doc_body_append "<ul>" -db_foreach select_names "select first_names, last_name, user_id from users" { +doc_body_append "<ul>" +db_foreach select_names "select first_names, last_name, user_id from users" { # Automatically allocated a database handle from the main pool. - doc_body_append "<li>User $first_names $last_name\n<ul>" + doc_body_append "<li>User $first_names $last_name\n<ul>" - db_foreach select_groups "select group_id from user_group_map where user_id = $user_id" { + db_foreach select_groups "select group_id from user_group_map where user_id = $user_id" { # There's a selection in progress, so we allocated a database handle # from the subquery pool for this selection. - doc_body_append "<li>Member of group #$group_id.\n" + doc_body_append "<li>Member of group #$group_id.\n" } if_no_rows { # Not a member of any groups. - doc_body_append "<li>Not a member of any group.\n" + doc_body_append "<li>Not a member of any group.\n" } } -doc_body_append "</ul>" +doc_body_append "</ul>" db_release_unused_handles </pre><p> A new handle isn't actually allocated and released for every selection, of course - as a performance optimization, the API keeps old handles around -until <code class="computeroutput">db_release_unused_handles</code> is invoked (or the script +until <tt class="computeroutput">db_release_unused_handles</tt> is invoked (or the script terminates). -</p><p>Note that there is no analogue to <code class="computeroutput">ns_db gethandle</code> - the -handle is always automatically allocated the first time it's needed.</p></div><div class="sect2" title="Bind Variables"><div class="titlepage"><div><div><h3 class="title"><a name="db-api-detailed-bindvars"></a>Bind Variables</h3></div></div></div><p><span class="strong"><strong>Introduction</strong></span></p><p> +</p><p>Note that there is no analogue to <tt class="computeroutput">ns_db gethandle</tt> - the +handle is always automatically allocated the first time it's needed.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="db-api-detailed-bindvars"></a>Bind Variables</h3></div></div><div></div></div><p><span class="strong">Introduction</span></p><p> Most SQL statements require that the code invoking the statement pass along data associated with that statement, usually obtained from the user. For instance, in order to delete a WimpyPoint presentation, a Tcl script might @@ -162,10 +162,10 @@ delete from wp_presentations where presentation_id = <span class="emphasis"><em>some_presentation_id</em></span> </pre><p> -where <span class="emphasis"><em><code class="computeroutput">some_presentation_id</code></em></span> is a number which is a valid +where <span class="emphasis"><em><tt class="computeroutput">some_presentation_id</tt></em></span> is a number which is a valid presentation ID of the presentation I want to delete. It's easy to write code handling situations like this since SQL statements can include -<span class="strong"><strong>bind variables</strong></span>, which represent placeholders for actual +<span class="strong">bind variables</span>, which represent placeholders for actual data. A bind variable is specified as a colon followed by an identifier, so the statement above can be coded as: </p><pre class="programlisting"> @@ -176,43 +176,43 @@ </pre><p> When this SQL statement is invoked, the value for the bind variable -<code class="computeroutput">:some_presentation_id</code> is pulled from the Tcl variable -<code class="computeroutput">$some_presentation_id</code> (in the caller's environment). Note +<tt class="computeroutput">:some_presentation_id</tt> is pulled from the Tcl variable +<tt class="computeroutput">$some_presentation_id</tt> (in the caller's environment). Note that bind variables are not limited to one per statement; you can use an arbitrary number, and each will pull from the correspondingly named Tcl -variable. (Alternatively, you can also specify an list or <code class="computeroutput">ns_set</code> +variable. (Alternatively, you can also specify an list or <tt class="computeroutput">ns_set</tt> providing bind variables' values; see <span class="emphasis"><em>Usage</em></span>.) </p><p>The value of a bind variable is taken literally by the database driver, so there is never any need to put single-quotes around the value for a bind -variable, or to use <code class="computeroutput">db_quote</code> to escape single-quotes contained +variable, or to use <tt class="computeroutput">db_quote</tt> to escape single-quotes contained in the value. The following works fine, despite the apostrophe:</p><pre class="programlisting"> -set exclamation "That's all, folks!" +set exclamation "That's all, folks!" db_dml exclamation_insert { insert into exclamations(exclamation) values(:exclamation) } </pre><p>Note that you can use a bind variable in a SQL statement only where you could use a literal (a number or single-quoted string). Bind variables cannot be placeholders for things like SQL keywords, table names, or column names, -so the following will not work, even if <code class="computeroutput">$table_name</code> is set +so the following will not work, even if <tt class="computeroutput">$table_name</tt> is set properly:</p><pre class="programlisting"> select * from :table_name -</pre><p><span class="strong"><strong>Why Bind Variables Are Useful</strong></span></p><p> +</pre><p><span class="strong">Why Bind Variables Are Useful</span></p><p> Why bother with bind variables at all - why not just write the Tcl statement above like this: </p><pre class="programlisting"> -db_dml presentation_delete " +db_dml presentation_delete " delete from wp_presentations where presentation_id = $some_presentation_id -" +" </pre><p> (Note the use of double-quotes to allow the variable reference to -<code class="computeroutput">$some_presentation_id</code> to be interpolated in.) This will work, +<tt class="computeroutput">$some_presentation_id</tt> to be interpolated in.) This will work, but consider the case where some devious user causes -<code class="computeroutput">some_presentation_id</code> to be set to something like <code class="computeroutput">'3 or -1 = 1'</code>, which would result in the following statement being +<tt class="computeroutput">some_presentation_id</tt> to be set to something like <tt class="computeroutput">'3 or +1 = 1'</tt>, which would result in the following statement being executed: </p><pre class="programlisting"> @@ -222,24 +222,24 @@ This deletes every presentation in the database! Using bind variables eliminates this gaping security hole: since bind variable values are taken literally. Oracle will attempt to delete presentations whose presentation ID -is literally <code class="computeroutput">'3 or 1 = 1'</code> (i.e., no presentations, since -<code class="computeroutput">'3 or 1 = 1'</code> can't possibly be a valid integer -primary key for <code class="computeroutput">wp_presentations</code>. In general, since Oracle +is literally <tt class="computeroutput">'3 or 1 = 1'</tt> (i.e., no presentations, since +<tt class="computeroutput">'3 or 1 = 1'</tt> can't possibly be a valid integer +primary key for <tt class="computeroutput">wp_presentations</tt>. In general, since Oracle always considers the values of bind variables to be literals, it becomes more difficult for users to perform URL surgery to trick scripts into running dangerous queries and DML. -</p><p><span class="strong"><strong>Usage</strong></span></p><p>Every <code class="computeroutput">db_*</code> command accepting a SQL command as an argument -supports bind variables. You can either</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>specify the <code class="computeroutput">-bind</code> switch to provide a set with bind variable -values, or</p></li><li class="listitem"><p>specify the <code class="computeroutput">-bind</code> switch to explicitly provide a list of -bind variable names and values, or</p></li><li class="listitem"><p>not specify a bind variable list at all, in which case Tcl variables are +</p><p><span class="strong">Usage</span></p><p>Every <tt class="computeroutput">db_*</tt> command accepting a SQL command as an argument +supports bind variables. You can either</p><div class="itemizedlist"><ul type="disc"><li><p>specify the <tt class="computeroutput">-bind</tt> switch to provide a set with bind variable +values, or</p></li><li><p>specify the <tt class="computeroutput">-bind</tt> switch to explicitly provide a list of +bind variable names and values, or</p></li><li><p>not specify a bind variable list at all, in which case Tcl variables are used as bind variables.</p></li></ul></div><p> -The default behavior (i.e., if the <code class="computeroutput">-bind</code> switch is omitted) is +The default behavior (i.e., if the <tt class="computeroutput">-bind</tt> switch is omitted) is that these procedures expect to find local variables that correspond in name to the referenced bind variables, e.g.: </p><pre class="programlisting"> set user_id 123456 -set role "administrator" +set role "administrator" db_foreach user_group_memberships_by_role { select g.group_id, g.group_name @@ -249,18 +249,18 @@ and map.role = :role } { # do something for each group of which user 123456 is in the role - # of "administrator" + # of "administrator" } </pre><p> -The value of the local Tcl variable <code class="computeroutput">user_id</code> (123456) is bound to -the <code class="computeroutput">user_id</code> bind variable. -</p><p>The <code class="computeroutput">-bind</code> switch can takes the name of an <code class="computeroutput">ns_set</code> +The value of the local Tcl variable <tt class="computeroutput">user_id</tt> (123456) is bound to +the <tt class="computeroutput">user_id</tt> bind variable. +</p><p>The <tt class="computeroutput">-bind</tt> switch can takes the name of an <tt class="computeroutput">ns_set</tt> containing keys for each bind variable named in the query, e.g.:</p><pre class="programlisting"> set bind_vars [ns_set create] ns_set put $bind_vars user_id 123456 -ns_set put $bind_vars role "administrator" +ns_set put $bind_vars role "administrator" db_foreach user_group_memberships_by_role { select g.group_id, g.group_name @@ -270,11 +270,11 @@ and map.role = :role } -bind $bind_vars { # do something for each group in which user 123456 has the role - # of "administrator" + # of "administrator" } </pre><p> -Alternatively, as an argument to <code class="computeroutput">-bind</code> you can specify a list of +Alternatively, as an argument to <tt class="computeroutput">-bind</tt> you can specify a list of alternating name/value pairs for bind variables: </p><pre class="programlisting"> @@ -284,22 +284,22 @@ where g.group_id = map.user_id and map.user_id = :user_id and map.role = :role -} -bind [list user_id 123456 role "administrator"] { +} -bind [list user_id 123456 role "administrator"] { # do something for each group in which user 123456 has the role - # of "administrator" + # of "administrator" } -</pre><p><span class="strong"><strong><a name="kernel.dbapi_nulls_and_bind_vars"></a>Nulls and Bind Variables</strong></span></p><p> +</pre><p><span class="strong"><a name="kernel.dbapi_nulls_and_bind_vars"></a>Nulls and Bind Variables</span></p><p> When processing a DML statement, Oracle coerces empty strings into -<code class="computeroutput">null</code>. (This coercion does <span class="emphasis"><em>not</em></span> occur in the -<code class="computeroutput">WHERE</code> clause of a query, i.e. -<code class="computeroutput">col = ''</code> and -<code class="computeroutput">col is null</code> are not equivalent.) +<tt class="computeroutput">null</tt>. (This coercion does <span class="emphasis"><em>not</em></span> occur in the +<tt class="computeroutput">WHERE</tt> clause of a query, i.e. +<tt class="computeroutput">col = ''</tt> and +<tt class="computeroutput">col is null</tt> are not equivalent.) </p><p>As a result, when using bind variables, the only way to make Oracle set a -column value to <code class="computeroutput">null</code> is to set the corresponding bind variable +column value to <tt class="computeroutput">null</tt> is to set the corresponding bind variable to the empty string, since a bind variable whose value is the string -"null" will be interpreted as the literal string -"null".</p><p>These Oracle quirks complicate the process of writing clear and abstract +"null" will be interpreted as the literal string +"null".</p><p>These Oracle quirks complicate the process of writing clear and abstract DML difficult. Here is an example that illustrates why:</p><pre class="programlisting"> # @@ -311,259 +311,259 @@ # ); # -set bar "" -set baz "" +set bar "" +set baz "" -db_dml foo_create "insert into foo(bar, baz) values(:bar, :baz)" +db_dml foo_create "insert into foo(bar, baz) values(:bar, :baz)" # -# the values of the "bar" and "baz" columns in the new row are both +# the values of the "bar" and "baz" columns in the new row are both # null, because Oracle has coerced the empty string (even for the -# numeric column "bar") into null in both cases +# numeric column "bar") into null in both cases </pre><p> Since databases other than Oracle do not coerce empty strings into -<code class="computeroutput">null</code>, this code has different semantics depending on the +<tt class="computeroutput">null</tt>, this code has different semantics depending on the underlying database (i.e., the row that gets inserted may not have null as its column values), which defeats the purpose of SQL abstraction. </p><p>Therefore, the Database Access API provides a database-independent way to -represent <code class="computeroutput">null</code> (instead of the Oracle-specific idiom of the -empty string): <span class="strong"><strong><code class="computeroutput">db_null</code></strong></span>.</p><p>Use it instead of the empty string whenever you want to set a column value -explicitly to <code class="computeroutput">null</code>, e.g.:</p><pre class="programlisting"> +represent <tt class="computeroutput">null</tt> (instead of the Oracle-specific idiom of the +empty string): <span class="strong"><tt class="computeroutput">db_null</tt></span>.</p><p>Use it instead of the empty string whenever you want to set a column value +explicitly to <tt class="computeroutput">null</tt>, e.g.:</p><pre class="programlisting"> set bar [db_null] set baz [db_null] -db_dml foo_create "insert into foo(bar, baz) values(:bar, :baz)" +db_dml foo_create "insert into foo(bar, baz) values(:bar, :baz)" # -# sets the values for both the "bar" and "baz" columns to null +# sets the values for both the "bar" and "baz" columns to null -</pre></div><div class="sect2" title="SQL Abstraction"><div class="titlepage"><div><div><h3 class="title"><a name="db-api-detailed-sql-abstraction"></a>SQL Abstraction</h3></div></div></div><p> +</pre></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="db-api-detailed-sql-abstraction"></a>SQL Abstraction</h3></div></div><div></div></div><p> We now require that each SQL statement be assigned a logical name for the statement that is unique to the procedure or page in which it is defined. This is so that (eventually) we can implement logically named statements with alternative SQL for non-Oracle databases (e.g., Postgres). More on this later. -</p></div><div class="sect2" title="Placing Column Values in Arrays and Sets"><div class="titlepage"><div><div><h3 class="title"><a name="db-api-detailed-placing-values"></a>Placing Column Values in Arrays and Sets</h3></div></div></div><p> -Normally, <code class="computeroutput">db_foreach</code>, <code class="computeroutput">db_0or1row</code>, and -<code class="computeroutput">db_1row</code> places the results of queries in Tcl variables, so you +</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="db-api-detailed-placing-values"></a>Placing Column Values in Arrays and Sets</h3></div></div><div></div></div><p> +Normally, <tt class="computeroutput">db_foreach</tt>, <tt class="computeroutput">db_0or1row</tt>, and +<tt class="computeroutput">db_1row</tt> places the results of queries in Tcl variables, so you can say: </p><pre class="programlisting"> -db_foreach users_select "select first_names, last_name from users" { - doc_body_append "<li>$first_names $last_name\n" +db_foreach users_select "select first_names, last_name from users" { + doc_body_append "<li>$first_names $last_name\n" } </pre><p> However, sometimes this is not sufficient: you may need to examine the rows returned, to dynamically determine the set of columns returned by the query, or to avoid collisions with existing variables. You can use the -<code class="computeroutput">-column_array</code> and <code class="computeroutput">-column_set</code> switches to -<code class="computeroutput">db_foreach</code>, <code class="computeroutput">db_0or1row</code>, and <code class="computeroutput">db_1row</code> to +<tt class="computeroutput">-column_array</tt> and <tt class="computeroutput">-column_set</tt> switches to +<tt class="computeroutput">db_foreach</tt>, <tt class="computeroutput">db_0or1row</tt>, and <tt class="computeroutput">db_1row</tt> to instruct the database routines to place the results in a Tcl array or -<code class="computeroutput">ns_set</code>, respectively, where the keys are the column names and +<tt class="computeroutput">ns_set</tt>, respectively, where the keys are the column names and the values are the column values. For example: </p><pre class="programlisting"> -db_foreach users_select "select first_names, last_name from users" -column_set columns { +db_foreach users_select "select first_names, last_name from users" -column_set columns { # Now $columns is an ns_set. - doc_body_append "<li>" + doc_body_append "<li>" for { set i 0 } { $i < [ns_set size $columns] } { incr i } { - doc_body_append "[ns_set key $columns $i] is [ns_set value $columns $i]. \n" + doc_body_append "[ns_set key $columns $i] is [ns_set value $columns $i]. \n" } } </pre><p> will write something like: -</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>first_names is Jon. last_name is Salz.</p></li><li class="listitem"><p>first_names is Lars. last_name is Pind.</p></li><li class="listitem"><p>first_names is Michael. last_name is Yoon.</p></li></ul></div></div><div class="sect2" title="API"><div class="titlepage"><div><div><h3 class="title"><a name="dp-api-detailed-api"></a>API</h3></div></div></div><p> -Note that you never have to use <code class="computeroutput">ns_db</code> anymore (including -<code class="computeroutput">ns_db gethandle</code>)! Just start doing stuff, and (if you want) call -<code class="computeroutput">db_release_unused_handles</code> when you're done as a hint to +</p><div class="itemizedlist"><ul type="disc"><li><p>first_names is Jon. last_name is Salz.</p></li><li><p>first_names is Lars. last_name is Pind.</p></li><li><p>first_names is Michael. last_name is Yoon.</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="dp-api-detailed-api"></a>API</h3></div></div><div></div></div><p> +Note that you never have to use <tt class="computeroutput">ns_db</tt> anymore (including +<tt class="computeroutput">ns_db gethandle</tt>)! Just start doing stuff, and (if you want) call +<tt class="computeroutput">db_release_unused_handles</tt> when you're done as a hint to release the database handle. -</p><div class="variablelist"><dl><dt><span class="term"><span class="strong"><strong><code class="computeroutput"><a name="kernel.dbapi_db_null"></a>db_null</code></strong></span> +</p><div class="variablelist"><dl><dt><span class="term"><span class="strong"><tt class="computeroutput"><a name="kernel.dbapi_db_null"></a>db_null</tt></span> </span></dt><dd><pre class="programlisting"> -<span class="strong"><strong><code class="computeroutput">db_null</code></strong></span> +<span class="strong"><tt class="computeroutput">db_null</tt></span> </pre><p>Returns a value which can be used in a bind variable to represent the SQL -value <code class="computeroutput">null</code>. See <a class="link" href="db-api.html#dbapi_nulls_and_bind_vars" title="Nulls and Bind Variables">Nulls and Bind Variables</a> +value <tt class="computeroutput">null</tt>. See <a href="db-api.html#dbapi_nulls_and_bind_vars" title="Nulls and Bind Variables">Nulls and Bind Variables</a> above.</p></dd><dt><span class="term"> -<span class="strong"><strong><code class="computeroutput"><a name="kernel.dbapi_db_foreach"></a>db_foreach</code></strong></span> +<span class="strong"><tt class="computeroutput"><a name="kernel.dbapi_db_foreach"></a>db_foreach</tt></span> </span></dt><dd><pre class="programlisting"> -<span class="strong"><strong>db_foreach</strong></span> <span class="emphasis"><em>statement-name sql</em></span> [ -bind <span class="emphasis"><em>bind_set_id</em></span> | -bind <span class="emphasis"><em>bind_value_list</em></span> ] \ +<span class="strong">db_foreach</span> <span class="emphasis"><em>statement-name sql</em></span> [ -bind <span class="emphasis"><em>bind_set_id</em></span> | -bind <span class="emphasis"><em>bind_value_list</em></span> ] \ [ -column_array <span class="emphasis"><em>array_name</em></span> | -column_set <span class="emphasis"><em>set_name</em></span> ] \ <span class="emphasis"><em>code_block</em></span> [ if_no_rows <span class="emphasis"><em>if_no_rows_block ]</em></span> -</pre><p>Performs the SQL query <span class="emphasis"><em><code class="computeroutput">sql</code></em></span>, executing -<span class="emphasis"><em><code class="computeroutput">code_block</code></em></span> once for each row with variables set to -column values (or a set or array populated if <code class="computeroutput">-column_array</code> or -<code class="computeroutput">column_set</code> is specified). If the query returns no rows, executes -<span class="emphasis"><em><code class="computeroutput">if_no_rows_block</code></em></span> (if provided). </p><p>Example:</p><pre class="programlisting"> +</pre><p>Performs the SQL query <span class="emphasis"><em><tt class="computeroutput">sql</tt></em></span>, executing +<span class="emphasis"><em><tt class="computeroutput">code_block</tt></em></span> once for each row with variables set to +column values (or a set or array populated if <tt class="computeroutput">-column_array</tt> or +<tt class="computeroutput">column_set</tt> is specified). If the query returns no rows, executes +<span class="emphasis"><em><tt class="computeroutput">if_no_rows_block</tt></em></span> (if provided). </p><p>Example:</p><pre class="programlisting"> -db_foreach select_foo "select foo, bar from greeble" { - doc_body_append "<li>foo=$foo; bar=$bar\n" +db_foreach select_foo "select foo, bar from greeble" { + doc_body_append "<li>foo=$foo; bar=$bar\n" } if_no_rows { - doc_body_append "<li>There are no greebles in the database.\n" + doc_body_append "<li>There are no greebles in the database.\n" } </pre><p> -The code block may contain <code class="computeroutput">break</code> statements (which terminate the -loop and flush the database handle) and <code class="computeroutput">continue</code> statements -(which continue to the next row of the loop). </p></dd><dt><span class="term"><span class="strong"><strong><code class="computeroutput"><a name="kernel.dbapi_db_1row"></a>db_1row</code></strong></span></span></dt><dd><pre class="programlisting"> -<span class="strong"><strong>db_1row</strong></span> <span class="emphasis"><em>statement-name</em></span> <span class="emphasis"><em>sql</em></span> [ -bind <span class="emphasis"><em>bind_set_id</em></span> | -bind <span class="emphasis"><em>bind_value_list</em></span> ] \ +The code block may contain <tt class="computeroutput">break</tt> statements (which terminate the +loop and flush the database handle) and <tt class="computeroutput">continue</tt> statements +(which continue to the next row of the loop). </p></dd><dt><span class="term"><span class="strong"><tt class="computeroutput"><a name="kernel.dbapi_db_1row"></a>db_1row</tt></span></span></dt><dd><pre class="programlisting"> +<span class="strong">db_1row</span> <span class="emphasis"><em>statement-name</em></span> <span class="emphasis"><em>sql</em></span> [ -bind <span class="emphasis"><em>bind_set_id</em></span> | -bind <span class="emphasis"><em>bind_value_list</em></span> ] \ [ -column_array <span class="emphasis"><em>array_name</em></span> | -column_set <span class="emphasis"><em>set_name</em></span> ] -</pre><p>Performs the SQL query <span class="emphasis"><em><code class="computeroutput">sql</code></em></span>, setting variables to +</pre><p>Performs the SQL query <span class="emphasis"><em><tt class="computeroutput">sql</tt></em></span>, setting variables to column values. Raises an error if the query does not return exactly 1 row. </p><p>Example:</p><pre class="programlisting"> -db_1row select_foo "select foo, bar from greeble where greeble_id = $greeble_id" +db_1row select_foo "select foo, bar from greeble where greeble_id = $greeble_id" # Bombs if there's no such greeble! # Now $foo and $bar are set. -</pre></dd><dt><span class="term"><span class="strong"><strong><code class="computeroutput"><a name="kernel.dbapi_db_0or1row"></a>db_0or1row</code></strong></span> </span></dt><dd><pre class="programlisting"> -<span class="strong"><strong>db_0or1row</strong></span> <span class="emphasis"><em>statement-name</em></span> <span class="emphasis"><em>sql</em></span> [ -bind <span class="emphasis"><em>bind_set_id</em></span> | -bind <span class="emphasis"><em>bind_value_list</em></span> ] \ +</pre></dd><dt><span class="term"><span class="strong"><tt class="computeroutput"><a name="kernel.dbapi_db_0or1row"></a>db_0or1row</tt></span> </span></dt><dd><pre class="programlisting"> +<span class="strong">db_0or1row</span> <span class="emphasis"><em>statement-name</em></span> <span class="emphasis"><em>sql</em></span> [ -bind <span class="emphasis"><em>bind_set_id</em></span> | -bind <span class="emphasis"><em>bind_value_list</em></span> ] \ [ -column_array <span class="emphasis"><em>array_name</em></span> | -column_set <span class="emphasis"><em>set_name</em></span> ] -</pre><p>Performs the SQL query <span class="emphasis"><em><code class="computeroutput">sql</code></em></span>. If a row is returned, +</pre><p>Performs the SQL query <span class="emphasis"><em><tt class="computeroutput">sql</tt></em></span>. If a row is returned, sets variables to column values and returns 1. If no rows are returned, -returns 0. If more than one row is returned, throws an error. </p></dd><dt><span class="term"><span class="strong"><strong><code class="computeroutput"><a name="kernel.dbapi_db_string"></a>db_string</code></strong></span> </span></dt><dd><pre class="programlisting"> -<span class="strong"><strong>db_string</strong></span> <span class="emphasis"><em>statement-name</em></span> <span class="emphasis"><em>sql</em></span> [ -default <span class="emphasis"><em>default</em></span> ] [ -bind <span class="emphasis"><em>bind_set_id</em></span> | -bind <span class="emphasis"><em>bind_value_list</em></span> ] +returns 0. If more than one row is returned, throws an error. </p></dd><dt><span class="term"><span class="strong"><tt class="computeroutput"><a name="kernel.dbapi_db_string"></a>db_string</tt></span> </span></dt><dd><pre class="programlisting"> +<span class="strong">db_string</span> <span class="emphasis"><em>statement-name</em></span> <span class="emphasis"><em>sql</em></span> [ -default <span class="emphasis"><em>default</em></span> ] [ -bind <span class="emphasis"><em>bind_set_id</em></span> | -bind <span class="emphasis"><em>bind_value_list</em></span> ] </pre><p>Returns the first column of the result of SQL query -<span class="emphasis"><em><code class="computeroutput">sql</code></em></span>. If <span class="emphasis"><em><code class="computeroutput">sql</code></em></span> doesn't return a -row, returns <span class="emphasis"><em><code class="computeroutput">default</code></em></span> (or throws an error if -<span class="emphasis"><em><code class="computeroutput">default</code></em></span> is unspecified). Analogous to -<code class="computeroutput">database_to_tcl_string</code> and -<code class="computeroutput">database_to_tcl_string_or_null</code>. +<span class="emphasis"><em><tt class="computeroutput">sql</tt></em></span>. If <span class="emphasis"><em><tt class="computeroutput">sql</tt></em></span> doesn't return a +row, returns <span class="emphasis"><em><tt class="computeroutput">default</tt></em></span> (or throws an error if +<span class="emphasis"><em><tt class="computeroutput">default</tt></em></span> is unspecified). Analogous to +<tt class="computeroutput">database_to_tcl_string</tt> and +<tt class="computeroutput">database_to_tcl_string_or_null</tt>. -</p></dd><dt><span class="term"><span class="strong"><strong><code class="computeroutput"><a name="kernel.dbapi_db_nextval"></a>db_nextval</code></strong></span> </span></dt><dd><pre class="programlisting"> -<span class="strong"><strong>db_nextval</strong></span> <span class="emphasis"><em>sequence-name</em></span> +</p></dd><dt><span class="term"><span class="strong"><tt class="computeroutput"><a name="kernel.dbapi_db_nextval"></a>db_nextval</tt></span> </span></dt><dd><pre class="programlisting"> +<span class="strong">db_nextval</span> <span class="emphasis"><em>sequence-name</em></span> </pre><p>Returns the next value for the sequence <span class="emphasis"><em>sequence-name</em></span> (using a -SQL statement like <code class="computeroutput">SELECT</code> <span class="emphasis"><em><code class="computeroutput">sequence-name</code></em></span><code class="computeroutput">.nextval FROM -DUAL</code>). If sequence pooling is enabled for the sequence, transparently +SQL statement like <tt class="computeroutput">SELECT</tt> <span class="emphasis"><em><tt class="computeroutput">sequence-name</tt></em></span><tt class="computeroutput">.nextval FROM +DUAL</tt>). If sequence pooling is enabled for the sequence, transparently uses a value from the pool if available to save a round-trip to the database. -</p></dd><dt><span class="term"><span class="strong"><strong><code class="computeroutput"><a name="kernel.dbapi_db_list"></a>db_list</code></strong></span></span></dt><dd><pre class="programlisting"> -<span class="strong"><strong>db_list</strong></span> <span class="emphasis"><em>statement-name</em></span> <span class="emphasis"><em>sql</em></span> [ -bind <span class="emphasis"><em>bind_set_id</em></span> | -bind <span class="emphasis"><em>bind_value_list</em></span> ] +</p></dd><dt><span class="term"><span class="strong"><tt class="computeroutput"><a name="kernel.dbapi_db_list"></a>db_list</tt></span></span></dt><dd><pre class="programlisting"> +<span class="strong">db_list</span> <span class="emphasis"><em>statement-name</em></span> <span class="emphasis"><em>sql</em></span> [ -bind <span class="emphasis"><em>bind_set_id</em></span> | -bind <span class="emphasis"><em>bind_value_list</em></span> ] </pre><p>Returns a Tcl list of the values in the first column of the result of SQL -query <span class="emphasis"><em><code class="computeroutput">sql</code></em></span>. If <span class="emphasis"><em><code class="computeroutput">sql</code></em></span> doesn't +query <span class="emphasis"><em><tt class="computeroutput">sql</tt></em></span>. If <span class="emphasis"><em><tt class="computeroutput">sql</tt></em></span> doesn't return any rows, returns an empty list. Analogous to -<code class="computeroutput">database_to_tcl_list</code>. +<tt class="computeroutput">database_to_tcl_list</tt>. -</p></dd><dt><span class="term"><span class="strong"><strong><code class="computeroutput"><a name="kernel.dbapi_db_list_of_lists"></a>db_list_of_lists</code></strong></span></span></dt><dd><pre class="programlisting"> -<span class="strong"><strong>db_list_of_lists</strong></span> <span class="emphasis"><em>statement-name</em></span> <span class="emphasis"><em>sql</em></span> [ -bind <span class="emphasis"><em>bind_set_id</em></span> | -bind <span class="emphasis"><em>bind_value_list</em></span> ] +</p></dd><dt><span class="term"><span class="strong"><tt class="computeroutput"><a name="kernel.dbapi_db_list_of_lists"></a>db_list_of_lists</tt></span></span></dt><dd><pre class="programlisting"> +<span class="strong">db_list_of_lists</span> <span class="emphasis"><em>statement-name</em></span> <span class="emphasis"><em>sql</em></span> [ -bind <span class="emphasis"><em>bind_set_id</em></span> | -bind <span class="emphasis"><em>bind_value_list</em></span> ] </pre><p>Returns a Tcl list, each element of which is a list of all column values -in a row of the result of SQL query <span class="emphasis"><em><code class="computeroutput">sql</code></em></span>. If -<span class="emphasis"><em><code class="computeroutput">sql</code></em></span> doesn't return any rows, returns an empty list. -(Analogous to <code class="computeroutput">database_to_tcl_list_list</code>.) +in a row of the result of SQL query <span class="emphasis"><em><tt class="computeroutput">sql</tt></em></span>. If +<span class="emphasis"><em><tt class="computeroutput">sql</tt></em></span> doesn't return any rows, returns an empty list. +(Analogous to <tt class="computeroutput">database_to_tcl_list_list</tt>.) -</p></dd><dt><span class="term"><span class="strong"><strong><code class="computeroutput"><a name="kernel.dbapi_db_list_of_ns_sets"></a>db_list_of_ns_sets</code></strong></span></span></dt><dd><pre class="programlisting"> -<span class="strong"><strong>db_list_of_ns_sets</strong></span> <span class="emphasis"><em>statement-name</em></span> <span class="emphasis"><em>sql</em></span> [ -bind <span class="emphasis"><em>bind_set_id</em></span> | -bind <span class="emphasis"><em>bind_value_list</em></span> ] +</p></dd><dt><span class="term"><span class="strong"><tt class="computeroutput"><a name="kernel.dbapi_db_list_of_ns_sets"></a>db_list_of_ns_sets</tt></span></span></dt><dd><pre class="programlisting"> +<span class="strong">db_list_of_ns_sets</span> <span class="emphasis"><em>statement-name</em></span> <span class="emphasis"><em>sql</em></span> [ -bind <span class="emphasis"><em>bind_set_id</em></span> | -bind <span class="emphasis"><em>bind_value_list</em></span> ] </pre><p> Returns a list of ns_sets with the values of each column of each row - returned by the <code class="computeroutput">sql</code> query specified. - </p></dd><dt><span class="term"><span class="strong"><strong><code class="computeroutput"><a name="kernel.dbapi_db_dml"></a>db_dml</code></strong></span></span></dt><dd><pre class="programlisting"> -<span class="strong"><strong>db_dml</strong></span> <span class="emphasis"><em>statement-name</em></span> <span class="emphasis"><em>sql</em></span> \ + returned by the <tt class="computeroutput">sql</tt> query specified. + </p></dd><dt><span class="term"><span class="strong"><tt class="computeroutput"><a name="kernel.dbapi_db_dml"></a>db_dml</tt></span></span></dt><dd><pre class="programlisting"> +<span class="strong">db_dml</span> <span class="emphasis"><em>statement-name</em></span> <span class="emphasis"><em>sql</em></span> \ [ -bind <span class="emphasis"><em>bind_set_id</em></span> | -bind <span class="emphasis"><em>bind_value_list</em></span> ] \ [ -blobs <span class="emphasis"><em>blob_list</em></span> | -clobs <span class="emphasis"><em>clob_list</em></span> | -blob_files <span class="emphasis"><em>blob_file_list</em></span> | -clob_files <span class="emphasis"><em>clob_file_list</em></span> ] -</pre><p>Performs the DML or DDL statement <span class="emphasis"><em><code class="computeroutput">sql</code></em></span>. </p><p>If a length-<span class="emphasis"><em>n</em></span> list of blobs or clobs is provided, then the SQL +</pre><p>Performs the DML or DDL statement <span class="emphasis"><em><tt class="computeroutput">sql</tt></em></span>. </p><p>If a length-<span class="emphasis"><em>n</em></span> list of blobs or clobs is provided, then the SQL should return <span class="emphasis"><em>n</em></span> blobs or clobs into the bind variables -<code class="computeroutput">:1</code>, <code class="computeroutput">:2</code>, ... :<span class="emphasis"><em><code class="computeroutput">n</code></em></span>. -<span class="emphasis"><em><code class="computeroutput">blobs</code></em></span> or <span class="emphasis"><em><code class="computeroutput">clobs</code></em></span>, if specified, +<tt class="computeroutput">:1</tt>, <tt class="computeroutput">:2</tt>, ... :<span class="emphasis"><em><tt class="computeroutput">n</tt></em></span>. +<span class="emphasis"><em><tt class="computeroutput">blobs</tt></em></span> or <span class="emphasis"><em><tt class="computeroutput">clobs</tt></em></span>, if specified, should be a list of individual BLOBs or CLOBs to insert; -<span class="emphasis"><em><code class="computeroutput">blob_files</code></em></span> or <span class="emphasis"><em><code class="computeroutput">clob_files</code></em></span>, if +<span class="emphasis"><em><tt class="computeroutput">blob_files</tt></em></span> or <span class="emphasis"><em><tt class="computeroutput">clob_files</tt></em></span>, if specified, should be a list of <span class="emphasis"><em>paths to files</em></span> containing the data to -insert. Only one of <code class="computeroutput">-blobs</code>, <code class="computeroutput">-clobs</code>, -<code class="computeroutput">-blob_files</code>, and <code class="computeroutput">-clob_files</code> may be provided.</p><p>Example:</p><pre class="programlisting"> +insert. Only one of <tt class="computeroutput">-blobs</tt>, <tt class="computeroutput">-clobs</tt>, +<tt class="computeroutput">-blob_files</tt>, and <tt class="computeroutput">-clob_files</tt> may be provided.</p><p>Example:</p><pre class="programlisting"> -db_dml insert_photos " +db_dml insert_photos " insert photos(photo_id, image, thumbnail_image) values(photo_id_seq.nextval, empty_blob(), empty_blob()) returning image, thumbnail_image into :1, :2 - " -blob_files [list "/var/tmp/the_photo" "/var/tmp/the_thumbnail"] + " -blob_files [list "/var/tmp/the_photo" "/var/tmp/the_thumbnail"] </pre><p> -This inserts a new row into the <code class="computeroutput">photos</code> table, with the contents -of the files <code class="computeroutput">/var/tmp/the_photo</code> and -<code class="computeroutput">/var/tmp/the_thumbnail</code> in the <code class="computeroutput">image</code> and -<code class="computeroutput">thumbnail</code> columns, respectively. +This inserts a new row into the <tt class="computeroutput">photos</tt> table, with the contents +of the files <tt class="computeroutput">/var/tmp/the_photo</tt> and +<tt class="computeroutput">/var/tmp/the_thumbnail</tt> in the <tt class="computeroutput">image</tt> and +<tt class="computeroutput">thumbnail</tt> columns, respectively. </p></dd><dt><span class="term"> -<span class="strong"><strong><code class="computeroutput"><a name="kernel.dbapi_db_write_clob"></a>db_write_clob</code></strong></span>, -<span class="strong"><strong><code class="computeroutput"><a name="kernel.dbapi_db_write_blob"></a>db_write_blob</code></strong></span>, -<span class="strong"><strong><code class="computeroutput"><a name="kernel.dbapi_db_blob_get_file"></a>db_blob_get_file</code></strong></span> +<span class="strong"><tt class="computeroutput"><a name="kernel.dbapi_db_write_clob"></a>db_write_clob</tt></span>, +<span class="strong"><tt class="computeroutput"><a name="kernel.dbapi_db_write_blob"></a>db_write_blob</tt></span>, +<span class="strong"><tt class="computeroutput"><a name="kernel.dbapi_db_blob_get_file"></a>db_blob_get_file</tt></span> </span></dt><dd><pre class="programlisting"> -<span class="strong"><strong>db_write_clob</strong></span> <span class="emphasis"><em>statement-name</em></span> <span class="emphasis"><em>sql</em></span> [ -bind <span class="emphasis"><em>bind_set_id</em></span> | -bind <span class="emphasis"><em>bind_value_list</em></span> ] +<span class="strong">db_write_clob</span> <span class="emphasis"><em>statement-name</em></span> <span class="emphasis"><em>sql</em></span> [ -bind <span class="emphasis"><em>bind_set_id</em></span> | -bind <span class="emphasis"><em>bind_value_list</em></span> ] -<span class="strong"><strong>db_write_blob</strong></span> <span class="emphasis"><em>statement-name</em></span> <span class="emphasis"><em>sql</em></span> [ -bind <span class="emphasis"><em>bind_set_id</em></span> | -bind <span class="emphasis"><em>bind_value_list</em></span> ] +<span class="strong">db_write_blob</span> <span class="emphasis"><em>statement-name</em></span> <span class="emphasis"><em>sql</em></span> [ -bind <span class="emphasis"><em>bind_set_id</em></span> | -bind <span class="emphasis"><em>bind_value_list</em></span> ] -<span class="strong"><strong>db_blob_get_file</strong></span> <span class="emphasis"><em>statement-name</em></span> <span class="emphasis"><em>sql</em></span> [ -bind <span class="emphasis"><em>bind_set_id</em></span> | -bind <span class="emphasis"><em>bind_value_list</em></span> ] -</pre><p>Analagous to <code class="computeroutput">ns_ora write_clob/write_blob/blob_get_file</code>. +<span class="strong">db_blob_get_file</span> <span class="emphasis"><em>statement-name</em></span> <span class="emphasis"><em>sql</em></span> [ -bind <span class="emphasis"><em>bind_set_id</em></span> | -bind <span class="emphasis"><em>bind_value_list</em></span> ] +</pre><p>Analagous to <tt class="computeroutput">ns_ora write_clob/write_blob/blob_get_file</tt>. -</p></dd><dt><span class="term"><span class="strong"><strong><code class="computeroutput"><a name="kernel.dbapi_db_release_unused_handles"></a>db_release_unused_handles</code></strong></span></span></dt><dd><pre class="programlisting"> -<span class="strong"><strong>db_release_unused_handles</strong></span> -</pre><p>Releases any allocated, unused database handles. </p></dd><dt><span class="term"><span class="strong"><strong><code class="computeroutput"><a name="kernel.dbapi_db_transaction"></a>db_transaction</code></strong></span></span></dt><dd><pre class="programlisting"> -<span class="strong"><strong>db_transaction</strong></span> <span class="emphasis"><em>code_block</em></span> [ on_error { <span class="emphasis"><em>code_block</em></span> } ] -</pre><p>Executes <span class="emphasis"><em><code class="computeroutput">code_block</code></em></span> transactionally. Nested -transactions are supported (<code class="computeroutput">end transaction</code> is transparently -<code class="computeroutput">ns_db dml</code>'ed when the outermost transaction completes). The -<code class="computeroutput">db_abort_transaction</code> command can be used to abort all levels of -transactions. It is possible to specify an optional <code class="computeroutput">on_error</code> +</p></dd><dt><span class="term"><span class="strong"><tt class="computeroutput"><a name="kernel.dbapi_db_release_unused_handles"></a>db_release_unused_handles</tt></span></span></dt><dd><pre class="programlisting"> +<span class="strong">db_release_unused_handles</span> +</pre><p>Releases any allocated, unused database handles. </p></dd><dt><span class="term"><span class="strong"><tt class="computeroutput"><a name="kernel.dbapi_db_transaction"></a>db_transaction</tt></span></span></dt><dd><pre class="programlisting"> +<span class="strong">db_transaction</span> <span class="emphasis"><em>code_block</em></span> [ on_error { <span class="emphasis"><em>code_block</em></span> } ] +</pre><p>Executes <span class="emphasis"><em><tt class="computeroutput">code_block</tt></em></span> transactionally. Nested +transactions are supported (<tt class="computeroutput">end transaction</tt> is transparently +<tt class="computeroutput">ns_db dml</tt>'ed when the outermost transaction completes). The +<tt class="computeroutput">db_abort_transaction</tt> command can be used to abort all levels of +transactions. It is possible to specify an optional <tt class="computeroutput">on_error</tt> code block that will be executed if some code in <span class="emphasis"><em>code_block</em></span> throws -an exception. The variable <code class="computeroutput">errmsg</code> will be bound in that scope. -If there is no <code class="computeroutput">on_error</code> code, any errors will be propagated. </p><p>Example:</p><pre class="programlisting"> +an exception. The variable <tt class="computeroutput">errmsg</tt> will be bound in that scope. +If there is no <tt class="computeroutput">on_error</tt> code, any errors will be propagated. </p><p>Example:</p><pre class="programlisting"> proc replace_the_foo { col } { db_transaction { - db_dml "delete from foo" - db_dml "insert into foo(col) values($col)" + db_dml "delete from foo" + db_dml "insert into foo(col) values($col)" } } proc print_the_foo {} { - doc_body_append "foo is [db_string "select col from foo"]<br>\n" + doc_body_append "foo is [db_string "select col from foo"]<br>\n" } replace_the_foo 8 -print_the_foo ; # Writes out "foo is 8" +print_the_foo ; # Writes out "foo is 8" db_transaction { replace_the_foo 14 - print_the_foo ; # Writes out "foo is 14" - db_dml "insert into some_other_table(col) values(999)" + print_the_foo ; # Writes out "foo is 14" + db_dml "insert into some_other_table(col) values(999)" ... db_abort_transaction } on_error { - doc_body_append "Error in transaction: $errmsg" + doc_body_append "Error in transaction: $errmsg" } -print_the_foo ; # Writes out "foo is 8" +print_the_foo ; # Writes out "foo is 8" -</pre></dd><dt><span class="term"><span class="strong"><strong><code class="computeroutput"><a name="kernel.dbapi_db_abort_transaction"></a>db_abort_transaction</code></strong></span> +</pre></dd><dt><span class="term"><span class="strong"><tt class="computeroutput"><a name="kernel.dbapi_db_abort_transaction"></a>db_abort_transaction</tt></span> </span></dt><dd><pre class="programlisting"> -<span class="strong"><strong>db_abort_transaction</strong></span> +<span class="strong">db_abort_transaction</span> </pre><p>Aborts all levels of a transaction. That is if this is called within several nested transactions, all of them are terminated. Use this insetead of -<code class="computeroutput">db_dml "abort" "abort transaction"</code>. +<tt class="computeroutput">db_dml "abort" "abort transaction"</tt>. -</p></dd><dt><span class="term"><span class="strong"><strong><code class="computeroutput"><a name="kernel.dbapi_db_multirow"></a>db_multirow</code></strong></span></span></dt><dd><pre class="programlisting"> -<span class="strong"><strong>db_multirow</strong></span> [ -local ] [ -append ] [ -extend <span class="emphasis"><em>column_list</em></span> ] \ +</p></dd><dt><span class="term"><span class="strong"><tt class="computeroutput"><a name="kernel.dbapi_db_multirow"></a>db_multirow</tt></span></span></dt><dd><pre class="programlisting"> +<span class="strong">db_multirow</span> [ -local ] [ -append ] [ -extend <span class="emphasis"><em>column_list</em></span> ] \ <span class="emphasis"><em>var-name</em></span> <span class="emphasis"><em>statement-name</em></span> <span class="emphasis"><em>sql</em></span> \ [ -bind <span class="emphasis"><em>bind_set_id</em></span> | -bind <span class="emphasis"><em>bind_value_list</em></span> ] \ <span class="emphasis"><em>code_block</em></span> [ if_no_rows <span class="emphasis"><em>if_no_rows_block ]</em></span> </pre><p> - Performs the SQL query <code class="computeroutput">sql</code>, saving results in variables + Performs the SQL query <tt class="computeroutput">sql</tt>, saving results in variables of the form - <code class="computeroutput"><span class="replaceable"><span class="replaceable">var_name</span></span>:1</code>, <code class="computeroutput"><span class="replaceable"><span class="replaceable">var_name</span></span>:2</code>, etc, - setting <code class="computeroutput"><span class="replaceable"><span class="replaceable">var_name</span></span>:rowcount</code> to the total number - of rows, and setting <code class="computeroutput"><span class="replaceable"><span class="replaceable">var_name</span></span>:columns</code> to a + <tt class="computeroutput"><span class="replaceable"><span class="replaceable">var_name</span></span>:1</tt>, <tt class="computeroutput"><span class="replaceable"><span class="replaceable">var_name</span></span>:2</tt>, etc, + setting <tt class="computeroutput"><span class="replaceable"><span class="replaceable">var_name</span></span>:rowcount</tt> to the total number + of rows, and setting <tt class="computeroutput"><span class="replaceable"><span class="replaceable">var_name</span></span>:columns</tt> to a list of column names. </p><p> Each row also has a column, rownum, automatically added and set to the row number, starting with 1. Note that this will override any column in the SQL statement named 'rownum', also if you're using the Oracle rownum pseudo-column. </p><p> - If the <code class="computeroutput">-local</code> is passed, the variables defined + If the <tt class="computeroutput">-local</tt> is passed, the variables defined by db_multirow will be set locally (useful if you're compiling dynamic templates in a function or similar situations). </p><p> @@ -576,19 +576,19 @@ multirow. </p><p> You may also add additional, computed columns to the multirow, using the - <code class="computeroutput">-extend { <span class="replaceable"><span class="replaceable">col_1</span></span> <span class="replaceable"><span class="replaceable">col_2</span></span> ... }</code> switch. This is + <tt class="computeroutput">-extend { <span class="replaceable"><span class="replaceable">col_1</span></span> <span class="replaceable"><span class="replaceable">col_2</span></span> ... }</tt> switch. This is useful for things like constructing a URL for the object retrieved by the query. </p><p> If you're constructing your multirow through multiple queries with the same set of columns, but with different rows, you can use the - <code class="computeroutput">-append</code> switch. This causes the rows returned by this query + <tt class="computeroutput">-append</tt> switch. This causes the rows returned by this query to be appended to the rows already in the multirow, instead of starting a clean multirow, as is the normal behavior. The columns must match the columns in the original multirow, or an error will be thrown. </p><p> - Your code block may call <code class="computeroutput">continue</code> in order to skip a row - and not include it in the multirow. Or you can call <code class="computeroutput">break</code> + Your code block may call <tt class="computeroutput">continue</tt> in order to skip a row + and not include it in the multirow. Or you can call <tt class="computeroutput">break</tt> to skip this row and quit looping. </p><p> @@ -603,28 +603,28 @@ } { set user_url [acs_community_member_url -user_id $user_id] } - </pre></dd><dt><span class="term"><span class="strong"><strong><code class="computeroutput"><a name="kernel.dbapi_db_resultrows"></a>db_resultrows</code></strong></span></span></dt><dd><pre class="programlisting"> -<span class="strong"><strong>db_resultrows</strong></span> + </pre></dd><dt><span class="term"><span class="strong"><tt class="computeroutput"><a name="kernel.dbapi_db_resultrows"></a>db_resultrows</tt></span></span></dt><dd><pre class="programlisting"> +<span class="strong">db_resultrows</span> </pre><p>Returns the number of rows affected or returned by the previous statement. -</p></dd><dt><span class="term"><span class="strong"><strong><code class="computeroutput"><a name="kernel.dbapi_db_with_handle"></a>db_with_handle</code></strong></span></span></dt><dd><pre class="programlisting"> -<span class="strong"><strong>db_with_handle</strong></span> <span class="emphasis"><em>var</em></span> <span class="emphasis"><em>code_block</em></span> -</pre><p>Places a database handle into the variable <span class="emphasis"><em><code class="computeroutput">var</code></em></span> and -executes <span class="emphasis"><em><code class="computeroutput">code_block</code></em></span>. This is useful when you don't -want to have to use the new API (<code class="computeroutput">db_foreach</code>, -<code class="computeroutput">db_1row</code>, etc.), but need to use database handles explicitly. </p><p>Example:</p><pre class="programlisting"> +</p></dd><dt><span class="term"><span class="strong"><tt class="computeroutput"><a name="kernel.dbapi_db_with_handle"></a>db_with_handle</tt></span></span></dt><dd><pre class="programlisting"> +<span class="strong">db_with_handle</span> <span class="emphasis"><em>var</em></span> <span class="emphasis"><em>code_block</em></span> +</pre><p>Places a database handle into the variable <span class="emphasis"><em><tt class="computeroutput">var</tt></em></span> and +executes <span class="emphasis"><em><tt class="computeroutput">code_block</tt></em></span>. This is useful when you don't +want to have to use the new API (<tt class="computeroutput">db_foreach</tt>, +<tt class="computeroutput">db_1row</tt>, etc.), but need to use database handles explicitly. </p><p>Example:</p><pre class="programlisting"> proc lookup_the_foo { foo } { db_with_handle db { - return [db_string unused "select ..."] + return [db_string unused "select ..."] } } db_with_handle db { # Now there's a database handle in $db. - set selection [ns_db select $db "select foo from bar"] + set selection [ns_db select $db "select foo from bar"] while { [ns_db getrow $db $selection] } { set_variables_after_query @@ -633,96 +633,96 @@ } </pre></dd><dt><span class="term"> - <span class="strong"><strong> - <code class="computeroutput"> + <span class="strong"> + <tt class="computeroutput"> <a name="kernel.dbapi_db_name"></a>db_name - </code> - </strong></span> + </tt> + </span> </span></dt><dd><pre class="programlisting"> - <span class="strong"><strong> - <code class="computeroutput">db_name</code> - </strong></span> + <span class="strong"> + <tt class="computeroutput">db_name</tt> + </span> </pre><p> Returns the name of the database, as returned by the driver. </p></dd><dt><span class="term"> - <span class="strong"><strong> - <code class="computeroutput"> + <span class="strong"> + <tt class="computeroutput"> <a name="kernel.dbapi_db_type"></a>db_type - </code> - </strong></span> + </tt> + </span> </span></dt><dd><pre class="programlisting"> - <span class="strong"><strong> - <code class="computeroutput">db_type</code> - </strong></span> + <span class="strong"> + <tt class="computeroutput">db_type</tt> + </span> </pre><p> Returns the RDBMS type (i.e. oracle, postgresql) this OpenACS installation is using. The nsv ad_database_type is set up during the bootstrap process. </p></dd><dt><span class="term"> - <span class="strong"><strong> - <code class="computeroutput"> + <span class="strong"> + <tt class="computeroutput"> <a name="kernel.dbapi_db_compatible_rdbms_p"></a>db_compatible_rdbms_p - </code> - </strong></span> + </tt> + </span> </span></dt><dd><pre class="programlisting"> - <span class="strong"><strong>db_compatible_rdbms_p</strong></span> db_type + <span class="strong">db_compatible_rdbms_p</span> db_type </pre><p> Returns 1 if the given db_type is compatible with the current RDBMS. </p></dd><dt><span class="term"> - <span class="strong"><strong> - <code class="computeroutput"> + <span class="strong"> + <tt class="computeroutput"> <a name="kernel.dbapi_db_package_supports_rdbms_p"></a>db_package_supports_rdbms_p - </code> - </strong></span> + </tt> + </span> </span></dt><dd><pre class="programlisting"> - <span class="strong"><strong>db_package_supports_rdbms_p</strong></span> db_type_list + <span class="strong">db_package_supports_rdbms_p</span> db_type_list </pre><p> Returns 1 if db_type_list contains the current RDMBS type. A package intended to run with a given RDBMS must note this in it's package info file regardless of whether or not it actually uses the database. </p></dd><dt><span class="term"> - <span class="strong"><strong> - <code class="computeroutput"> + <span class="strong"> + <tt class="computeroutput"> <a name="kernel.dbapi_db_legacy_package_p"></a>db_legacy_package_p - </code> - </strong></span> + </tt> + </span> </span></dt><dd><pre class="programlisting"> - <span class="strong"><strong>db_legacy_package_p</strong></span> db_type_list + <span class="strong">db_legacy_package_p</span> db_type_list </pre><p> Returns 1 if the package is a legacy package. We can only tell for certain if it explicitly supports Oracle 8.1.6 rather than the OpenACS more general oracle. </p></dd><dt><span class="term"> - <span class="strong"><strong> - <code class="computeroutput"> + <span class="strong"> + <tt class="computeroutput"> <a name="kernel.dbapi_db_version"></a>db_version - </code> - </strong></span> + </tt> + </span> </span></dt><dd><pre class="programlisting"> - <span class="strong"><strong>db_version</strong></span> + <span class="strong">db_version</span> </pre><p> Returns the RDBMS version (i.e. 8.1.6 is a recent Oracle version; 7.1 a recent PostgreSQL version. </p></dd><dt><span class="term"> - <span class="strong"><strong> - <code class="computeroutput"> + <span class="strong"> + <tt class="computeroutput"> <a name="kernel.dbapi_db_current_rdbms"></a>db_current_rdbms - </code> - </strong></span> + </tt> + </span> </span></dt><dd><pre class="programlisting"> - <span class="strong"><strong>db_current_rdbms</strong></span> + <span class="strong">db_current_rdbms</span> </pre><p> Returns the current rdbms type and version. </p></dd><dt><span class="term"> - <span class="strong"><strong> - <code class="computeroutput"> + <span class="strong"> + <tt class="computeroutput"> <a name="kernel.dbapi_db_known_database_types"></a>db_known_database_types - </code> - </strong></span> + </tt> + </span> </span></dt><dd><pre class="programlisting"> - <span class="strong"><strong>db_known_database_types</strong></span> + <span class="strong">db_known_database_types</span> </pre><p> Returns a list of three-element lists describing the database engines known to OpenACS. Each sublist contains the internal database name (used in file - paths, etc), the driver name, and a "pretty name" to be used in selection + paths, etc), the driver name, and a "pretty name" to be used in selection forms displayed to the user. </p><p> The nsv containing the list is initialized by the bootstrap script and should Index: openacs-4/packages/acs-core-docs/www/db-api.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/db-api.html,v diff -u -r1.46 -r1.47 --- openacs-4/packages/acs-core-docs/www/db-api.html 13 Sep 2009 23:54:39 -0000 1.46 +++ openacs-4/packages/acs-core-docs/www/db-api.html 17 Oct 2010 21:06:07 -0000 1.47 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>The OpenACS Database Access API</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="dev-guide.html" title="Chapter 10. Development Reference"><link rel="previous" href="request-processor.html" title="The Request Processor"><link rel="next" href="templates.html" title="Using Templates in OpenACS"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="request-processor.html">Prev</a> </td><th width="60%" align="center">Chapter 10. Development Reference</th><td width="20%" align="right"> <a accesskey="n" href="templates.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="db-api"></a>The OpenACS Database Access API</h2></div></div><div></div></div><p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>The OpenACS Database Access API</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="dev-guide.html" title="Chapter 11. Development Reference"><link rel="previous" href="request-processor.html" title="The Request Processor"><link rel="next" href="templates.html" title="Using Templates in OpenACS"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="request-processor.html">Prev</a> </td><th width="60%" align="center">Chapter 11. Development Reference</th><td width="20%" align="right"> <a accesskey="n" href="templates.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="db-api"></a>The OpenACS Database Access API</h2></div></div><div></div></div><p> By Pete Su and Jon Salz. Modified by Roberto Mello. </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="db-api-overview"></a>Overview</h3></div></div><div></div></div><p> One of OpenACS's great strengths is that code written for it is @@ -8,7 +8,7 @@ coherent API for database access which makes this even easier. </p><p> More detailed information about the DB api is available at - ???. + <a href="db-api-detailed.html">Database Access API</a>. </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="db-api-examples"></a>DB API Examples</h3></div></div><div></div></div><p> The OpenACS database API is meant to save developers from making common mistakes and to provide a more structured syntax for Index: openacs-4/packages/acs-core-docs/www/dev-guide.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/dev-guide.html,v diff -u -r1.32 -r1.33 --- openacs-4/packages/acs-core-docs/www/dev-guide.html 13 Sep 2009 23:54:39 -0000 1.32 +++ openacs-4/packages/acs-core-docs/www/dev-guide.html 17 Oct 2010 21:06:07 -0000 1.33 @@ -1,2 +1,2 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter 10. Development Reference</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="acs-package-dev.html" title="Part III. For OpenACS Package Developers"><link rel="previous" href="tutorial-future-topics.html" title="Future Topics"><link rel="next" href="packages.html" title="OpenACS Packages"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-future-topics.html">Prev</a> </td><th width="60%" align="center">Part III. For OpenACS Package Developers</th><td width="20%" align="right"> <a accesskey="n" href="packages.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="dev-guide"></a>Chapter 10. Development Reference</h2></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="packages.html">OpenACS Packages</a></dt><dt><a href="objects.html">OpenACS Data Models and the Object System</a></dt><dt><a href="request-processor.html">The Request Processor</a></dt><dt><a href="db-api.html">The OpenACS Database Access API</a></dt><dt><a href="templates.html">Using Templates in OpenACS</a></dt><dt><a href="permissions.html">Groups, Context, Permissions</a></dt><dt><a href="parties.html">Parties in OpenACS</a></dt><dt><a href="permissions-tediously-explained.html">OpenACS Permissions Tediously Explained</a></dt><dt><a href="object-identity.html">Object Identity</a></dt><dt><a href="programming-with-aolserver.html">Programming with AOLserver</a></dt><dt><a href="form-builder.html">Using Form Builder: building html forms dynamically</a></dt></dl></div>Section missing</div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="tutorial-future-topics.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="packages.html">Next</a></td></tr><tr><td width="40%" align="left">Future Topics </td><td width="20%" align="center"><a accesskey="u" href="acs-package-dev.html">Up</a></td><td width="40%" align="right"> OpenACS Packages</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/dev-guide.html#comments">View comments on this page at openacs.org</a></center></body></html> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter 11. Development Reference</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="acs-package-dev.html" title="Part III. For OpenACS Package Developers"><link rel="previous" href="tutorial-future-topics.html" title="Future Topics"><link rel="next" href="packages.html" title="OpenACS Packages"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-future-topics.html">Prev</a> </td><th width="60%" align="center">Part III. For OpenACS Package Developers</th><td width="20%" align="right"> <a accesskey="n" href="packages.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="dev-guide"></a>Chapter 11. Development Reference</h2></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="packages.html">OpenACS Packages</a></dt><dt><a href="objects.html">OpenACS Data Models and the Object System</a></dt><dt><a href="request-processor.html">The Request Processor</a></dt><dt><a href="db-api.html">The OpenACS Database Access API</a></dt><dt><a href="templates.html">Using Templates in OpenACS</a></dt><dt><a href="permissions.html">Groups, Context, Permissions</a></dt><dt><a href="subsites.html">Writing OpenACS Application Pages</a></dt><dt><a href="parties.html">Parties in OpenACS</a></dt><dt><a href="permissions-tediously-explained.html">OpenACS Permissions Tediously Explained</a></dt><dt><a href="object-identity.html">Object Identity</a></dt><dt><a href="programming-with-aolserver.html">Programming with AOLserver</a></dt><dt><a href="form-builder.html">Using Form Builder: building html forms dynamically</a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="tutorial-future-topics.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="packages.html">Next</a></td></tr><tr><td width="40%" align="left">Future Topics </td><td width="20%" align="center"><a accesskey="u" href="acs-package-dev.html">Up</a></td><td width="40%" align="right"> OpenACS Packages</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/dev-guide.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/doc-standards.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/doc-standards.html,v diff -u -r1.14 -r1.15 --- openacs-4/packages/acs-core-docs/www/doc-standards.html 13 Sep 2009 23:54:39 -0000 1.14 +++ openacs-4/packages/acs-core-docs/www/doc-standards.html 17 Oct 2010 21:06:07 -0000 1.15 @@ -1,2 +1,2 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter 12. Documentation Standards</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="acs-package-dev.html" title="Part III. For OpenACS Package Developers"><link rel="previous" href="automated-testing-best-practices.html" title="Automated Testing"><link rel="next" href="docbook-primer.html" title="OpenACS Documentation Guide"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="automated-testing-best-practices.html">Prev</a> </td><th width="60%" align="center">Part III. For OpenACS Package Developers</th><td width="20%" align="right"> <a accesskey="n" href="docbook-primer.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="doc-standards"></a>Chapter 12. Documentation Standards</h2></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="docbook-primer.html">OpenACS Documentation Guide</a></dt><dt><a href="nxml-mode.html">Using nXML mode in Emacs</a></dt><dt><a href="filename.html">Detailed Design Documentation Template</a></dt><dt><a href="requirements-template.html">System/Application Requirements Template</a></dt></dl></div>Section missing</div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="automated-testing-best-practices.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="docbook-primer.html">Next</a></td></tr><tr><td width="40%" align="left">Automated Testing </td><td width="20%" align="center"><a accesskey="u" href="acs-package-dev.html">Up</a></td><td width="40%" align="right"> OpenACS Documentation Guide</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/doc-standards.html#comments">View comments on this page at openacs.org</a></center></body></html> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter 13. Documentation Standards</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="acs-package-dev.html" title="Part III. For OpenACS Package Developers"><link rel="previous" href="automated-testing-best-practices.html" title="Automated Testing"><link rel="next" href="docbook-primer.html" title="OpenACS Documentation Guide"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="automated-testing-best-practices.html">Prev</a> </td><th width="60%" align="center">Part III. For OpenACS Package Developers</th><td width="20%" align="right"> <a accesskey="n" href="docbook-primer.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="doc-standards"></a>Chapter 13. Documentation Standards</h2></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="docbook-primer.html">OpenACS Documentation Guide</a></dt><dt><a href="psgml-mode.html">Using PSGML mode in Emacs</a></dt><dt><a href="nxml-mode.html">Using nXML mode in Emacs</a></dt><dt><a href="filename.html">Detailed Design Documentation Template</a></dt><dt><a href="requirements-template.html">System/Application Requirements Template</a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="automated-testing-best-practices.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="docbook-primer.html">Next</a></td></tr><tr><td width="40%" align="left">Automated Testing </td><td width="20%" align="center"><a accesskey="u" href="acs-package-dev.html">Up</a></td><td width="40%" align="right"> OpenACS Documentation Guide</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/doc-standards.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/docbook-primer.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/docbook-primer.html,v diff -u -r1.48 -r1.49 --- openacs-4/packages/acs-core-docs/www/docbook-primer.html 13 Sep 2009 23:54:39 -0000 1.48 +++ openacs-4/packages/acs-core-docs/www/docbook-primer.html 17 Oct 2010 21:06:07 -0000 1.49 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenACS Documentation Guide</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="doc-standards.html" title="Chapter 12. Documentation Standards"><link rel="previous" href="doc-standards.html" title="Chapter 12. Documentation Standards"><link rel="next" href="nxml-mode.html" title="Using nXML mode in Emacs"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="doc-standards.html">Prev</a> </td><th width="60%" align="center">Chapter 12. Documentation Standards</th><td width="20%" align="right"> <a accesskey="n" href="nxml-mode.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="docbook-primer"></a>OpenACS Documentation Guide</h2></div></div><div></div></div><p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenACS Documentation Guide</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="doc-standards.html" title="Chapter 13. Documentation Standards"><link rel="previous" href="doc-standards.html" title="Chapter 13. Documentation Standards"><link rel="next" href="psgml-mode.html" title="Using PSGML mode in Emacs"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="doc-standards.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Documentation Standards</th><td width="20%" align="right"> <a accesskey="n" href="psgml-mode.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="docbook-primer"></a>OpenACS Documentation Guide</h2></div></div><div></div></div><p> By Claus Rasmussen, with additions by Roberto Mello, Vinod Kurup, and the OpenACS Community </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="dbprimer-overview"></a>Overview of OpenACS Documentation</h3></div></div><div></div></div><p> <span class="productname">OpenACS</span>™ is a powerful system with @@ -557,7 +557,7 @@ </p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="doc-strategy"></a>OpenACS Documentation Strategy</h3></div></div><div></div></div><p> OpenACS documentation development is subject to the constraints of the software project development and release - methods and cycles (<a href="cvs-guidelines.html#using-cvs-with-openacs" title="Using CVS with OpenACS">Section , “Using CVS with OpenACS”</a>). + methods and cycles (???). Essentially, all phases of work may be active to accommodate the asynchronous nature of multiple subprojects evolving by the efforts of a global base of participants with culturally @@ -578,7 +578,7 @@ DTD</a>. The remaining discussion is about publishing using Docbook. </p><p> -<a class="indexterm" name="id3033685"></a> +<a class="indexterm" name="id3072034"></a> is a publishing standard based on XML with similar goals to the OpenACS Documentation project. Some specific reasons why we are using DocBook: </p><div class="itemizedlist"><ul type="disc"><li><p> @@ -641,7 +641,7 @@ list of elements</a> and use more exotic features in your documents. The list is made up of SGML-elements but basically the same elements are valid in the XML DTD <span class="strong">as long as you remember to</span>: - <a class="indexterm" name="id3033902"></a> + <a class="indexterm" name="id3024437"></a> </p><div class="itemizedlist"><ul type="disc"><li><p> Always close your tags with corresponding end-tags and to <span class="strong">not use other tag minimization</span> @@ -690,7 +690,7 @@ The documentation for each package will make up a little "book" that is structured like this - examples are <span class="emphasis"><em>emphasized</em></span>: - <a class="indexterm" name="id3034135"></a> + <a class="indexterm" name="id3024670"></a> </p><pre class="programlisting"> book : <span class="strong">Docs for one package</span> - <span class="emphasis"><em>templating</em></span> @@ -714,20 +714,20 @@ <a href="http://openacs.org/cvs/openacs-4/packages/acs-core-docs/www/xml/engineering-standards" target="_top">sources of these DocBook documents</a> to get an idea of how they are tied together. </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="dbprimer-sections"></a>Headlines, Sections</h3></div></div><div></div></div><p> - <a class="indexterm" name="id3034266"></a> + <a class="indexterm" name="id3024801"></a> Given that your job starts at the <tt class="computeroutput">sect1</tt>-level, all your documents should open with a <a href="http://docbook.org/tdg/en/html/sect1.html" target="_top"><tt class="computeroutput"><sect1></tt></a>-tag and end with the corresponding <tt class="computeroutput"></sect1></tt>. </p><p> - <a class="indexterm" name="id3034309"></a> + <a class="indexterm" name="id3024843"></a> You need to feed every <tt class="computeroutput"><sect1></tt> two attributes. The first attribute, <tt class="computeroutput">id</tt>, is standard and can be used with all elements. It comes in very handy when interlinking between documents (more about this when talking about links in <a href="docbook-primer.html#dbprimer-links" title="Links">Section , “Links”</a>). The value of <tt class="computeroutput">id</tt> has to be unique throughout the book you're making since the <tt class="computeroutput">id</tt>'s in your <tt class="computeroutput">sect1</tt>'s will turn into filenames when the book is parsed into HTML. </p><p> - <a class="indexterm" name="id3034368"></a> + <a class="indexterm" name="id3031287"></a> The other attribute is <tt class="computeroutput">xreflabel</tt>. The value of this is the text that will appear as the link when referring to this <tt class="computeroutput">sect1</tt>. </p><p> @@ -742,7 +742,7 @@ </sect1> </pre><p> - <a class="indexterm" name="id3034419"></a> + <a class="indexterm" name="id3031339"></a> Inside this container your document will be split up into <a href="http://docbook.org/tdg/en/html/sect2.html" target="_top"><tt class="computeroutput"><sect2></tt></a>'s, each with the same requirements - <tt class="computeroutput">id</tt> and <tt class="computeroutput">xreflabel</tt> @@ -751,7 +751,7 @@ When it comes to naming your <tt class="computeroutput">sect2</tt>'s and below, prefix them with some abbreviation of the <tt class="computeroutput">id</tt> in the <tt class="computeroutput">sect1</tt> such as <tt class="computeroutput">requirements-overview</tt>. </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="dbprimer-code"></a>Code</h3></div></div><div></div></div><p> - <a class="indexterm" name="id3013482"></a> + <a class="indexterm" name="id3031440"></a> For displaying a snippet of code, a filename or anything else you just want to appear as a part of a sentence, we use <a href="http://docbook.org/tdg/en/html/computeroutput.html" target="_top"><tt class="computeroutput"><computeroutput></tt></a> @@ -769,12 +769,12 @@ tag around text that has been wrapped by combinations of <a href="http://docbook.org/tdg/en/html/computeroutput.html" target="_top"><tt class="computeroutput"><computeroutput></tt></a> and <a href="http://docbook.org/tdg/en/html/userinput.html" target="_top"><b class="userinput"><tt><userinput></tt></b></a> </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="dbprimer-links"></a>Links</h3></div></div><div></div></div><p> - <a class="indexterm" name="id3013601"></a> + <a class="indexterm" name="id3031558"></a> Linking falls into two different categories: inside the book you're making and outside: </p><div class="variablelist"><dl><dt><span class="term"><span class="strong">1. Inside linking, cross-referencing other parts of your book</span></span></dt><dd><p> By having unique <tt class="computeroutput">id</tt>'s you can cross-reference any part of your book with a simple tag, regardless of where that part is. - </p><p><a class="indexterm" name="id3013642"></a>Check out how I link to a subsection of the Developer's Guide:</p><p>Put this in your XML:</p><pre class="programlisting"> + </p><p><a class="indexterm" name="id3031600"></a>Check out how I link to a subsection of the Developer's Guide:</p><p>Put this in your XML:</p><pre class="programlisting"> - Find information about creating a package in <xref linkend="packages-making-a-package"></xref>. </pre><p>And the output is:</p><pre class="programlisting"> @@ -798,7 +798,7 @@ <tt class="computeroutput">packages-looks</tt>, the parser will try its best to explain where the link takes you. </p></dd><dt><span class="term"><span class="strong">2. Linking outside the documentation</span></span></dt><dd><p> - <a class="indexterm" name="id3013814"></a> + <a class="indexterm" name="id3031772"></a> If you're hyper-linking out of the documentation, it works almost the same way as HTML - the tag is just a little different @@ -819,7 +819,7 @@ for you. </em></span> </p><p> - <a class="indexterm" name="id3013912"></a> + <a class="indexterm" name="id3031870"></a> To insert a graphic we use the elements <a href="http://docbook.org/tdg/en/html/mediaobject.html" target="_top"><tt class="computeroutput"><mediaobject></tt></a>, <a href="http://docbook.org/tdg/en/html/imageobject.html" target="_top"><tt class="computeroutput"><imageobject></tt></a>, @@ -845,7 +845,7 @@ Put your graphics in a separate directory ("images") and link to them only with relative paths. </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="dbprimer-lists"></a>Lists</h3></div></div><div></div></div><p> - <a class="indexterm" name="id3014012"></a> + <a class="indexterm" name="id3032815"></a> Here's how you make the DocBook equivalent of the three usual HTML-lists: </p><div class="variablelist"><dl><dt><span class="term"><span class="strong">1. How to make an <ul></span></span></dt><dd><p> Making an unordered list is pretty much like doing the same thing in HTML - if you close your <tt class="computeroutput"><li></tt>, that is. The only differences are that each list item has to be wrapped in something more, such as @@ -890,7 +890,7 @@ </variablelist> </pre></dd></dl></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="dbprimer-tables"></a>Tables</h3></div></div><div></div></div><p> - <a class="indexterm" name="id3014243"></a> + <a class="indexterm" name="id3033046"></a> DocBook supports several types of tables, but in most cases, the <a href="http://docbook.org/tdg/en/html/informaltable.html" target="_top"><tt class="computeroutput"><informaltable></tt></a> is enough: @@ -927,7 +927,7 @@ <a href="http://docbook.org/tdg/en/html/table.html" target="_top"><tt class="computeroutput"><table></tt></a> for an example. </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="dbprimer-emphasis"></a>Emphasis</h3></div></div><div></div></div><p> - <a class="indexterm" name="id3014390"></a> + <a class="indexterm" name="id3033193"></a> Our documentation uses two flavors of emphasis - italics and bold type. DocBook uses one - <a href="http://docbook.org/tdg/en/html/emphasis.html" target="_top"><tt class="computeroutput"><emphasis></tt></a>. </p><p> @@ -981,7 +981,7 @@ to PSGML Mode. nXML Mode can validate a file as it is edited. </p></li><li><p> David Lutterkort - wrote an <a href="">intro to the PSGML Mode in Emacs</a> + wrote an <a href="psgml-mode.html" title="Using PSGML mode in Emacs">intro to the PSGML Mode in Emacs</a> </p></li><li><p> James Clark's free Java parser <a href="http://www.jclark.com/xml/xp/index.html" target="_top">XP</a>. Note that @@ -1003,4 +1003,4 @@ script with directions</a> (now via archive.org) that gets you most of the way. - </p></li></ul></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="doc-standards.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="nxml-mode.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter 12. Documentation Standards </td><td width="20%" align="center"><a accesskey="u" href="doc-standards.html">Up</a></td><td width="40%" align="right"> Using nXML mode in Emacs</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/docbook-primer.html#comments">View comments on this page at openacs.org</a></center></body></html> + </p></li></ul></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="doc-standards.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="psgml-mode.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter 13. Documentation Standards </td><td width="20%" align="center"><a accesskey="u" href="doc-standards.html">Up</a></td><td width="40%" align="right"> Using PSGML mode in Emacs</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/docbook-primer.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/eng-standards-constraint-naming.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/eng-standards-constraint-naming.html,v diff -u -r1.44 -r1.45 --- openacs-4/packages/acs-core-docs/www/eng-standards-constraint-naming.html 13 Sep 2009 23:54:39 -0000 1.44 +++ openacs-4/packages/acs-core-docs/www/eng-standards-constraint-naming.html 17 Oct 2010 21:06:07 -0000 1.45 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Constraint naming standard</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="eng-standards.html" title="Chapter 11. Engineering Standards"><link rel="previous" href="eng-standards-versioning.html" title="Release Version Numbering"><link rel="next" href="eng-standards-filenaming.html" title="ACS File Naming and Formatting Standards"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="eng-standards-versioning.html">Prev</a> </td><th width="60%" align="center">Chapter 11. Engineering Standards</th><td width="20%" align="right"> <a accesskey="n" href="eng-standards-filenaming.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="eng-standards-constraint-naming"></a>Constraint naming standard</h2></div></div><div></div></div><div class="authorblurb"><p>By Michael Bryzek</p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Constraint naming standard</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="eng-standards.html" title="Chapter 12. Engineering Standards"><link rel="previous" href="eng-standards-versioning.html" title="Release Version Numbering"><link rel="next" href="eng-standards-filenaming.html" title="ACS File Naming and Formatting Standards"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="eng-standards-versioning.html">Prev</a> </td><th width="60%" align="center">Chapter 12. Engineering Standards</th><td width="20%" align="right"> <a accesskey="n" href="eng-standards-filenaming.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="eng-standards-constraint-naming"></a>Constraint naming standard</h2></div></div><div></div></div><div class="authorblurb"><p>By Michael Bryzek</p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="eng-standards-constraint-naming-big-picture"></a>The Big Picture</h3></div></div><div></div></div><p> Index: openacs-4/packages/acs-core-docs/www/eng-standards-filenaming.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/eng-standards-filenaming.html,v diff -u -r1.44 -r1.45 --- openacs-4/packages/acs-core-docs/www/eng-standards-filenaming.html 13 Sep 2009 23:54:39 -0000 1.44 +++ openacs-4/packages/acs-core-docs/www/eng-standards-filenaming.html 17 Oct 2010 21:06:07 -0000 1.45 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ACS File Naming and Formatting Standards</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="eng-standards.html" title="Chapter 11. Engineering Standards"><link rel="previous" href="eng-standards-constraint-naming.html" title="Constraint naming standard"><link rel="next" href="eng-standards-plsql.html" title="PL/SQL Standards"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="eng-standards-constraint-naming.html">Prev</a> </td><th width="60%" align="center">Chapter 11. Engineering Standards</th><td width="20%" align="right"> <a accesskey="n" href="eng-standards-plsql.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="eng-standards-filenaming"></a>ACS File Naming and Formatting Standards</h2></div></div><div></div></div><div class="authorblurb"><p>By Michael Yoon and Aurelius Prochazka</p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>ACS File Naming and Formatting Standards</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="eng-standards.html" title="Chapter 12. Engineering Standards"><link rel="previous" href="eng-standards-constraint-naming.html" title="Constraint naming standard"><link rel="next" href="eng-standards-plsql.html" title="PL/SQL Standards"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="eng-standards-constraint-naming.html">Prev</a> </td><th width="60%" align="center">Chapter 12. Engineering Standards</th><td width="20%" align="right"> <a accesskey="n" href="eng-standards-plsql.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="eng-standards-filenaming"></a>ACS File Naming and Formatting Standards</h2></div></div><div></div></div><div class="authorblurb"><p>By Michael Yoon and Aurelius Prochazka</p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><p> @@ -95,7 +95,7 @@ This can be at the top or bottom of the file. </p><div>Using ad_page_contract</div><p> For non-library Tcl files (those not in the private Tcl directory), -use <a href="tcl-doc.html#tcl-doc-ad-page-contract" title="ad_page_contract"><tt class="computeroutput">ad_page_contract</tt></a> +use <a href=""><tt class="computeroutput">ad_page_contract</tt></a> after the file path comment (this supersedes set_the_usual_form_variables and ad_return_complaint). Here is an example of using ad_page_contract, which serves both documentation and page input @@ -141,7 +141,7 @@ set_the_usual_form_variables. The use of bind variables makes such previous variable syntax obsolete. </p></li></ul></div><div>Using ad_library</div><p> -For shared Tcl library files, use <a href="tcl-doc.html#tcl-doc-ad-library" title="ad_library"><tt class="computeroutput">ad_library</tt></a> after +For shared Tcl library files, use <a href=""><tt class="computeroutput">ad_library</tt></a> after the file path comment. Its only argument is a doc_string in the standard (javadoc-style) format, like <tt class="computeroutput">ad_page_contract</tt>. Don't forget to put the @cvs-id in Index: openacs-4/packages/acs-core-docs/www/eng-standards-plsql.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/eng-standards-plsql.html,v diff -u -r1.45 -r1.46 --- openacs-4/packages/acs-core-docs/www/eng-standards-plsql.html 13 Sep 2009 23:54:39 -0000 1.45 +++ openacs-4/packages/acs-core-docs/www/eng-standards-plsql.html 17 Oct 2010 21:06:07 -0000 1.46 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>PL/SQL Standards</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="eng-standards.html" title="Chapter 11. Engineering Standards"><link rel="previous" href="eng-standards-filenaming.html" title="ACS File Naming and Formatting Standards"><link rel="next" href="variables.html" title="Variables"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="eng-standards-filenaming.html">Prev</a> </td><th width="60%" align="center">Chapter 11. Engineering Standards</th><td width="20%" align="right"> <a accesskey="n" href="variables.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="eng-standards-plsql"></a>PL/SQL Standards</h2></div></div><div></div></div><div class="authorblurb"><p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>PL/SQL Standards</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="eng-standards.html" title="Chapter 12. Engineering Standards"><link rel="previous" href="eng-standards-filenaming.html" title="ACS File Naming and Formatting Standards"><link rel="next" href="variables.html" title="Variables"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="eng-standards-filenaming.html">Prev</a> </td><th width="60%" align="center">Chapter 12. Engineering Standards</th><td width="20%" align="right"> <a accesskey="n" href="variables.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="eng-standards-plsql"></a>PL/SQL Standards</h2></div></div><div></div></div><div class="authorblurb"><p> By Richard Li and Yon Feldman </p> OpenACS docs are written by the named authors, and may be edited Index: openacs-4/packages/acs-core-docs/www/eng-standards-versioning.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/eng-standards-versioning.html,v diff -u -r1.47 -r1.48 --- openacs-4/packages/acs-core-docs/www/eng-standards-versioning.html 13 Sep 2009 23:54:39 -0000 1.47 +++ openacs-4/packages/acs-core-docs/www/eng-standards-versioning.html 17 Oct 2010 21:06:07 -0000 1.48 @@ -1,7 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Release Version Numbering</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="eng-standards.html" title="Chapter 11. Engineering Standards"><link rel="previous" href="cvs-guidelines.html" title=" - CVS Guidelines - "><link rel="next" href="eng-standards-constraint-naming.html" title="Constraint naming standard"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="cvs-guidelines.html">Prev</a> </td><th width="60%" align="center">Chapter 11. Engineering Standards</th><td width="20%" align="right"> <a accesskey="n" href="eng-standards-constraint-naming.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="eng-standards-versioning"></a>Release Version Numbering</h2></div></div><div></div></div><div class="authorblurb"><div class="cvstag">($Id$)</div><p>By Ron Henderson, Revised by Joel Aufrecht</p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Release Version Numbering</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="eng-standards.html" title="Chapter 12. Engineering Standards"><link rel="previous" href="style-guide.html" title="OpenACS Style Guide"><link rel="next" href="eng-standards-constraint-naming.html" title="Constraint naming standard"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="style-guide.html">Prev</a> </td><th width="60%" align="center">Chapter 12. Engineering Standards</th><td width="20%" align="right"> <a accesskey="n" href="eng-standards-constraint-naming.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="eng-standards-versioning"></a>Release Version Numbering</h2></div></div><div></div></div><div class="authorblurb"><div class="cvstag">($Id$)</div><p>By Ron Henderson, Revised by Joel Aufrecht</p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><p> @@ -91,6 +89,4 @@ </p></li><li><p>If you are working on a pre-release version of a package, use the current package version as OLDVERSION. Increment the package version as appropriate (see above) and use the new version as NEWVERSION. For example, if you are working on 2.0.1d3, make it 2.0.1d4 and use <tt class="computeroutput">upgrade-2.0.1d3-2.0.1d4.sql</tt>.</p></li><li><p>Database upgrades should be confined to development releases, not alpha or beta releases.</p></li><li><p> Never use a final release number as a NEWVERSION. If you do, then it is impossible to add any more database upgrades without incrementing the overall package version.</p></li><li><p>Use only the d, a, and b letters in OLDVERSION and NEWVERSION. rc is not supported by OpenACS APM.</p></li><li><p>The distance from OLDVERSION to NEWVERSION should never span a release. For example if we had a bug fix in acs-kernel on 5.1.0 you wouldn't want a file upgrade-5.0.4-5.1.0d1.sql since if you subsequently need to provide a 5.0.4-5.0.5 upgrade you will have to rename the 5.0.4-5.1.0 upgrade since you can't have upgrades which overlap like that. Instead, use <tt class="computeroutput">upgrade-5.1.0d1-5.1.0d2.sql</tt> -</p></li></ol></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="cvs-guidelines.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="eng-standards-constraint-naming.html">Next</a></td></tr><tr><td width="40%" align="left"> - CVS Guidelines - </td><td width="20%" align="center"><a accesskey="u" href="eng-standards.html">Up</a></td><td width="40%" align="right"> Constraint naming standard</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/eng-standards-versioning.html#comments">View comments on this page at openacs.org</a></center></body></html> +</p></li></ol></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="style-guide.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="eng-standards-constraint-naming.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS Style Guide </td><td width="20%" align="center"><a accesskey="u" href="eng-standards.html">Up</a></td><td width="40%" align="right"> Constraint naming standard</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/eng-standards-versioning.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/eng-standards.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/eng-standards.html,v diff -u -r1.28 -r1.29 --- openacs-4/packages/acs-core-docs/www/eng-standards.html 13 Sep 2009 23:54:39 -0000 1.28 +++ openacs-4/packages/acs-core-docs/www/eng-standards.html 17 Oct 2010 21:06:07 -0000 1.29 @@ -1,4 +1,2 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter 11. Engineering Standards</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="acs-package-dev.html" title="Part III. For OpenACS Package Developers"><link rel="previous" href="form-builder.html" title="Using Form Builder: building html forms dynamically"><link rel="next" href="style-guide.html" title="OpenACS Style Guide"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="form-builder.html">Prev</a> </td><th width="60%" align="center">Part III. For OpenACS Package Developers</th><td width="20%" align="right"> <a accesskey="n" href="style-guide.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="eng-standards"></a>Chapter 11. Engineering Standards</h2></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="style-guide.html">OpenACS Style Guide</a></dt><dt><a href="cvs-guidelines.html"> - CVS Guidelines - </a></dt><dt><a href="eng-standards-versioning.html">Release Version Numbering</a></dt><dt><a href="eng-standards-constraint-naming.html">Constraint naming standard</a></dt><dt><a href="eng-standards-filenaming.html">ACS File Naming and Formatting Standards</a></dt><dt><a href="eng-standards-plsql.html">PL/SQL Standards</a></dt><dt><a href="variables.html">Variables</a></dt><dt><a href="automated-testing-best-practices.html">Automated Testing</a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="form-builder.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="style-guide.html">Next</a></td></tr><tr><td width="40%" align="left">Using Form Builder: building html forms dynamically </td><td width="20%" align="center"><a accesskey="u" href="acs-package-dev.html">Up</a></td><td width="40%" align="right"> OpenACS Style Guide</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/eng-standards.html#comments">View comments on this page at openacs.org</a></center></body></html> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter 12. Engineering Standards</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="acs-package-dev.html" title="Part III. For OpenACS Package Developers"><link rel="previous" href="form-builder.html" title="Using Form Builder: building html forms dynamically"><link rel="next" href="style-guide.html" title="OpenACS Style Guide"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="form-builder.html">Prev</a> </td><th width="60%" align="center">Part III. For OpenACS Package Developers</th><td width="20%" align="right"> <a accesskey="n" href="style-guide.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="eng-standards"></a>Chapter 12. Engineering Standards</h2></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="style-guide.html">OpenACS Style Guide</a></dt><dt><a href="eng-standards-versioning.html">Release Version Numbering</a></dt><dt><a href="eng-standards-constraint-naming.html">Constraint naming standard</a></dt><dt><a href="eng-standards-filenaming.html">ACS File Naming and Formatting Standards</a></dt><dt><a href="eng-standards-plsql.html">PL/SQL Standards</a></dt><dt><a href="variables.html">Variables</a></dt><dt><a href="automated-testing-best-practices.html">Automated Testing</a></dt></dl></div>Section missing</div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="form-builder.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="style-guide.html">Next</a></td></tr><tr><td width="40%" align="left">Using Form Builder: building html forms dynamically </td><td width="20%" align="center"><a accesskey="u" href="acs-package-dev.html">Up</a></td><td width="40%" align="right"> OpenACS Style Guide</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/eng-standards.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/ext-auth-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/ext-auth-requirements.html,v diff -u -r1.36 -r1.37 --- openacs-4/packages/acs-core-docs/www/ext-auth-requirements.html 13 Sep 2009 23:54:40 -0000 1.36 +++ openacs-4/packages/acs-core-docs/www/ext-auth-requirements.html 17 Oct 2010 21:06:07 -0000 1.37 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>External Authentication Requirements</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 14. Kernel Documentation"><link rel="previous" href="bootstrap-acs.html" title="Bootstrapping OpenACS"><link rel="next" href="releasing-openacs.html" title="Chapter 15. Releasing OpenACS"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="bootstrap-acs.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="releasing-openacs.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="ext-auth-requirements"></a>External Authentication Requirements</h2></div></div><div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2899517"></a>Vision</h3></div></div><div></div></div><p>People have plenty of usernames and passwords already, we +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>External Authentication Requirements</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 15. Kernel Documentation"><link rel="previous" href="bootstrap-acs.html" title="Bootstrapping OpenACS"><link rel="next" href="releasing-openacs.html" title="Chapter 16. Releasing OpenACS"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="bootstrap-acs.html">Prev</a> </td><th width="60%" align="center">Chapter 15. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="releasing-openacs.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="ext-auth-requirements"></a>External Authentication Requirements</h2></div></div><div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2955964"></a>Vision</h3></div></div><div></div></div><p>People have plenty of usernames and passwords already, we don't want them to have yet another. We want people to be able to log in to OpenACS with the same password they use to log in to any other system.</p><p>Besides, administrators have better things to do than create @@ -45,7 +45,7 @@ only one implementation of the authentication API, namly the one included in OpenACS Core.</p></li><li><p>Authentication Driver API: The service contract which authentication drivers implement.</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="Diagram"></a>Conceptual Pictures</h3></div></div><div></div></div><p>Authentication:</p><p><span class="inlinemediaobject"><img src="../images/ext-auth.png"></span> -</p><p>Account Management (NO PICTURE YET)</p><p>Batch Synchronization (NO PICTURE YET)</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="Requirements"></a>Requirements</h3></div></div><div></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id3002583"></a>New API</h4></div></div><div></div></div><div class="segmentedlist"><table border="1" cellpadding="3" cellspacing="0" width="90%"><tr><th width="15%">Feature</th><th width="8%">Status</th><th width="77%">Description</th></tr><thead><tr><th>New API</th></tr></thead><tbody><tr><td>EXT-AUTH-01</td><td>A</td><td>Extend Authentication/Acct Status API</td></tr><tr><td>EXT-AUTH-03</td><td>A</td><td>Account Creation API</td></tr><tr><td>EXT-AUTH-05</td><td>A</td><td>Password Management API</td></tr><tr><td>EXT-AUTH-30</td><td>A</td><td>Authority Management API</td></tr></tbody></table></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Login"></a>Login</h4></div></div><div></div></div><div class="segmentedlist"><table border="1" cellpadding="3" cellspacing="0" width="90%"><tr><th width="15%">Feature</th><th width="8%">Status</th><th width="77%">Description</th></tr><thead><tr><th>Login</th></tr></thead><tbody><tr><td>EXT-AUTH-04</td><td>A</td><td>Rewrite login, register, and admin pages to use APIs</td></tr><tr><td>EXT-AUTH-38</td><td>A</td><td>ad_form complain feature</td></tr><tr><td>EXT-AUTH-19</td><td>A</td><td>Rewrite password recovery to use API</td></tr><tr><td>EXT-AUTH-21</td><td>A</td><td>Rewrite email verification with API</td></tr><tr><td>EXT-AUTH-28</td><td>A</td><td>Username is email switch</td></tr></tbody></table></div><p>Users will log in using a username, a authority, and a +</p><p>Account Management (NO PICTURE YET)</p><p>Batch Synchronization (NO PICTURE YET)</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="Requirements"></a>Requirements</h3></div></div><div></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2992601"></a>New API</h4></div></div><div></div></div><div class="segmentedlist"><table border="1" cellpadding="3" cellspacing="0" width="90%"><tr><th width="15%">Feature</th><th width="8%">Status</th><th width="77%">Description</th></tr><thead><tr><th>New API</th></tr></thead><tbody><tr><td>EXT-AUTH-01</td><td>A</td><td>Extend Authentication/Acct Status API</td></tr><tr><td>EXT-AUTH-03</td><td>A</td><td>Account Creation API</td></tr><tr><td>EXT-AUTH-05</td><td>A</td><td>Password Management API</td></tr><tr><td>EXT-AUTH-30</td><td>A</td><td>Authority Management API</td></tr></tbody></table></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Login"></a>Login</h4></div></div><div></div></div><div class="segmentedlist"><table border="1" cellpadding="3" cellspacing="0" width="90%"><tr><th width="15%">Feature</th><th width="8%">Status</th><th width="77%">Description</th></tr><thead><tr><th>Login</th></tr></thead><tbody><tr><td>EXT-AUTH-04</td><td>A</td><td>Rewrite login, register, and admin pages to use APIs</td></tr><tr><td>EXT-AUTH-38</td><td>A</td><td>ad_form complain feature</td></tr><tr><td>EXT-AUTH-19</td><td>A</td><td>Rewrite password recovery to use API</td></tr><tr><td>EXT-AUTH-21</td><td>A</td><td>Rewrite email verification with API</td></tr><tr><td>EXT-AUTH-28</td><td>A</td><td>Username is email switch</td></tr></tbody></table></div><p>Users will log in using a username, a authority, and a password. The authority is the source for user/password verification. OpenACS can be an authority itself. </p><p>Each user in OpenACS will belong to exactly one authority, which can either be the "local" OpenACS users table, in which case the @@ -376,4 +376,4 @@ PAM specification</a></p></li><li><p><a href="http://openacs.org/new-file-storage/download/oacs-pam.html?version_id=687" target="_top">Draft Proposal</a> by Andrew Grumet.</p></li><li><p><a href="http://www.yale.edu/tp/auth/" target="_top">Yale CAS</a>, a centrl authentication service a' la - Passport.</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="ext-auth-revision-history"></a>Revision History</h3></div></div><div></div></div><div class="informaltable"><table cellspacing="0" border="1"><colgroup><col><col><col><col></colgroup><tbody><tr><td><span class="strong">Document Revision #</span></td><td><span class="strong">Action Taken, Notes</span></td><td><span class="strong">When?</span></td><td><span class="strong">By Whom?</span></td></tr><tr><td>1</td><td>Updated work-in-progress for consortium-sponsored ext-auth work at Collaboraid.</td><td>20 Aug 2003</td><td>Joel Aufrecht</td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bootstrap-acs.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="releasing-openacs.html">Next</a></td></tr><tr><td width="40%" align="left">Bootstrapping OpenACS </td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right"> Chapter 15. Releasing OpenACS</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/ext-auth-requirements.html#comments">View comments on this page at openacs.org</a></center></body></html> + Passport.</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="ext-auth-revision-history"></a>Revision History</h3></div></div><div></div></div><div class="informaltable"><table cellspacing="0" border="1"><colgroup><col><col><col><col></colgroup><tbody><tr><td><span class="strong">Document Revision #</span></td><td><span class="strong">Action Taken, Notes</span></td><td><span class="strong">When?</span></td><td><span class="strong">By Whom?</span></td></tr><tr><td>1</td><td>Updated work-in-progress for consortium-sponsored ext-auth work at Collaboraid.</td><td>20 Aug 2003</td><td>Joel Aufrecht</td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bootstrap-acs.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="releasing-openacs.html">Next</a></td></tr><tr><td width="40%" align="left">Bootstrapping OpenACS </td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right"> Chapter 16. Releasing OpenACS</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/ext-auth-requirements.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/filename.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/filename.html,v diff -u -r1.45 -r1.46 --- openacs-4/packages/acs-core-docs/www/filename.html 13 Sep 2009 23:54:40 -0000 1.45 +++ openacs-4/packages/acs-core-docs/www/filename.html 17 Oct 2010 21:06:07 -0000 1.46 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Detailed Design Documentation Template</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="doc-standards.html" title="Chapter 12. Documentation Standards"><link rel="previous" href="nxml-mode.html" title="Using nXML mode in Emacs"><link rel="next" href="requirements-template.html" title="System/Application Requirements Template"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="nxml-mode.html">Prev</a> </td><th width="60%" align="center">Chapter 12. Documentation Standards</th><td width="20%" align="right"> <a accesskey="n" href="requirements-template.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="filename"></a>Detailed Design Documentation Template</h2></div></div><div></div></div><p>By <a href="mailto:youremail@example.com" target="_top">You</a></p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="yourpackage-design-start-note"></a>Start Note</h3></div></div><div></div></div><p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Detailed Design Documentation Template</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="doc-standards.html" title="Chapter 13. Documentation Standards"><link rel="previous" href="nxml-mode.html" title="Using nXML mode in Emacs"><link rel="next" href="requirements-template.html" title="System/Application Requirements Template"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="nxml-mode.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Documentation Standards</th><td width="20%" align="right"> <a accesskey="n" href="requirements-template.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="filename"></a>Detailed Design Documentation Template</h2></div></div><div></div></div><p>By <a href="mailto:youremail@example.com" target="_top">You</a></p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="yourpackage-design-start-note"></a>Start Note</h3></div></div><div></div></div><p> <span class="emphasis"><em>NOTE: Some of the sections of this template may not apply to your package, e.g. there may be no user-visible UI elements for a component of the OpenACS Core. Furthermore, it may be easier in some circumstances @@ -115,7 +115,7 @@ within the OpenACS, this section's details are likely to shift from UI specifics to template interface specifics. </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="yourpackage-design-config"></a>Configuration/Parameters</h3></div></div><div></div></div><p> - Under OpenACS 5.5.0, parameters are set at two levels: at the global level by + Under OpenACS 5.6.0, parameters are set at two levels: at the global level by the OpenACS-admin, and at the subsite level by a sub-admin. In this section, list and discuss both levels of parameters. </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="yourpackage-design-future"></a>Future Improvements/Areas of Likely Change</h3></div></div><div></div></div><p> Index: openacs-4/packages/acs-core-docs/www/form-builder.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/form-builder.html,v diff -u -r1.26 -r1.27 --- openacs-4/packages/acs-core-docs/www/form-builder.html 13 Sep 2009 23:54:40 -0000 1.26 +++ openacs-4/packages/acs-core-docs/www/form-builder.html 17 Oct 2010 21:06:07 -0000 1.27 @@ -1,12 +1,12 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Using Form Builder: building html forms dynamically</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="dev-guide.html" title="Chapter 10. Development Reference"><link rel="previous" href="programming-with-aolserver.html" title="Programming with AOLserver"><link rel="next" href="eng-standards.html" title="Chapter 11. Engineering Standards"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="programming-with-aolserver.html">Prev</a> </td><th width="60%" align="center">Chapter 10. Development Reference</th><td width="20%" align="right"> <a accesskey="n" href="eng-standards.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="form-builder"></a>Using Form Builder: building html forms dynamically</h2></div></div><div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="ad-form-overview"></a>Overview</h3></div></div><div></div></div><div class="authorblurb"><div class="cvstag">($Id$)</div> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Using Form Builder: building html forms dynamically</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="dev-guide.html" title="Chapter 11. Development Reference"><link rel="previous" href="programming-with-aolserver.html" title="Programming with AOLserver"><link rel="next" href="eng-standards.html" title="Chapter 12. Engineering Standards"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="programming-with-aolserver.html">Prev</a> </td><th width="60%" align="center">Chapter 11. Development Reference</th><td width="20%" align="right"> <a accesskey="n" href="eng-standards.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="form-builder"></a>Using Form Builder: building html forms dynamically</h2></div></div><div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="ad-form-overview"></a>Overview</h3></div></div><div></div></div><div class="authorblurb"><div class="cvstag">($Id$)</div> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><p>OpenACS has a form manager called ad_form. Ad_form has an adaptable UI. Error handling includes inline error reporting, and is customizable. However, ad_form can be tricky to use. In addition to this document, the ad_form <a href="http://openacs.org/api-doc/proc-view?proc=ad_form" target="_top">api - documentation</a> is helpful.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="multi-part-elements"></a>Multi-part Elements</h3></div></div><div></div></div><p>Some elements have more than one choice, or can submit more than one value.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2969216"></a>SELECT elements</h4></div></div><div></div></div><div class="orderedlist"><ol type="1"><li><p><b>Creating the form element. </b>Populate a list of lists with values for the option list.</p><pre class="programlisting">set foo_options [db_list_of_lists foo_option_list " + documentation</a> is helpful.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="multi-part-elements"></a>Multi-part Elements</h3></div></div><div></div></div><p>Some elements have more than one choice, or can submit more than one value.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2928505"></a>SELECT elements</h4></div></div><div></div></div><div class="orderedlist"><ol type="1"><li><p><b>Creating the form element. </b>Populate a list of lists with values for the option list.</p><pre class="programlisting">set foo_options [db_list_of_lists foo_option_list " select foo, foo_id from foos @@ -51,5 +51,5 @@ ns_set print $mypage } </pre></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="form-widgets"></a>Tips for form widgets</h3></div></div><div></div></div><p>Here are some tips for dealing with some of the form widgets:</p><p><a href="http://openacs.org/forums/message-view?message_id=106331" target="_top">Current widget</a></p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="errors"></a>Common Errors</h3></div></div><div></div></div><p>Here are some common errors and what to do when you - encounter them:</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2915670"></a>Error when selecting values</h4></div></div><div></div></div><p>This generally happens when there is an error in your - query.</p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="programming-with-aolserver.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="eng-standards.html">Next</a></td></tr><tr><td width="40%" align="left">Programming with AOLserver </td><td width="20%" align="center"><a accesskey="u" href="dev-guide.html">Up</a></td><td width="40%" align="right"> Chapter 11. Engineering Standards</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/form-builder.html#comments">View comments on this page at openacs.org</a></center></body></html> + encounter them:</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id3067652"></a>Error when selecting values</h4></div></div><div></div></div><p>This generally happens when there is an error in your + query.</p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="programming-with-aolserver.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="eng-standards.html">Next</a></td></tr><tr><td width="40%" align="left">Programming with AOLserver </td><td width="20%" align="center"><a accesskey="u" href="dev-guide.html">Up</a></td><td width="40%" align="right"> Chapter 12. Engineering Standards</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/form-builder.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/groups-design.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/groups-design.html,v diff -u -r1.30 -r1.31 --- openacs-4/packages/acs-core-docs/www/groups-design.html 13 Sep 2009 23:54:40 -0000 1.30 +++ openacs-4/packages/acs-core-docs/www/groups-design.html 17 Oct 2010 21:06:07 -0000 1.31 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Groups Design</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 14. Kernel Documentation"><link rel="previous" href="groups-requirements.html" title="Groups Requirements"><link rel="next" href="subsites-design.html" title="Subsites Design Document"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="groups-requirements.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="subsites-design.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="groups-design"></a>Groups Design</h2></div></div><div></div></div><div class="authorblurb"><p>By <a href="http://planitia.org" target="_top">Rafael H. Schloming</a> and Mark Thomas</p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Groups Design</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 15. Kernel Documentation"><link rel="previous" href="groups-requirements.html" title="Groups Requirements"><link rel="next" href="subsites-requirements.html" title="Subsites Requirements"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="groups-requirements.html">Prev</a> </td><th width="60%" align="center">Chapter 15. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="subsites-requirements.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="groups-design"></a>Groups Design</h2></div></div><div></div></div><div class="authorblurb"><p>By <a href="http://planitia.org" target="_top">Rafael H. Schloming</a> and Mark Thomas</p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="groups-design-essentials"></a>Essentials</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>User directory</p></li><li><p>Sitewide administrator directory</p></li><li><p>Subsite administrator directory</p></li><li><p>TCL script directory</p></li><li><p><a href="groups-requirements.html">OpenACS 4 Groups Requirements</a></p></li><li><p>Data model</p></li><li><p>PL/SQL file </p><div class="itemizedlist"><ul type="circle"><li><p><a href="/doc/sql/display-sql?url=community-core-create.sql&package_key=acs-kernel" target="_top"> @@ -304,4 +304,4 @@ Mark Thomas </td></tr><tr><td>0.3</td><td>Additional revisions; tried to clarify membership/compostion</td><td>09/08/2000</td><td> Mark Thomas -</td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="groups-requirements.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="subsites-design.html">Next</a></td></tr><tr><td width="40%" align="left">Groups Requirements </td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right"> Subsites Design Document</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/groups-design.html#comments">View comments on this page at openacs.org</a></center></body></html> +</td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="groups-requirements.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="subsites-requirements.html">Next</a></td></tr><tr><td width="40%" align="left">Groups Requirements </td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right"> Subsites Requirements</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/groups-design.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/groups-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/groups-requirements.html,v diff -u -r1.30 -r1.31 --- openacs-4/packages/acs-core-docs/www/groups-requirements.html 13 Sep 2009 23:54:40 -0000 1.30 +++ openacs-4/packages/acs-core-docs/www/groups-requirements.html 17 Oct 2010 21:06:07 -0000 1.31 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Groups Requirements</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 14. Kernel Documentation"><link rel="previous" href="permissions-design.html" title="Permissions Design"><link rel="next" href="groups-design.html" title="Groups Design"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="permissions-design.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="groups-design.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="groups-requirements"></a>Groups Requirements</h2></div></div><div></div></div><div class="authorblurb"><p>By <a href="http://planitia.org" target="_top">Rafael H. Schloming</a>, Mark Thomas</p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Groups Requirements</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 15. Kernel Documentation"><link rel="previous" href="permissions-design.html" title="Permissions Design"><link rel="next" href="groups-design.html" title="Groups Design"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="permissions-design.html">Prev</a> </td><th width="60%" align="center">Chapter 15. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="groups-design.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="groups-requirements"></a>Groups Requirements</h2></div></div><div></div></div><div class="authorblurb"><p>By <a href="http://planitia.org" target="_top">Rafael H. Schloming</a>, Mark Thomas</p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="groups-requirements-intro"></a>Introduction</h3></div></div><div></div></div><p>Almost all database-backed websites have users, and need to model the Index: openacs-4/packages/acs-core-docs/www/high-avail.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/high-avail.html,v diff -u -r1.20 -r1.21 --- openacs-4/packages/acs-core-docs/www/high-avail.html 13 Sep 2009 23:54:40 -0000 1.20 +++ openacs-4/packages/acs-core-docs/www/high-avail.html 17 Oct 2010 21:06:07 -0000 1.21 @@ -1,2 +1,2 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>High Availability/High Performance Configurations</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="maintenance-web.html" title="Chapter 6. Production Environments"><link rel="previous" href="install-next-add-server.html" title="Running multiple services on one machine"><link rel="next" href="maintenance-deploy.html" title="Staged Deployment for Production Networks"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="install-next-add-server.html">Prev</a> </td><th width="60%" align="center">Chapter 6. Production Environments</th><td width="20%" align="right"> <a accesskey="n" href="maintenance-deploy.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="high-avail"></a>High Availability/High Performance Configurations</h2></div></div><div></div></div><p>See also <a href="remote-postgres.html" title="Running a PostgreSQL database on another server">Section , “Running a PostgreSQL database on another server”</a>.</p><div class="figure"><a name="id2985585"></a><p class="title"><b>Figure 6.1. Multiple-server configuration</b></p><div class="mediaobject" align="center"><img src="../images/hpha.png" align="middle" alt="Multiple-server configuration"></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="install-next-add-server.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="maintenance-deploy.html">Next</a></td></tr><tr><td width="40%" align="left">Running multiple services on one machine </td><td width="20%" align="center"><a accesskey="u" href="maintenance-web.html">Up</a></td><td width="40%" align="right"> Staged Deployment for Production Networks</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/high-avail.html#comments">View comments on this page at openacs.org</a></center></body></html> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>High Availability/High Performance Configurations</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="maintenance-web.html" title="Chapter 6. Production Environments"><link rel="previous" href="install-next-add-server.html" title="Running multiple services on one machine"><link rel="next" href="maintenance-deploy.html" title="Staged Deployment for Production Networks"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="install-next-add-server.html">Prev</a> </td><th width="60%" align="center">Chapter 6. Production Environments</th><td width="20%" align="right"> <a accesskey="n" href="maintenance-deploy.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="high-avail"></a>High Availability/High Performance Configurations</h2></div></div><div></div></div><p>See also <a href="remote-postgres.html" title="Running a PostgreSQL database on another server">Section , “Running a PostgreSQL database on another server”</a>.</p><div class="figure"><a name="id2984162"></a><p class="title"><b>Figure 6.1. Multiple-server configuration</b></p><div class="mediaobject" align="center"><img src="../images/hpha.png" align="middle" alt="Multiple-server configuration"></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="install-next-add-server.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="maintenance-deploy.html">Next</a></td></tr><tr><td width="40%" align="left">Running multiple services on one machine </td><td width="20%" align="center"><a accesskey="u" href="maintenance-web.html">Up</a></td><td width="40%" align="right"> Staged Deployment for Production Networks</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/high-avail.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/how-do-I.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/how-do-I.html,v diff -u -r1.23 -r1.24 --- openacs-4/packages/acs-core-docs/www/how-do-I.html 13 Sep 2009 23:54:40 -0000 1.23 +++ openacs-4/packages/acs-core-docs/www/how-do-I.html 17 Oct 2010 21:06:07 -0000 1.24 @@ -1,7 +1,7 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>How Do I?</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="configuring-new-site.html" title="Chapter 4. Configuring a new OpenACS Site"><link rel="previous" href="configuring-configuring-permissions.html" title="Setting Permissions on an OpenACS package"><link rel="next" href="upgrade.html" title="Chapter 5. Upgrading"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="configuring-configuring-permissions.html">Prev</a> </td><th width="60%" align="center">Chapter 4. Configuring a new OpenACS Site</th><td width="20%" align="right"> <a accesskey="n" href="upgrade.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="how-do-I"></a>How Do I?</h2></div></div><div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2923433"></a>How do I edit the front page of a new site through a web interface?</h3></div></div><div></div></div><p>The easiest way is to install the Edit-This-Page package.</p><div class="orderedlist"><ol type="1"><li><p>Log in to the web site as an administrator.</p></li><li><p>Click on Admin > Install Software > Install from OpenACS Repository / Install new application</p></li><li><p>Choose Edit This Page and install</p></li><li><p>Follow the instructions within <a href="/doc/edit-this-page/install" target="_top">Edit This Page</a> (the link will only work after Edit This Page is installed).</p></li></ol></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2923495"></a>How do I let anybody who registers post to a weblog?</h3></div></div><div></div></div><p>Go to <tt class="computeroutput"><a href="/admin/permissions" target="_top">/admin/permissions</a></tt> and grant Create to Registered Users</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2923519"></a>How do I replace the front page of a new site with the front page of an application on that site</h3></div></div><div></div></div><p>Suppose you install a new site and install Weblogger, and you want all visitors to see weblogger automatically.</p><div class="orderedlist"><ol type="1"><li><p>On the front page, click the <tt class="computeroutput"><a href="/admin" target="_top">Admin</a></tt> button.</p></li><li><p>On the administration page, click <tt class="computeroutput">Parameters</tt> link.</p></li><li><p>Change the parameter <tt class="computeroutput">IndexRedirectUrl</tt> to be the URI of the desired application. For a default weblogger installation, this would be <tt class="computeroutput"><b class="userinput"><tt>weblogger/</tt></b></tt>. Note the trailing slash.</p></li></ol></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2903489"></a>How do I put custom functionality on front page of a new site?</h3></div></div><div></div></div><p>Every page within an OpenACS site is part of a <span class="strong">subsite</span> <a href="/doc/acs-subsite" target="_top">More information)</a>. The home page of the entire site is the front page is a special, default instance of a subsite, served from <tt class="computeroutput">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/www</tt>. If an index page is not found there, the default index page for all subsites is used. To customize the code on the front page, copy the default index page from the Subsite package to the Main site and edit it:</p><div class="orderedlist"><ol type="1"><li><pre class="screen"><b class="userinput"><tt>cp <tt class="computeroutput">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/packages/acs-subsite/www/index*</tt> <tt class="computeroutput">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/www</tt></tt></b></pre></li><li><p>Edit the new <tt class="computeroutput">index.adp</tt> to change the text; you shouldn't need to edit <tt class="computeroutput">index.tcl</tt> unless you are adding new functionality.</p></li></ol></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2944083"></a>How do I change the site-wide style?</h3></div></div><div></div></div><p>Almost all pages on an OpenACS site use <a href="/doc/acs-templating" target="_top">ACS Templating</a>, and so their appearance is driven by a layer of different files. Let's examine how this works:</p><div class="itemizedlist"><ul type="disc"><li><p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>How Do I?</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="configuring-new-site.html" title="Chapter 4. Configuring a new OpenACS Site"><link rel="previous" href="configuring-configuring-permissions.html" title="Setting Permissions on an OpenACS package"><link rel="next" href="upgrade.html" title="Chapter 5. Upgrading"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="configuring-configuring-permissions.html">Prev</a> </td><th width="60%" align="center">Chapter 4. Configuring a new OpenACS Site</th><td width="20%" align="right"> <a accesskey="n" href="upgrade.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="how-do-I"></a>How Do I?</h2></div></div><div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2968613"></a>How do I edit the front page of a new site through a web interface?</h3></div></div><div></div></div><p>The easiest way is to install the Edit-This-Page package.</p><div class="orderedlist"><ol type="1"><li><p>Log in to the web site as an administrator.</p></li><li><p>Click on Admin > Install Software > Install from OpenACS Repository / Install new application</p></li><li><p>Choose Edit This Page and install</p></li><li><p>Follow the instructions within <a href="/doc/edit-this-page/install" target="_top">Edit This Page</a> (the link will only work after Edit This Page is installed).</p></li></ol></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2968678"></a>How do I let anybody who registers post to a weblog?</h3></div></div><div></div></div><p>Go to <tt class="computeroutput"><a href="/admin/permissions" target="_top">/admin/permissions</a></tt> and grant Create to Registered Users</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2968702"></a>How do I replace the front page of a new site with the front page of an application on that site</h3></div></div><div></div></div><p>Suppose you install a new site and install Weblogger, and you want all visitors to see weblogger automatically.</p><div class="orderedlist"><ol type="1"><li><p>On the front page, click the <tt class="computeroutput"><a href="/admin" target="_top">Admin</a></tt> button.</p></li><li><p>On the administration page, click <tt class="computeroutput">Parameters</tt> link.</p></li><li><p>Change the parameter <tt class="computeroutput">IndexRedirectUrl</tt> to be the URI of the desired application. For a default weblogger installation, this would be <tt class="computeroutput"><b class="userinput"><tt>weblogger/</tt></b></tt>. Note the trailing slash.</p></li></ol></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2942021"></a>How do I put custom functionality on front page of a new site?</h3></div></div><div></div></div><p>Every page within an OpenACS site is part of a <span class="strong">subsite</span> <a href="/doc/acs-subsite" target="_top">More information)</a>. The home page of the entire site is the front page is a special, default instance of a subsite, served from <tt class="computeroutput">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/www</tt>. If an index page is not found there, the default index page for all subsites is used. To customize the code on the front page, copy the default index page from the Subsite package to the Main site and edit it:</p><div class="orderedlist"><ol type="1"><li><pre class="screen"><b class="userinput"><tt>cp <tt class="computeroutput">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/packages/acs-subsite/www/index*</tt> <tt class="computeroutput">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/www</tt></tt></b></pre></li><li><p>Edit the new <tt class="computeroutput">index.adp</tt> to change the text; you shouldn't need to edit <tt class="computeroutput">index.tcl</tt> unless you are adding new functionality.</p></li></ol></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2914465"></a>How do I change the site-wide style?</h3></div></div><div></div></div><p>Almost all pages on an OpenACS site use <a href="/doc/acs-templating" target="_top">ACS Templating</a>, and so their appearance is driven by a layer of different files. Let's examine how this works:</p><div class="itemizedlist"><ul type="disc"><li><p> A templated page uses an ADP/TCL pair. The first line in the ADP file is usually: </p><pre class="programlisting"><master></pre><p>If it appears exactly like this, without any arguments, the template processer uses <tt class="computeroutput">default-master</tt> for that subsite. For pages in <tt class="computeroutput">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/www</tt>, this is <tt class="computeroutput">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/www/default-master.adp</tt> and the associated .tcl file. - </p></li><li><p>The <tt class="computeroutput">default-master</tt> is itself a normal ADP page. It draws the subsite navigation elements and invokes <tt class="computeroutput">site-master</tt> (<tt class="computeroutput">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/www/site-master.adp</tt> and .tcl)</p></li><li><p>The <tt class="computeroutput">site-master</tt> draws site-wide navigation elements and invokes <tt class="computeroutput">blank-master</tt> (<tt class="computeroutput">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/www/blank-master.adp</tt> and .tcl). </p></li><li><p><tt class="computeroutput">Blank-master</tt> does HTML housekeeping and provides a framework for special sitewide navigation "meta" elements such as Translator widgets and Admin widgets.</p></li></ul></div><div class="figure"><a name="id2944240"></a><p class="title"><b>Figure 4.1. Site Templates</b></p><div class="mediaobject"><img src="../images/site-templates.png" alt="Site Templates"></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2944270"></a>How do I diagnose a permissions problem?</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p><b>Steps to Reproduce. </b>The events package does not allow users to register for new events.</p><div class="orderedlist"><ol type="1"><li><p>Go to the http://yourserver.net/events as a visitor (ie, log out and, if necessary, clear cookies). This in on a 4.6.3 site with events version 0.1d3.</p></li><li><p>Select an available event</p></li><li><p>A link such as <tt class="computeroutput">Registration: Deadline is 03/15/2004 10:00am. + </p></li><li><p>The <tt class="computeroutput">default-master</tt> is itself a normal ADP page. It draws the subsite navigation elements and invokes <tt class="computeroutput">site-master</tt> (<tt class="computeroutput">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/www/site-master.adp</tt> and .tcl)</p></li><li><p>The <tt class="computeroutput">site-master</tt> draws site-wide navigation elements and invokes <tt class="computeroutput">blank-master</tt> (<tt class="computeroutput">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/www/blank-master.adp</tt> and .tcl). </p></li><li><p><tt class="computeroutput">Blank-master</tt> does HTML housekeeping and provides a framework for special sitewide navigation "meta" elements such as Translator widgets and Admin widgets.</p></li></ul></div><div class="figure"><a name="id2914624"></a><p class="title"><b>Figure 4.1. Site Templates</b></p><div class="mediaobject"><img src="../images/site-templates.png" alt="Site Templates"></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2914654"></a>How do I diagnose a permissions problem?</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p><b>Steps to Reproduce. </b>The events package does not allow users to register for new events.</p><div class="orderedlist"><ol type="1"><li><p>Go to the http://yourserver.net/events as a visitor (ie, log out and, if necessary, clear cookies). This in on a 4.6.3 site with events version 0.1d3.</p></li><li><p>Select an available event</p></li><li><p>A link such as <tt class="computeroutput">Registration: Deadline is 03/15/2004 10:00am. » Login or sign up to register for this event.</tt> is visible. Click on "Login or sign up" - </p></li><li><p>Complete a new registration. Afterwards, you should be redirected back to the same page.</p></li></ol></div><p>Actual Results: The page says <tt class="computeroutput">"You do not have permission to register for this event."</tt></p><p>Expected results: A link or form to sign up for the event is shown.</p></li><li><p><b>Finding the problem. </b>We start with the page that has the error. In the URL it's <tt class="computeroutput">http://myserver.net/events/event-info.tcl</tt>, so open the file <tt class="computeroutput">/var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/events/www/event-info.tcl</tt>. It contains this line:</p><pre class="programlisting">set can_register_p [events::security::can_register_for_event_p -event_id $event_id]</pre><p>We need to know what that procedure does, so go to <a href="/api-doc" target="_top">/api-doc</a>, paste events::security::can_register_for_event_p into the ACS Tcl API Search box, and click Feeling Lucky. The next pages shows the proc, and we click "show source" to see more information. The body of the proc is simply</p><pre class="programlisting">return [permission::permission_p -party_id $user_id -object_id $event_id -privilege write]</pre><p>This means that a given user must have the write privilige on the event in order to register. Let's assume that the priviliges inherit, so that if a user has the write privilige on the whole package, they will have the write privilege on the event.</p></li><li><p><b>Setting Permissions. </b>A permission has three parts: the privilige, the object of the privilige, and the subject being granted the privilige. In this case the privilige is "write," the object is the Events package, and the subject is all Registered Users.</p><div class="orderedlist"><ol type="1"><li><p>To grant permissions on a package, start at the <a href="/admin/site-map" target="_top">site map</a>. Find the event package and click "Set permissions". </p></li><li><p>Click "Grant Permission"</p></li><li><p>Grant the write permission to Registered Users.</p><div class="figure"><a name="id2978586"></a><p class="title"><b>Figure 4.2. Granting Permissions</b></p><div class="mediaobject"><img src="../images/grant-perm-463.png" alt="Granting Permissions"></div></div></li></ol></div><p>OpenACS 5.0 offers a prettier version at <a href="/admin/applications" target="_top">/admin/applications</a>.</p><div class="figure"><a name="id2978628"></a><p class="title"><b>Figure 4.3. Granting Permissions in 5.0</b></p><div class="mediaobject"><img src="../images/grant-perm-50.png" alt="Granting Permissions in 5.0"></div></div></li></ul></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="configuring-configuring-permissions.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="upgrade.html">Next</a></td></tr><tr><td width="40%" align="left">Setting Permissions on an OpenACS package </td><td width="20%" align="center"><a accesskey="u" href="configuring-new-site.html">Up</a></td><td width="40%" align="right"> Chapter 5. Upgrading</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/how-do-I.html#comments">View comments on this page at openacs.org</a></center></body></html> + </p></li><li><p>Complete a new registration. Afterwards, you should be redirected back to the same page.</p></li></ol></div><p>Actual Results: The page says <tt class="computeroutput">"You do not have permission to register for this event."</tt></p><p>Expected results: A link or form to sign up for the event is shown.</p></li><li><p><b>Finding the problem. </b>We start with the page that has the error. In the URL it's <tt class="computeroutput">http://myserver.net/events/event-info.tcl</tt>, so open the file <tt class="computeroutput">/var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/events/www/event-info.tcl</tt>. It contains this line:</p><pre class="programlisting">set can_register_p [events::security::can_register_for_event_p -event_id $event_id]</pre><p>We need to know what that procedure does, so go to <a href="/api-doc" target="_top">/api-doc</a>, paste events::security::can_register_for_event_p into the ACS Tcl API Search box, and click Feeling Lucky. The next pages shows the proc, and we click "show source" to see more information. The body of the proc is simply</p><pre class="programlisting">return [permission::permission_p -party_id $user_id -object_id $event_id -privilege write]</pre><p>This means that a given user must have the write privilige on the event in order to register. Let's assume that the priviliges inherit, so that if a user has the write privilige on the whole package, they will have the write privilege on the event.</p></li><li><p><b>Setting Permissions. </b>A permission has three parts: the privilige, the object of the privilige, and the subject being granted the privilige. In this case the privilige is "write," the object is the Events package, and the subject is all Registered Users.</p><div class="orderedlist"><ol type="1"><li><p>To grant permissions on a package, start at the <a href="/admin/site-map" target="_top">site map</a>. Find the event package and click "Set permissions". </p></li><li><p>Click "Grant Permission"</p></li><li><p>Grant the write permission to Registered Users.</p><div class="figure"><a name="id2978516"></a><p class="title"><b>Figure 4.2. Granting Permissions</b></p><div class="mediaobject"><img src="../images/grant-perm-463.png" alt="Granting Permissions"></div></div></li></ol></div><p>OpenACS 5.0 offers a prettier version at <a href="/admin/applications" target="_top">/admin/applications</a>.</p><div class="figure"><a name="id2978558"></a><p class="title"><b>Figure 4.3. Granting Permissions in 5.0</b></p><div class="mediaobject"><img src="../images/grant-perm-50.png" alt="Granting Permissions in 5.0"></div></div></li></ul></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="configuring-configuring-permissions.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="upgrade.html">Next</a></td></tr><tr><td width="40%" align="left">Setting Permissions on an OpenACS package </td><td width="20%" align="center"><a accesskey="u" href="configuring-new-site.html">Up</a></td><td width="40%" align="right"> Chapter 5. Upgrading</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/how-do-I.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/i18n-convert.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n-convert.html,v diff -u -r1.22 -r1.23 --- openacs-4/packages/acs-core-docs/www/i18n-convert.html 13 Sep 2009 23:54:40 -0000 1.22 +++ openacs-4/packages/acs-core-docs/www/i18n-convert.html 17 Oct 2010 21:06:07 -0000 1.23 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>How to Internationalize a Package</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="i18n.html" title="Chapter 13. Internationalization"><link rel="previous" href="i18n-introduction.html" title="How Internationalization/Localization works in OpenACS"><link rel="next" href="i18n-design.html" title="Design Notes"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="i18n-introduction.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Internationalization</th><td width="20%" align="right"> <a accesskey="n" href="i18n-design.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="i18n-convert"></a>How to Internationalize a Package</h2></div></div><div></div></div><div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Tip</h3><p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>How to Internationalize a Package</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="i18n.html" title="Chapter 14. Internationalization"><link rel="previous" href="i18n-introduction.html" title="How Internationalization/Localization works in OpenACS"><link rel="next" href="i18n-design.html" title="Design Notes"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="i18n-introduction.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Internationalization</th><td width="20%" align="right"> <a accesskey="n" href="i18n-design.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="i18n-convert"></a>How to Internationalize a Package</h2></div></div><div></div></div><div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Tip</h3><p> For multilingual websites we recommend using the UTF8 charset. In order for AOLserver to use utf8 you need to set the config parameters OutputCharset and @@ -72,7 +72,7 @@ test. If you don't provide the package_key argument then all packages with catalog files will be checked. The script will run its checks primarily on en_US xml catalog files. - </p></li></ol></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2991576"></a>Avoiding common i18n mistakes</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p><b>Replace complicated keys with longer, simpler keys. </b>When writing in one language, it is possible to create clever code to make correct text. In English, for example, you can put an <tt class="computeroutput">if</tt> command at the end of a word which adds "s" if a count is anything but 1. This pluralizes nouns correctly based on the data. However, it is confusing to read and, when internationalized, may result in message keys that are both confusing and impossible to set correctly in some languages. While internationalizing, watch out that the automate converter does not create such keys. Also, refactor compound text as you encounter it.</p><p>The automated system can easily get confused by tags within message texts, so that it tries to create two or three message keys for one long string with a tag in the middle. In these cases, uncheck those keys during the conversion and then edit the files directly. For example, this code:</p><pre class="programlisting"> <p class="form-help-text"><b>Invitations</b> are sent, + </p></li></ol></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id3038850"></a>Avoiding common i18n mistakes</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p><b>Replace complicated keys with longer, simpler keys. </b>When writing in one language, it is possible to create clever code to make correct text. In English, for example, you can put an <tt class="computeroutput">if</tt> command at the end of a word which adds "s" if a count is anything but 1. This pluralizes nouns correctly based on the data. However, it is confusing to read and, when internationalized, may result in message keys that are both confusing and impossible to set correctly in some languages. While internationalizing, watch out that the automate converter does not create such keys. Also, refactor compound text as you encounter it.</p><p>The automated system can easily get confused by tags within message texts, so that it tries to create two or three message keys for one long string with a tag in the middle. In these cases, uncheck those keys during the conversion and then edit the files directly. For example, this code:</p><pre class="programlisting"> <p class="form-help-text"><b>Invitations</b> are sent, when this wizard is completed and casting begins.</p></pre><p>has a bold tag which confuses the converter into thinking there are two message keys for the text beginning "Invitations ..." where there should be one:</p><div class="mediaobject" align="center"><img src="../images/i18n-3.png" align="middle"></div><p>Instead, we cancel those keys, edit the file manually, and put in a single temporary message tag:</p><pre class="programlisting"> <p class="form-help-text"> <#Invitations_are_sent <b>Invitations</b> are sent, when this wizard is completed and casting begins.#> </p></pre><p>Complex if statements may produce convoluted message keys that are very hard to localize. Rewrite these if statements. For example:</p><pre class="programlisting">Select which case <if @simulation.casting_type@ eq "open">and Index: openacs-4/packages/acs-core-docs/www/i18n-design.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n-design.html,v diff -u -r1.12 -r1.13 --- openacs-4/packages/acs-core-docs/www/i18n-design.html 13 Sep 2009 23:54:40 -0000 1.12 +++ openacs-4/packages/acs-core-docs/www/i18n-design.html 17 Oct 2010 21:06:07 -0000 1.13 @@ -1,3 +1,3 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Design Notes</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="i18n.html" title="Chapter 13. Internationalization"><link rel="previous" href="i18n-convert.html" title="How to Internationalize a Package"><link rel="next" href="i18n-translators.html" title="Translator's Guide"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="i18n-convert.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Internationalization</th><td width="20%" align="right"> <a accesskey="n" href="i18n-translators.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="i18n-design"></a>Design Notes</h2></div></div><div></div></div><p>User locale is a property of ad_conn, <tt class="computeroutput">ad_conn locale</tt>. The request processor sets this by calling <tt class="computeroutput">lang::conn::locale</tt>, which looks for the following in order of precedence:</p><div class="orderedlist"><ol type="1"><li><p>Use user preference for this package (stored in ad_locale_user_prefs)</p></li><li><p>Use system preference for the package (stored in apm_packages)</p></li><li><p>Use user's general preference (stored in user_preferences)</p></li><li><p>Use Browser header (<tt class="computeroutput">Accept-Language</tt> HTTP header)</p></li><li><p>Use system locale (an APM parameter for acs_lang)</p></li><li><p>default to en_US</p></li></ol></div><p>For ADP pages, message key lookup occurs in the templating engine. For TCL pages, message key lookup happens with the <tt class="computeroutput">_</tt> function. In both cases, if the requested locale is not found but a locale which is the default for the language which matches your locale's language is +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Design Notes</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="i18n.html" title="Chapter 14. Internationalization"><link rel="previous" href="i18n-convert.html" title="How to Internationalize a Package"><link rel="next" href="i18n-translators.html" title="Translator's Guide"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="i18n-convert.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Internationalization</th><td width="20%" align="right"> <a accesskey="n" href="i18n-translators.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="i18n-design"></a>Design Notes</h2></div></div><div></div></div><p>User locale is a property of ad_conn, <tt class="computeroutput">ad_conn locale</tt>. The request processor sets this by calling <tt class="computeroutput">lang::conn::locale</tt>, which looks for the following in order of precedence:</p><div class="orderedlist"><ol type="1"><li><p>Use user preference for this package (stored in ad_locale_user_prefs)</p></li><li><p>Use system preference for the package (stored in apm_packages)</p></li><li><p>Use user's general preference (stored in user_preferences)</p></li><li><p>Use Browser header (<tt class="computeroutput">Accept-Language</tt> HTTP header)</p></li><li><p>Use system locale (an APM parameter for acs_lang)</p></li><li><p>default to en_US</p></li></ol></div><p>For ADP pages, message key lookup occurs in the templating engine. For TCL pages, message key lookup happens with the <tt class="computeroutput">_</tt> function. In both cases, if the requested locale is not found but a locale which is the default for the language which matches your locale's language is found, then that locale is offered instead.</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="i18n-convert.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="i18n-translators.html">Next</a></td></tr><tr><td width="40%" align="left">How to Internationalize a Package </td><td width="20%" align="center"><a accesskey="u" href="i18n.html">Up</a></td><td width="40%" align="right"> Translator's Guide</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/i18n-design.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/i18n-introduction.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n-introduction.html,v diff -u -r1.14 -r1.15 --- openacs-4/packages/acs-core-docs/www/i18n-introduction.html 13 Sep 2009 23:54:40 -0000 1.14 +++ openacs-4/packages/acs-core-docs/www/i18n-introduction.html 17 Oct 2010 21:06:07 -0000 1.15 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>How Internationalization/Localization works in OpenACS</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="i18n.html" title="Chapter 13. Internationalization"><link rel="previous" href="i18n-overview.html" title="Internationalization and Localization Overview"><link rel="next" href="i18n-convert.html" title="How to Internationalize a Package"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="i18n-overview.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Internationalization</th><td width="20%" align="right"> <a accesskey="n" href="i18n-convert.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="i18n-introduction"></a>How Internationalization/Localization works in OpenACS</h2></div></div><div></div></div><p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>How Internationalization/Localization works in OpenACS</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="i18n.html" title="Chapter 14. Internationalization"><link rel="previous" href="i18n-overview.html" title="Internationalization and Localization Overview"><link rel="next" href="i18n-convert.html" title="How to Internationalize a Package"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="i18n-overview.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Internationalization</th><td width="20%" align="right"> <a accesskey="n" href="i18n-convert.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="i18n-introduction"></a>How Internationalization/Localization works in OpenACS</h2></div></div><div></div></div><p> This document describes how to develop internationalized OpenACS packages, including writing new packages with internationalization and converting old packages. Text that Index: openacs-4/packages/acs-core-docs/www/i18n-overview.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n-overview.html,v diff -u -r1.12 -r1.13 --- openacs-4/packages/acs-core-docs/www/i18n-overview.html 13 Sep 2009 23:54:40 -0000 1.12 +++ openacs-4/packages/acs-core-docs/www/i18n-overview.html 17 Oct 2010 21:06:07 -0000 1.13 @@ -1,2 +1,2 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Internationalization and Localization Overview</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="i18n.html" title="Chapter 13. Internationalization"><link rel="previous" href="i18n.html" title="Chapter 13. Internationalization"><link rel="next" href="i18n-introduction.html" title="How Internationalization/Localization works in OpenACS"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="i18n.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Internationalization</th><td width="20%" align="right"> <a accesskey="n" href="i18n-introduction.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="i18n-overview"></a>Internationalization and Localization Overview</h2></div></div><div></div></div><div class="table"><a name="i18n-l10n-process"></a><p class="title"><b>Table 13.1. Internationalization and Localization Overview</b></p><table summary="Internationalization and Localization Overview" cellspacing="0" border="1"><colgroup><col><col><col></colgroup><thead><tr><th>Stage</th><th>Task</th><th>Who</th></tr></thead><tbody><tr><td>Internationalization</td><td>Package Developer uses the acs-lang tools to replace all visible text in a package with <span class="emphasis"><em>message keys</em></span>. (<a href="i18n-introduction.html" title="How Internationalization/Localization works in OpenACS">More information</a>)</td><td>Package Developer</td></tr><tr><td rowspan="2">Release Management</td><td>The newly internationalized package is released.</td><td>Package Developer</td></tr><tr><td>The translation server is updated with the new package.</td><td>Translation server maintainers</td></tr><tr><td>Localization</td><td>Translators work in their respective locales to write text for each message key. (<a href="i18n-translators.html" title="Translator's Guide">More information</a>)</td><td>Translators</td></tr><tr><td rowspan="3">Release Management</td><td>The translated text in the database of the translation server is compared to the current translations in the OpenACS code base, conflicts are resolved, and the new text is written to catalog files on the translation server.</td><td>Translation server maintainers</td></tr><tr><td>The catalog files are committed to the OpenACS code base.</td><td>Translation server maintainers</td></tr><tr><td>A new version of OpenACS core and/or affected packages is released and published in the OpenACS.org repository.</td><td>Release Manager</td></tr><tr><td rowspan="2">Upgrading</td><td>Site Administrators upgrade their OpenACS sites, either via the automatic upgrade from the Repository or via tarball or CVS </td><td>Site Administrators</td></tr><tr><td>Site Administrators import the new translations. Existing local translations, if they exist, are not overwritten.</td><td>Site Administrators</td></tr></tbody></table></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="i18n.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="i18n-introduction.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter 13. Internationalization </td><td width="20%" align="center"><a accesskey="u" href="i18n.html">Up</a></td><td width="40%" align="right"> How Internationalization/Localization works in OpenACS</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/i18n-overview.html#comments">View comments on this page at openacs.org</a></center></body></html> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Internationalization and Localization Overview</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="i18n.html" title="Chapter 14. Internationalization"><link rel="previous" href="i18n.html" title="Chapter 14. Internationalization"><link rel="next" href="i18n-introduction.html" title="How Internationalization/Localization works in OpenACS"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="i18n.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Internationalization</th><td width="20%" align="right"> <a accesskey="n" href="i18n-introduction.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="i18n-overview"></a>Internationalization and Localization Overview</h2></div></div><div></div></div><div class="table"><a name="i18n-l10n-process"></a><p class="title"><b>Table 14.1. Internationalization and Localization Overview</b></p><table summary="Internationalization and Localization Overview" cellspacing="0" border="1"><colgroup><col><col><col></colgroup><thead><tr><th>Stage</th><th>Task</th><th>Who</th></tr></thead><tbody><tr><td>Internationalization</td><td>Package Developer uses the acs-lang tools to replace all visible text in a package with <span class="emphasis"><em>message keys</em></span>. (<a href="i18n-introduction.html" title="How Internationalization/Localization works in OpenACS">More information</a>)</td><td>Package Developer</td></tr><tr><td rowspan="2">Release Management</td><td>The newly internationalized package is released.</td><td>Package Developer</td></tr><tr><td>The translation server is updated with the new package.</td><td>Translation server maintainers</td></tr><tr><td>Localization</td><td>Translators work in their respective locales to write text for each message key. (<a href="i18n-translators.html" title="Translator's Guide">More information</a>)</td><td>Translators</td></tr><tr><td rowspan="3">Release Management</td><td>The translated text in the database of the translation server is compared to the current translations in the OpenACS code base, conflicts are resolved, and the new text is written to catalog files on the translation server.</td><td>Translation server maintainers</td></tr><tr><td>The catalog files are committed to the OpenACS code base.</td><td>Translation server maintainers</td></tr><tr><td>A new version of OpenACS core and/or affected packages is released and published in the OpenACS.org repository.</td><td>Release Manager</td></tr><tr><td rowspan="2">Upgrading</td><td>Site Administrators upgrade their OpenACS sites, either via the automatic upgrade from the Repository or via tarball or CVS </td><td>Site Administrators</td></tr><tr><td>Site Administrators import the new translations. Existing local translations, if they exist, are not overwritten.</td><td>Site Administrators</td></tr></tbody></table></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="i18n.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="i18n-introduction.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter 14. Internationalization </td><td width="20%" align="center"><a accesskey="u" href="i18n.html">Up</a></td><td width="40%" align="right"> How Internationalization/Localization works in OpenACS</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/i18n-overview.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/i18n-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n-requirements.html,v diff -u -r1.22 -r1.23 --- openacs-4/packages/acs-core-docs/www/i18n-requirements.html 13 Sep 2009 23:54:40 -0000 1.22 +++ openacs-4/packages/acs-core-docs/www/i18n-requirements.html 17 Oct 2010 21:06:07 -0000 1.23 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenACS Internationalization Requirements</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 14. Kernel Documentation"><link rel="previous" href="apm-design.html" title="Package Manager Design"><link rel="next" href="security-requirements.html" title="Security Requirements"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="apm-design.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="security-requirements.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="i18n-requirements"></a>OpenACS Internationalization Requirements</h2></div></div><div></div></div><div class="authorblurb"><p>by Henry Minsky, +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenACS Internationalization Requirements</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 15. Kernel Documentation"><link rel="previous" href="db-api-detailed.html" title="Database Access API"><link rel="next" href="security-requirements.html" title="Security Requirements"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="db-api-detailed.html">Prev</a> </td><th width="60%" align="center">Chapter 15. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="security-requirements.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="i18n-requirements"></a>OpenACS Internationalization Requirements</h2></div></div><div></div></div><div class="authorblurb"><p>by Henry Minsky, <a href="mailto:yon@openforce.net" target="_top">Yon Feldman</a>, <a href="mailto:lars@collaboraid.biz" target="_top">Lars Pind</a>, <a href="mailto:peter@collaboraid.biz" target="_top">Peter Marklund</a>, @@ -94,7 +94,7 @@ Analysis</h3></div></div><div></div></div><p>Other application servers: ATG Dyanmo, Broadvision, Vignette, ... ? Anyone know how they deal with i18n ?</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="V._Related_Links"></a>Related Links</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>System/Package "coversheet" - where all -documentation for this software is linked off of</em></span></p></li><li><p><span class="emphasis"><em><a href="i18n-design.html" title="Design Notes">Design document</a></em></span></p></li><li><p><span class="emphasis"><em><a href="i18n.html" title="Chapter 13. Internationalization">Developer's guide</a></em></span></p></li><li><p><span class="emphasis"><em>User's guide</em></span></p></li><li><p><span class="emphasis"><em>Other-cool-system-related-to-this-one +documentation for this software is linked off of</em></span></p></li><li><p><span class="emphasis"><em><a href="i18n-design.html" title="Design Notes">Design document</a></em></span></p></li><li><p><span class="emphasis"><em><a href="i18n.html" title="Chapter 14. Internationalization">Developer's guide</a></em></span></p></li><li><p><span class="emphasis"><em>User's guide</em></span></p></li><li><p><span class="emphasis"><em>Other-cool-system-related-to-this-one document</em></span></p><p><a href="http://www.li18nux.net/" target="_top">LI18NUX 2000 Globalization Specification: http://www.li18nux.net/</a></p><p><a href="http://www.mozilla.org/docs/refList/i18n/l12yGuidelines.html" target="_top">Mozilla @@ -283,4 +283,4 @@ implementation into phases. </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="i18n-requirements-revision-history"></a>Revision History</h3></div></div><div></div></div><div class="informaltable"><table cellspacing="0" border="1"><colgroup><col><col><col><col></colgroup><tbody><tr><td><span class="strong">Document Revision #</span></td><td><span class="strong">Action Taken, Notes</span></td><td><span class="strong">When?</span></td><td><span class="strong">By Whom?</span></td></tr><tr><td>1</td><td>Updated with results of MIT-sponsored i18n work at Collaboraid.</td><td>14 Aug 2003</td><td>Joel Aufrecht</td></tr><tr><td>0.4</td><td>converting from HTML to DocBook and importing the document to the OpenACS kernel documents. This was done as a part of the internationalization of - OpenACS and .LRN for the Heidelberg University in Germany</td><td>12 September 2002</td><td>Peter Marklund</td></tr><tr><td>0.3</td><td>comments from Christian</td><td>1/14/2000</td><td>Henry Minsky</td></tr><tr><td>0.2</td><td>Minor typos fixed, clarifications to wording</td><td>11/14/2000</td><td>Henry Minsky</td></tr><tr><td>0.1</td><td>Creation</td><td>11/08/2000</td><td>Henry Minsky</td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="apm-design.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="security-requirements.html">Next</a></td></tr><tr><td width="40%" align="left">Package Manager Design </td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right"> Security Requirements</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/i18n-requirements.html#comments">View comments on this page at openacs.org</a></center></body></html> + OpenACS and .LRN for the Heidelberg University in Germany</td><td>12 September 2002</td><td>Peter Marklund</td></tr><tr><td>0.3</td><td>comments from Christian</td><td>1/14/2000</td><td>Henry Minsky</td></tr><tr><td>0.2</td><td>Minor typos fixed, clarifications to wording</td><td>11/14/2000</td><td>Henry Minsky</td></tr><tr><td>0.1</td><td>Creation</td><td>11/08/2000</td><td>Henry Minsky</td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="db-api-detailed.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="security-requirements.html">Next</a></td></tr><tr><td width="40%" align="left">Database Access API </td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right"> Security Requirements</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/i18n-requirements.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/i18n-translators.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n-translators.html,v diff -u -r1.12 -r1.13 --- openacs-4/packages/acs-core-docs/www/i18n-translators.html 13 Sep 2009 23:54:40 -0000 1.12 +++ openacs-4/packages/acs-core-docs/www/i18n-translators.html 17 Oct 2010 21:06:07 -0000 1.13 @@ -1,2 +1,2 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Translator's Guide</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="i18n.html" title="Chapter 13. Internationalization"><link rel="previous" href="i18n-design.html" title="Design Notes"><link rel="next" href="cvs-tips.html" title="Appendix D. Using CVS with an OpenACS Site"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="i18n-design.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Internationalization</th><td width="20%" align="right"> <a accesskey="n" href="cvs-tips.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="i18n-translators"></a>Translator's Guide</h2></div></div><div></div></div><p>Most translators use the <a href="http://translate.openacs.org" target="_top">OpenACS Public Translation Server</a>, because the process of getting new message keys onto the server and getting new translations back into the distribution are handled by the maintainers of that machine. You can also do translation work on your own OpenACS site; this makes your own translations more readily available to you but also means that your work will not be shared with other users unless you take extra steps (contacting an OpenACS core developer or submitting a patch) to get your work back to the OpenACS core.</p><p>The basic steps for translators:</p><div class="itemizedlist"><ul type="disc"><li><p>Go to the <a href="/acs-lang" target="_top">Localization</a> page and choose the locale that you are translating to. If the locale is not present you need to visit <a href="/acs-lang/admin" target="_top">Administration of Localization</a> and create the locale.</p></li><li><p><b>Translating with Translator Mode. </b>To translate messages in the pages they appear, <a href="http://localhost:8008/acs-lang/admin/translator-mode-toggle" target="_top">Toggle Translator Mode</a> and then browse to the page you want to translate. Untranslated messages will have a yellow background and a red star that you click to translate the message. Translated messages have a green star next to them that is a hyperlink to editing your translation. There is a history mechanism that allows you to see previous translations in case you would want to revert a translation.</p><div class="mediaobject" align="center"><img src="../images/translator-mode.png" align="middle"></div><p>While in Translator mode, a list of all message keys appears at the bottom of each page.</p><div class="mediaobject" align="center"><img src="../images/translations.png" align="middle"></div></li><li><p><b>Batch translation. </b>To translate many messages at once, go to <a href="/acs-lang/admin" target="_top">Administration of Localization</a>, click on the locale to translate, then click on a package, and then click <tt class="computeroutput">Batch edit these messages</tt>.</p><div class="mediaobject" align="center"><img src="../images/translation-batch-edit.png" align="middle"></div></li></ul></div><p>When creating a new locale based on an existing one, such as creating the Guatamalan version of Spanish, you can copy the existing locale's catalog files using the script <tt class="computeroutput">/packages/acs-core-docs/www/files/create-new-catalog.sh</tt>.</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="i18n-design.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="cvs-tips.html">Next</a></td></tr><tr><td width="40%" align="left">Design Notes </td><td width="20%" align="center"><a accesskey="u" href="i18n.html">Up</a></td><td width="40%" align="right"> Appendix D. Using CVS with an OpenACS Site</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/i18n-translators.html#comments">View comments on this page at openacs.org</a></center></body></html> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Translator's Guide</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="i18n.html" title="Chapter 14. Internationalization"><link rel="previous" href="i18n-design.html" title="Design Notes"><link rel="next" href="acs-plat-dev.html" title="Part IV. For OpenACS Platform Developers"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="i18n-design.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Internationalization</th><td width="20%" align="right"> <a accesskey="n" href="acs-plat-dev.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="i18n-translators"></a>Translator's Guide</h2></div></div><div></div></div><p>Most translators use the <a href="http://translate.openacs.org" target="_top">OpenACS Public Translation Server</a>, because the process of getting new message keys onto the server and getting new translations back into the distribution are handled by the maintainers of that machine. You can also do translation work on your own OpenACS site; this makes your own translations more readily available to you but also means that your work will not be shared with other users unless you take extra steps (contacting an OpenACS core developer or submitting a patch) to get your work back to the OpenACS core.</p><p>The basic steps for translators:</p><div class="itemizedlist"><ul type="disc"><li><p>Go to the <a href="/acs-lang" target="_top">Localization</a> page and choose the locale that you are translating to. If the locale is not present you need to visit <a href="/acs-lang/admin" target="_top">Administration of Localization</a> and create the locale.</p></li><li><p><b>Translating with Translator Mode. </b>To translate messages in the pages they appear, <a href="http://localhost:8008/acs-lang/admin/translator-mode-toggle" target="_top">Toggle Translator Mode</a> and then browse to the page you want to translate. Untranslated messages will have a yellow background and a red star that you click to translate the message. Translated messages have a green star next to them that is a hyperlink to editing your translation. There is a history mechanism that allows you to see previous translations in case you would want to revert a translation.</p><div class="mediaobject" align="center"><img src="../images/translator-mode.png" align="middle"></div><p>While in Translator mode, a list of all message keys appears at the bottom of each page.</p><div class="mediaobject" align="center"><img src="../images/translations.png" align="middle"></div></li><li><p><b>Batch translation. </b>To translate many messages at once, go to <a href="/acs-lang/admin" target="_top">Administration of Localization</a>, click on the locale to translate, then click on a package, and then click <tt class="computeroutput">Batch edit these messages</tt>.</p><div class="mediaobject" align="center"><img src="../images/translation-batch-edit.png" align="middle"></div></li></ul></div><p>When creating a new locale based on an existing one, such as creating the Guatamalan version of Spanish, you can copy the existing locale's catalog files using the script <tt class="computeroutput">/packages/acs-core-docs/www/files/create-new-catalog.sh</tt>.</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="i18n-design.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="acs-plat-dev.html">Next</a></td></tr><tr><td width="40%" align="left">Design Notes </td><td width="20%" align="center"><a accesskey="u" href="i18n.html">Up</a></td><td width="40%" align="right"> Part IV. For OpenACS Platform Developers</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/i18n-translators.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/i18n.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n.html,v diff -u -r1.30 -r1.31 --- openacs-4/packages/acs-core-docs/www/i18n.html 13 Sep 2009 23:54:40 -0000 1.30 +++ openacs-4/packages/acs-core-docs/www/i18n.html 17 Oct 2010 21:06:07 -0000 1.31 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter 13. Internationalization</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="acs-package-dev.html" title="Part III. For OpenACS Package Developers"><link rel="previous" href="requirements-template.html" title="System/Application Requirements Template"><link rel="next" href="i18n-overview.html" title="Internationalization and Localization Overview"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="requirements-template.html">Prev</a> </td><th width="60%" align="center">Part III. For OpenACS Package Developers</th><td width="20%" align="right"> <a accesskey="n" href="i18n-overview.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="i18n"></a>Chapter 13. Internationalization</h2></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="i18n-overview.html">Internationalization and Localization Overview</a></dt><dt><a href="i18n-introduction.html">How Internationalization/Localization works in OpenACS</a></dt><dt><a href="i18n-convert.html">How to Internationalize a Package</a></dt><dt><a href="i18n-design.html">Design Notes</a></dt><dt><a href="i18n-translators.html">Translator's Guide</a></dt></dl></div><div class="authorblurb"><p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter 14. Internationalization</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="acs-package-dev.html" title="Part III. For OpenACS Package Developers"><link rel="previous" href="requirements-template.html" title="System/Application Requirements Template"><link rel="next" href="i18n-overview.html" title="Internationalization and Localization Overview"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="requirements-template.html">Prev</a> </td><th width="60%" align="center">Part III. For OpenACS Package Developers</th><td width="20%" align="right"> <a accesskey="n" href="i18n-overview.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="i18n"></a>Chapter 14. Internationalization</h2></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="i18n-overview.html">Internationalization and Localization Overview</a></dt><dt><a href="i18n-introduction.html">How Internationalization/Localization works in OpenACS</a></dt><dt><a href="i18n-convert.html">How to Internationalize a Package</a></dt><dt><a href="i18n-design.html">Design Notes</a></dt><dt><a href="i18n-translators.html">Translator's Guide</a></dt></dl></div><div class="authorblurb"><p> By <a href="http://www.petermarklund.com/" target="_top">Peter Marklund</a> and <a href="http://www.pinds.com/" target="_top">Lars Pind</a> </p> Index: openacs-4/packages/acs-core-docs/www/index.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/index.html,v diff -u -r1.49 -r1.50 --- openacs-4/packages/acs-core-docs/www/index.html 13 Sep 2009 23:54:40 -0000 1.49 +++ openacs-4/packages/acs-core-docs/www/index.html 17 Oct 2010 21:06:07 -0000 1.50 @@ -1,4 +1,2 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenACS Core Documentation</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="next" href="for-everyone.html" title="Part I. OpenACS For Everyone"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"> </td><th width="60%" align="center"></th><td width="20%" align="right"> <a accesskey="n" href="for-everyone.html">Next</a></td></tr></table><hr></div><div class="book" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="id2817642"></a>OpenACS Core Documentation</h1></div></div><div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>I. <a href="for-everyone.html">OpenACS For Everyone</a></dt><dd><dl><dt>1. <a href="general-documents.html">High level information: What is OpenACS?</a></dt><dd><dl><dt><a href="openacs-overview.html">Overview</a></dt><dt><a href="release-notes.html">OpenACS Release Notes</a></dt></dl></dd></dl></dd><dt>II. <a href="acs-admin.html">Administrator's Guide</a></dt><dd><dl><dt>2. <a href="install-overview.html">Installation Overview</a></dt><dd><dl><dt><a href="install-steps.html">Basic Steps</a></dt><dt><a href="individual-programs.html">Prerequisite Software</a></dt></dl></dd><dt>3. <a href="complete-install.html">Complete Installation</a></dt><dd><dl><dt><a href="unix-installation.html">Install a Unix-like system and supporting software</a></dt><dt><a href="oracle.html">Install Oracle 8.1.7</a></dt><dt><a href="postgres.html">Install PostgreSQL</a></dt><dt><a href="aolserver4.html">Install AOLserver 4</a></dt><dt><a href="openacs.html">Install OpenACS 5.5.0</a></dt><dt><a href="win2k-installation.html">OpenACS Installation Guide for Windows2000</a></dt><dt><a href="mac-installation.html">OpenACS Installation Guide for Mac OS X</a></dt></dl></dd><dt>4. <a href="configuring-new-site.html">Configuring a new OpenACS Site</a></dt><dd><dl><dt><a href="configuring-install-packages.html">Installing OpenACS packages</a></dt><dt><a href="configuring-mounting-packages.html">Mounting OpenACS packages</a></dt><dt><a href="configuring-configuring-packages.html">Configuring an OpenACS package</a></dt><dt><a href="configuring-configuring-permissions.html">Setting Permissions on an OpenACS package</a></dt><dt><a href="how-do-I.html">How Do I?</a></dt></dl></dd><dt>5. <a href="upgrade.html">Upgrading</a></dt><dd><dl><dt><a href="upgrade-overview.html">Overview</a></dt><dt><a href="upgrade-4.5-to-4.6.html">Upgrading 4.5 or higher to 4.6.3</a></dt><dt><a href="upgrade-4.6.3-to-5.html">Upgrading OpenACS 4.6.3 to 5.0</a></dt><dt><a href="upgrade-5-0-dot.html">Upgrading an OpenACS 5.0.0 or greater installation</a></dt><dt><a href="upgrade-openacs-files.html">Upgrading the OpenACS files</a></dt><dt><a href="upgrade-supporting.html">Upgrading Platform components</a></dt></dl></dd><dt>6. <a href="maintenance-web.html">Production Environments</a></dt><dd><dl><dt><a href="install-openacs-keepalive.html">Starting and Stopping an OpenACS instance.</a></dt><dt><a href="install-openacs-inittab.html">AOLserver keepalive with inittab</a></dt><dt><a href="install-next-add-server.html">Running multiple services on one machine</a></dt><dt><a href="high-avail.html">High Availability/High Performance Configurations</a></dt><dt><a href="maintenance-deploy.html">Staged Deployment for Production Networks</a></dt><dt><a href="install-ssl.html">Installing SSL Support for an OpenACS service</a></dt><dt><a href="analog-setup.html">Set up Log Analysis Reports</a></dt><dt><a href="uptime.html">External uptime validation</a></dt><dt><a href="maint-performance.html">Diagnosing Performance Problems</a></dt></dl></dd><dt>7. <a href="database-management.html">Database Management</a></dt><dd><dl><dt><a href="remote-postgres.html">Running a PostgreSQL database on another server</a></dt><dt><a href="install-openacs-delete-tablespace.html">Deleting a tablespace</a></dt><dt><a href="install-next-nightly-vacuum.html">Vacuum Postgres nightly</a></dt></dl></dd><dt>A. <a href="install-redhat.html">Install Red Hat 8/9</a></dt><dt>B. <a href="install-more-software.html">Install additional supporting software</a></dt><dd><dl><dt><a href="openacs-unpack.html">Unpack the OpenACS tarball</a></dt><dt><a href="install-cvs.html">Initialize CVS (OPTIONAL)</a></dt><dt><a href="psgml-for-emacs.html">Add PSGML commands to emacs init file (OPTIONAL)</a></dt><dt><a href="install-daemontools.html">Install Daemontools (OPTIONAL)</a></dt><dt><a href="install-qmail.html">Install qmail (OPTIONAL)</a></dt><dt><a href="analog-install.html">Install Analog web file analyzer</a></dt><dt><a href="install-nspam.html">Install nspam</a></dt><dt><a href="install-full-text-search-tsearch2.html">Install Full Text Search using Tsearch2</a></dt><dt><a href="install-full-text-search-openfts.html">Install Full Text Search using OpenFTS (deprecated see tsearch2)</a></dt><dt><a href="install-nsopenssl.html">Install nsopenssl</a></dt><dt><a href="install-tclwebtest.html">Install tclwebtest.</a></dt><dt><a href="install-php.html">Install PHP for use in AOLserver</a></dt><dt><a href="install-squirrelmail.html">Install Squirrelmail for use as a webmail system for OpenACS</a></dt><dt><a href="install-pam-radius.html">Install PAM Radius for use as external authentication</a></dt><dt><a href="install-ldap-radius.html">Install LDAP for use as external authentication</a></dt><dt><a href="aolserver.html">Install AOLserver 3.3oacs1</a></dt></dl></dd><dt>C. <a href="credits.html">Credits</a></dt><dd><dl><dt><a href="install-origins.html">Where did this document come from?</a></dt><dt><a href="os-install.html">Linux Install Guides</a></dt><dt><a href="os-security.html">Security Information</a></dt><dt><a href="install-resources.html">Resources</a></dt></dl></dd></dl></dd><dt>III. <a href="acs-package-dev.html">For OpenACS Package Developers</a></dt><dd><dl><dt>8. <a href="tutorial.html">Development Tutorial</a></dt><dd><dl><dt><a href="tutorial-database.html">Setting Up Database Objects</a></dt><dt><a href="tutorial-pages.html">Creating Web Pages</a></dt><dt><a href="tutorial-debug.html">Debugging and Automated Testing</a></dt></dl></dd><dt>9. <a href="tutorial-advanced.html">Advanced Topics</a></dt><dd><dl><dt><a href="tutorial-specs.html">Write the Requirements and Design Specs</a></dt><dt><a href="tutorial-cvs.html">Add the new package to CVS</a></dt><dt><a href="tutorial-etp-templates.html">OpenACS Edit This Page Templates</a></dt><dt><a href="tutorial-comments.html">Adding Comments</a></dt><dt><a href="tutorial-admin-pages.html">Admin Pages</a></dt><dt><a href="tutorial-categories.html">Categories</a></dt><dt><a href="profile-code.html">Profile your code</a></dt><dt><a href="tutorial-distribute.html">Prepare the package for distribution.</a></dt><dt><a href="tutorial-upgrades.html">Distributing upgrades of your package</a></dt><dt><a href="tutorial-notifications.html">Notifications</a></dt><dt><a href="tutorial-hierarchical.html">Hierarchical data</a></dt><dt><a href="tutorial-vuh.html">Using .vuh files for pretty urls</a></dt><dt><a href="tutorial-css-layout.html">Laying out a page with CSS instead of tables</a></dt><dt><a href="tutorial-html-email.html">Sending HTML email from your application</a></dt><dt><a href="tutorial-caching.html">Basic Caching</a></dt><dt><a href="tutorial-schedule-procs.html">Scheduled Procedures</a></dt><dt><a href="tutorial-wysiwyg-editor.html">Enabling WYSIWYG</a></dt><dt><a href="tutorial-parameters.html">Adding in parameters for your package</a></dt><dt><a href="tutorial-upgrade-scripts.html">Writing upgrade scripts</a></dt><dt><a href="tutorial-second-database.html">Connect to a second database</a></dt><dt><a href="tutorial-future-topics.html">Future Topics</a></dt></dl></dd><dt>10. <a href="dev-guide.html">Development Reference</a></dt><dd><dl><dt><a href="packages.html">OpenACS Packages</a></dt><dt><a href="objects.html">OpenACS Data Models and the Object System</a></dt><dt><a href="request-processor.html">The Request Processor</a></dt><dt><a href="db-api.html">The OpenACS Database Access API</a></dt><dt><a href="templates.html">Using Templates in OpenACS</a></dt><dt><a href="permissions.html">Groups, Context, Permissions</a></dt><dt><a href="parties.html">Parties in OpenACS</a></dt><dt><a href="permissions-tediously-explained.html">OpenACS Permissions Tediously Explained</a></dt><dt><a href="object-identity.html">Object Identity</a></dt><dt><a href="programming-with-aolserver.html">Programming with AOLserver</a></dt><dt><a href="form-builder.html">Using Form Builder: building html forms dynamically</a></dt></dl></dd><dt>11. <a href="eng-standards.html">Engineering Standards</a></dt><dd><dl><dt><a href="style-guide.html">OpenACS Style Guide</a></dt><dt><a href="cvs-guidelines.html"> - CVS Guidelines - </a></dt><dt><a href="eng-standards-versioning.html">Release Version Numbering</a></dt><dt><a href="eng-standards-constraint-naming.html">Constraint naming standard</a></dt><dt><a href="eng-standards-filenaming.html">ACS File Naming and Formatting Standards</a></dt><dt><a href="eng-standards-plsql.html">PL/SQL Standards</a></dt><dt><a href="variables.html">Variables</a></dt><dt><a href="automated-testing-best-practices.html">Automated Testing</a></dt></dl></dd><dt>12. <a href="doc-standards.html">Documentation Standards</a></dt><dd><dl><dt><a href="docbook-primer.html">OpenACS Documentation Guide</a></dt><dt><a href="nxml-mode.html">Using nXML mode in Emacs</a></dt><dt><a href="filename.html">Detailed Design Documentation Template</a></dt><dt><a href="requirements-template.html">System/Application Requirements Template</a></dt></dl></dd><dt>13. <a href="i18n.html">Internationalization</a></dt><dd><dl><dt><a href="i18n-overview.html">Internationalization and Localization Overview</a></dt><dt><a href="i18n-introduction.html">How Internationalization/Localization works in OpenACS</a></dt><dt><a href="i18n-convert.html">How to Internationalize a Package</a></dt><dt><a href="i18n-design.html">Design Notes</a></dt><dt><a href="i18n-translators.html">Translator's Guide</a></dt></dl></dd><dt>D. <a href="cvs-tips.html">Using CVS with an OpenACS Site</a></dt></dl></dd><dt>IV. <a href="acs-plat-dev.html">For OpenACS Platform Developers</a></dt><dd><dl><dt>14. <a href="kernel-doc.html">Kernel Documentation</a></dt><dd><dl><dt><a href="kernel-overview.html">Overview</a></dt><dt><a href="object-system-requirements.html">Object Model Requirements</a></dt><dt><a href="object-system-design.html">Object Model Design</a></dt><dt><a href="permissions-requirements.html">Permissions Requirements</a></dt><dt><a href="permissions-design.html">Permissions Design</a></dt><dt><a href="groups-requirements.html">Groups Requirements</a></dt><dt><a href="groups-design.html">Groups Design</a></dt><dt><a href="subsites-design.html">Subsites Design Document</a></dt><dt><a href="apm-requirements.html">Package Manager Requirements</a></dt><dt><a href="apm-design.html">Package Manager Design</a></dt><dt><a href="i18n-requirements.html">OpenACS Internationalization Requirements</a></dt><dt><a href="security-requirements.html">Security Requirements</a></dt><dt><a href="security-design.html">Security Design</a></dt><dt><a href="security-notes.html">Security Notes</a></dt><dt><a href="rp-requirements.html">Request Processor Requirements</a></dt><dt><a href="rp-design.html">Request Processor Design</a></dt><dt><a href="tcl-doc.html">Documenting Tcl Files: Page Contracts and Libraries</a></dt><dt><a href="bootstrap-acs.html">Bootstrapping OpenACS</a></dt><dt><a href="ext-auth-requirements.html">External Authentication Requirements</a></dt></dl></dd><dt>15. <a href="releasing-openacs.html">Releasing OpenACS</a></dt><dd><dl><dt><a href="releasing-openacs-core.html">OpenACS Core and .LRN</a></dt><dt><a href="update-repository.html">How to Update the OpenACS.org repository</a></dt><dt><a href="releasing-package.html">How to package and release an OpenACS Package</a></dt><dt><a href="update-translations.html">How to Update the translations</a></dt></dl></dd></dl></dd><dt><a href="ix01.html">Index</a></dt></dl></div><div class="list-of-figures"><p><b>List of Figures</b></p><dl><dt>4.1. <a href="how-do-I.html#id2944240">Site Templates</a></dt><dt>4.2. <a href="how-do-I.html#id2978586">Granting Permissions</a></dt><dt>4.3. <a href="how-do-I.html#id2978628">Granting Permissions in 5.0</a></dt><dt>5.1. <a href="upgrade-overview.html#id2931177">Upgrading with the APM</a></dt><dt>5.2. <a href="upgrade-openacs-files.html#id2979286">Upgrading a local CVS repository</a></dt><dt>6.1. <a href="high-avail.html#id2985585">Multiple-server configuration</a></dt><dt>6.2. <a href="maintenance-deploy.html#id2985896">Simple A/B Deployment - Step 1</a></dt><dt>6.3. <a href="maintenance-deploy.html#id2987383">Simple A/B Deployment - Step 2</a></dt><dt>6.4. <a href="maintenance-deploy.html#id2987413">Simple A/B Deployment - Step 3</a></dt><dt>6.5. <a href="maintenance-deploy.html#id2987452">Complex A/B Deployment - Step 1</a></dt><dt>6.6. <a href="maintenance-deploy.html#id2987483">Complex A/B Deployment - Step 2</a></dt><dt>6.7. <a href="maintenance-deploy.html#id2987514">Complex A/B Deployment - Step 3</a></dt><dt>6.8. <a href="maint-performance.html#id2988345">Query Analysis example</a></dt><dt>8.1. <a href="tutorial-database.html#id2951246">Tutorial Data Model</a></dt><dt>8.2. <a href="tutorial-database.html#id2960713">The Database Creation Script</a></dt><dt>8.3. <a href="tutorial-database.html#id2952155">Database Deletion Script</a></dt><dt>8.4. <a href="tutorial-pages.html#id2980436">Page Map</a></dt><dt>9.1. <a href="tutorial-cvs.html#id3016168">Upgrading a local CVS repository</a></dt><dt>10.1. <a href="packages.html#id3068817">Server file layout diagram</a></dt><dt>10.2. <a href="packages.html#id3068912">Package file layout diagram</a></dt></dl></div><div class="list-of-tables"><p><b>List of Tables</b></p><dl><dt>2.1. <a href="install-steps.html#id2815602">Default directories for a standard install</a></dt><dt>2.2. <a href="individual-programs.html#compatibility-matrix">Version Compatibility Matrix</a></dt><dt>5.1. <a href="upgrade-overview.html#id2931219">Assumptions in this section</a></dt><dt>6.1. <a href="install-openacs-keepalive.html#id2930070">How it Works</a></dt><dt>9.1. <a href="tutorial-etp-templates.html#id2979596">table showing ETP layout</a></dt><dt>10.1. <a href="packages.html#id2926271">Package files</a></dt><dt>10.2. <a href="permissions-tediously-explained.html#id3035156">Context Hierarchy Example</a></dt><dt>10.3. <a href="permissions-tediously-explained.html#id3037640">acs_objects example data</a></dt><dt>13.1. <a href="i18n-overview.html#i18n-l10n-process">Internationalization and Localization Overview</a></dt></dl></div><div class="list-of-examples"><p><b>List of Examples</b></p><dl><dt>11.1. <a href="variables.html#id3049006">Getting datetime from the database ANSI-style</a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"></td><td width="40%" align="right"> <a accesskey="n" href="for-everyone.html">Next</a></td></tr><tr><td width="40%" align="left"> </td><td width="20%" align="center"></td><td width="40%" align="right"> Part I. OpenACS For Everyone</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/index.html#comments">View comments on this page at openacs.org</a></center></body></html> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenACS Core Documentation</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="next" href="for-everyone.html" title="Part I. OpenACS For Everyone"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"> </td><th width="60%" align="center"></th><td width="20%" align="right"> <a accesskey="n" href="for-everyone.html">Next</a></td></tr></table><hr></div><div class="book" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="id2817642"></a>OpenACS Core Documentation</h1></div></div><div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>I. <a href="for-everyone.html">OpenACS For Everyone</a></dt><dd><dl><dt>1. <a href="general-documents.html">High level information: What is OpenACS?</a></dt><dd><dl><dt><a href="openacs-overview.html">Overview</a></dt><dt><a href="release-notes.html">OpenACS Release Notes</a></dt></dl></dd></dl></dd><dt>II. <a href="acs-admin.html">Administrator's Guide</a></dt><dd><dl><dt>2. <a href="install-overview.html">Installation Overview</a></dt><dd><dl><dt><a href="install-steps.html">Basic Steps</a></dt><dt><a href="individual-programs.html">Prerequisite Software</a></dt></dl></dd><dt>3. <a href="complete-install.html">Complete Installation</a></dt><dd><dl><dt><a href="unix-installation.html">Install a Unix-like system and supporting software</a></dt><dt><a href="oracle.html">Install Oracle 8.1.7</a></dt><dt><a href="postgres.html">Install PostgreSQL</a></dt><dt><a href="aolserver4.html">Install AOLserver 4</a></dt><dt><a href="openacs.html">Install OpenACS 5.6.0</a></dt><dt><a href="win2k-installation.html">OpenACS Installation Guide for Windows2000</a></dt><dt><a href="mac-installation.html">OpenACS Installation Guide for Mac OS X</a></dt></dl></dd><dt>4. <a href="configuring-new-site.html">Configuring a new OpenACS Site</a></dt><dd><dl><dt><a href="configuring-install-packages.html">Installing OpenACS packages</a></dt><dt><a href="configuring-mounting-packages.html">Mounting OpenACS packages</a></dt><dt><a href="configuring-configuring-packages.html">Configuring an OpenACS package</a></dt><dt><a href="configuring-configuring-permissions.html">Setting Permissions on an OpenACS package</a></dt><dt><a href="how-do-I.html">How Do I?</a></dt></dl></dd><dt>5. <a href="upgrade.html">Upgrading</a></dt><dd><dl><dt><a href="upgrade-overview.html">Overview</a></dt><dt><a href="upgrade-4.5-to-4.6.html">Upgrading 4.5 or higher to 4.6.3</a></dt><dt><a href="upgrade-4.6.3-to-5.html">Upgrading OpenACS 4.6.3 to 5.0</a></dt><dt><a href="upgrade-5-0-dot.html">Upgrading an OpenACS 5.0.0 or greater installation</a></dt><dt><a href="upgrade-openacs-files.html">Upgrading the OpenACS files</a></dt><dt><a href="upgrade-supporting.html">Upgrading Platform components</a></dt></dl></dd><dt>6. <a href="maintenance-web.html">Production Environments</a></dt><dd><dl><dt><a href="install-openacs-keepalive.html">Starting and Stopping an OpenACS instance.</a></dt><dt><a href="install-openacs-inittab.html">AOLserver keepalive with inittab</a></dt><dt><a href="install-next-add-server.html">Running multiple services on one machine</a></dt><dt><a href="high-avail.html">High Availability/High Performance Configurations</a></dt><dt><a href="maintenance-deploy.html">Staged Deployment for Production Networks</a></dt><dt><a href="install-ssl.html">Installing SSL Support for an OpenACS service</a></dt><dt><a href="analog-setup.html">Set up Log Analysis Reports</a></dt><dt><a href="uptime.html">External uptime validation</a></dt><dt><a href="maint-performance.html">Diagnosing Performance Problems</a></dt></dl></dd><dt>7. <a href="database-management.html">Database Management</a></dt><dd><dl><dt><a href="remote-postgres.html">Running a PostgreSQL database on another server</a></dt><dt><a href="install-openacs-delete-tablespace.html">Deleting a tablespace</a></dt><dt><a href="install-next-nightly-vacuum.html">Vacuum Postgres nightly</a></dt></dl></dd><dt>8. <a href="backup-recovery.html">Backup and Recovery</a></dt><dd><dl><dt><a href="install-next-backups.html">Backup Strategy</a></dt><dt><a href="snapshot-backup.html">Manual backup and recovery</a></dt><dt><a href="automated-backup.html">Automated Backup</a></dt><dt><a href="backups-with-cvs.html">Using CVS for backup-recovery</a></dt></dl></dd><dt>A. <a href="install-redhat.html">Install Red Hat 8/9</a></dt><dt>B. <a href="install-more-software.html">Install additional supporting software</a></dt><dd><dl><dt><a href="openacs-unpack.html">Unpack the OpenACS tarball</a></dt><dt><a href="install-cvs.html">Initialize CVS (OPTIONAL)</a></dt><dt><a href="psgml-for-emacs.html">Add PSGML commands to emacs init file (OPTIONAL)</a></dt><dt><a href="install-daemontools.html">Install Daemontools (OPTIONAL)</a></dt><dt><a href="install-qmail.html">Install qmail (OPTIONAL)</a></dt><dt><a href="analog-install.html">Install Analog web file analyzer</a></dt><dt><a href="install-nspam.html">Install nspam</a></dt><dt><a href="install-full-text-search-tsearch2.html">Install Full Text Search using Tsearch2</a></dt><dt><a href="install-full-text-search-openfts.html">Install Full Text Search using OpenFTS (deprecated see tsearch2)</a></dt><dt><a href="install-nsopenssl.html">Install nsopenssl</a></dt><dt><a href="install-tclwebtest.html">Install tclwebtest.</a></dt><dt><a href="install-php.html">Install PHP for use in AOLserver</a></dt><dt><a href="install-squirrelmail.html">Install Squirrelmail for use as a webmail system for OpenACS</a></dt><dt><a href="install-pam-radius.html">Install PAM Radius for use as external authentication</a></dt><dt><a href="install-ldap-radius.html">Install LDAP for use as external authentication</a></dt><dt><a href="aolserver.html">Install AOLserver 3.3oacs1</a></dt></dl></dd><dt>C. <a href="credits.html">Credits</a></dt><dd><dl><dt><a href="install-origins.html">Where did this document come from?</a></dt><dt><a href="os-install.html">Linux Install Guides</a></dt><dt><a href="os-security.html">Security Information</a></dt><dt><a href="install-resources.html">Resources</a></dt></dl></dd></dl></dd><dt>III. <a href="acs-package-dev.html">For OpenACS Package Developers</a></dt><dd><dl><dt>9. <a href="tutorial.html">Development Tutorial</a></dt><dd><dl><dt><a href="tutorial-newpackage.html">Creating an Application Package</a></dt><dt><a href="tutorial-database.html">Setting Up Database Objects</a></dt><dt><a href="tutorial-pages.html">Creating Web Pages</a></dt><dt><a href="tutorial-debug.html">Debugging and Automated Testing</a></dt></dl></dd><dt>10. <a href="tutorial-advanced.html">Advanced Topics</a></dt><dd><dl><dt><a href="tutorial-specs.html">Write the Requirements and Design Specs</a></dt><dt><a href="tutorial-cvs.html">Add the new package to CVS</a></dt><dt><a href="tutorial-etp-templates.html">OpenACS Edit This Page Templates</a></dt><dt><a href="tutorial-comments.html">Adding Comments</a></dt><dt><a href="tutorial-admin-pages.html">Admin Pages</a></dt><dt><a href="tutorial-categories.html">Categories</a></dt><dt><a href="profile-code.html">Profile your code</a></dt><dt><a href="tutorial-distribute.html">Prepare the package for distribution.</a></dt><dt><a href="tutorial-upgrades.html">Distributing upgrades of your package</a></dt><dt><a href="tutorial-notifications.html">Notifications</a></dt><dt><a href="tutorial-hierarchical.html">Hierarchical data</a></dt><dt><a href="tutorial-vuh.html">Using .vuh files for pretty urls</a></dt><dt><a href="tutorial-css-layout.html">Laying out a page with CSS instead of tables</a></dt><dt><a href="tutorial-html-email.html">Sending HTML email from your application</a></dt><dt><a href="tutorial-caching.html">Basic Caching</a></dt><dt><a href="tutorial-schedule-procs.html">Scheduled Procedures</a></dt><dt><a href="tutorial-wysiwyg-editor.html">Enabling WYSIWYG</a></dt><dt><a href="tutorial-parameters.html">Adding in parameters for your package</a></dt><dt><a href="tutorial-upgrade-scripts.html">Writing upgrade scripts</a></dt><dt><a href="tutorial-second-database.html">Connect to a second database</a></dt><dt><a href="tutorial-future-topics.html">Future Topics</a></dt></dl></dd><dt>11. <a href="dev-guide.html">Development Reference</a></dt><dd><dl><dt><a href="packages.html">OpenACS Packages</a></dt><dt><a href="objects.html">OpenACS Data Models and the Object System</a></dt><dt><a href="request-processor.html">The Request Processor</a></dt><dt><a href="db-api.html">The OpenACS Database Access API</a></dt><dt><a href="templates.html">Using Templates in OpenACS</a></dt><dt><a href="permissions.html">Groups, Context, Permissions</a></dt><dt><a href="subsites.html">Writing OpenACS Application Pages</a></dt><dt><a href="parties.html">Parties in OpenACS</a></dt><dt><a href="permissions-tediously-explained.html">OpenACS Permissions Tediously Explained</a></dt><dt><a href="object-identity.html">Object Identity</a></dt><dt><a href="programming-with-aolserver.html">Programming with AOLserver</a></dt><dt><a href="form-builder.html">Using Form Builder: building html forms dynamically</a></dt></dl></dd><dt>12. <a href="eng-standards.html">Engineering Standards</a></dt><dd><dl><dt><a href="style-guide.html">OpenACS Style Guide</a></dt><dt><a href="eng-standards-versioning.html">Release Version Numbering</a></dt><dt><a href="eng-standards-constraint-naming.html">Constraint naming standard</a></dt><dt><a href="eng-standards-filenaming.html">ACS File Naming and Formatting Standards</a></dt><dt><a href="eng-standards-plsql.html">PL/SQL Standards</a></dt><dt><a href="variables.html">Variables</a></dt><dt><a href="automated-testing-best-practices.html">Automated Testing</a></dt></dl></dd><dt>13. <a href="doc-standards.html">Documentation Standards</a></dt><dd><dl><dt><a href="docbook-primer.html">OpenACS Documentation Guide</a></dt><dt><a href="psgml-mode.html">Using PSGML mode in Emacs</a></dt><dt><a href="nxml-mode.html">Using nXML mode in Emacs</a></dt><dt><a href="filename.html">Detailed Design Documentation Template</a></dt><dt><a href="requirements-template.html">System/Application Requirements Template</a></dt></dl></dd><dt>14. <a href="i18n.html">Internationalization</a></dt><dd><dl><dt><a href="i18n-overview.html">Internationalization and Localization Overview</a></dt><dt><a href="i18n-introduction.html">How Internationalization/Localization works in OpenACS</a></dt><dt><a href="i18n-convert.html">How to Internationalize a Package</a></dt><dt><a href="i18n-design.html">Design Notes</a></dt><dt><a href="i18n-translators.html">Translator's Guide</a></dt></dl></dd></dl></dd><dt>IV. <a href="acs-plat-dev.html">For OpenACS Platform Developers</a></dt><dd><dl><dt>15. <a href="kernel-doc.html">Kernel Documentation</a></dt><dd><dl><dt><a href="kernel-overview.html">Overview</a></dt><dt><a href="object-system-requirements.html">Object Model Requirements</a></dt><dt><a href="permissions-requirements.html">Permissions Requirements</a></dt><dt><a href="permissions-design.html">Permissions Design</a></dt><dt><a href="groups-requirements.html">Groups Requirements</a></dt><dt><a href="groups-design.html">Groups Design</a></dt><dt><a href="subsites-requirements.html">Subsites Requirements</a></dt><dt><a href="subsites-design.html">Subsites Design Document</a></dt><dt><a href="apm-requirements.html">Package Manager Requirements</a></dt><dt><a href="apm-design.html">Package Manager Design</a></dt><dt><a href="db-api-detailed.html">Database Access API</a></dt><dt><a href="i18n-requirements.html">OpenACS Internationalization Requirements</a></dt><dt><a href="security-requirements.html">Security Requirements</a></dt><dt><a href="security-design.html">Security Design</a></dt><dt><a href="security-notes.html">Security Notes</a></dt><dt><a href="rp-requirements.html">Request Processor Requirements</a></dt><dt><a href="rp-design.html">Request Processor Design</a></dt><dt><a href="bootstrap-acs.html">Bootstrapping OpenACS</a></dt><dt><a href="ext-auth-requirements.html">External Authentication Requirements</a></dt></dl></dd><dt>16. <a href="releasing-openacs.html">Releasing OpenACS</a></dt><dd><dl><dt><a href="releasing-openacs-core.html">OpenACS Core and .LRN</a></dt><dt><a href="update-repository.html">How to Update the OpenACS.org repository</a></dt><dt><a href="releasing-package.html">How to package and release an OpenACS Package</a></dt><dt><a href="update-translations.html">How to Update the translations</a></dt></dl></dd></dl></dd><dt><a href="ix01.html">Index</a></dt></dl></div><div class="list-of-figures"><p><b>List of Figures</b></p><dl><dt>4.1. <a href="how-do-I.html#id2914624">Site Templates</a></dt><dt>4.2. <a href="how-do-I.html#id2978516">Granting Permissions</a></dt><dt>4.3. <a href="how-do-I.html#id2978558">Granting Permissions in 5.0</a></dt><dt>5.1. <a href="upgrade-overview.html#id2965953">Upgrading with the APM</a></dt><dt>5.2. <a href="upgrade-openacs-files.html#id2979216">Upgrading a local CVS repository</a></dt><dt>6.1. <a href="high-avail.html#id2984162">Multiple-server configuration</a></dt><dt>6.2. <a href="maintenance-deploy.html#id2987290">Simple A/B Deployment - Step 1</a></dt><dt>6.3. <a href="maintenance-deploy.html#id2987321">Simple A/B Deployment - Step 2</a></dt><dt>6.4. <a href="maintenance-deploy.html#id2987352">Simple A/B Deployment - Step 3</a></dt><dt>6.5. <a href="maintenance-deploy.html#id2987391">Complex A/B Deployment - Step 1</a></dt><dt>6.6. <a href="maintenance-deploy.html#id2987422">Complex A/B Deployment - Step 2</a></dt><dt>6.7. <a href="maintenance-deploy.html#id2987453">Complex A/B Deployment - Step 3</a></dt><dt>6.8. <a href="maint-performance.html#id2988284">Query Analysis example</a></dt><dt>8.1. <a href="backup-recovery.html#id2947204">Backup and Recovery Strategy</a></dt><dt>9.1. <a href="tutorial-newpackage.html#id2909060">Assumptions in this section</a></dt><dt>9.2. <a href="tutorial-database.html#id2968475">Tutorial Data Model</a></dt><dt>9.3. <a href="tutorial-database.html#id2965509">The Database Creation Script</a></dt><dt>9.4. <a href="tutorial-database.html#id2899656">Database Deletion Script</a></dt><dt>9.5. <a href="tutorial-pages.html#id2920689">Page Map</a></dt><dt>10.1. <a href="tutorial-cvs.html#id3068116">Upgrading a local CVS repository</a></dt><dt>11.1. <a href="packages.html#id2945815">Server file layout diagram</a></dt><dt>11.2. <a href="packages.html#id2945910">Package file layout diagram</a></dt></dl></div><div class="list-of-tables"><p><b>List of Tables</b></p><dl><dt>2.1. <a href="install-steps.html#id2917099">Default directories for a standard install</a></dt><dt>2.2. <a href="individual-programs.html#compatibility-matrix">Version Compatibility Matrix</a></dt><dt>5.1. <a href="upgrade-overview.html#id2965995">Assumptions in this section</a></dt><dt>6.1. <a href="install-openacs-keepalive.html#id2981225">How it Works</a></dt><dt>10.1. <a href="tutorial-etp-templates.html#id3013801">table showing ETP layout</a></dt><dt>11.1. <a href="packages.html#id2915266">Package files</a></dt><dt>11.2. <a href="permissions-tediously-explained.html#id3059660">Context Hierarchy Example</a></dt><dt>11.3. <a href="permissions-tediously-explained.html#id2990888">acs_objects example data</a></dt><dt>14.1. <a href="i18n-overview.html#i18n-l10n-process">Internationalization and Localization Overview</a></dt></dl></div><div class="list-of-examples"><p><b>List of Examples</b></p><dl><dt>12.1. <a href="variables.html#id2983561">Getting datetime from the database ANSI-style</a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"></td><td width="40%" align="right"> <a accesskey="n" href="for-everyone.html">Next</a></td></tr><tr><td width="40%" align="left"> </td><td width="20%" align="center"></td><td width="40%" align="right"> Part I. OpenACS For Everyone</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/index.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/individual-programs.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/individual-programs.html,v diff -u -r1.29 -r1.30 --- openacs-4/packages/acs-core-docs/www/individual-programs.html 13 Sep 2009 23:54:40 -0000 1.29 +++ openacs-4/packages/acs-core-docs/www/individual-programs.html 17 Oct 2010 21:06:08 -0000 1.30 @@ -10,7 +10,7 @@ </p><div class="table"><a name="compatibility-matrix"></a><p class="title"><b>Table 2.2. Version Compatibility Matrix</b></p><table summary="Version Compatibility Matrix" cellspacing="0" border="1"><colgroup><col><col><col><col><col><col><col><col><col><col></colgroup><thead><tr><th colspan="2" align="center">OpenACS Version</th><th>3.2.5</th><th> 4.5 </th><th> 4.6 </th><th>4.6.1</th><th>4.6.2</th><th>4.6.3</th><th>5.0</th><th>5.1</th><th>5.2</th><th>5.3</th><th>5.4</th><th>5.5</th></tr></thead><tbody><tr><td rowspan="8">AOLserver</td><td>3</td><td align="center">Yes</td><td colspan="11" align="center">No</td></tr><tr><td>3.3+ad13</td><td align="center">Maybe</td><td colspan="7" align="center">Yes</td><td colspan="4" align="center">No</td></tr><tr><td>3.3oacs1</td><td align="center">Maybe</td><td colspan="7" align="center">Yes</td><td colspan="4" align="center">No</td></tr><tr><td>3.4.4</td><td colspan="12" align="center">No</td></tr><tr><td>3.4.4oacs1</td><td colspan="4" align="center">Maybe</td><td colspan="2" align="center">Yes</td><td colspan="6" align="center">No</td></tr><tr><td>3.5.5</td><td colspan="4" align="center">Maybe</td><td colspan="2" align="center">Yes</td><td colspan="6" align="center">No</td></tr><tr><td>4.0</td><td colspan="4" align="center">Maybe</td><td colspan="8" align="center">Yes</td></tr><tr><td>4.5</td><td colspan="8" align="center">No</td><td colspan="4" align="center">Yes</td></tr><tr><td rowspan="2">Tcl</td><td>8.4</td><td colspan="12" align="center">Yes</td></tr><tr><td>8.5.4 -</td><td colspan="12" align="center">Maybe</td></tr><tr><td rowspan="8">PostgreSQL</td><td>7.0</td><td align="center">Yes</td><td colspan="11" align="center">No</td></tr><tr><td>7.2</td><td align="center">Maybe</td><td colspan="5" align="center">Yes</td><td colspan="6" align="center">No</td></tr><tr><td>7.3.2 - 7.3.x</td><td colspan="5" align="center">No</td><td colspan="4" align="center">Yes</td><td colspan="3" align="center">No</td></tr><tr><td>7.4</td><td colspan="6" align="center">No</td><td colspan="3" align="center">Yes</td><td colspan="3" align="center">No</td></tr><tr><td>8.0</td><td colspan="7" align="center">No</td><td align="center">Maybe</td><td colspan="4" align="center">Yes</td></tr><tr><td>8.1</td><td colspan="8" align="center">No</td><td colspan="4" align="center">Yes</td></tr><tr><td>8.2</td><td colspan="8" align="center">No</td><td align="center">CVS version only</td><td colspan="3" align="center">Yes</td></tr><tr><td>8.3</td><td colspan="11" align="center">No</td><td align="center">Yes</td></tr><tr><td rowspan="5">Oracle</td><td>8.1.6</td><td align="center">Maybe</td><td colspan="8" align="center">Yes</td><td colspan="3" align="center">Maybe</td></tr><tr><td>8.1.7</td><td align="center">Maybe</td><td colspan="8" align="center">Yes</td><td colspan="3" align="center">Maybe</td></tr><tr><td>9i</td><td colspan="6" align="center">No</td><td colspan="6" align="center">Yes</td></tr><tr><td>10g</td><td colspan="8" align="center">No</td><td colspan="4" align="center">Yes</td></tr><tr><td>11g</td><td colspan="11" align="center">No</td><td align="center">Maybe</td></tr></tbody></table></div><p>The OpenACS installation instructions assume the operating system and build environment are installed. The instructions explain installation of TCL, Tcllib, tDOM, tclwebtest, a Web Server, a Database, a Process Controller, and Source Control software. The following external links are for reference only. - </p><div class="itemizedlist"><ul type="disc"><li><a name="openacs-download"></a><p><b><a href="http://openacs.org/projects/openacs/download/" target="_top">OpenACS 5.5.0</a>. </b>The OpenACS tarball comprises the core packages and + </p><div class="itemizedlist"><ul type="disc"><li><a name="openacs-download"></a><p><b><a href="http://openacs.org/projects/openacs/download/" target="_top">OpenACS 5.6.0</a>. </b>The OpenACS tarball comprises the core packages and many useful additional packages. This includes a full set of documentation. The tarball works with both PostgreSQL and Oracle. Some scripts require bash shell.</p></li><li><p><b>Operating System. </b>OpenACS is designed for a Unix-like system. It is @@ -43,8 +43,8 @@ compile. (Debian users: <tt class="computeroutput">apt-get install tcl8.4-dev</tt>). You need this to install OpenFTS.</p></li></ul></div></li><li><a name="source-tcllib"></a><p><b><a href="http://tcllib.sourceforge.net/" target="_top">Tcllib</a>, REQUIRED. </b> - OpenACS 5.5.0 uses those Tcl extensions to send e-mail out, among others. - </p></li><li><a name="source-tdom"></a><p><b><a href="http://www.tdom.org/" target="_top">tDOM</a>, REQUIRED. </b>OpenACS 5.5.0 stores + OpenACS 5.6.0 uses those Tcl extensions to send e-mail out, among others. + </p></li><li><a name="source-tdom"></a><p><b><a href="http://www.tdom.org/" target="_top">tDOM</a>, REQUIRED. </b>OpenACS 5.6.0 stores queries in XML files, so we use an AOLserver module called tDOM to parse these files. (This replaces libxml2, which was used prior to 4.6.4.)</p></li><li><a name="source-tclwebtest"></a><p><b><a href="http://sourceforge.net/project/showfiles.php?group_id=31075" target="_top">tclwebtest</a>, OPTIONAL. </b>tclwebtest is a tool for testing web interfaces via tcl scripts.</p></li><li><p><b>Web Server. </b>The web server handles incoming HTTP requests, provides @@ -53,7 +53,7 @@ errors. OpenACS uses AOLserver; <a href="http://openacs.org/forums/message-view?message_id=21461" target="_top">some people have had success running Apache with mod_nsd</a>.</p><div class="itemizedlist"><ul type="circle"><li><a name="source-aolserver"></a><p><b><a href="http://aolserver.com/" target="_top">AOLserver</a> 4.x, REQUIRED. </b>Provides the base HTTP server</p></li></ul></div><p> Mat Kovach is graciously maintaining an AOLserver distribution that - includes all the patches and modules needed to run OpenACS 5.5.0. These + includes all the patches and modules needed to run OpenACS 5.6.0. These instructions will describe how to install using his source distribution. He also has binaries for SuSE 7.3 and OpenBSD 2.8 (and perhaps more to come), currently located at <a href="http://uptime.openacs.org/aolserver-openacs/" target="_top">uptime.openacs.org</a>. Index: openacs-4/packages/acs-core-docs/www/install-cvs.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-cvs.html,v diff -u -r1.36 -r1.37 --- openacs-4/packages/acs-core-docs/www/install-cvs.html 13 Sep 2009 23:54:40 -0000 1.36 +++ openacs-4/packages/acs-core-docs/www/install-cvs.html 17 Oct 2010 21:06:08 -0000 1.37 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Initialize CVS (OPTIONAL)</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="install-more-software.html" title="Appendix B. Install additional supporting software"><link rel="previous" href="openacs-unpack.html" title="Unpack the OpenACS tarball"><link rel="next" href="psgml-for-emacs.html" title="Add PSGML commands to emacs init file (OPTIONAL)"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="openacs-unpack.html">Prev</a> </td><th width="60%" align="center">Appendix B. Install additional supporting software</th><td width="20%" align="right"> <a accesskey="n" href="psgml-for-emacs.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="install-cvs"></a>Initialize CVS (OPTIONAL)</h2></div></div><div></div></div><a class="indexterm" name="id3044050"></a><p>CVS is a source control system. Create and initialize a +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Initialize CVS (OPTIONAL)</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="install-more-software.html" title="Appendix B. Install additional supporting software"><link rel="previous" href="openacs-unpack.html" title="Unpack the OpenACS tarball"><link rel="next" href="psgml-for-emacs.html" title="Add PSGML commands to emacs init file (OPTIONAL)"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="openacs-unpack.html">Prev</a> </td><th width="60%" align="center">Appendix B. Install additional supporting software</th><td width="20%" align="right"> <a accesskey="n" href="psgml-for-emacs.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="install-cvs"></a>Initialize CVS (OPTIONAL)</h2></div></div><div></div></div><a class="indexterm" name="id3016624"></a><p>CVS is a source control system. Create and initialize a directory for a local cvs repository.</p><pre class="screen">[root tmp]# <b class="userinput"><tt>mkdir /cvsroot</tt></b> [root tmp]#<b class="userinput"><tt> cvs -d /cvsroot init</tt></b> [root tmp]# Index: openacs-4/packages/acs-core-docs/www/install-daemontools.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-daemontools.html,v diff -u -r1.37 -r1.38 --- openacs-4/packages/acs-core-docs/www/install-daemontools.html 13 Sep 2009 23:54:40 -0000 1.37 +++ openacs-4/packages/acs-core-docs/www/install-daemontools.html 17 Oct 2010 21:06:08 -0000 1.38 @@ -4,7 +4,7 @@ installed in /package. These commands install daemontools and svgroup. svgroup is a script for granting permissions, to allow users other than root to use daemontools for specific - services.</p><div class="orderedlist"><ol type="1"><li><p>Install Daemontools</p><a class="indexterm" name="id2988905"></a><p><a href="individual-programs.html#daemontools-download">download daemontools</a> and install it.</p><div class="itemizedlist"><ul type="disc"><li><p>Red Hat 8</p><pre class="screen">[root root]# <b class="userinput"><tt>mkdir -p /package</tt></b> + services.</p><div class="orderedlist"><ol type="1"><li><p>Install Daemontools</p><a class="indexterm" name="id3016416"></a><p><a href="individual-programs.html#daemontools-download">download daemontools</a> and install it.</p><div class="itemizedlist"><ul type="disc"><li><p>Red Hat 8</p><pre class="screen">[root root]# <b class="userinput"><tt>mkdir -p /package</tt></b> [root root]# <b class="userinput"><tt>chmod 1755 /package/</tt></b> [root root]# <b class="userinput"><tt>cd /package/</tt></b> [root package]# <b class="userinput"><tt>tar xzf /tmp/daemontools-0.76.tar.gz</tt></b> @@ -80,7 +80,7 @@ root 13294 0.0 0.1 1352 272 ? S 09:51 0:00 svscan /service root 13295 0.0 0.0 1304 208 ? S 09:51 0:00 readproctitle service errors: ....................................... [root root]#</pre></li><li><p>Install a script to grant non-root users permission to - control daemontools services.</p><pre class="screen">[root root]# <b class="userinput"><tt>cp /tmp/openacs-5.5.0/packages/acs-core-docs/www/files/svgroup.txt /usr/local/bin/svgroup</tt></b> + control daemontools services.</p><pre class="screen">[root root]# <b class="userinput"><tt>cp /tmp/openacs-5.6.0/packages/acs-core-docs/www/files/svgroup.txt /usr/local/bin/svgroup</tt></b> [root root]# <b class="userinput"><tt>chmod 755 /usr/local/bin/svgroup</tt></b> -<span class="action"><span class="action">cp /tmp/openacs-5.5.0/packages/acs-core-docs/www/files/svgroup.txt /usr/local/bin/svgroup +<span class="action"><span class="action">cp /tmp/openacs-5.6.0/packages/acs-core-docs/www/files/svgroup.txt /usr/local/bin/svgroup chmod 755 /usr/local/bin/svgroup</span></span></pre></li></ol></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="psgml-for-emacs.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="install-qmail.html">Next</a></td></tr><tr><td width="40%" align="left">Add PSGML commands to emacs init file (OPTIONAL) </td><td width="20%" align="center"><a accesskey="u" href="install-more-software.html">Up</a></td><td width="40%" align="right"> Install qmail (OPTIONAL)</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/install-daemontools.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/install-full-text-search-openfts.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-full-text-search-openfts.html,v diff -u -r1.7 -r1.8 --- openacs-4/packages/acs-core-docs/www/install-full-text-search-openfts.html 13 Sep 2009 23:54:40 -0000 1.7 +++ openacs-4/packages/acs-core-docs/www/install-full-text-search-openfts.html 17 Oct 2010 21:06:08 -0000 1.8 @@ -6,7 +6,7 @@ Tsearch2. See <a href="install-full-text-search-tsearch2.html">Install Full Text Search using Tsearch2</a>. Tsearch2 is much easier to install, requiring only compilation of one module from PostgreSQL contrib, with an - automated install process using the tsearch2-driver package.</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="install-openfts"></a>Install OpenFTS module</h3></div></div><div></div></div><a class="indexterm" name="id3035503"></a><p>If you want full text search, and you are running PostgreSQL, install this module to support FTS. Do this step after you have installed both PostgreSQL and + automated install process using the tsearch2-driver package.</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="install-openfts"></a>Install OpenFTS module</h3></div></div><div></div></div><a class="indexterm" name="id3032607"></a><p>If you want full text search, and you are running PostgreSQL, install this module to support FTS. Do this step after you have installed both PostgreSQL and AOLserver. You will need the <a href="individual-programs.html#openfts-download">openfts tarball</a> in <tt class="computeroutput">/tmp</tt>.</p><div class="orderedlist"><ol type="1"><li><p>Install Tsearch. This is a PostgreSQL module that OpenFTS requires.</p><pre class="screen">[root root]# <b class="userinput"><tt>su - postgres</tt></b> @@ -81,7 +81,7 @@ make su postgres make install -exit</span></span></pre></li></ol></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="install-openfts-postgres"></a>Install OpenFTS prerequisites in PostgreSQL instance</h3></div></div><div></div></div><a class="indexterm" name="id3042426"></a><p>If you are installing Full Text Search, add required +exit</span></span></pre></li></ol></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="install-openfts-postgres"></a>Install OpenFTS prerequisites in PostgreSQL instance</h3></div></div><div></div></div><a class="indexterm" name="id3029318"></a><p>If you are installing Full Text Search, add required packages to the new database. (In order for full text search to work, you must also <a href="install-full-text-search-openfts.html#install-openfts" title="Install OpenFTS module">install</a> the PostgreSQL OpenFTS module and prerequisites.)</p><pre class="screen">[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <b class="userinput"><tt>/usr/local/pgsql/bin/psql <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span> -f /usr/local/src/postgresql-7.3.4/contrib/tsearch/tsearch.sql</tt></b> Index: openacs-4/packages/acs-core-docs/www/install-full-text-search-tsearch2.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-full-text-search-tsearch2.html,v diff -u -r1.7 -r1.8 --- openacs-4/packages/acs-core-docs/www/install-full-text-search-tsearch2.html 13 Sep 2009 23:54:40 -0000 1.7 +++ openacs-4/packages/acs-core-docs/www/install-full-text-search-tsearch2.html 17 Oct 2010 21:06:08 -0000 1.8 @@ -6,7 +6,7 @@ V2 Introduction by Andrew J. Kopciuch</a></p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. - </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="install-tsearch2"></a>Install Tsearch2 module</h3></div></div><div></div></div><a class="indexterm" name="id3034627"></a><p>If you want full text search, and you are running PostgreSQL, install this module to support FTS. Do this step after you have installed both PostgreSQL and + </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="install-tsearch2"></a>Install Tsearch2 module</h3></div></div><div></div></div><a class="indexterm" name="id3021550"></a><p>If you want full text search, and you are running PostgreSQL, install this module to support FTS. Do this step after you have installed both PostgreSQL and AOLserver. You will need the tseach2 module form PostgreSQL contrib. This is included with the PostgreSQL full source distribution. It is also available with the PostgreSQL contrib Index: openacs-4/packages/acs-core-docs/www/install-next-add-server.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-next-add-server.html,v diff -u -r1.13 -r1.14 --- openacs-4/packages/acs-core-docs/www/install-next-add-server.html 13 Sep 2009 23:54:40 -0000 1.13 +++ openacs-4/packages/acs-core-docs/www/install-next-add-server.html 17 Oct 2010 21:06:08 -0000 1.14 @@ -1,6 +1,6 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Running multiple services on one machine</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="maintenance-web.html" title="Chapter 6. Production Environments"><link rel="previous" href="install-openacs-inittab.html" title="AOLserver keepalive with inittab"><link rel="next" href="high-avail.html" title="High Availability/High Performance Configurations"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="install-openacs-inittab.html">Prev</a> </td><th width="60%" align="center">Chapter 6. Production Environments</th><td width="20%" align="right"> <a accesskey="n" href="high-avail.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="install-next-add-server"></a>Running multiple services on one machine</h2></div></div><div></div></div><p><b>Services on different ports. </b>To run a different service on another port but the same - ip, simply repeat <a href="openacs.html">Install OpenACS 5.5.0</a> replacing + ip, simply repeat <a href="openacs.html">Install OpenACS 5.6.0</a> replacing <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>, and change the </p><pre class="programlisting">set httpport 8000 set httpsport 8443 </pre><p> Index: openacs-4/packages/acs-core-docs/www/install-next-backups.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-next-backups.html,v diff -u -r1.9 -r1.10 --- openacs-4/packages/acs-core-docs/www/install-next-backups.html 12 Jul 2009 01:08:28 -0000 1.9 +++ openacs-4/packages/acs-core-docs/www/install-next-backups.html 17 Oct 2010 21:06:08 -0000 1.10 @@ -1,36 +1,36 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Backup Strategy</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.0"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="backup-recovery.html" title="Chapter 8. Backup and Recovery"><link rel="previous" href="backup-recovery.html" title="Chapter 8. Backup and Recovery"><link rel="next" href="snapshot-backup.html" title="Manual backup and recovery"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="backup-recovery.html">Prev</a> </td><th width="60%" align="center">Chapter 8. Backup and Recovery</th><td width="20%" align="right"> <a accesskey="n" href="snapshot-backup.html">Next</a></td></tr></table><hr></div><div class="sect1" title="Backup Strategy"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="install-next-backups"></a>Backup Strategy</h2></div></div></div><p> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Backup Strategy</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="backup-recovery.html" title="Chapter 8. Backup and Recovery"><link rel="previous" href="backup-recovery.html" title="Chapter 8. Backup and Recovery"><link rel="next" href="snapshot-backup.html" title="Manual backup and recovery"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="backup-recovery.html">Prev</a> </td><th width="60%" align="center">Chapter 8. Backup and Recovery</th><td width="20%" align="right"> <a accesskey="n" href="snapshot-backup.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="install-next-backups"></a>Backup Strategy</h2></div></div><div></div></div><p> The purpose of backup is to enable recovery. Backup and recovery are always risky; here are some steps that minimize the chance recovery is necessary: - </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> + </p><div class="itemizedlist"><ul type="disc"><li><p> Store everything on a fault-tolerant disk array (RAID 1 or 5 or better). - </p></li><li class="listitem"><p> + </p></li><li><p> Use battery backup. - </p></li><li class="listitem"><p> + </p></li><li><p> Use more reliable hardware, such as SCSI instead of IDE. - </p></li></ul></div><p>These steps improve the chances of successful recovery:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> + </p></li></ul></div><p>These steps improve the chances of successful recovery:</p><div class="itemizedlist"><ul type="disc"><li><p> Store backups on a third disk on another controller - </p></li><li class="listitem"><p> + </p></li><li><p> Store backups on a different computer on a different network in a different physical location. (Compared to off-line backup such as tapes and CDRs, on-line backup is faster and more likely to succeed, but requires maintenance of another machine.) - </p></li><li class="listitem"><p> + </p></li><li><p> Plan and configure for recovery from the beginning. - </p></li><li class="listitem"><p> + </p></li><li><p> Test your recovery strategy from time to time. - </p></li><li class="listitem"><p> + </p></li><li><p> Make it easy to maintain and test your recovery strategy, so that you are more likely to do it. </p></li></ul></div><p> OpenACS installations comprise files and database contents. If you follow the reference install and put all files, including configuration files, in - <code class="filename">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/</code>, + <tt class="filename">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/</tt>, and back up the database nightly to a file in - <code class="filename">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/database-backup</code>, + <tt class="filename">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/database-backup</tt>, then you can apply standard file-based backup strategies to - <code class="filename">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></code> + <tt class="filename">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></tt> </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="backup-recovery.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="snapshot-backup.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter 8. Backup and Recovery </td><td width="20%" align="center"><a accesskey="u" href="backup-recovery.html">Up</a></td><td width="40%" align="right"> Manual backup and recovery</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/install-next-backups.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/install-next-nightly-vacuum.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-next-nightly-vacuum.html,v diff -u -r1.19 -r1.20 --- openacs-4/packages/acs-core-docs/www/install-next-nightly-vacuum.html 13 Sep 2009 23:54:40 -0000 1.19 +++ openacs-4/packages/acs-core-docs/www/install-next-nightly-vacuum.html 17 Oct 2010 21:06:08 -0000 1.20 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Vacuum Postgres nightly</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="database-management.html" title="Chapter 7. Database Management"><link rel="previous" href="install-openacs-delete-tablespace.html" title="Deleting a tablespace"><link rel="next" href="install-redhat.html" title="Appendix A. Install Red Hat 8/9"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="install-openacs-delete-tablespace.html">Prev</a> </td><th width="60%" align="center">Chapter 7. Database Management</th><td width="20%" align="right"> <a accesskey="n" href="install-redhat.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="install-next-nightly-vacuum"></a>Vacuum Postgres nightly</h2></div></div><div></div></div><p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Vacuum Postgres nightly</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="database-management.html" title="Chapter 7. Database Management"><link rel="previous" href="install-openacs-delete-tablespace.html" title="Deleting a tablespace"><link rel="next" href="backup-recovery.html" title="Chapter 8. Backup and Recovery"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="install-openacs-delete-tablespace.html">Prev</a> </td><th width="60%" align="center">Chapter 7. Database Management</th><td width="20%" align="right"> <a accesskey="n" href="backup-recovery.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="install-next-nightly-vacuum"></a>Vacuum Postgres nightly</h2></div></div><div></div></div><p> The "vacuum" command must be run periodically to reclaim space in versions of PostgreSQL before 7.4. The "vacuum analyze" form additionally collects statistics on the @@ -16,4 +16,4 @@ step. </p><p>Edit your crontab:</p><pre class="programlisting">[joeuser ~]$ <b class="userinput"><tt>crontab -e</tt></b></pre><p>We'll set vacuum up to run nightly at 1 AM. Add the following line:</p><pre class="programlisting"> -0 1 * * * /usr/local/pgsql/bin/vacuumdb <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></pre><div class="cvstag">($Id$)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="install-openacs-delete-tablespace.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="install-redhat.html">Next</a></td></tr><tr><td width="40%" align="left">Deleting a tablespace </td><td width="20%" align="center"><a accesskey="u" href="database-management.html">Up</a></td><td width="40%" align="right"> Appendix A. Install Red Hat 8/9</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/install-next-nightly-vacuum.html#comments">View comments on this page at openacs.org</a></center></body></html> +0 1 * * * /usr/local/pgsql/bin/vacuumdb <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></pre><div class="cvstag">($Id$)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="install-openacs-delete-tablespace.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="backup-recovery.html">Next</a></td></tr><tr><td width="40%" align="left">Deleting a tablespace </td><td width="20%" align="center"><a accesskey="u" href="database-management.html">Up</a></td><td width="40%" align="right"> Chapter 8. Backup and Recovery</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/install-next-nightly-vacuum.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/install-openacs-keepalive.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-openacs-keepalive.html,v diff -u -r1.20 -r1.21 --- openacs-4/packages/acs-core-docs/www/install-openacs-keepalive.html 13 Sep 2009 23:54:40 -0000 1.20 +++ openacs-4/packages/acs-core-docs/www/install-openacs-keepalive.html 17 Oct 2010 21:06:08 -0000 1.21 @@ -64,6 +64,6 @@ Most of this information comes from Tom Jackson's <a href="http://zmbh.com/daemontools-aolserver/daemontools-aolserver.html" target="_top">AOLserver+Daemontools Mini-HOWTO</a>. -</p></li></ol></div><div class="table"><a name="id2930070"></a><p class="title"><b>Table 6.1. How it Works</b></p><table summary="How it Works" cellspacing="0" border="1"><colgroup><col><col><col><col><col><col></colgroup><thead><tr><th align="center">Program</th><th align="center">Invoked by this program ...</th><th align="center">... using this file</th><th align="center">Where to find errors</th><th align="center">Log goes to</th><th align="center">Use these commands to control it</th></tr></thead><tbody><tr><td align="center">svscanboot +</p></li></ol></div><div class="table"><a name="id2981225"></a><p class="title"><b>Table 6.1. How it Works</b></p><table summary="How it Works" cellspacing="0" border="1"><colgroup><col><col><col><col><col><col></colgroup><thead><tr><th align="center">Program</th><th align="center">Invoked by this program ...</th><th align="center">... using this file</th><th align="center">Where to find errors</th><th align="center">Log goes to</th><th align="center">Use these commands to control it</th></tr></thead><tbody><tr><td align="center">svscanboot </td><td align="center">init</td><td align="center">/etc/inittab</td><td align="center">ps -auxw | grep readproctitle</td><td align="center">n/a</td><td align="center"> </td></tr><tr><td align="center">aolserver</td><td align="center"><tt class="computeroutput"></tt>supervise (a child of svscanboot)</td><td align="center">/service/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/run</td><td align="center">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/log/error.log</td><td align="center">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/log/$OPENACS_SERVICE_NAME.log</td><td align="center">svc -k /service/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></td></tr><tr><td align="center">postgresql</td><td align="center">Redhat init scripts during boot</td><td align="center">/etc/init.d/postgresql</td><td align="center">/usr/local/pgsql/data/server.log</td><td align="center"> </td><td align="center">service postgresql start (Red Hat), /etc/init.d/postgresql start (Debian)</td></tr></tbody></table></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="maintenance-web.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="install-openacs-inittab.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter 6. Production Environments </td><td width="20%" align="center"><a accesskey="u" href="maintenance-web.html">Up</a></td><td width="40%" align="right"> AOLserver keepalive with inittab</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/install-openacs-keepalive.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/install-qmail.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-qmail.html,v diff -u -r1.37 -r1.38 --- openacs-4/packages/acs-core-docs/www/install-qmail.html 13 Sep 2009 23:54:40 -0000 1.37 +++ openacs-4/packages/acs-core-docs/www/install-qmail.html 17 Oct 2010 21:06:08 -0000 1.38 @@ -30,7 +30,7 @@ tcpserver: usage: tcpserver [ -1UXpPhHrRoOdDqQv ] [ -c limit ] [ -x rules.cdb ] [ -B banner ] [ -g gid ] [ -u uid ] [ -b backlog ] [ -l localname ] [ -t timeout ] host port program [root ucspi-tcp-0.88]# -</pre><p><a class="indexterm" name="id3047368"></a> +</pre><p><a class="indexterm" name="id3063688"></a> (I'm not sure if this next step is 100% necessary, but when I skip it I get problems. If you get the error <tt class="computeroutput">553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)</tt> then you need to do this.) AOLserver sends outgoing mail via the ns_sendmail command, which pipes a command to the sendmail executable. Or, in our @@ -41,10 +41,10 @@ Unless this mail is addressed to the same machine, qmail thinks that it's an attempt to relay mail, and rejects it. So these two commands set up an exception so that any mail sent from 127.0.0.1 is allowed to -send outgoing mail.</p><pre class="screen">[root ucspi-tcp-0.88]# <b class="userinput"><tt>cp /tmp/openacs-5.5.0/packages/acs-core-docs/www/files/tcp.smtp.txt /etc/tcp.smtp</tt></b> +send outgoing mail.</p><pre class="screen">[root ucspi-tcp-0.88]# <b class="userinput"><tt>cp /tmp/openacs-5.6.0/packages/acs-core-docs/www/files/tcp.smtp.txt /etc/tcp.smtp</tt></b> [root ucspi-tcp-0.88]# <b class="userinput"><tt>tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp</tt></b> -<span class="action"><span class="action">cp /tmp/openacs-5.5.0/packages/acs-core-docs/www/files/tcp.smtp.txt /etc/tcp.smtp -tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp </span></span></pre></li><li><p><b>Install Qmail. </b><a class="indexterm" name="id3044087"></a></p><p><a href="individual-programs.html#ucspi-download">Download qmail</a>, +<span class="action"><span class="action">cp /tmp/openacs-5.6.0/packages/acs-core-docs/www/files/tcp.smtp.txt /etc/tcp.smtp +tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp </span></span></pre></li><li><p><b>Install Qmail. </b><a class="indexterm" name="id3029324"></a></p><p><a href="individual-programs.html#ucspi-download">Download qmail</a>, set up the standard supporting users and build the binaries:</p><pre class="screen">[root root]# <b class="userinput"><tt>cd /usr/local/src</tt></b> [root src]# <b class="userinput"><tt>wget http://www.qmail.org/netqmail-1.04.tar.gz</tt></b> [root src]# <b class="userinput"><tt>tar xzf netqmail-1.04.tar.gz</tt></b> @@ -103,7 +103,7 @@ cd netqmail-1.04 ./collate.sh cd netqmail-1.04 -make setup check</span></span></pre><p>Replace sendmail with qmail's wrapper.</p><a class="indexterm" name="id3058214"></a><pre class="screen">[root qmail-1.03]# <b class="userinput"><tt>rm -f /usr/bin/sendmail /usr/sbin/sendmail</tt></b> +make setup check</span></span></pre><p>Replace sendmail with qmail's wrapper.</p><a class="indexterm" name="id3035998"></a><pre class="screen">[root qmail-1.03]# <b class="userinput"><tt>rm -f /usr/bin/sendmail /usr/sbin/sendmail</tt></b> [root qmail-1.03]# <b class="userinput"><tt>ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail</tt></b> [root qmail-1.03]# <span class="action"><span class="action">rm -f /usr/bin/sendmail /usr/sbin/sendmail @@ -125,13 +125,13 @@ <span class="action"><span class="action">cd ~alias; touch .qmail-postmaster .qmail-mailer-daemon .qmail-root chmod 644 ~alias/.qmail* /var/qmail/bin/maildirmake ~alias/Maildir/ -chown -R alias.nofiles /var/qmail/alias/Maildir</span></span></pre><a class="indexterm" name="id3030177"></a><p>Configure qmail to use the Maildir delivery format +chown -R alias.nofiles /var/qmail/alias/Maildir</span></span></pre><a class="indexterm" name="id3032664"></a><p>Configure qmail to use the Maildir delivery format (instead of mbox), and install a version of the qmail startup script modified to use Maildir.</p><pre class="screen">[root alias]# <b class="userinput"><tt>echo "./Maildir" > /var/qmail/bin/.qmail</tt></b> -[root alias]# <b class="userinput"><tt>cp /tmp/openacs-5.5.0/packages/acs-core-docs/www/files/qmail.rc.txt /var/qmail/rc</tt></b> +[root alias]# <b class="userinput"><tt>cp /tmp/openacs-5.6.0/packages/acs-core-docs/www/files/qmail.rc.txt /var/qmail/rc</tt></b> [root alias]# <b class="userinput"><tt>chmod 755 /var/qmail/rc</tt></b> [root alias]# <span class="action"><span class="action">echo "./Maildir" > /var/qmail/bin/.qmail -cp /tmp/openacs-5.5.0/packages/acs-core-docs/www/files/qmail.rc.txt /var/qmail/rc +cp /tmp/openacs-5.6.0/packages/acs-core-docs/www/files/qmail.rc.txt /var/qmail/rc chmod 755 /var/qmail/rc </span></span></pre><p>Set up the skeleton directory so that new users will be configured for qmail.</p><pre class="screen">[root root]# <b class="userinput"><tt>/var/qmail/bin/maildirmake /etc/skel/Maildir</tt></b> @@ -143,13 +143,13 @@ [root root]# <b class="userinput"><tt>mkdir -p /var/qmail/supervise/qmail-smtpd/log</tt></b> [root root]# <b class="userinput"><tt>mkdir /var/log/qmail</tt></b> [root root]# <b class="userinput"><tt>chown qmaill /var/log/qmail</tt></b> -[root root]# <b class="userinput"><tt>cp /tmp/openacs-5.5.0/packages/acs-core-docs/www/files/qmailctl.txt /var/qmail/bin/qmailctl</tt></b> +[root root]# <b class="userinput"><tt>cp /tmp/openacs-5.6.0/packages/acs-core-docs/www/files/qmailctl.txt /var/qmail/bin/qmailctl</tt></b> [root root]# <b class="userinput"><tt>chmod 755 /var/qmail/bin/qmailctl</tt></b> [root root]# <b class="userinput"><tt>ln -s /var/qmail/bin/qmailctl /usr/bin</tt></b> -[root root]# <b class="userinput"><tt>cp /tmp/openacs-5.5.0/packages/acs-core-docs/www/files/qmail-send-run.txt /var/qmail/supervise/qmail-send/run </tt></b> -[root root]# <b class="userinput"><tt>cp /tmp/openacs-5.5.0/packages/acs-core-docs/www/files/qmail-send-log-run.txt /var/qmail/supervise/qmail-send/log/run</tt></b> -[root root]# <b class="userinput"><tt>cp /tmp/openacs-5.5.0/packages/acs-core-docs/www/files/qmail-smtpd-run.txt /var/qmail/supervise/qmail-smtpd/run</tt></b> -[root root]# <b class="userinput"><tt>cp /tmp/openacs-5.5.0/packages/acs-core-docs/www/files/qmail-smtpd-log-run.txt /var/qmail/supervise/qmail-smtpd/log/run</tt></b> +[root root]# <b class="userinput"><tt>cp /tmp/openacs-5.6.0/packages/acs-core-docs/www/files/qmail-send-run.txt /var/qmail/supervise/qmail-send/run </tt></b> +[root root]# <b class="userinput"><tt>cp /tmp/openacs-5.6.0/packages/acs-core-docs/www/files/qmail-send-log-run.txt /var/qmail/supervise/qmail-send/log/run</tt></b> +[root root]# <b class="userinput"><tt>cp /tmp/openacs-5.6.0/packages/acs-core-docs/www/files/qmail-smtpd-run.txt /var/qmail/supervise/qmail-smtpd/run</tt></b> +[root root]# <b class="userinput"><tt>cp /tmp/openacs-5.6.0/packages/acs-core-docs/www/files/qmail-smtpd-log-run.txt /var/qmail/supervise/qmail-smtpd/log/run</tt></b> [root root]# <b class="userinput"><tt>chmod 755 /var/qmail/supervise/qmail-send/run</tt></b> [root root]# <b class="userinput"><tt>chmod 755 /var/qmail/supervise/qmail-send/log/run</tt></b> [root root]# <b class="userinput"><tt>chmod 755 /var/qmail/supervise/qmail-smtpd/run</tt></b> @@ -160,13 +160,13 @@ mkdir -p /var/qmail/supervise/qmail-smtpd/log mkdir /var/log/qmail chown qmaill /var/log/qmail -cp /tmp/openacs-5.5.0/packages/acs-core-docs/www/files/qmailctl.txt /var/qmail/bin/qmailctl +cp /tmp/openacs-5.6.0/packages/acs-core-docs/www/files/qmailctl.txt /var/qmail/bin/qmailctl chmod 755 /var/qmail/bin/qmailctl ln -s /var/qmail/bin/qmailctl /usr/bin -cp /tmp/openacs-5.5.0/packages/acs-core-docs/www/files/qmail-send-run.txt /var/qmail/supervise/qmail-send/run -cp /tmp/openacs-5.5.0/packages/acs-core-docs/www/files/qmail-send-log-run.txt /var/qmail/supervise/qmail-send/log/run -cp /tmp/openacs-5.5.0/packages/acs-core-docs/www/files/qmail-smtpd-run.txt /var/qmail/supervise/qmail-smtpd/run -cp /tmp/openacs-5.5.0/packages/acs-core-docs/www/files/qmail-smtpd-log-run.txt /var/qmail/supervise/qmail-smtpd/log/run +cp /tmp/openacs-5.6.0/packages/acs-core-docs/www/files/qmail-send-run.txt /var/qmail/supervise/qmail-send/run +cp /tmp/openacs-5.6.0/packages/acs-core-docs/www/files/qmail-send-log-run.txt /var/qmail/supervise/qmail-send/log/run +cp /tmp/openacs-5.6.0/packages/acs-core-docs/www/files/qmail-smtpd-run.txt /var/qmail/supervise/qmail-smtpd/run +cp /tmp/openacs-5.6.0/packages/acs-core-docs/www/files/qmail-smtpd-log-run.txt /var/qmail/supervise/qmail-smtpd/log/run chmod 755 /var/qmail/supervise/qmail-send/run chmod 755 /var/qmail/supervise/qmail-send/log/run chmod 755 /var/qmail/supervise/qmail-smtpd/run Index: openacs-4/packages/acs-core-docs/www/install-redhat.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-redhat.html,v diff -u -r1.37 -r1.38 --- openacs-4/packages/acs-core-docs/www/install-redhat.html 13 Sep 2009 23:54:40 -0000 1.37 +++ openacs-4/packages/acs-core-docs/www/install-redhat.html 17 Oct 2010 21:06:08 -0000 1.38 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Appendix A. Install Red Hat 8/9</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="acs-admin.html" title="Part II. Administrator's Guide"><link rel="previous" href="install-next-nightly-vacuum.html" title="Vacuum Postgres nightly"><link rel="next" href="install-more-software.html" title="Appendix B. Install additional supporting software"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="install-next-nightly-vacuum.html">Prev</a> </td><th width="60%" align="center">Part II. Administrator's Guide</th><td width="20%" align="right"> <a accesskey="n" href="install-more-software.html">Next</a></td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="install-redhat"></a>Appendix A. Install Red Hat 8/9</h2></div></div><div></div></div><div class="authorblurb"><p>by <a href="mailto:joel@aufrecht.org" target="_top">Joel Aufrecht</a></p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Appendix A. Install Red Hat 8/9</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="acs-admin.html" title="Part II. Administrator's Guide"><link rel="previous" href="backups-with-cvs.html" title="Using CVS for backup-recovery"><link rel="next" href="install-more-software.html" title="Appendix B. Install additional supporting software"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="backups-with-cvs.html">Prev</a> </td><th width="60%" align="center">Part II. Administrator's Guide</th><td width="20%" align="right"> <a accesskey="n" href="install-more-software.html">Next</a></td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="install-redhat"></a>Appendix A. Install Red Hat 8/9</h2></div></div><div></div></div><div class="authorblurb"><p>by <a href="mailto:joel@aufrecht.org" target="_top">Joel Aufrecht</a></p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><p>This section takes a blank PC and sets up some supporting @@ -27,7 +27,7 @@ </p><div class="orderedlist"><ol type="1"><li><p><a name="install-first-step"></a>Unplug the network cable from your computer. We don't want to connect to the network until we're sure the computer is secure. - <a class="indexterm" name="id2960387"></a> + <a class="indexterm" name="id2976399"></a> (Wherever you see the word secure, you should always read it as, "secure enough for our purposes, given the amount of work we're @@ -55,7 +55,7 @@ <tt class="computeroutput"><span class="guilabel"><span class="guilabel">Re<u><span class="accel">v</span></u>iew (and modify if needed) the partitions created</span></span></tt> and click <tt class="computeroutput"><span class="guibutton"><span class="guibutton"><u><span class="accel">N</span></u>ext</span></span></tt></p></li><li><p>On the pop-up window asking "Are you sure you want to do this?" click <tt class="computeroutput"><span class="guibutton"><span class="guibutton"><u><span class="accel">Y</span></u>es</span></span></tt> - IF YOU ARE WIPING YOUR HARD DRIVE.</p></li><li><p>Click <tt class="computeroutput"><span class="guibutton"><span class="guibutton"><u><span class="accel">N</span></u>ext</span></span></tt> on the boot loader screen</p></li></ol></div></li><li><p>Configure Networking. <a class="indexterm" name="id2989507"></a> + IF YOU ARE WIPING YOUR HARD DRIVE.</p></li><li><p>Click <tt class="computeroutput"><span class="guibutton"><span class="guibutton"><u><span class="accel">N</span></u>ext</span></span></tt> on the boot loader screen</p></li></ol></div></li><li><p>Configure Networking. <a class="indexterm" name="id2989841"></a> Again, if you know what you're doing, do this step yourself, being sure to note the firewall holes. Otherwise, follow the instructions in this step to set up a computer directly connected to the internet with a dedicated IP address.</p><div class="orderedlist"><ol type="a"><li><p>DHCP is a system by which a computer that @@ -76,7 +76,7 @@ <tt class="computeroutput"><span class="guilabel"><span class="guilabel">Mail (SMTP)</span></span></tt>. In the <tt class="computeroutput"><span class="guilabel"><span class="guilabel">Other <u><span class="accel">p</span></u>orts</span></span></tt> box, enter <b class="userinput"><tt>443, 8000, 8443</tt></b>. Click <tt class="computeroutput"><span class="guibutton"><span class="guibutton"><u><span class="accel">N</span></u>ext</span></span></tt>. -Port 443 is for https (http over ssl), and 8000 and 8443 are http and https access to the development server we'll be setting up.</p></li></ol></div></li><li><p><a class="indexterm" name="id2986642"></a>Select any additional languages you want the +Port 443 is for https (http over ssl), and 8000 and 8443 are http and https access to the development server we'll be setting up.</p></li></ol></div></li><li><p><a class="indexterm" name="id2985703"></a>Select any additional languages you want the computer to support and then click <tt class="computeroutput"><span class="guibutton"><span class="guibutton"><u><span class="accel">N</span></u>ext</span></span></tt></p></li><li><p>Choose your time zone and click <tt class="computeroutput"><span class="guibutton"><span class="guibutton"><u><span class="accel">N</span></u>ext</span></span></tt>.</p></li><li><p>Type in a root password, twice.</p></li><li><p>On the Package selection page, we're going to @@ -88,13 +88,13 @@ risk that's still screened by the firewall, or a resource hog. Just don't install a database or web server, because that would conflict with the database and web server we'll install later. -</p><table class="simplelist" border="0" summary="Simple list"><tr><td>check <tt class="computeroutput"><span class="guilabel"><span class="guilabel">Editors</span></span></tt> (this installs emacs<a class="indexterm" name="id2986733"></a>),</td></tr><tr><td>click <tt class="computeroutput"><span class="guilabel"><span class="guilabel">Details</span></span></tt> next to <tt class="computeroutput"><span class="guilabel"><span class="guilabel">Text-based Internet</span></span></tt>, check <tt class="computeroutput"><span class="guilabel"><span class="guilabel">lynx</span></span></tt>, and click <tt class="computeroutput"><span class="guibutton"><span class="guibutton"><u><span class="accel">O</span></u>K</span></span></tt>;</td></tr><tr><td>check <tt class="computeroutput"><span class="guilabel"><span class="guilabel">Authoring and Publishing</span></span></tt> (<a class="indexterm" name="id2986810"></a>this installs docbook),</td></tr><tr><td>uncheck <tt class="computeroutput"><span class="guilabel"><span class="guilabel">Server Configuration Tools</span></span></tt>,</td></tr><tr><td>uncheck <tt class="computeroutput"><span class="guilabel"><span class="guilabel">Web Server</span></span></tt>,</td></tr><tr><td>uncheck <tt class="computeroutput"><span class="guilabel"><span class="guilabel">Windows File Server</span></span></tt>,</td></tr><tr><td>check <tt class="computeroutput"><span class="guilabel"><span class="guilabel">SQL Database Server</span></span></tt> (this installs PostgreSQL),</td></tr><tr><td>check <tt class="computeroutput"><span class="guilabel"><span class="guilabel">Development Tools</span></span></tt> (this installs gmake and other build tools),</td></tr><tr><td>uncheck <tt class="computeroutput"><span class="guilabel"><span class="guilabel">Administration Tools</span></span></tt>, and</td></tr><tr><td>uncheck <tt class="computeroutput"><span class="guilabel"><span class="guilabel">Printing Support</span></span></tt>.</td></tr></table><p>At the bottom, check <tt class="computeroutput"><span class="guilabel"><span class="guilabel"><u><span class="accel">S</span></u>elect Individual Packages</span></span></tt> and click <tt class="computeroutput"><span class="guibutton"><span class="guibutton"><u><span class="accel">N</span></u>ext</span></span></tt></p></li><li><p>We need to fine-tune the exact list of packages. +</p><table class="simplelist" border="0" summary="Simple list"><tr><td>check <tt class="computeroutput"><span class="guilabel"><span class="guilabel">Editors</span></span></tt> (this installs emacs<a class="indexterm" name="id2985794"></a>),</td></tr><tr><td>click <tt class="computeroutput"><span class="guilabel"><span class="guilabel">Details</span></span></tt> next to <tt class="computeroutput"><span class="guilabel"><span class="guilabel">Text-based Internet</span></span></tt>, check <tt class="computeroutput"><span class="guilabel"><span class="guilabel">lynx</span></span></tt>, and click <tt class="computeroutput"><span class="guibutton"><span class="guibutton"><u><span class="accel">O</span></u>K</span></span></tt>;</td></tr><tr><td>check <tt class="computeroutput"><span class="guilabel"><span class="guilabel">Authoring and Publishing</span></span></tt> (<a class="indexterm" name="id2985870"></a>this installs docbook),</td></tr><tr><td>uncheck <tt class="computeroutput"><span class="guilabel"><span class="guilabel">Server Configuration Tools</span></span></tt>,</td></tr><tr><td>uncheck <tt class="computeroutput"><span class="guilabel"><span class="guilabel">Web Server</span></span></tt>,</td></tr><tr><td>uncheck <tt class="computeroutput"><span class="guilabel"><span class="guilabel">Windows File Server</span></span></tt>,</td></tr><tr><td>check <tt class="computeroutput"><span class="guilabel"><span class="guilabel">SQL Database Server</span></span></tt> (this installs PostgreSQL),</td></tr><tr><td>check <tt class="computeroutput"><span class="guilabel"><span class="guilabel">Development Tools</span></span></tt> (this installs gmake and other build tools),</td></tr><tr><td>uncheck <tt class="computeroutput"><span class="guilabel"><span class="guilabel">Administration Tools</span></span></tt>, and</td></tr><tr><td>uncheck <tt class="computeroutput"><span class="guilabel"><span class="guilabel">Printing Support</span></span></tt>.</td></tr></table><p>At the bottom, check <tt class="computeroutput"><span class="guilabel"><span class="guilabel"><u><span class="accel">S</span></u>elect Individual Packages</span></span></tt> and click <tt class="computeroutput"><span class="guibutton"><span class="guibutton"><u><span class="accel">N</span></u>ext</span></span></tt></p></li><li><p>We need to fine-tune the exact list of packages. The same rules apply as in the last step - you can add more stuff, but you shouldn't remove anything the guide adds. We're going to go through all the packages in one big list, so select <tt class="computeroutput"><span class="guilabel"><span class="guilabel"><u><span class="accel">F</span></u>lat View</span></span></tt> and wait. In a minute, a -list of packages will appear.</p><table class="simplelist" border="0" summary="Simple list"><tr><td>uncheck <tt class="computeroutput"><span class="guilabel"><span class="guilabel">apmd</span></span></tt> (monitors power, not very useful for servers), </td></tr><tr><td>check <tt class="computeroutput"><span class="guilabel"><span class="guilabel">ImageMagick</span></span></tt> (required for the <a class="indexterm" name="id2983482"></a>photo-album packages, </td></tr><tr><td>uncheck<tt class="computeroutput"><span class="guilabel"><span class="guilabel">isdn4k-utils</span></span></tt> (unless you are using isdn, this installs a useless daemon), </td></tr><tr><td>check <tt class="computeroutput"><span class="guilabel"><span class="guilabel">mutt</span></span></tt> (a mail program that reads Maildir),</td></tr><tr><td>uncheck <tt class="computeroutput"><span class="guilabel"><span class="guilabel">nfs-utils</span></span></tt> (nfs is a major security risk), </td></tr><tr><td>uncheck <tt class="computeroutput"><span class="guilabel"><span class="guilabel">pam-devel</span></span></tt> (I don't remember why, but we don't want this), </td></tr><tr><td>uncheck <tt class="computeroutput"><span class="guilabel"><span class="guilabel">portmap</span></span></tt>, </td></tr><tr><td>uncheck <tt class="computeroutput"><span class="guilabel"><span class="guilabel">postfix</span></span></tt> (this is an MTA, but we're going to install qmail later), </td></tr><tr><td>check <tt class="computeroutput"><span class="guilabel"><span class="guilabel">postgresql-devel</span></span></tt>,</td></tr><tr><td>uncheck <tt class="computeroutput"><span class="guilabel"><span class="guilabel">rsh</span></span></tt> (rsh is a security hole), </td></tr><tr><td>uncheck <tt class="computeroutput"><span class="guilabel"><span class="guilabel">sendmail</span></span></tt> (sendmail is an insecure MTA; we're going to install qmail instead later),</td></tr><tr><td>check <tt class="computeroutput"><span class="guilabel"><span class="guilabel">tcl</span></span></tt> (we need tcl), and </td></tr><tr><td>uncheck <tt class="computeroutput"><span class="guilabel"><span class="guilabel">xinetd</span></span></tt> (xinetd handles incoming tcp connections. We'll install a different, more secure program, ucspi-tcp).</td></tr><tr><td>Click <tt class="computeroutput"><span class="guibutton"><span class="guibutton"><u><span class="accel">N</span></u>ext</span></span></tt></td></tr></table></li><li><p>Red Hat isn't completely happy with the combination +list of packages will appear.</p><table class="simplelist" border="0" summary="Simple list"><tr><td>uncheck <tt class="computeroutput"><span class="guilabel"><span class="guilabel">apmd</span></span></tt> (monitors power, not very useful for servers), </td></tr><tr><td>check <tt class="computeroutput"><span class="guilabel"><span class="guilabel">ImageMagick</span></span></tt> (required for the <a class="indexterm" name="id2989166"></a>photo-album packages, </td></tr><tr><td>uncheck<tt class="computeroutput"><span class="guilabel"><span class="guilabel">isdn4k-utils</span></span></tt> (unless you are using isdn, this installs a useless daemon), </td></tr><tr><td>check <tt class="computeroutput"><span class="guilabel"><span class="guilabel">mutt</span></span></tt> (a mail program that reads Maildir),</td></tr><tr><td>uncheck <tt class="computeroutput"><span class="guilabel"><span class="guilabel">nfs-utils</span></span></tt> (nfs is a major security risk), </td></tr><tr><td>uncheck <tt class="computeroutput"><span class="guilabel"><span class="guilabel">pam-devel</span></span></tt> (I don't remember why, but we don't want this), </td></tr><tr><td>uncheck <tt class="computeroutput"><span class="guilabel"><span class="guilabel">portmap</span></span></tt>, </td></tr><tr><td>uncheck <tt class="computeroutput"><span class="guilabel"><span class="guilabel">postfix</span></span></tt> (this is an MTA, but we're going to install qmail later), </td></tr><tr><td>check <tt class="computeroutput"><span class="guilabel"><span class="guilabel">postgresql-devel</span></span></tt>,</td></tr><tr><td>uncheck <tt class="computeroutput"><span class="guilabel"><span class="guilabel">rsh</span></span></tt> (rsh is a security hole), </td></tr><tr><td>uncheck <tt class="computeroutput"><span class="guilabel"><span class="guilabel">sendmail</span></span></tt> (sendmail is an insecure MTA; we're going to install qmail instead later),</td></tr><tr><td>check <tt class="computeroutput"><span class="guilabel"><span class="guilabel">tcl</span></span></tt> (we need tcl), and </td></tr><tr><td>uncheck <tt class="computeroutput"><span class="guilabel"><span class="guilabel">xinetd</span></span></tt> (xinetd handles incoming tcp connections. We'll install a different, more secure program, ucspi-tcp).</td></tr><tr><td>Click <tt class="computeroutput"><span class="guibutton"><span class="guibutton"><u><span class="accel">N</span></u>ext</span></span></tt></td></tr></table></li><li><p>Red Hat isn't completely happy with the combination of packages we've selected, and wants to satisfy some dependencies. Don't let it. On the next screen, choose <tt class="computeroutput"><span class="guilabel"><span class="guilabel">I<u><span class="accel">g</span></u>nore Package @@ -120,7 +120,7 @@ upgrading all of that. Since you are upgrading the kernel, reboot after this step. </p></li><li><p>Lock down SSH</p><div class="orderedlist"><ol type="a"><li><p> - <a class="indexterm" name="id2983896"></a> + <a class="indexterm" name="id2989577"></a> SSH is the protocol we use to connect securely to the computer (replacing telnet, which is insecure). sshd is the daemon that listens for incoming @@ -201,4 +201,4 @@ <span class="action"><span class="action">cd /var/tmp wget http://updates.redhat.com/7.1/en/os/i686/kernel-2.4.18-27.7.x.i686.rpm rpm -Uvh kernel-2.4.18-27.7.x.i686.rpm -reboot</span></span></pre></li></ol></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="install-next-nightly-vacuum.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="install-more-software.html">Next</a></td></tr><tr><td width="40%" align="left">Vacuum Postgres nightly </td><td width="20%" align="center"><a accesskey="u" href="acs-admin.html">Up</a></td><td width="40%" align="right"> Appendix B. Install additional supporting software</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/install-redhat.html#comments">View comments on this page at openacs.org</a></center></body></html> +reboot</span></span></pre></li></ol></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="backups-with-cvs.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="install-more-software.html">Next</a></td></tr><tr><td width="40%" align="left">Using CVS for backup-recovery </td><td width="20%" align="center"><a accesskey="u" href="acs-admin.html">Up</a></td><td width="40%" align="right"> Appendix B. Install additional supporting software</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/install-redhat.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/install-steps.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-steps.html,v diff -u -r1.31 -r1.32 --- openacs-4/packages/acs-core-docs/www/install-steps.html 13 Sep 2009 23:54:40 -0000 1.31 +++ openacs-4/packages/acs-core-docs/www/install-steps.html 17 Oct 2010 21:06:08 -0000 1.32 @@ -5,7 +5,7 @@ <a href="postgres.html">Install PostgreSQL</a>).</p></li><li><p> Install AOLserver (<a href="aolserver4.html">Install AOLserver 4</a>) .</p></li><li><p>Create a unique database and system user. Install the OpenACS tarball, start and AOLserver instance, and use the OpenACS web pages to complete installation - (see <a href="openacs.html">Install OpenACS 5.5.0</a>).</p></li></ol></div><p> Specific instructions are available for Mac OS X and + (see <a href="openacs.html">Install OpenACS 5.6.0</a>).</p></li></ol></div><p> Specific instructions are available for Mac OS X and Windows2000 (see <a href="mac-installation.html" title="OpenACS Installation Guide for Mac OS X">Section , “OpenACS Installation Guide for Mac OS X”</a> or <a href="win2k-installation.html" title="OpenACS Installation Guide for Windows2000">Section , “OpenACS Installation Guide for Windows2000”</a>).</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="install-rpms"></a>Binaries and other shortcuts</h3></div></div><div></div></div><p>You can try out OpenACS using some binary installers. In general, they are not yet supported by the community, so they are @@ -41,9 +41,9 @@ <span class="action"><span class="action">su - $OPENACS_SERVICE_NAME svc -d /service/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span> dropdb <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span> -createdb <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></span></span></pre><p><a name="cut-and-paste-name-var"></a><b>Setting a global shell variable for cut and paste. </b>In order to cut and paste the instructions into your shell, you must set the environment variable $OPENACS_SERVICE_NAME. In order to set it globally so that it works for any new users or special service users you may create, edit the file <tt class="computeroutput">/etc/profile</tt> ( <tt class="computeroutput">/etc/share/skel/dot.profile</tt> for FreeBSD) and add this line:</p><pre class="programlisting">export OPENACS_SERVICE_NAME=<span class="replaceable"><span class="replaceable">service0</span></span></pre></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2815595"></a>Paths and Users</h3></div></div><div></div></div><div class="table"><a name="id2815602"></a><p class="title"><b>Table 2.1. Default directories for a standard install</b></p><table summary="Default directories for a standard install" cellspacing="0" width="100%" border="1"><colgroup><col><col></colgroup><tbody><tr><td>Fully qualified domain name of your server</td><td><span class="replaceable"><span class="replaceable">yourserver.test</span></span></td></tr><tr><td>name of administrative access account</td><td>remadmin</td></tr><tr><td>OpenACS service</td><td><a class="indexterm" name="id2815658"></a><span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span> (set to service0 in default install)</td></tr><tr><td>OpenACS service account</td><td><span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></td></tr><tr><td>OpenACS database name</td><td><span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></td></tr><tr><td>Root of OpenACS service file tree (SERVERROOT)</td><td><span class="replaceable"><span class="replaceable">/var/lib/aolserver/$OPENACS_SERVICE_NAME</span></span></td></tr><tr><td>Location of source code tarballs for new software</td><td>/var/tmp</td></tr><tr><td>The OpenACS tarball contains some files which +createdb <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></span></span></pre><p><a name="cut-and-paste-name-var"></a><b>Setting a global shell variable for cut and paste. </b>In order to cut and paste the instructions into your shell, you must set the environment variable $OPENACS_SERVICE_NAME. In order to set it globally so that it works for any new users or special service users you may create, edit the file <tt class="computeroutput">/etc/profile</tt> ( <tt class="computeroutput">/etc/share/skel/dot.profile</tt> for FreeBSD) and add this line:</p><pre class="programlisting">export OPENACS_SERVICE_NAME=<span class="replaceable"><span class="replaceable">service0</span></span></pre></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2917092"></a>Paths and Users</h3></div></div><div></div></div><div class="table"><a name="id2917099"></a><p class="title"><b>Table 2.1. Default directories for a standard install</b></p><table summary="Default directories for a standard install" cellspacing="0" width="100%" border="1"><colgroup><col><col></colgroup><tbody><tr><td>Fully qualified domain name of your server</td><td><span class="replaceable"><span class="replaceable">yourserver.test</span></span></td></tr><tr><td>name of administrative access account</td><td>remadmin</td></tr><tr><td>OpenACS service</td><td><a class="indexterm" name="id2917155"></a><span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span> (set to service0 in default install)</td></tr><tr><td>OpenACS service account</td><td><span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></td></tr><tr><td>OpenACS database name</td><td><span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></td></tr><tr><td>Root of OpenACS service file tree (SERVERROOT)</td><td><span class="replaceable"><span class="replaceable">/var/lib/aolserver/$OPENACS_SERVICE_NAME</span></span></td></tr><tr><td>Location of source code tarballs for new software</td><td>/var/tmp</td></tr><tr><td>The OpenACS tarball contains some files which are useful while setting up other software. Those - files are located at:</td><td>/var/tmp/openacs-5.5.0/packages/acs-core-docs/www/files</td></tr><tr><td>Database backup directory</td><td><span class="replaceable"><span class="replaceable">/var/lib/aolserver/$OPENACS_SERVICE_NAME/database-backup</span></span></td></tr><tr><td>Service config files</td><td><span class="replaceable"><span class="replaceable">/var/lib/aolserver/$OPENACS_SERVICE_NAME/etc</span></span></td></tr><tr><td>Service log files</td><td><span class="replaceable"><span class="replaceable">/var/lib/aolserver/$OPENACS_SERVICE_NAME/log</span></span></td></tr><tr><td>Compile directory</td><td>/usr/local/src</td></tr><tr><td>PostgreSQL directory</td><td>/usr/local/pgsql</td></tr><tr><td>AOLserver directory</td><td>/usr/local/aolserver</td></tr></tbody></table></div><p> + files are located at:</td><td>/var/tmp/openacs-5.6.0/packages/acs-core-docs/www/files</td></tr><tr><td>Database backup directory</td><td><span class="replaceable"><span class="replaceable">/var/lib/aolserver/$OPENACS_SERVICE_NAME/database-backup</span></span></td></tr><tr><td>Service config files</td><td><span class="replaceable"><span class="replaceable">/var/lib/aolserver/$OPENACS_SERVICE_NAME/etc</span></span></td></tr><tr><td>Service log files</td><td><span class="replaceable"><span class="replaceable">/var/lib/aolserver/$OPENACS_SERVICE_NAME/log</span></span></td></tr><tr><td>Compile directory</td><td>/usr/local/src</td></tr><tr><td>PostgreSQL directory</td><td>/usr/local/pgsql</td></tr><tr><td>AOLserver directory</td><td>/usr/local/aolserver</td></tr></tbody></table></div><p> None of these locations are set in stone - they're simply the values that we've chosen. The values that you'll probably want to change, such as service name, are Index: openacs-4/packages/acs-core-docs/www/ix01.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/ix01.html,v diff -u -r1.25 -r1.26 --- openacs-4/packages/acs-core-docs/www/ix01.html 13 Sep 2009 23:54:40 -0000 1.25 +++ openacs-4/packages/acs-core-docs/www/ix01.html 17 Oct 2010 21:06:08 -0000 1.26 @@ -1,3 +1,3 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="index.html" title="OpenACS Core Documentation"><link rel="previous" href="update-translations.html" title="How to Update the translations"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="update-translations.html">Prev</a> </td><th width="60%" align="center"></th><td width="20%" align="right"> </td></tr></table><hr></div><div class="index"><div class="titlepage"><div><div><h2 class="title"><a name="id2836566"></a>Index</h2></div></div><div></div></div><div class="index"><div class="indexdiv"><h3>Symbols</h3><dl><dt>$OPENACS_SERVICE_NAME, <a href="install-steps.html#id2815595">Paths and Users</a></dt></dl></div><div class="indexdiv"><h3>A</h3><dl><dt>AOLserver</dt><dd><dl><dt>configuration, <a href="openacs.html#install-from-tarball">Installation Option 2: Install from tarball</a></dt></dl></dd><dt>Automated tests, <a href="tutorial-debug.html#id2932915">Write automated tests</a></dt></dl></div><div class="indexdiv"><h3>C</h3><dl><dt>computeroutput</dt><dd><dl><dt>code, <a href="docbook-primer.html#dbprimer-code">Code</a></dt></dl></dd><dt>cvs</dt><dd><dl><dt>initializing, <a href="install-cvs.html">Initialize CVS (OPTIONAL)</a></dt><dt>setup, <a href="cvs-tips.html">Using CVS with an OpenACS Site</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>D</h3><dl><dt>daemontools</dt><dd><dl><dt>installation, <a href="install-daemontools.html">Install Daemontools (OPTIONAL)</a></dt></dl></dd><dt>docbook</dt><dd><dl><dt>installation, <a href="install-redhat.html">Install Red Hat 8/9</a></dt></dl></dd><dt>DocBook</dt><dd><dl><dt>DTD, <a href="docbook-primer.html#dbprimer-why">OpenACS Documentation Strategy: Why DocBook?</a></dt><dt>emacs configuration for, <a href="psgml-for-emacs.html">Add PSGML commands to emacs init file (OPTIONAL)</a></dt></dl></dd><dt>Document structure, <a href="docbook-primer.html#dbprimer-structure">Document Structure</a></dt></dl></div><div class="indexdiv"><h3>E</h3><dl><dt>emacs</dt><dd><dl><dt>installation, <a href="install-redhat.html">Install Red Hat 8/9</a></dt></dl></dd><dt>emphasis</dt><dd><dl><dt>bold, italics, <a href="docbook-primer.html#dbprimer-emphasis">Emphasis</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>F</h3><dl><dt>full text search</dt><dd><dl><dt>installation, <a href="install-full-text-search-tsearch2.html#install-tsearch2">Install Tsearch2 module</a>, <a href="install-full-text-search-openfts.html#install-openfts">Install OpenFTS module</a>, <a href="install-full-text-search-openfts.html#install-openfts-postgres">Install OpenFTS prerequisites in PostgreSQL instance</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>G</h3><dl><dt>Graphics</dt><dd><dl><dt>Images, <a href="docbook-primer.html#dbprimer-graphics">Graphics</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>I</h3><dl><dt>informaltable</dt><dd><dl><dt>table, <a href="docbook-primer.html#dbprimer-tables">Tables</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>L</h3><dl><dt>language</dt><dd><dl><dt>installation, <a href="install-redhat.html">Install Red Hat 8/9</a></dt></dl></dd><dt>Linking, <a href="docbook-primer.html#dbprimer-links">Links</a></dt><dt>lists, <a href="docbook-primer.html#dbprimer-lists">Lists</a></dt></dl></div><div class="indexdiv"><h3>O</h3><dl><dt>OpenACS Package, <a href="packages.html#packages-looks">What a Package Looks Like</a></dt></dl></div><div class="indexdiv"><h3>P</h3><dl><dt>photo-album</dt><dd><dl><dt>installation (see ImageMagick)</dt></dl></dd><dt>Postgres</dt><dd><dl><dt>Vacuuming, <a href="openacs.html#install-from-tarball">Installation Option 2: Install from tarball</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>Q</h3><dl><dt>qmail</dt><dd><dl><dt>installation, <a href="install-qmail.html">Install qmail (OPTIONAL)</a></dt><dt>Maildir, <a href="install-qmail.html">Install qmail (OPTIONAL)</a></dt><dt>rcpthosts error message, <a href="install-qmail.html">Install qmail (OPTIONAL)</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>S</h3><dl><dt>sect1, <a href="docbook-primer.html#dbprimer-sections">Headlines, Sections</a></dt><dt>sect2, <a href="docbook-primer.html#dbprimer-sections">Headlines, Sections</a></dt><dt>Sections</dt><dd><dl><dt>Headlines, <a href="docbook-primer.html#dbprimer-sections">Headlines, Sections</a></dt></dl></dd><dt>security</dt><dd><dl><dt>definition, <a href="install-redhat.html">Install Red Hat 8/9</a></dt><dt>firewall, <a href="install-redhat.html">Install Red Hat 8/9</a></dt></dl></dd><dt>sendmail</dt><dd><dl><dt>removing, <a href="install-qmail.html">Install qmail (OPTIONAL)</a></dt></dl></dd><dt>ssh, <a href="install-redhat.html">Install Red Hat 8/9</a></dt></dl></div><div class="indexdiv"><h3>T</h3><dl><dt>The publish point for new packages should be +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Index</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="index.html" title="OpenACS Core Documentation"><link rel="previous" href="update-translations.html" title="How to Update the translations"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="update-translations.html">Prev</a> </td><th width="60%" align="center"></th><td width="20%" align="right"> </td></tr></table><hr></div><div class="index"><div class="titlepage"><div><div><h2 class="title"><a name="id2836566"></a>Index</h2></div></div><div></div></div><div class="index"><div class="indexdiv"><h3>Symbols</h3><dl><dt>$OPENACS_SERVICE_NAME, <a href="install-steps.html#id2917092">Paths and Users</a></dt></dl></div><div class="indexdiv"><h3>A</h3><dl><dt>AOLserver</dt><dd><dl><dt>configuration, <a href="openacs.html#install-from-tarball">Installation Option 2: Install from tarball</a></dt></dl></dd><dt>Automated tests, <a href="tutorial-debug.html#id3014028">Write automated tests</a></dt></dl></div><div class="indexdiv"><h3>C</h3><dl><dt>computeroutput</dt><dd><dl><dt>code, <a href="docbook-primer.html#dbprimer-code">Code</a></dt></dl></dd><dt>cvs</dt><dd><dl><dt>initializing, <a href="install-cvs.html">Initialize CVS (OPTIONAL)</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>D</h3><dl><dt>daemontools</dt><dd><dl><dt>installation, <a href="install-daemontools.html">Install Daemontools (OPTIONAL)</a></dt></dl></dd><dt>docbook</dt><dd><dl><dt>installation, <a href="install-redhat.html">Install Red Hat 8/9</a></dt></dl></dd><dt>DocBook</dt><dd><dl><dt>DTD, <a href="docbook-primer.html#dbprimer-why">OpenACS Documentation Strategy: Why DocBook?</a></dt><dt>emacs configuration for, <a href="psgml-for-emacs.html">Add PSGML commands to emacs init file (OPTIONAL)</a></dt></dl></dd><dt>Document structure, <a href="docbook-primer.html#dbprimer-structure">Document Structure</a></dt></dl></div><div class="indexdiv"><h3>E</h3><dl><dt>emacs</dt><dd><dl><dt>installation, <a href="install-redhat.html">Install Red Hat 8/9</a></dt></dl></dd><dt>emphasis</dt><dd><dl><dt>bold, italics, <a href="docbook-primer.html#dbprimer-emphasis">Emphasis</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>F</h3><dl><dt>full text search</dt><dd><dl><dt>installation, <a href="install-full-text-search-tsearch2.html#install-tsearch2">Install Tsearch2 module</a>, <a href="install-full-text-search-openfts.html#install-openfts">Install OpenFTS module</a>, <a href="install-full-text-search-openfts.html#install-openfts-postgres">Install OpenFTS prerequisites in PostgreSQL instance</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>G</h3><dl><dt>Graphics</dt><dd><dl><dt>Images, <a href="docbook-primer.html#dbprimer-graphics">Graphics</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>I</h3><dl><dt>informaltable</dt><dd><dl><dt>table, <a href="docbook-primer.html#dbprimer-tables">Tables</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>L</h3><dl><dt>language</dt><dd><dl><dt>installation, <a href="install-redhat.html">Install Red Hat 8/9</a></dt></dl></dd><dt>Linking, <a href="docbook-primer.html#dbprimer-links">Links</a></dt><dt>lists, <a href="docbook-primer.html#dbprimer-lists">Lists</a></dt></dl></div><div class="indexdiv"><h3>O</h3><dl><dt>OpenACS Package, <a href="packages.html#packages-looks">What a Package Looks Like</a></dt></dl></div><div class="indexdiv"><h3>P</h3><dl><dt>photo-album</dt><dd><dl><dt>installation (see ImageMagick)</dt></dl></dd><dt>Postgres</dt><dd><dl><dt>Vacuuming, <a href="openacs.html#install-from-tarball">Installation Option 2: Install from tarball</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>Q</h3><dl><dt>qmail</dt><dd><dl><dt>installation, <a href="install-qmail.html">Install qmail (OPTIONAL)</a></dt><dt>Maildir, <a href="install-qmail.html">Install qmail (OPTIONAL)</a></dt><dt>rcpthosts error message, <a href="install-qmail.html">Install qmail (OPTIONAL)</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>S</h3><dl><dt>sect1, <a href="docbook-primer.html#dbprimer-sections">Headlines, Sections</a></dt><dt>sect2, <a href="docbook-primer.html#dbprimer-sections">Headlines, Sections</a></dt><dt>Sections</dt><dd><dl><dt>Headlines, <a href="docbook-primer.html#dbprimer-sections">Headlines, Sections</a></dt></dl></dd><dt>security</dt><dd><dl><dt>definition, <a href="install-redhat.html">Install Red Hat 8/9</a></dt><dt>firewall, <a href="install-redhat.html">Install Red Hat 8/9</a></dt></dl></dd><dt>sendmail</dt><dd><dl><dt>removing, <a href="install-qmail.html">Install qmail (OPTIONAL)</a></dt></dl></dd><dt>ssh, <a href="install-redhat.html">Install Red Hat 8/9</a></dt></dl></div><div class="indexdiv"><h3>T</h3><dl><dt>The publish point for new packages should be fixed., <a href="tutorial-distribute.html">Prepare the package for distribution.</a></dt></dl></div><div class="indexdiv"><h3>U</h3><dl><dt>ulink, <a href="docbook-primer.html#dbprimer-links">Links</a></dt><dt>upgrade</dt><dd><dl><dt>OpenACS 4.5 to 4.6.x</dt><dd><dl><dt>Linux/Unix, <a href="upgrade-4.5-to-4.6.html">Upgrading 4.5 or higher to 4.6.3</a></dt></dl></dd></dl></dd></dl></div><div class="indexdiv"><h3>X</h3><dl><dt>XML guidelines, <a href="docbook-primer.html#dbprimer-why">OpenACS Documentation Strategy: Why DocBook?</a></dt><dt>xref</dt><dd><dl><dt>linkend, <a href="docbook-primer.html#dbprimer-links">Links</a></dt></dl></dd><dt>xreflabel, <a href="docbook-primer.html#dbprimer-sections">Headlines, Sections</a></dt></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="update-translations.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> </td></tr><tr><td width="40%" align="left">How to Update the translations </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> </td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/ix01.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/kernel-doc.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/kernel-doc.html,v diff -u -r1.33 -r1.34 --- openacs-4/packages/acs-core-docs/www/kernel-doc.html 13 Sep 2009 23:54:40 -0000 1.33 +++ openacs-4/packages/acs-core-docs/www/kernel-doc.html 17 Oct 2010 21:06:08 -0000 1.34 @@ -1,2 +1,2 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter 14. Kernel Documentation</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="acs-plat-dev.html" title="Part IV. For OpenACS Platform Developers"><link rel="previous" href="acs-plat-dev.html" title="Part IV. For OpenACS Platform Developers"><link rel="next" href="kernel-overview.html" title="Overview"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="acs-plat-dev.html">Prev</a> </td><th width="60%" align="center">Part IV. For OpenACS Platform Developers</th><td width="20%" align="right"> <a accesskey="n" href="kernel-overview.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="kernel-doc"></a>Chapter 14. Kernel Documentation</h2></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="kernel-overview.html">Overview</a></dt><dt><a href="object-system-requirements.html">Object Model Requirements</a></dt><dt><a href="object-system-design.html">Object Model Design</a></dt><dt><a href="permissions-requirements.html">Permissions Requirements</a></dt><dt><a href="permissions-design.html">Permissions Design</a></dt><dt><a href="groups-requirements.html">Groups Requirements</a></dt><dt><a href="groups-design.html">Groups Design</a></dt><dt><a href="subsites-design.html">Subsites Design Document</a></dt><dt><a href="apm-requirements.html">Package Manager Requirements</a></dt><dt><a href="apm-design.html">Package Manager Design</a></dt><dt><a href="i18n-requirements.html">OpenACS Internationalization Requirements</a></dt><dt><a href="security-requirements.html">Security Requirements</a></dt><dt><a href="security-design.html">Security Design</a></dt><dt><a href="security-notes.html">Security Notes</a></dt><dt><a href="rp-requirements.html">Request Processor Requirements</a></dt><dt><a href="rp-design.html">Request Processor Design</a></dt><dt><a href="tcl-doc.html">Documenting Tcl Files: Page Contracts and Libraries</a></dt><dt><a href="bootstrap-acs.html">Bootstrapping OpenACS</a></dt><dt><a href="ext-auth-requirements.html">External Authentication Requirements</a></dt></dl></div>Section missingSection missing</div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="acs-plat-dev.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="kernel-overview.html">Next</a></td></tr><tr><td width="40%" align="left">Part IV. For OpenACS Platform Developers </td><td width="20%" align="center"><a accesskey="u" href="acs-plat-dev.html">Up</a></td><td width="40%" align="right"> Overview</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/kernel-doc.html#comments">View comments on this page at openacs.org</a></center></body></html> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter 15. Kernel Documentation</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="acs-plat-dev.html" title="Part IV. For OpenACS Platform Developers"><link rel="previous" href="acs-plat-dev.html" title="Part IV. For OpenACS Platform Developers"><link rel="next" href="kernel-overview.html" title="Overview"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="acs-plat-dev.html">Prev</a> </td><th width="60%" align="center">Part IV. For OpenACS Platform Developers</th><td width="20%" align="right"> <a accesskey="n" href="kernel-overview.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="kernel-doc"></a>Chapter 15. Kernel Documentation</h2></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="kernel-overview.html">Overview</a></dt><dt><a href="object-system-requirements.html">Object Model Requirements</a></dt><dt><a href="permissions-requirements.html">Permissions Requirements</a></dt><dt><a href="permissions-design.html">Permissions Design</a></dt><dt><a href="groups-requirements.html">Groups Requirements</a></dt><dt><a href="groups-design.html">Groups Design</a></dt><dt><a href="subsites-requirements.html">Subsites Requirements</a></dt><dt><a href="subsites-design.html">Subsites Design Document</a></dt><dt><a href="apm-requirements.html">Package Manager Requirements</a></dt><dt><a href="apm-design.html">Package Manager Design</a></dt><dt><a href="db-api-detailed.html">Database Access API</a></dt><dt><a href="i18n-requirements.html">OpenACS Internationalization Requirements</a></dt><dt><a href="security-requirements.html">Security Requirements</a></dt><dt><a href="security-design.html">Security Design</a></dt><dt><a href="security-notes.html">Security Notes</a></dt><dt><a href="rp-requirements.html">Request Processor Requirements</a></dt><dt><a href="rp-design.html">Request Processor Design</a></dt><dt><a href="bootstrap-acs.html">Bootstrapping OpenACS</a></dt><dt><a href="ext-auth-requirements.html">External Authentication Requirements</a></dt></dl></div>Section missingSection missing</div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="acs-plat-dev.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="kernel-overview.html">Next</a></td></tr><tr><td width="40%" align="left">Part IV. For OpenACS Platform Developers </td><td width="20%" align="center"><a accesskey="u" href="acs-plat-dev.html">Up</a></td><td width="40%" align="right"> Overview</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/kernel-doc.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/kernel-overview.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/kernel-overview.html,v diff -u -r1.27 -r1.28 --- openacs-4/packages/acs-core-docs/www/kernel-overview.html 13 Sep 2009 23:54:40 -0000 1.27 +++ openacs-4/packages/acs-core-docs/www/kernel-overview.html 17 Oct 2010 21:06:08 -0000 1.28 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Overview</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 14. Kernel Documentation"><link rel="previous" href="kernel-doc.html" title="Chapter 14. Kernel Documentation"><link rel="next" href="object-system-requirements.html" title="Object Model Requirements"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="kernel-doc.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="object-system-requirements.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="kernel-overview"></a>Overview</h2></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Overview</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 15. Kernel Documentation"><link rel="previous" href="kernel-doc.html" title="Chapter 15. Kernel Documentation"><link rel="next" href="object-system-requirements.html" title="Object Model Requirements"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="kernel-doc.html">Prev</a> </td><th width="60%" align="center">Chapter 15. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="object-system-requirements.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="kernel-overview"></a>Overview</h2></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p> The <span class="emphasis"><em>OpenACS Kernel</em></span>, which handles system-wide necessities such as metadata, security, users and groups, subsites, and package @@ -23,4 +23,4 @@ </p></li></ul></div><p> This document provides a high level overview of the kernel package. <a href="index.html" target="_top">Documentation for other packages on this server</a> - </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="kernel-doc.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="object-system-requirements.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter 14. Kernel Documentation </td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right"> Object Model Requirements</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/kernel-overview.html#comments">View comments on this page at openacs.org</a></center></body></html> + </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="kernel-doc.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="object-system-requirements.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter 15. Kernel Documentation </td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right"> Object Model Requirements</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/kernel-overview.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/maint-performance.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/maint-performance.html,v diff -u -r1.25 -r1.26 --- openacs-4/packages/acs-core-docs/www/maint-performance.html 13 Sep 2009 23:54:40 -0000 1.25 +++ openacs-4/packages/acs-core-docs/www/maint-performance.html 17 Oct 2010 21:06:08 -0000 1.26 @@ -2,7 +2,7 @@ <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Diagnosing Performance Problems</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="maintenance-web.html" title="Chapter 6. Production Environments"><link rel="previous" href="uptime.html" title="External uptime validation"><link rel="next" href="database-management.html" title="Chapter 7. Database Management"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="uptime.html">Prev</a> </td><th width="60%" align="center">Chapter 6. Production Environments</th><td width="20%" align="right"> <a accesskey="n" href="database-management.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="maint-performance"></a>Diagnosing Performance Problems</h2></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Did performance problems happen overnight, or did they sneak up on you? Any clue what caused the performance problems (e.g. loading 20K users into .LRN)</p></li><li><p>Is the file system out of space? Is the machine swapping to disk constantly?</p></li><li><p>Isolating and solving database problems.</p><div class="itemizedlist"><ul type="circle"><li><p>Without daily internal maintenance, most databases slowly degrade in performance. For PostGreSQL, see <a href="install-next-nightly-vacuum.html" title="Vacuum Postgres nightly">Section , “Vacuum Postgres nightly”</a>. For Oracle, use <tt class="computeroutput">exec dbms_stats.gather_schema_stats('SCHEMA_NAME')</tt> (<a href="http://www.piskorski.com/docs/oracle.html" target="_top">Andrew Piskorski's Oracle notes</a>).</p></li><li><p>You can track the exact amount of time each database query on a page takes:</p><div class="orderedlist"><ol type="1"><li><p>Go to <a href="/acs-admin/install" target="_top">Main Site : Site-Wide Administration : Install Software</a></p></li><li><p>Click on "Install New Application" in "Install from OpenACS Repository"</p></li><li><p>Choose "ACS Developer Support"></p></li><li><p>After install is complete, restart the server.</p></li><li><p>Browse to Developer Support, which is automatically mounted at <tt class="computeroutput"><a href="/ds" target="_top">/ds</a></tt>. - </p></li><li><p>Turn on Database statistics</p></li><li><p>Browse directly to a slow page and click "Request Information" at the bottom of the page.</p></li><li><p>This should return a list of database queries on the page, including the exact query (so it can be cut-paste into psql or oracle) and the time each query took.</p><div class="figure"><a name="id2988345"></a><p class="title"><b>Figure 6.8. Query Analysis example</b></p><div class="mediaobject"><img src="../images/query-duration.png" alt="Query Analysis example"></div></div></li></ol></div></li><li><p>Identify a runaway Oracle query: first, use <b class="userinput"><tt>ps aux</tt></b> or <b class="userinput"><tt>top</tt></b> to get the UNIX process ID of a runaway Oracle process.</p><p>Log in to SQL*Plus as the admin:</p><pre class="screen">[<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span> ~]$ svrmgrl + </p></li><li><p>Turn on Database statistics</p></li><li><p>Browse directly to a slow page and click "Request Information" at the bottom of the page.</p></li><li><p>This should return a list of database queries on the page, including the exact query (so it can be cut-paste into psql or oracle) and the time each query took.</p><div class="figure"><a name="id2988284"></a><p class="title"><b>Figure 6.8. Query Analysis example</b></p><div class="mediaobject"><img src="../images/query-duration.png" alt="Query Analysis example"></div></div></li></ol></div></li><li><p>Identify a runaway Oracle query: first, use <b class="userinput"><tt>ps aux</tt></b> or <b class="userinput"><tt>top</tt></b> to get the UNIX process ID of a runaway Oracle process.</p><p>Log in to SQL*Plus as the admin:</p><pre class="screen">[<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span> ~]$ svrmgrl Oracle Server Manager Release 3.1.7.0.0 - Production @@ -59,7 +59,7 @@ </p><p> To be able to get a overview of how Oracle executes a particular query, install "autotrace". I usually follow the instructions here <a href="http://asktom.oracle.com/~tkyte/article1/autotrace.html" target="_top">http://asktom.oracle.com/~tkyte/article1/autotrace.html</a>. - </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2988629"></a>Make sure, that the Oracle CBO works with adequate statistics</h4></div></div><div></div></div><p> + </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2988568"></a>Make sure, that the Oracle CBO works with adequate statistics</h4></div></div><div></div></div><p> The Oracle Cost Based optimizer is a piece of software that tries to find the "optimal" execution plan for a given SQL statement. For that it estimates the costs of running a SQL query in a particular way (by default Index: openacs-4/packages/acs-core-docs/www/maintenance-deploy.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/maintenance-deploy.html,v diff -u -r1.20 -r1.21 --- openacs-4/packages/acs-core-docs/www/maintenance-deploy.html 13 Sep 2009 23:54:40 -0000 1.20 +++ openacs-4/packages/acs-core-docs/www/maintenance-deploy.html 17 Oct 2010 21:06:08 -0000 1.21 @@ -2,7 +2,7 @@ <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Staged Deployment for Production Networks</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="maintenance-web.html" title="Chapter 6. Production Environments"><link rel="previous" href="high-avail.html" title="High Availability/High Performance Configurations"><link rel="next" href="install-ssl.html" title="Installing SSL Support for an OpenACS service"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="high-avail.html">Prev</a> </td><th width="60%" align="center">Chapter 6. Production Environments</th><td width="20%" align="right"> <a accesskey="n" href="install-ssl.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="maintenance-deploy"></a>Staged Deployment for Production Networks</h2></div></div><div></div></div><div class="authorblurb"><div class="cvstag">($Id$)</div><p>By <a href="mailto:joel@aufrecht.org" target="_top">Joel Aufrecht</a></p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. - </div><p>This section describes two minimal-risk methods for deploying changes on a production network. The important characteristics of a safe change deployment include: (THIS SECTION IN DEVELOPMENT)</p><div class="itemizedlist"><ul type="disc"><li><p>Control: You know for sure that the change you are making is the change that you intend to make and is the change that you tested.</p></li><li><p>Rollback: If anything goes wrong, you can return to the previous working configuration safely and quickly.</p></li></ul></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2985684"></a>Method 1: Deployment with CVS</h3></div></div><div></div></div><p>With this method, we control the files on a site via + </div><p>This section describes two minimal-risk methods for deploying changes on a production network. The important characteristics of a safe change deployment include: (THIS SECTION IN DEVELOPMENT)</p><div class="itemizedlist"><ul type="disc"><li><p>Control: You know for sure that the change you are making is the change that you intend to make and is the change that you tested.</p></li><li><p>Rollback: If anything goes wrong, you can return to the previous working configuration safely and quickly.</p></li></ul></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2987079"></a>Method 1: Deployment with CVS</h3></div></div><div></div></div><p>With this method, we control the files on a site via CVS. This example uses one developmental server (service0-dev) and one production server (service0). Depending on your needs, you can also have a staging server for extensive testing before you go @@ -67,4 +67,4 @@ cvs up -Pd index.adp</pre><p>If you make changes that require changes to the database, test them out first on service0-dev, using either -create.sql or upgrade scripts. Once you've tested them, you then update and - run the upgrade scripts from the package manager. </p><p>The production site can run "HEAD" from cvs.</p><p>The drawback to using HEAD as the live code is that you cannot commit new work on the development server without erasing the definition of 'working production code.' So a better method is to use a tag. This guarantees that, at any time in the future, you can retrieve exactly the same set of code. This is useful for both of the characteristics of safe change deployment. For control, you can use tags to define a body of code, test that code, and then know that what you are deploying is exactly that code. For rollback, you can use return to the last working tag if the new tag (or new, untagged changes) cause problems. .... example of using tags to follow ...</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2985855"></a>Method 2: A/B Deployment</h3></div></div><div></div></div><p>The approach taken in this section is to always create a new service with the desired changes, running in parallel with the existing site. This guarantees control, at least at the final step of the process: you know what changes you are about to make because you can see them directly. It does not, by itself, guarantee the entire control chain. You need additional measures to make sure that the change you are making is exactly and completely the change you intended to make and tested previously, and nothing more. Those additional measures typically take the form of source control tags and system version numbers. The parallel-server approach also guarantees rollback because the original working service is not touched; it is merely set aside.</p><p>This approach can has limitations. If the database or file system regularly receiving new data, you must interrupt this function or risk losing data in the shuffle. It also requires extra steps if the database will be affected.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2985888"></a>Simple A/B Deployment: Database is not changed</h4></div></div><div></div></div><div class="figure"><a name="id2985896"></a><p class="title"><b>Figure 6.2. Simple A/B Deployment - Step 1</b></p><div class="mediaobject" align="center"><img src="../images/simple-deploy-1.png" align="middle" alt="Simple A/B Deployment - Step 1"></div></div><div class="figure"><a name="id2987383"></a><p class="title"><b>Figure 6.3. Simple A/B Deployment - Step 2</b></p><div class="mediaobject" align="center"><img src="../images/simple-deploy-2.png" align="middle" alt="Simple A/B Deployment - Step 2"></div></div><div class="figure"><a name="id2987413"></a><p class="title"><b>Figure 6.4. Simple A/B Deployment - Step 3</b></p><div class="mediaobject" align="center"><img src="../images/simple-deploy-3.png" align="middle" alt="Simple A/B Deployment - Step 3"></div></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2987445"></a>Complex A/B Deployment: Database is changed</h4></div></div><div></div></div><div class="figure"><a name="id2987452"></a><p class="title"><b>Figure 6.5. Complex A/B Deployment - Step 1</b></p><div class="mediaobject" align="center"><img src="../images/complex-deploy-1.png" align="middle" alt="Complex A/B Deployment - Step 1"></div></div><div class="figure"><a name="id2987483"></a><p class="title"><b>Figure 6.6. Complex A/B Deployment - Step 2</b></p><div class="mediaobject" align="center"><img src="../images/complex-deploy-2.png" align="middle" alt="Complex A/B Deployment - Step 2"></div></div><div class="figure"><a name="id2987514"></a><p class="title"><b>Figure 6.7. Complex A/B Deployment - Step 3</b></p><div class="mediaobject" align="center"><img src="../images/complex-deploy-3.png" align="middle" alt="Complex A/B Deployment - Step 3"></div></div></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="high-avail.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="install-ssl.html">Next</a></td></tr><tr><td width="40%" align="left">High Availability/High Performance Configurations </td><td width="20%" align="center"><a accesskey="u" href="maintenance-web.html">Up</a></td><td width="40%" align="right"> Installing SSL Support for an OpenACS service</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/maintenance-deploy.html#comments">View comments on this page at openacs.org</a></center></body></html> + run the upgrade scripts from the package manager. </p><p>The production site can run "HEAD" from cvs.</p><p>The drawback to using HEAD as the live code is that you cannot commit new work on the development server without erasing the definition of 'working production code.' So a better method is to use a tag. This guarantees that, at any time in the future, you can retrieve exactly the same set of code. This is useful for both of the characteristics of safe change deployment. For control, you can use tags to define a body of code, test that code, and then know that what you are deploying is exactly that code. For rollback, you can use return to the last working tag if the new tag (or new, untagged changes) cause problems. .... example of using tags to follow ...</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2987249"></a>Method 2: A/B Deployment</h3></div></div><div></div></div><p>The approach taken in this section is to always create a new service with the desired changes, running in parallel with the existing site. This guarantees control, at least at the final step of the process: you know what changes you are about to make because you can see them directly. It does not, by itself, guarantee the entire control chain. You need additional measures to make sure that the change you are making is exactly and completely the change you intended to make and tested previously, and nothing more. Those additional measures typically take the form of source control tags and system version numbers. The parallel-server approach also guarantees rollback because the original working service is not touched; it is merely set aside.</p><p>This approach can has limitations. If the database or file system regularly receiving new data, you must interrupt this function or risk losing data in the shuffle. It also requires extra steps if the database will be affected.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2987282"></a>Simple A/B Deployment: Database is not changed</h4></div></div><div></div></div><div class="figure"><a name="id2987290"></a><p class="title"><b>Figure 6.2. Simple A/B Deployment - Step 1</b></p><div class="mediaobject" align="center"><img src="../images/simple-deploy-1.png" align="middle" alt="Simple A/B Deployment - Step 1"></div></div><div class="figure"><a name="id2987321"></a><p class="title"><b>Figure 6.3. Simple A/B Deployment - Step 2</b></p><div class="mediaobject" align="center"><img src="../images/simple-deploy-2.png" align="middle" alt="Simple A/B Deployment - Step 2"></div></div><div class="figure"><a name="id2987352"></a><p class="title"><b>Figure 6.4. Simple A/B Deployment - Step 3</b></p><div class="mediaobject" align="center"><img src="../images/simple-deploy-3.png" align="middle" alt="Simple A/B Deployment - Step 3"></div></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2987384"></a>Complex A/B Deployment: Database is changed</h4></div></div><div></div></div><div class="figure"><a name="id2987391"></a><p class="title"><b>Figure 6.5. Complex A/B Deployment - Step 1</b></p><div class="mediaobject" align="center"><img src="../images/complex-deploy-1.png" align="middle" alt="Complex A/B Deployment - Step 1"></div></div><div class="figure"><a name="id2987422"></a><p class="title"><b>Figure 6.6. Complex A/B Deployment - Step 2</b></p><div class="mediaobject" align="center"><img src="../images/complex-deploy-2.png" align="middle" alt="Complex A/B Deployment - Step 2"></div></div><div class="figure"><a name="id2987453"></a><p class="title"><b>Figure 6.7. Complex A/B Deployment - Step 3</b></p><div class="mediaobject" align="center"><img src="../images/complex-deploy-3.png" align="middle" alt="Complex A/B Deployment - Step 3"></div></div></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="high-avail.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="install-ssl.html">Next</a></td></tr><tr><td width="40%" align="left">High Availability/High Performance Configurations </td><td width="20%" align="center"><a accesskey="u" href="maintenance-web.html">Up</a></td><td width="40%" align="right"> Installing SSL Support for an OpenACS service</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/maintenance-deploy.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/nxml-mode.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/nxml-mode.html,v diff -u -r1.14 -r1.15 --- openacs-4/packages/acs-core-docs/www/nxml-mode.html 13 Sep 2009 23:54:40 -0000 1.14 +++ openacs-4/packages/acs-core-docs/www/nxml-mode.html 17 Oct 2010 21:06:08 -0000 1.15 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Using nXML mode in Emacs</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="doc-standards.html" title="Chapter 12. Documentation Standards"><link rel="previous" href="docbook-primer.html" title="OpenACS Documentation Guide"><link rel="next" href="filename.html" title="Detailed Design Documentation Template"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="docbook-primer.html">Prev</a> </td><th width="60%" align="center">Chapter 12. Documentation Standards</th><td width="20%" align="right"> <a accesskey="n" href="filename.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="nxml-mode"></a>Using nXML mode in Emacs</h2></div></div><div></div></div><div class="authorblurb"><p>By Jeff Davis</p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Using nXML mode in Emacs</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="doc-standards.html" title="Chapter 13. Documentation Standards"><link rel="previous" href="psgml-mode.html" title="Using PSGML mode in Emacs"><link rel="next" href="filename.html" title="Detailed Design Documentation Template"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="psgml-mode.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Documentation Standards</th><td width="20%" align="right"> <a accesskey="n" href="filename.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="nxml-mode"></a>Using nXML mode in Emacs</h2></div></div><div></div></div><div class="authorblurb"><p>By Jeff Davis</p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><p> @@ -8,4 +8,4 @@ </p><div class="itemizedlist"><ul type="disc"><li><p>An <a href="http://www.xmlhack.com/read.php?item=2061" target="_top">introduction to nXML mode</a> at xmlhack.com. </p></li><li><p>The <a href="http://groups.yahoo.com/group/emacs-nxml-mode/" target="_top">nXML mode mail list</a> at groups.yahoo.com. - </p></li><li><p>The <a href="http://www.thaiopensource.com/download/" target="_top">nXML download page</a> at <a href="http://www.thaiopensource.com/" target="_top">thaiopensource.com</a>.</p></li></ul></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="docbook-primer.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="filename.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS Documentation Guide </td><td width="20%" align="center"><a accesskey="u" href="doc-standards.html">Up</a></td><td width="40%" align="right"> Detailed Design Documentation Template</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/nxml-mode.html#comments">View comments on this page at openacs.org</a></center></body></html> + </p></li><li><p>The <a href="http://www.thaiopensource.com/download/" target="_top">nXML download page</a> at <a href="http://www.thaiopensource.com/" target="_top">thaiopensource.com</a>.</p></li></ul></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="psgml-mode.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="filename.html">Next</a></td></tr><tr><td width="40%" align="left">Using PSGML mode in Emacs </td><td width="20%" align="center"><a accesskey="u" href="doc-standards.html">Up</a></td><td width="40%" align="right"> Detailed Design Documentation Template</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/nxml-mode.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/object-identity.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/object-identity.html,v diff -u -r1.45 -r1.46 --- openacs-4/packages/acs-core-docs/www/object-identity.html 13 Sep 2009 23:54:40 -0000 1.45 +++ openacs-4/packages/acs-core-docs/www/object-identity.html 17 Oct 2010 21:06:08 -0000 1.46 @@ -1,19 +1,19 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Object Identity</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="dev-guide.html" title="Chapter 10. Development Reference"><link rel="previous" href="permissions-tediously-explained.html" title="OpenACS Permissions Tediously Explained"><link rel="next" href="programming-with-aolserver.html" title="Programming with AOLserver"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="permissions-tediously-explained.html">Prev</a> </td><th width="60%" align="center">Chapter 10. Development Reference</th><td width="20%" align="right"> <a accesskey="n" href="programming-with-aolserver.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="object-identity"></a>Object Identity</h2></div></div><div></div></div><div class="authorblurb"><p>By <a href="http://planitia.org" target="_top">Rafael H. Schloming</a></p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Object Identity</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="dev-guide.html" title="Chapter 11. Development Reference"><link rel="previous" href="permissions-tediously-explained.html" title="OpenACS Permissions Tediously Explained"><link rel="next" href="programming-with-aolserver.html" title="Programming with AOLserver"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="permissions-tediously-explained.html">Prev</a> </td><th width="60%" align="center">Chapter 11. Development Reference</th><td width="20%" align="right"> <a accesskey="n" href="programming-with-aolserver.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="object-identity"></a>Object Identity</h2></div></div><div></div></div><div class="authorblurb"><p>By <a href="http://planitia.org" target="_top">Rafael H. Schloming</a></p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. - </div><p>One of the major design features of OpenACS 5.5.0 is the explicit representation + </div><p>One of the major design features of OpenACS 5.6.0 is the explicit representation of <span class="emphasis"><em>object identity</em></span>. The reason I say "explicit representation" is because the concept of object identity has been around forever. It is inherent to our problem domain. Consider the example of 3.x style scoping. The 3.x data models use the triple (user_id, group_id, -scope) to <span class="emphasis"><em>identify</em></span> an <span class="emphasis"><em>object</em></span>. In the 5.5.0 data model this +scope) to <span class="emphasis"><em>identify</em></span> an <span class="emphasis"><em>object</em></span>. In the 5.6.0 data model this object is <span class="emphasis"><em>explicitly represented</em></span> by a single party_id.</p><p>Another good example of this is can be found in the user groups data model. The 3.x user groups data model contains another example of an <span class="emphasis"><em>implied identity</em></span>. Every mapping between a user and a group could have an arbitrary number of attached values (user_group_member_fields, etc.). In this case it is the pair (group_id, user_id) that implicitly refers to an -object (the person's membership in a group). In the 5.5.0 data model this +object (the person's membership in a group). In the 5.6.0 data model this object identity is made explicit by adding an integer primary key to the table that maps users to groups.</p><p>Coming from a purely relational world, this might seem slightly weird at first. The pair (group_id, user_id) is sufficient to uniquely identify the Index: openacs-4/packages/acs-core-docs/www/object-system-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/object-system-requirements.html,v diff -u -r1.30 -r1.31 --- openacs-4/packages/acs-core-docs/www/object-system-requirements.html 13 Sep 2009 23:54:40 -0000 1.30 +++ openacs-4/packages/acs-core-docs/www/object-system-requirements.html 17 Oct 2010 21:06:08 -0000 1.31 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Object Model Requirements</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 14. Kernel Documentation"><link rel="previous" href="kernel-overview.html" title="Overview"><link rel="next" href="object-system-design.html" title="Object Model Design"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="kernel-overview.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="object-system-design.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="object-system-requirements"></a>Object Model Requirements</h2></div></div><div></div></div><div class="authorblurb"><p>By Pete Su</p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Object Model Requirements</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 15. Kernel Documentation"><link rel="previous" href="kernel-overview.html" title="Overview"><link rel="next" href="permissions-requirements.html" title="Permissions Requirements"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="kernel-overview.html">Prev</a> </td><th width="60%" align="center">Chapter 15. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="permissions-requirements.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="object-system-requirements"></a>Object Model Requirements</h2></div></div><div></div></div><div class="authorblurb"><p>By Pete Su</p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="object-system-requirements-"></a>I. Introduction</h3></div></div><div></div></div><p>A major goal in OpenACS 4 is to unify and normalize many of the core services @@ -85,7 +85,7 @@ between data.</p><p><span class="strong">Design Note:</span> While this doesn't really belong in a requirements document, the fact that we are constrained to using relational databases means that certain constraints on the overall design of the object -data model exist, which you can read about in <a href="object-system-design.html#object-system-design-summary">Summary and Design Considerations</a>.</p><p><span class="strong">Modifiable Data Models</span></p><p>Another recurring applications problem is how to store a modifiable data +data model exist, which you can read about in ???.</p><p><span class="strong">Modifiable Data Models</span></p><p>Another recurring applications problem is how to store a modifiable data model, or how to store information that may change extensively between releases or in different client installations. Furthermore, we want to avoid changes to an application's database queries in the face of any custom @@ -126,7 +126,7 @@ that store metadata on application objects. The object type system supports subtyping with inheritance, so new object types can be defined in terms of existing object types.</p><p>The OM data model forms the main part of the OpenACS 4 Kernel data model. The -other parts of the Kernel data model include:</p><div class="itemizedlist"><ul type="disc"><li><p>Parties and Groups</p></li><li><p>Permissions</p></li></ul></div><p>Each of these is documented elsewhere at length.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="object-system-requirements-use-cases"></a>Use-cases and User-scenarios</h3></div></div><div></div></div><p>(Pending as of 8/27/00)</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="object-system-requirements-links"></a>Related Links</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p><a href="object-system-design.html">OpenACS 4 Object Model Design</a></p></li><li><p><a href="objects.html">OpenACS Data Models and the Object System</a></p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="object-system-requirements-data-model"></a>Requirements: Data Model</h3></div></div><div></div></div><p>The data model for the object system provides support for the following +other parts of the Kernel data model include:</p><div class="itemizedlist"><ul type="disc"><li><p>Parties and Groups</p></li><li><p>Permissions</p></li></ul></div><p>Each of these is documented elsewhere at length.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="object-system-requirements-use-cases"></a>Use-cases and User-scenarios</h3></div></div><div></div></div><p>(Pending as of 8/27/00)</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="object-system-requirements-links"></a>Related Links</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>???</p></li><li><p><a href="objects.html">OpenACS Data Models and the Object System</a></p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="object-system-requirements-data-model"></a>Requirements: Data Model</h3></div></div><div></div></div><p>The data model for the object system provides support for the following kinds of schema patterns that are used by many existing OpenACS modules:</p><div class="variablelist"><dl><dt><span class="term"><span class="strong">10.0 Object Identification and Storage</span></span></dt><dd><p>Object identification is a central mechanism in the new metadata system. The fact that every object has a known unique identifier means that the core can deal with all objects in a generic way. Thus the only action required of @@ -202,7 +202,7 @@ developers to represent a hierarchy of object <span class="emphasis"><em>contexts</em></span>. These contexts are used as the basis for the permissions system. In general, if an object has no explicit permissions attached to it, then it inherits -permissions from its context.</p><p>The context data model also forms the basis of the <a href="">subsites system</a>, and is +permissions from its context.</p><p>The context data model also forms the basis of the <a href="subsites-requirements.html" title="Subsites Requirements">subsites system</a>, and is a basic part of the <a href="permissions-requirements.html" title="Permissions Requirements">permissions system</a>, described in separate documents.</p><p>The context data model should provide the following facilities:</p><p><span class="strong">50.10 Unique ID</span></p><p>Every context should have a unique ID in the system.</p><p><span class="strong">50.20 Tree Structure</span></p><p>The data model should support a tree structured organization of contexts. That is, contexts can be logically "contained" within other @@ -264,4 +264,4 @@ this integrate with application level SQL queries?</p></dd></dl></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="object-system-requirements-history"></a>Revision History</h3></div></div><div></div></div><div class="informaltable"><table cellspacing="0" border="1"><colgroup><col><col><col><col></colgroup><tbody><tr><td><span class="strong">Document Revision #</span></td><td><span class="strong">Action Taken, Notes</span></td><td><span class="strong">When?</span></td><td><span class="strong">By Whom?</span></td></tr><tr><td>0.1</td><td>Creation</td><td>08/10/2000</td><td>Bryan Quinn</td></tr><tr><td>0.2</td><td>Major re-write</td><td>08/11/2000</td><td>Pete Su</td></tr><tr><td>0.3</td><td>Draft completed after initial reviews</td><td>08/22/2000</td><td>Pete Su</td></tr><tr><td>0.4</td><td>Edited, updated to conform to requirements template, pending freeze</td><td>08/23/2000</td><td>Kai Wu</td></tr><tr><td> </td><td>Final edits before freeze</td><td>08/24/2000</td><td>Pete Su</td></tr><tr><td>0.5</td><td>Edited for consistency</td><td>08/27/2000</td><td>Kai Wu</td></tr><tr><td>0.6</td><td>Put Object ID stuff first, because it makes more sense</td><td>08/28/2000</td><td>Pete Su</td></tr><tr><td>0.7</td><td>Added requirement that knowledge-level objects must be moveable between databases.</td><td>08/29/2000</td><td>Richard Li</td></tr><tr><td>0.8</td><td>Rewrote intro to match language and concepts in the design document. Also cleaned up usage a bit in the requirements section. Added short vague -requirements on relation types.</td><td>09/06/2000</td><td>Pete Su</td></tr><tr><td>0.9</td><td>Edited for ACS 4 Beta release.</td><td>09/30/2000</td><td>Kai Wu</td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="kernel-overview.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="object-system-design.html">Next</a></td></tr><tr><td width="40%" align="left">Overview </td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right"> Object Model Design</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/object-system-requirements.html#comments">View comments on this page at openacs.org</a></center></body></html> +requirements on relation types.</td><td>09/06/2000</td><td>Pete Su</td></tr><tr><td>0.9</td><td>Edited for ACS 4 Beta release.</td><td>09/30/2000</td><td>Kai Wu</td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="kernel-overview.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="permissions-requirements.html">Next</a></td></tr><tr><td width="40%" align="left">Overview </td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right"> Permissions Requirements</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/object-system-requirements.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/objects.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/objects.html,v diff -u -r1.48 -r1.49 --- openacs-4/packages/acs-core-docs/www/objects.html 13 Sep 2009 23:54:40 -0000 1.48 +++ openacs-4/packages/acs-core-docs/www/objects.html 17 Oct 2010 21:06:08 -0000 1.49 @@ -1,9 +1,9 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenACS Data Models and the Object System</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="dev-guide.html" title="Chapter 10. Development Reference"><link rel="previous" href="packages.html" title="OpenACS Packages"><link rel="next" href="request-processor.html" title="The Request Processor"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="packages.html">Prev</a> </td><th width="60%" align="center">Chapter 10. Development Reference</th><td width="20%" align="right"> <a accesskey="n" href="request-processor.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="objects"></a>OpenACS Data Models and the Object System</h2></div></div><div></div></div><div class="authorblurb"><p>By Pete Su</p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenACS Data Models and the Object System</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="dev-guide.html" title="Chapter 11. Development Reference"><link rel="previous" href="packages.html" title="OpenACS Packages"><link rel="next" href="request-processor.html" title="The Request Processor"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="packages.html">Prev</a> </td><th width="60%" align="center">Chapter 11. Development Reference</th><td width="20%" align="right"> <a accesskey="n" href="request-processor.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="objects"></a>OpenACS Data Models and the Object System</h2></div></div><div></div></div><div class="authorblurb"><p>By Pete Su</p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="objects-overview"></a>Overview</h3></div></div><div></div></div><p> -Developing data models in OpenACS 5.5.0 is much like developing data models +Developing data models in OpenACS 5.6.0 is much like developing data models for OpenACS 3, save for the implementation. As usual, you need to examine how to model the information that the application must store and manipulate, and define a suitable set of SQL tables. In our Notes @@ -79,7 +79,7 @@ Fire up your text editor and open the <tt class="computeroutput">ROOT/packages/notes/sql/oracle/notes-create.sql</tt> (<tt class="computeroutput">ROOT/packages/notes/sql/postgresql/notes-create.sql</tt> for the PG version) file created when we <a href="packages.html" title="OpenACS Packages">created the package</a>. Then, do the following: -</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2942837"></a>Describe the new type to the type system</h4></div></div><div></div></div><p> +</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2968380"></a>Describe the new type to the type system</h4></div></div><div></div></div><p> First, add an entry to the <tt class="computeroutput">acs_object_types</tt> table with the following PL/SQL call: </p><pre class="programlisting"> begin @@ -139,7 +139,7 @@ because the new type <tt class="computeroutput">note</tt> is a subtype of <tt class="computeroutput">acs_object</tt>, it will inherit these attributes, so there is no need for us to define them. -</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2984954"></a>Define a table in which to store your objects</h4></div></div><div></div></div><p> +</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2929862"></a>Define a table in which to store your objects</h4></div></div><div></div></div><p> The next thing we do is make a small modification to the data model to reflect the fact that each row in the <tt class="computeroutput">notes</tt> table represents something that is not only an object of type @@ -164,7 +164,7 @@ use the <tt class="computeroutput">acs_objects</tt> table to find objects will transparently find any objects that are instances of any subtype of <tt class="computeroutput">acs_objects</tt>. -</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2956199"></a>Define a package for type specific procedures</h4></div></div><div></div></div><p> +</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2908461"></a>Define a package for type specific procedures</h4></div></div><div></div></div><p> The next step is to define a PL/SQL package for your new type, and write some basic procedures to create and delete objects. Here is a package definition for our new type: @@ -212,7 +212,7 @@ object OBJ was "read only", then any other object that used OBJ as its context would also be "read only" by default. We'll talk about this more later. -</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2941051"></a>Define a package body for type specific procedures</h4></div></div><div></div></div><p> +</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2904538"></a>Define a package body for type specific procedures</h4></div></div><div></div></div><p> The PL/SQL package body contains the implementations of the procedures defined above. The only subtle thing going on here is that we must use <tt class="computeroutput">acs_object.new</tt> to insert a row into @@ -315,7 +315,7 @@ models that are meant to be integrated with the OpenACS object system. </p><p> -There are two basic rules you should follow when designing OpenACS 5.5.0 data +There are two basic rules you should follow when designing OpenACS 5.6.0 data models: @@ -370,7 +370,7 @@ requires a good amount of thought at design time even for simple applications. </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="objects-summary"></a>Summary</h3></div></div><div></div></div><p> -Hooking into the OpenACS 5.5.0 object system brings the application developer +Hooking into the OpenACS 5.6.0 object system brings the application developer numerous benefits, and doing it involves only four easy steps: Index: openacs-4/packages/acs-core-docs/www/openacs-unpack.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/openacs-unpack.html,v diff -u -r1.25 -r1.26 --- openacs-4/packages/acs-core-docs/www/openacs-unpack.html 13 Sep 2009 23:54:40 -0000 1.25 +++ openacs-4/packages/acs-core-docs/www/openacs-unpack.html 17 Oct 2010 21:06:08 -0000 1.26 @@ -2,17 +2,17 @@ <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Unpack the OpenACS tarball</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="install-more-software.html" title="Appendix B. Install additional supporting software"><link rel="previous" href="install-more-software.html" title="Appendix B. Install additional supporting software"><link rel="next" href="install-cvs.html" title="Initialize CVS (OPTIONAL)"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="install-more-software.html">Prev</a> </td><th width="60%" align="center">Appendix B. Install additional supporting software</th><td width="20%" align="right"> <a accesskey="n" href="install-cvs.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="openacs-unpack"></a>Unpack the OpenACS tarball</h2></div></div><div></div></div><p>The OpenACS tarball contains sample configuration files for some of the packages listed below. In order to access those files, unpack the tarball now.</p><pre class="screen">[root root]# <b class="userinput"><tt>cd /tmp</tt></b> -[root tmp]# <b class="userinput"><tt>tar xzf openacs-5.5.0.tgz</tt></b> +[root tmp]# <b class="userinput"><tt>tar xzf openacs-5.6.0.tgz</tt></b> <span class="action"><span class="action">cd /tmp -tar xzf openacs-5.5.0.tgz</span></span></pre><p>If you are installing from a different method and just need the configuration files, you can instead get them from CVS:</p><pre class="screen">[root root]# <b class="userinput"><tt>cd /tmp</tt></b> +tar xzf openacs-5.6.0.tgz</span></span></pre><p>If you are installing from a different method and just need the configuration files, you can instead get them from CVS:</p><pre class="screen">[root root]# <b class="userinput"><tt>cd /tmp</tt></b> [root tmp]# <b class="userinput"><tt>cvs -d :pserver:anonymous@cvs.openacs.org:/cvsroot co openacs-4/packages/acs-core-docs/www/files/</tt></b> cvs checkout: warning: failed to open /root/.cvspass for reading: No such file or directory cvs server: Updating openacs-4/packages/acs-core-docs/www/files U openacs-4/packages/acs-core-docs/www/files/README.TXT <span class="emphasis"><em>(many lines omitted)</em></span> U openacs-4/packages/acs-core-docs/www/files/template-ini.ini U openacs-4/packages/acs-core-docs/www/files/winnsd.txt -[root tmp]# <b class="userinput"><tt>mv openacs-4 openacs-5.5.0</tt></b> +[root tmp]# <b class="userinput"><tt>mv openacs-4 openacs-5.6.0</tt></b> <span class="action"><span class="action">cd /tmp cvs -d :pserver:anonymous@cvs.openacs.org:/cvsroot co openacs-4/packages/acs-core-docs/www/files/ mv openacs-4 openacs-5.0.0a4</span></span></pre></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="install-more-software.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="install-cvs.html">Next</a></td></tr><tr><td width="40%" align="left">Appendix B. Install additional supporting software </td><td width="20%" align="center"><a accesskey="u" href="install-more-software.html">Up</a></td><td width="40%" align="right"> Initialize CVS (OPTIONAL)</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/openacs-unpack.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/openacs.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/openacs.html,v diff -u -r1.47 -r1.48 --- openacs-4/packages/acs-core-docs/www/openacs.html 13 Sep 2009 23:54:40 -0000 1.47 +++ openacs-4/packages/acs-core-docs/www/openacs.html 17 Oct 2010 21:06:08 -0000 1.48 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Install OpenACS 5.5.0</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="complete-install.html" title="Chapter 3. Complete Installation"><link rel="previous" href="aolserver4.html" title="Install AOLserver 4"><link rel="next" href="win2k-installation.html" title="OpenACS Installation Guide for Windows2000"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="aolserver4.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Complete Installation</th><td width="20%" align="right"> <a accesskey="n" href="win2k-installation.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="openacs"></a>Install OpenACS 5.5.0</h2></div></div><div></div></div><div class="authorblurb"><p>by <a href="mailto:vinod@kurup.com" target="_top">Vinod Kurup</a></p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Install OpenACS 5.6.0</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="complete-install.html" title="Chapter 3. Complete Installation"><link rel="previous" href="aolserver4.html" title="Install AOLserver 4"><link rel="next" href="win2k-installation.html" title="OpenACS Installation Guide for Windows2000"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="aolserver4.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Complete Installation</th><td width="20%" align="right"> <a accesskey="n" href="win2k-installation.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="openacs"></a>Install OpenACS 5.6.0</h2></div></div><div></div></div><div class="authorblurb"><p>by <a href="mailto:vinod@kurup.com" target="_top">Vinod Kurup</a></p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="install-aolserver-user-accounts"></a>Set up a user account for each site.</h3></div></div><div></div></div><p> @@ -87,8 +87,8 @@ <tt class="computeroutput">/var/tmp</tt> and proceed:</p><div class="orderedlist"><ol type="1"><li><p><a name="install-openacs-download"></a>Unpack the OpenACS tarball and rename it to <tt class="computeroutput">$OPENACS_SERVICE_NAME</tt>. Secure the directory so that only the owner can access it. Check the permissions by listing the directory.</p><p>FreeBSD note: Change the period in <b class="userinput"><tt>chown -R $OPENACS_SERVICE_NAME.$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME</tt></b> to a colon: <b class="userinput"><tt>chown -R $OPENACS_SERVICE_NAME:$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME</tt></b> </p><pre class="screen">[root root]# <b class="userinput"><tt>su - <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></tt></b> [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <b class="userinput"><tt>cd /var/lib/aolserver</tt></b> -[$OPENACS_SERVICE_NAME aolserver]$ <b class="userinput"><tt>tar xzf /var/tmp/openacs-5.5.0.tgz</tt></b> -[$OPENACS_SERVICE_NAME aolserver]$ <b class="userinput"><tt>mv openacs-5.5.0 <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></tt></b> +[$OPENACS_SERVICE_NAME aolserver]$ <b class="userinput"><tt>tar xzf /var/tmp/openacs-5.6.0.tgz</tt></b> +[$OPENACS_SERVICE_NAME aolserver]$ <b class="userinput"><tt>mv openacs-5.6.0 <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></tt></b> [$OPENACS_SERVICE_NAME aolserver]$ <b class="userinput"><tt>chmod -R 775 <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></tt></b> [$OPENACS_SERVICE_NAME aolserver]$ <b class="userinput"><tt>chown -R <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>.<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span> <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></tt></b> [$OPENACS_SERVICE_NAME aolserver]$ <b class="userinput"><tt>ls -al</tt></b> @@ -101,11 +101,11 @@ [root root]# <span class="action"><span class="action">su - $OPENACS_SERVICE_NAME cd /var/lib/aolserver -tar xzf /var/tmp/openacs-5.5.0.tgz -mv openacs-5.5.0 $OPENACS_SERVICE_NAME +tar xzf /var/tmp/openacs-5.6.0.tgz +mv openacs-5.6.0 $OPENACS_SERVICE_NAME chmod -R 755 $OPENACS_SERVICE_NAME chown -R $OPENACS_SERVICE_NAME.$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME -exit</span></span></pre></li><li><p><a href="cvs-tips.html#cvs-service-import">Add the Service to CVS</a> (OPTIONAL)</p></li><li><p>Prepare the database</p><div class="itemizedlist"><ul type="disc"><li><p><a name="install-openacs-prepare-oracle"></a><b>Prepare Oracle for OpenACS. </b>If you won't be using Oracle, skip to <a href="openacs.html#install-openacs-prepare-postgres" title="Prepare PostgreSQL for an OpenACS Service">Prepare PostgreSQL for an OpenACS Service</a></p><p> +exit</span></span></pre></li><li><p><a href="">Add the Service to CVS</a> (OPTIONAL)</p></li><li><p>Prepare the database</p><div class="itemizedlist"><ul type="disc"><li><p><a name="install-openacs-prepare-oracle"></a><b>Prepare Oracle for OpenACS. </b>If you won't be using Oracle, skip to <a href="openacs.html#install-openacs-prepare-postgres" title="Prepare PostgreSQL for an OpenACS Service">Prepare PostgreSQL for an OpenACS Service</a></p><p> You should be sure that your user account (e.g. <tt class="computeroutput"><span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></tt>) is in the <tt class="computeroutput">dba</tt> group. @@ -238,7 +238,7 @@ CREATE DATABASE [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <span class="action"><span class="action">su - <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span> -/usr/local/pgsql/bin/createdb -E UNICODE <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></span></span></pre></li><li><p>Automate daily database Vacuuming. This is a process which cleans out discarded data from the database. A quick way to automate vacuuming is to edit the cron file for the database user. Recommended: <tt class="computeroutput">VACUUM ANALYZE</tt> every hour and <tt class="computeroutput">VACUUM FULL ANALYZE</tt> every day.</p><a class="indexterm" name="id2972030"></a><pre class="screen">[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <b class="userinput"><tt>export EDITOR=emacs;crontab -e</tt></b></pre><p>Add these lines to the file. The vacuum command cleans up temporary structures within a PostGreSQL database, and can improve performance. We vacuum gently every hour and completely every day. The numbers and stars at the beginning are cron columns that specify when the program should be run - in this case, whenever the minute is 0 and the hour is 1, i.e., 1:00 am every day, and every (*) day of month, month, and day of week. Type <tt class="computeroutput">man 5 crontab</tt> for more information.</p><pre class="programlisting">0 1-23 * * * /usr/local/pgsql/bin/vacuumdb --analyze <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span> +/usr/local/pgsql/bin/createdb -E UNICODE <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></span></span></pre></li><li><p>Automate daily database Vacuuming. This is a process which cleans out discarded data from the database. A quick way to automate vacuuming is to edit the cron file for the database user. Recommended: <tt class="computeroutput">VACUUM ANALYZE</tt> every hour and <tt class="computeroutput">VACUUM FULL ANALYZE</tt> every day.</p><a class="indexterm" name="id2914330"></a><pre class="screen">[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <b class="userinput"><tt>export EDITOR=emacs;crontab -e</tt></b></pre><p>Add these lines to the file. The vacuum command cleans up temporary structures within a PostGreSQL database, and can improve performance. We vacuum gently every hour and completely every day. The numbers and stars at the beginning are cron columns that specify when the program should be run - in this case, whenever the minute is 0 and the hour is 1, i.e., 1:00 am every day, and every (*) day of month, month, and day of week. Type <tt class="computeroutput">man 5 crontab</tt> for more information.</p><pre class="programlisting">0 1-23 * * * /usr/local/pgsql/bin/vacuumdb --analyze <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span> 0 0 * * * /usr/local/pgsql/bin/vacuumdb --full --analyze <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></pre><p>Depending on your distribution, you may receive email when the crontab items are executed. If you don't want to receive email for those crontab items, @@ -251,7 +251,7 @@ need to configure a virtual server. The Reference Platform uses a configuration file included in the OpenACS tarball, <tt class="computeroutput">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/etc/config.tcl</tt>. - Open it in an editor to adjust the parameters.</p><a class="indexterm" name="id2976800"></a><pre class="screen">[root root]# <b class="userinput"><tt>su - <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></tt></b> + Open it in an editor to adjust the parameters.</p><a class="indexterm" name="id2976774"></a><pre class="screen">[root root]# <b class="userinput"><tt>su - <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></tt></b> [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <b class="userinput"><tt>cd /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/etc</tt></b> [$OPENACS_SERVICE_NAME etc]$ <b class="userinput"><tt>emacs config.tcl</tt></b> </pre><p> @@ -294,7 +294,7 @@ [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ [08/Mar/2003:18:13:29][32131.8192][-main-] Notice: nsd.tcl: starting to read config file... [08/Mar/2003:18:13:29][32131.8192][-main-] Notice: nsd.tcl: finished reading config file.</pre></li><li><p><a name="connect-to-aolserver"></a> Attempt to connect to the service from a web browser. You should specify a URL like: <tt class="computeroutput">http://<span class="replaceable"><span class="replaceable">yourserver.test</span></span>:8000</tt></p><p> - You should see a page that looks like <a href="files/openacs-start.html" target="_top">this</a>. If you <a href="cvs-tips.html#cvs-service-import">imported your files into + You should see a page that looks like <a href="files/openacs-start.html" target="_top">this</a>. If you <a href="">imported your files into cvs</a>, now that you know it worked you can erase the temp directory with <tt class="computeroutput">rm -rf /var/lib/aolserver/$OPENACS_SERVICE_NAME.orig</tt>. </p><p> @@ -312,7 +312,7 @@ AOLserver keepalive</a> (OPTIONAL)</p></li></ol></div></li><li><a name="install-openacs-using-installer"></a><p><b>Configure a Service with the OpenACS Installer. </b> Now that you've got AOLserver up and running, let's install OpenACS - 5.5.0. + 5.6.0. </p><div class="itemizedlist"><ul type="disc"><li><p> You should see a page from the webserver titled <tt class="computeroutput">OpenACS Installation: @@ -368,14 +368,14 @@ Give the server a few minutes to start up. Then reload the final page above. You should see the front page, with an area to login near the upper right. Congratulations, OpenACS - 5.5.0 is now up and running! - </p></li></ul></div></li></ol></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="install-from-cvs"></a>Installation Option 3: Install from CVS</h3></div></div><div></div></div><p>If you want to track fresh code developments inbetween releases, or you are an OpenACS core developer, you may want to install from CVS. This is identical to Option 2 except that you get the files from CVS instead of the tarball: <a href="http://openacs.org/4/checkout" target="_top">CVS Checkout Instructions</a>. So, instead of <tt class="computeroutput"><b class="userinput"><tt>tar xzf /var/tmp/openacs-5.5.0.tgz</tt></b></tt>, <tt class="computeroutput"><b class="userinput"><tt>cvs -z3 -d :pserver:anonymous@openacs.org:/cvsroot co acs-core</tt></b></tt>.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="install-next-steps"></a>Next Steps</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Use daemontools <tt class="computeroutput">supervise</tt> and <tt class="computeroutput">svc</tt>, or <tt class="computeroutput">inittab</tt>, to <a href="install-openacs-inittab.html" title="AOLserver keepalive with inittab">automate server startup and shutdown.</a></p></li><li><p>Install Full Text Search (OPTIONAL). If you have <a href="install-full-text-search-openfts.html#install-openfts" title="Install OpenFTS module">installed OpenFTS</a> and enabled + 5.6.0 is now up and running! + </p></li></ul></div></li></ol></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="install-from-cvs"></a>Installation Option 3: Install from CVS</h3></div></div><div></div></div><p>If you want to track fresh code developments inbetween releases, or you are an OpenACS core developer, you may want to install from CVS. This is identical to Option 2 except that you get the files from CVS instead of the tarball: <a href="http://openacs.org/4/checkout" target="_top">CVS Checkout Instructions</a>. So, instead of <tt class="computeroutput"><b class="userinput"><tt>tar xzf /var/tmp/openacs-5.6.0.tgz</tt></b></tt>, <tt class="computeroutput"><b class="userinput"><tt>cvs -z3 -d :pserver:anonymous@openacs.org:/cvsroot co acs-core</tt></b></tt>.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="install-next-steps"></a>Next Steps</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Use daemontools <tt class="computeroutput">supervise</tt> and <tt class="computeroutput">svc</tt>, or <tt class="computeroutput">inittab</tt>, to <a href="install-openacs-inittab.html" title="AOLserver keepalive with inittab">automate server startup and shutdown.</a></p></li><li><p>Install Full Text Search (OPTIONAL). If you have <a href="install-full-text-search-openfts.html#install-openfts" title="Install OpenFTS module">installed OpenFTS</a> and enabled OpenFTS, you can now <a href="install-full-text-search-tsearch2.html#install-fts-engine" title="Install Full Text Search Engine Package in OpenACS">install</a> the OpenFTS Driver package and - Full Text Search Engine package in the OpenACS service.</p></li><li><p>This is a good time to make a <a href="">backup</a> of your service. If this is a - production site, you should set up <a href="">automatic nightly backups</a>.</p></li><li><p>If you want traffic reports, <a href="analog-setup.html" title="Set up Log Analysis Reports">set up analog</a> or another log + Full Text Search Engine package in the OpenACS service.</p></li><li><p>This is a good time to make a <a href="snapshot-backup.html" title="Manual backup and recovery">backup</a> of your service. If this is a + production site, you should set up <a href="automated-backup.html" title="Automated Backup">automatic nightly backups</a>.</p></li><li><p>If you want traffic reports, <a href="analog-setup.html" title="Set up Log Analysis Reports">set up analog</a> or another log processing program.</p></li><li><p>Follow the instruction on the home page to change the appearance of your service or add more - packages. (<a href="configuring-new-site.html" title="Chapter 4. Configuring a new OpenACS Site">more information</a>)</p></li><li><p>Proceed to the <a href="tutorial.html" title="Chapter 8. Development Tutorial">tutorial</a> to learn how to develop your own packages.</p></li><li><p>Set up database environment variables for the site + packages. (<a href="configuring-new-site.html" title="Chapter 4. Configuring a new OpenACS Site">more information</a>)</p></li><li><p>Proceed to the <a href="tutorial.html" title="Chapter 9. Development Tutorial">tutorial</a> to learn how to develop your own packages.</p></li><li><p>Set up database environment variables for the site user. Depending on how you installed Oracle or PostGreSQL, these settings may be necessary for working with the database while logged in as the service user. They do not directly affect the service's run-time connection with the @@ -407,4 +407,4 @@ LD_LIBRARY_PATH=/ora8/m01/app/oracle/product/8.1.7/lib:/lib:/usr/lib ORACLE_SID=ora8 ORACLE_TERM=vt100 -ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data</pre></li></ul></div></li><li><p>Test your <a href="">backup and recovery</a> procedure.</p></li><li><p>Set up <a href="uptime.html" title="External uptime validation">Section , “External uptime validation”</a>.</p></li></ul></div><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="aolserver4.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="win2k-installation.html">Next</a></td></tr><tr><td width="40%" align="left">Install AOLserver 4 </td><td width="20%" align="center"><a accesskey="u" href="complete-install.html">Up</a></td><td width="40%" align="right"> OpenACS Installation Guide for Windows2000</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/openacs.html#comments">View comments on this page at openacs.org</a></center></body></html> +ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data</pre></li></ul></div></li><li><p>Test your <a href="backup-recovery.html" title="Chapter 8. Backup and Recovery">backup and recovery</a> procedure.</p></li><li><p>Set up <a href="uptime.html" title="External uptime validation">Section , “External uptime validation”</a>.</p></li></ul></div><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="aolserver4.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="win2k-installation.html">Next</a></td></tr><tr><td width="40%" align="left">Install AOLserver 4 </td><td width="20%" align="center"><a accesskey="u" href="complete-install.html">Up</a></td><td width="40%" align="right"> OpenACS Installation Guide for Windows2000</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/openacs.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/oracle.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/oracle.html,v diff -u -r1.45 -r1.46 --- openacs-4/packages/acs-core-docs/www/oracle.html 13 Sep 2009 23:54:40 -0000 1.45 +++ openacs-4/packages/acs-core-docs/www/oracle.html 17 Oct 2010 21:06:08 -0000 1.46 @@ -5,7 +5,7 @@ </div><p> If you are installing PostGreSQL instead of Oracle, skip this section. </p><p> - OpenACS 5.5.0 will install with Oracle 9i but has not been extensively tested so may still have bugs or tuning issues. See <a href="http://www.piskorski.com/docs/oracle.html" target="_top">Andrew Piskorski's Oracle 9i notes</a> for guidance. + OpenACS 5.6.0 will install with Oracle 9i but has not been extensively tested so may still have bugs or tuning issues. See <a href="http://www.piskorski.com/docs/oracle.html" target="_top">Andrew Piskorski's Oracle 9i notes</a> for guidance. </p><p> This installation guide attempts to present all of the information necessary to complete an OpenACS installation. We try hard to make all of the steps possible in one pass, rather than having a step which amounts to "go away and develop a profound understanding of software X and then come back and, in 99% of all cases, type these two lines." The exception to our rule is Oracle production systems. This page describes a set of steps to get a working Oracle development server, but it is <span class="strong">unsuitable for production systems</span>. If you will be using OpenACS on Oracle in a production environment, you will experience many problems unless you develop a basic understanding of Oracle which is outside the scope of this document. T </p><p> Index: openacs-4/packages/acs-core-docs/www/packages.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/packages.html,v diff -u -r1.47 -r1.48 --- openacs-4/packages/acs-core-docs/www/packages.html 13 Sep 2009 23:54:40 -0000 1.47 +++ openacs-4/packages/acs-core-docs/www/packages.html 17 Oct 2010 21:06:08 -0000 1.48 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenACS Packages</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="dev-guide.html" title="Chapter 10. Development Reference"><link rel="previous" href="dev-guide.html" title="Chapter 10. Development Reference"><link rel="next" href="objects.html" title="OpenACS Data Models and the Object System"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="dev-guide.html">Prev</a> </td><th width="60%" align="center">Chapter 10. Development Reference</th><td width="20%" align="right"> <a accesskey="n" href="objects.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="packages"></a>OpenACS Packages</h2></div></div><div></div></div><div class="authorblurb"><p>By Pete Su and Bryan Quinn</p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenACS Packages</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="dev-guide.html" title="Chapter 11. Development Reference"><link rel="previous" href="dev-guide.html" title="Chapter 11. Development Reference"><link rel="next" href="objects.html" title="OpenACS Data Models and the Object System"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="dev-guide.html">Prev</a> </td><th width="60%" align="center">Chapter 11. Development Reference</th><td width="20%" align="right"> <a accesskey="n" href="objects.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="packages"></a>OpenACS Packages</h2></div></div><div></div></div><div class="authorblurb"><p>By Pete Su and Bryan Quinn</p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="packages-overview"></a>Overview</h3></div></div><div></div></div><p> @@ -13,7 +13,7 @@ </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="server-file-layout"></a>Server file layout</h3></div></div><div></div></div><p> Here is how an OpenACS 5 server is laid out starting from the Server root (ROOT): - </p><div class="figure"><a name="id3068817"></a><p class="title"><b>Figure 10.1. Server file layout diagram</b></p><pre class="programlisting"> + </p><div class="figure"><a name="id2945815"></a><p class="title"><b>Figure 11.1. Server file layout diagram</b></p><pre class="programlisting"> ROOT/ bin/ Various executables and scripts for server maintanence. @@ -51,7 +51,7 @@ <a class="indexterm" name="baby"></a> To illustrate the general structure of a package, let's see what the package for the "notes" application should look like. - </p><div class="figure"><a name="id3068912"></a><p class="title"><b>Figure 10.2. Package file layout diagram</b></p><pre class="programlisting"> + </p><div class="figure"><a name="id2945910"></a><p class="title"><b>Figure 11.2. Package file layout diagram</b></p><pre class="programlisting"> ROOT/ +-- packages/ APM Root | @@ -124,7 +124,7 @@ directories. This makes it suitable for storing icons, css files, javascript, and other static content which can be treated this way. - </p><div class="table"><a name="id2926271"></a><p class="title"><b>Table 10.1. Package files</b></p><table summary="Package files" cellspacing="0" border="1"><colgroup><col><col><col></colgroup><thead><tr><th>File Type</th><th>Its Use</th><th>Naming Convention</th></tr></thead><tbody><tr><td>Package Specification File</td><td>The package specification file is an XML file generated and + </p><div class="table"><a name="id2915266"></a><p class="title"><b>Table 11.1. Package files</b></p><table summary="Package files" cellspacing="0" border="1"><colgroup><col><col><col></colgroup><thead><tr><th>File Type</th><th>Its Use</th><th>Naming Convention</th></tr></thead><tbody><tr><td>Package Specification File</td><td>The package specification file is an XML file generated and maintained by the OpenACS Package Manager (APM). It specifies information about the package including its parameters and its files.</td><td><tt class="computeroutput">notes.info</tt></td></tr><tr><td>Data Model Creation Script</td><td> @@ -333,7 +333,7 @@ this point, you should add your package files to your CVS repository. I'll assume that you have set up your development repository according to the standards described in - <a href="cvs-tips.html#cvs-service-import">this appendix</a>. If so, then you just do this: + <a href="">this appendix</a>. If so, then you just do this: </p><pre class="programlisting">% cd ROOT/packages % cvs add notes % cd notes @@ -345,7 +345,7 @@ % cvs commit -m "add new package for notes" </pre></li><li><p> Now you can start developing the package. In addition to writing code, - you should also consider the tasks outlined in the <a href="">package development tutorial</a>. + you should also consider the tasks outlined in the <a href="tutorial-newpackage.html" title="Creating an Application Package">package development tutorial</a>. </p></li></ol></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="packages-subsites"></a>The Site Map and Package Instances</h3></div></div><div></div></div><p> At this point, you are probably excited to see your new package in action. But, we haven't added any user visible pages yet. By @@ -373,7 +373,7 @@ of many indedendent applications that actually run on a single shared code base. The <a href="request-processor.html" title="The Request Processor">request-processor</a> document shows you how OpenACS figures out which instance of your application was - requested by the user at any given time. The <a href="">page development</a> tutorial shows you how to use this + requested by the user at any given time. The <a href="subsites.html" title="Writing OpenACS Application Pages">page development</a> tutorial shows you how to use this information in your user interface. </p><p> In order to make the new <tt class="computeroutput">notes</tt> application visible to @@ -395,7 +395,7 @@ yet written Notes application at various places in the site. In a later document, we'll see how to write your application so that the code can detect from what URL it was invoked. This is the key - to supporting <a href="">subsites</a>. + to supporting <a href="subsites.html" title="Writing OpenACS Application Pages">subsites</a>. </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="packages-summary"></a>Summary</h3></div></div><div></div></div><p> The APM performs the following tasks in an OpenACS site: </p><div class="itemizedlist"><ul type="disc"><li><p> @@ -411,4 +411,4 @@ </p></li><li><p> Writes out package distribution files for other people to download and install. We'll cover this later. - </p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="packages-add-reading"></a>Additional Reading</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p><a href="apm-design.html">Package Manager Design</a></p></li><li><p><a href="apm-requirements.html">Package Manager Requirements</a></p></li><li><p><a href="">package development tutorial</a></p></li></ul></div><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="dev-guide.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="objects.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter 10. Development Reference </td><td width="20%" align="center"><a accesskey="u" href="dev-guide.html">Up</a></td><td width="40%" align="right"> OpenACS Data Models and the Object System</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/packages.html#comments">View comments on this page at openacs.org</a></center></body></html> + </p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="packages-add-reading"></a>Additional Reading</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p><a href="apm-design.html">Package Manager Design</a></p></li><li><p><a href="apm-requirements.html">Package Manager Requirements</a></p></li><li><p><a href="tutorial-newpackage.html" title="Creating an Application Package">package development tutorial</a></p></li></ul></div><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="dev-guide.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="objects.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter 11. Development Reference </td><td width="20%" align="center"><a accesskey="u" href="dev-guide.html">Up</a></td><td width="40%" align="right"> OpenACS Data Models and the Object System</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/packages.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/parties.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/parties.html,v diff -u -r1.47 -r1.48 --- openacs-4/packages/acs-core-docs/www/parties.html 13 Sep 2009 23:54:40 -0000 1.47 +++ openacs-4/packages/acs-core-docs/www/parties.html 17 Oct 2010 21:06:08 -0000 1.48 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Parties in OpenACS</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="dev-guide.html" title="Chapter 10. Development Reference"><link rel="previous" href="permissions.html" title="Groups, Context, Permissions"><link rel="next" href="permissions-tediously-explained.html" title="OpenACS Permissions Tediously Explained"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="permissions.html">Prev</a> </td><th width="60%" align="center">Chapter 10. Development Reference</th><td width="20%" align="right"> <a accesskey="n" href="permissions-tediously-explained.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="parties"></a>Parties in OpenACS</h2></div></div><div></div></div><div class="authorblurb"><p>By <a href="http://planitia.org" target="_top">Rafael H. Schloming</a></p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Parties in OpenACS</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="dev-guide.html" title="Chapter 11. Development Reference"><link rel="previous" href="subsites.html" title="Writing OpenACS Application Pages"><link rel="next" href="permissions-tediously-explained.html" title="OpenACS Permissions Tediously Explained"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="subsites.html">Prev</a> </td><th width="60%" align="center">Chapter 11. Development Reference</th><td width="20%" align="right"> <a accesskey="n" href="permissions-tediously-explained.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="parties"></a>Parties in OpenACS</h2></div></div><div></div></div><div class="authorblurb"><p>By <a href="http://planitia.org" target="_top">Rafael H. Schloming</a></p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="parties-intro"></a>Introduction</h3></div></div><div></div></div><p>While many applications must deal with individuals and many applications @@ -345,4 +345,4 @@ single integer primary key in what could be thought of as a pure relation. Because a membership relation is an ordinary acs object with <a href="object-identity.html" target="_top">object identity</a>, it is as easy to extend the membership relation to store extra information as it is to extend the users -table or the groups table.</p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="permissions.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="permissions-tediously-explained.html">Next</a></td></tr><tr><td width="40%" align="left">Groups, Context, Permissions </td><td width="20%" align="center"><a accesskey="u" href="dev-guide.html">Up</a></td><td width="40%" align="right"> OpenACS Permissions Tediously Explained</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/parties.html#comments">View comments on this page at openacs.org</a></center></body></html> +table or the groups table.</p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="subsites.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="permissions-tediously-explained.html">Next</a></td></tr><tr><td width="40%" align="left">Writing OpenACS Application Pages </td><td width="20%" align="center"><a accesskey="u" href="dev-guide.html">Up</a></td><td width="40%" align="right"> OpenACS Permissions Tediously Explained</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/parties.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/permissions-design.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/permissions-design.html,v diff -u -r1.30 -r1.31 --- openacs-4/packages/acs-core-docs/www/permissions-design.html 13 Sep 2009 23:54:40 -0000 1.30 +++ openacs-4/packages/acs-core-docs/www/permissions-design.html 17 Oct 2010 21:06:08 -0000 1.31 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Permissions Design</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 14. Kernel Documentation"><link rel="previous" href="permissions-requirements.html" title="Permissions Requirements"><link rel="next" href="groups-requirements.html" title="Groups Requirements"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="permissions-requirements.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="groups-requirements.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="permissions-design"></a>Permissions Design</h2></div></div><div></div></div><div class="authorblurb"><p>By John Prevost and <a href="http://planitia.org" target="_top">Rafael H. Schloming</a> </p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Permissions Design</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 15. Kernel Documentation"><link rel="previous" href="permissions-requirements.html" title="Permissions Requirements"><link rel="next" href="groups-requirements.html" title="Groups Requirements"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="permissions-requirements.html">Prev</a> </td><th width="60%" align="center">Chapter 15. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="groups-requirements.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="permissions-design"></a>Permissions Design</h2></div></div><div></div></div><div class="authorblurb"><p>By John Prevost and <a href="http://planitia.org" target="_top">Rafael H. Schloming</a> </p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="permissions-design-essentials"></a>Essentials</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Tcl in <tt class="computeroutput">packages/acs-kernel</tt></p></li><li><p><a href="permissions-requirements.html">OpenACS 4 Permissions Requirements</a></p></li><li><p><a href="/doc/sql/display-sql?url=acs-permissions-create.sql&package_key=acs-kernel" target="_top"> Index: openacs-4/packages/acs-core-docs/www/permissions-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/permissions-requirements.html,v diff -u -r1.30 -r1.31 --- openacs-4/packages/acs-core-docs/www/permissions-requirements.html 13 Sep 2009 23:54:40 -0000 1.30 +++ openacs-4/packages/acs-core-docs/www/permissions-requirements.html 17 Oct 2010 21:06:08 -0000 1.31 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Permissions Requirements</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 14. Kernel Documentation"><link rel="previous" href="object-system-design.html" title="Object Model Design"><link rel="next" href="permissions-design.html" title="Permissions Design"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="object-system-design.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="permissions-design.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="permissions-requirements"></a>Permissions Requirements</h2></div></div><div></div></div><div class="authorblurb"><p>By John McClary Prevost</p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Permissions Requirements</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 15. Kernel Documentation"><link rel="previous" href="object-system-requirements.html" title="Object Model Requirements"><link rel="next" href="permissions-design.html" title="Permissions Design"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="object-system-requirements.html">Prev</a> </td><th width="60%" align="center">Chapter 15. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="permissions-design.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="permissions-requirements"></a>Permissions Requirements</h2></div></div><div></div></div><div class="authorblurb"><p>By John McClary Prevost</p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="permissions-requirements-intro"></a>Introduction</h3></div></div><div></div></div><p>This document records requirements for the OpenACS 4 Permissions system, a @@ -88,4 +88,4 @@ clause, whatever mechanism is used to make checks in SQL should be fairly small and simple.</p><p>In particular, constraining a <tt class="computeroutput">SELECT</tt> to return only rows the current user has access to should not add more than one line to a query.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="permissions-requirements-history"></a>Revision History</h3></div></div><div></div></div><div class="informaltable"><table cellspacing="0" border="1"><colgroup><col><col><col><col></colgroup><tbody><tr><td><span class="strong">Document Revision #</span></td><td><span class="strong">Action Taken, Notes</span></td><td><span class="strong">When?</span></td><td><span class="strong">By Whom?</span></td></tr><tr><td>0.1</td><td>Creation</td><td>8/17/2000</td><td>John Prevost</td></tr><tr><td>0.2</td><td>Revised, updated with new terminology</td><td>8/25/2000</td><td>John Prevost</td></tr><tr><td>0.3</td><td>Edited, reformatted to conform to requirements template, pending -freeze.</td><td>8/26/2000</td><td>Kai Wu</td></tr><tr><td>0.4</td><td>Edited for ACS 4 Beta release.</td><td>10/03/2000</td><td>Kai Wu</td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="object-system-design.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="permissions-design.html">Next</a></td></tr><tr><td width="40%" align="left">Object Model Design </td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right"> Permissions Design</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/permissions-requirements.html#comments">View comments on this page at openacs.org</a></center></body></html> +freeze.</td><td>8/26/2000</td><td>Kai Wu</td></tr><tr><td>0.4</td><td>Edited for ACS 4 Beta release.</td><td>10/03/2000</td><td>Kai Wu</td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="object-system-requirements.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="permissions-design.html">Next</a></td></tr><tr><td width="40%" align="left">Object Model Requirements </td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right"> Permissions Design</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/permissions-requirements.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/permissions-tediously-explained.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/permissions-tediously-explained.html,v diff -u -r1.43 -r1.44 --- openacs-4/packages/acs-core-docs/www/permissions-tediously-explained.html 13 Sep 2009 23:54:40 -0000 1.43 +++ openacs-4/packages/acs-core-docs/www/permissions-tediously-explained.html 17 Oct 2010 21:06:08 -0000 1.44 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenACS Permissions Tediously Explained</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="dev-guide.html" title="Chapter 10. Development Reference"><link rel="previous" href="parties.html" title="Parties in OpenACS"><link rel="next" href="object-identity.html" title="Object Identity"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="parties.html">Prev</a> </td><th width="60%" align="center">Chapter 10. Development Reference</th><td width="20%" align="right"> <a accesskey="n" href="object-identity.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="permissions-tediously-explained"></a>OpenACS Permissions Tediously Explained</h2></div></div><div></div></div><p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenACS Permissions Tediously Explained</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="dev-guide.html" title="Chapter 11. Development Reference"><link rel="previous" href="parties.html" title="Parties in OpenACS"><link rel="next" href="object-identity.html" title="Object Identity"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="parties.html">Prev</a> </td><th width="60%" align="center">Chapter 11. Development Reference</th><td width="20%" align="right"> <a accesskey="n" href="object-identity.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="permissions-tediously-explained"></a>OpenACS Permissions Tediously Explained</h2></div></div><div></div></div><p> by Vadim Nasardinov. Modified and converted to Docbook XML by Roberto Mello </p><p>The code has been modified since this document was written so it is now out of date. See <a href="http://openacs.org/forums/message-view?message_id=121807" target="_top">this forum thread</a>.</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="permissions-tedious-overview"></a>Permissions Overview</h3></div></div><div></div></div><p><span class="strong">Who (<tt class="computeroutput">grantee_id</tt>) can do what @@ -105,7 +105,7 @@ </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="permissions-tedious-context-hierarchy"></a>Context Hierarchy</h3></div></div><div></div></div><p> Suppose objects <span class="emphasis"><em>A</em></span>, <span class="emphasis"><em>B</em></span>, ..., and <span class="emphasis"><em>F</em></span> form the following hierarchy. - </p><div class="table"><a name="id3035156"></a><p class="title"><b>Table 10.2. Context Hierarchy Example</b></p><table summary="Context Hierarchy Example" cellspacing="0" border="1"><colgroup><col align="center"><col align="center"><col align="center"></colgroup><tbody><tr><td colspan="3" align="center"><span class="bold"><b>A</b></span><p> + </p><div class="table"><a name="id3059660"></a><p class="title"><b>Table 11.2. Context Hierarchy Example</b></p><table summary="Context Hierarchy Example" cellspacing="0" border="1"><colgroup><col align="center"><col align="center"><col align="center"></colgroup><tbody><tr><td colspan="3" align="center"><span class="bold"><b>A</b></span><p> <tt class="computeroutput">object_id=10</tt> </p></td></tr><tr><td colspan="2" align="center"><span class="bold"><b>B</b></span><p> <tt class="computeroutput">object_id=20</tt> @@ -121,7 +121,7 @@ This can be represented in the <a href="permissions-tediously-explained.html#acs_objects">acs_objects</a> table by the following entries: - </p><div class="table"><a name="id3037640"></a><p class="title"><b>Table 10.3. acs_objects example data</b></p><table summary="acs_objects example data" cellspacing="0" border="1"><colgroup><col align="center"><col align="center"></colgroup><thead><tr><th align="center">object_id</th><th align="center">context_id</th></tr></thead><tbody><tr><td align="center">20</td><td align="center">10</td></tr><tr><td align="center">30</td><td align="center">10</td></tr><tr><td align="center">40</td><td align="center">20</td></tr><tr><td align="center">50</td><td align="center">20</td></tr><tr><td align="center">60</td><td align="center">30</td></tr></tbody></table></div><p> + </p><div class="table"><a name="id2990888"></a><p class="title"><b>Table 11.3. acs_objects example data</b></p><table summary="acs_objects example data" cellspacing="0" border="1"><colgroup><col align="center"><col align="center"></colgroup><thead><tr><th align="center">object_id</th><th align="center">context_id</th></tr></thead><tbody><tr><td align="center">20</td><td align="center">10</td></tr><tr><td align="center">30</td><td align="center">10</td></tr><tr><td align="center">40</td><td align="center">20</td></tr><tr><td align="center">50</td><td align="center">20</td></tr><tr><td align="center">60</td><td align="center">30</td></tr></tbody></table></div><p> The first entry tells us that object 20 is the descendant of object 10, and the third entry shows that object 40 is the descendant of object 20. By running a <a href="http://www.oradoc.com/ora817/server.817/a85397/expressi.htm#1023748" target="_top">CONNECT BY</a> query, Index: openacs-4/packages/acs-core-docs/www/permissions.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/permissions.html,v diff -u -r1.46 -r1.47 --- openacs-4/packages/acs-core-docs/www/permissions.html 13 Sep 2009 23:54:41 -0000 1.46 +++ openacs-4/packages/acs-core-docs/www/permissions.html 17 Oct 2010 21:06:08 -0000 1.47 @@ -1,9 +1,9 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Groups, Context, Permissions</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="dev-guide.html" title="Chapter 10. Development Reference"><link rel="previous" href="templates.html" title="Using Templates in OpenACS"><link rel="next" href="parties.html" title="Parties in OpenACS"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="templates.html">Prev</a> </td><th width="60%" align="center">Chapter 10. Development Reference</th><td width="20%" align="right"> <a accesskey="n" href="parties.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="permissions"></a>Groups, Context, Permissions</h2></div></div><div></div></div><div class="authorblurb"><p>By Pete Su</p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Groups, Context, Permissions</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="dev-guide.html" title="Chapter 11. Development Reference"><link rel="previous" href="templates.html" title="Using Templates in OpenACS"><link rel="next" href="subsites.html" title="Writing OpenACS Application Pages"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="templates.html">Prev</a> </td><th width="60%" align="center">Chapter 11. Development Reference</th><td width="20%" align="right"> <a accesskey="n" href="subsites.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="permissions"></a>Groups, Context, Permissions</h2></div></div><div></div></div><div class="authorblurb"><p>By Pete Su</p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="permissions-overview"></a>Overview</h3></div></div><div></div></div><p> -The OpenACS 5.5.0 Permissions system allows developers and administrators to +The OpenACS 5.6.0 Permissions system allows developers and administrators to set access control policies at the object level, that is, any application or system object represented by a row in the <tt class="computeroutput">acs_objects</tt> table can be access-controlled via a @@ -21,7 +21,7 @@ </p></li></ol></div><p>The rest of this document discusses each of these parts, and how they fit together with the permissions system. </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="permissions-groups"></a>Groups</h3></div></div><div></div></div><p> -OpenACS 5.5.0 has an abstraction called a <span class="emphasis"><em>party</em></span>. Parties have a recursive +OpenACS 5.6.0 has an abstraction called a <span class="emphasis"><em>party</em></span>. Parties have a recursive definition. We can illustrate how it works with the following simplified data model. First, we define the <tt class="computeroutput">parties</tt> table, where each party has an email address and a URL for contact @@ -84,14 +84,14 @@ some object. Privileges are the basic units out of which we build access control policies. For example in the Unix filesystem, access is controlled by granting users some combination of read, write, or execute privileges on files and directories. In -OpenACS 5.5.0, +OpenACS 5.6.0, the table of privileges is organized hierarchically so that developers can define privileges that aggregate some set of privileges together. For example, if we have read, write, create and delete privileges, it might be convenient to combine them into a new privilege called "admin". Then, when a user is granted "admin" privilege, she is automatically granted all the child privileges that the privilege -contains. The OpenACS 5.5.0 kernel data model defines these +contains. The OpenACS 5.6.0 kernel data model defines these privileges: </p><pre class="programlisting"> # @@ -136,7 +136,7 @@ OpenACS provides a object contexts as a means for controlling permissions of a large group of objects at the same time. </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="permissions-object-context"></a>Object Context</h3></div></div><div></div></div><p> -In OpenACS 5.5.0, object context is a scoping +In OpenACS 5.6.0, object context is a scoping mechanism. "Scoping" and "scope" are terms best explained by example: consider some hypothetical rows in the <tt class="computeroutput">address_book</tt> table: @@ -199,7 +199,7 @@ </p><p>See the package developer tutorials for examples on how to use permissions code. </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="permissions-summary"></a>Summary</h3></div></div><div></div></div><p> -OpenACS 5.5.0 defines three separate mechanisms for specifying access control +OpenACS 5.6.0 defines three separate mechanisms for specifying access control in applications. </p><div class="orderedlist"><ol type="1"><li><p> The Groups data model allows you to define hierarchical organizations of users and groups of users. @@ -211,4 +211,4 @@ permissions in a hierarchical fashion. </p></li></ol></div><p>A PL/SQL or Tcl API is then used to check permissions in application pages. -</p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="templates.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="parties.html">Next</a></td></tr><tr><td width="40%" align="left">Using Templates in OpenACS </td><td width="20%" align="center"><a accesskey="u" href="dev-guide.html">Up</a></td><td width="40%" align="right"> Parties in OpenACS</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/permissions.html#comments">View comments on this page at openacs.org</a></center></body></html> +</p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="templates.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="subsites.html">Next</a></td></tr><tr><td width="40%" align="left">Using Templates in OpenACS </td><td width="20%" align="center"><a accesskey="u" href="dev-guide.html">Up</a></td><td width="40%" align="right"> Writing OpenACS Application Pages</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/permissions.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/postgres.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/postgres.html,v diff -u -r1.47 -r1.48 --- openacs-4/packages/acs-core-docs/www/postgres.html 13 Sep 2009 23:54:41 -0000 1.47 +++ openacs-4/packages/acs-core-docs/www/postgres.html 17 Oct 2010 21:06:08 -0000 1.48 @@ -2,7 +2,7 @@ <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Install PostgreSQL</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="complete-install.html" title="Chapter 3. Complete Installation"><link rel="previous" href="oracle.html" title="Install Oracle 8.1.7"><link rel="next" href="aolserver4.html" title="Install AOLserver 4"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="oracle.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Complete Installation</th><td width="20%" align="right"> <a accesskey="n" href="aolserver4.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="postgres"></a>Install PostgreSQL</h2></div></div><div></div></div><div class="authorblurb"><p>by <a href="mailto:vinod@kurup.com" target="_top">Vinod Kurup</a></p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. - </div><p>Skip this section if you will run only Oracle.</p><p>OpenACS 5.5.0 will run with <a href="individual-programs.html#source-postgresql">PostgreSQL</a> 7.3.2, 7.3.3, and 7.3.4 and 7.4.x. 7.4.7 is the recommended version of PostgreSQL.</p><div class="itemizedlist"><ul type="disc"><li><p><a name="install-postgres-mac"></a><b>Special notes for Mac OS X. </b>If you are running Mac OS X prior to 10.3, you should be + </div><p>Skip this section if you will run only Oracle.</p><p>OpenACS 5.6.0 will run with <a href="individual-programs.html#source-postgresql">PostgreSQL</a> 7.3.2, 7.3.3, and 7.3.4 and 7.4.x. 7.4.7 is the recommended version of PostgreSQL.</p><div class="itemizedlist"><ul type="disc"><li><p><a name="install-postgres-mac"></a><b>Special notes for Mac OS X. </b>If you are running Mac OS X prior to 10.3, you should be able to install and use PostGreSQL 7.3.x. Mac OS X 10.3 requires PostGreSQL 7.4. </p></li><li><p><a name="install-postgres-debian"></a><b>Special Notes for Debian. </b></p><p>Debian stable user should install PostGreSQL from source as detailed below, or they should use the www.backports.org @@ -215,11 +215,11 @@ state. Red Hat and Debian and SuSE each work a little differently. If you haven't <a href="openacs.html#install-from-tarball" title="Installation Option 2: Install from tarball"> untarred the OpenACS tarball</a>, you will need to do so now to access the postgresql.txt file. </p><div class="itemizedlist"><ul type="circle"><li><p>Red Hat RPM:</p><p>The init script is already installed; just turn it on for the appropriate run levels.</p><pre class="screen">[root root]# <b class="userinput"><tt>chkconfig --level 345 postgresql on</tt></b> -[root root]# </pre></li><li><p>Red Hat from source:</p><pre class="screen">[root src]# <b class="userinput"><tt>cp /var/tmp/openacs-5.5.0/packages/acs-core-docs/www/files/postgresql.txt /etc/init.d/postgresql</tt></b> +[root root]# </pre></li><li><p>Red Hat from source:</p><pre class="screen">[root src]# <b class="userinput"><tt>cp /var/tmp/openacs-5.6.0/packages/acs-core-docs/www/files/postgresql.txt /etc/init.d/postgresql</tt></b> [root src]# <b class="userinput"><tt>chown root.root /etc/rc.d/init.d/postgresql</tt></b> [root src]# <b class="userinput"><tt>chmod 755 /etc/rc.d/init.d/postgresql</tt></b> [root src]# -<span class="action"><span class="action">cp /var/tmp/openacs-5.5.0/packages/acs-core-docs/www/files/postgresql.txt /etc/init.d/postgresql +<span class="action"><span class="action">cp /var/tmp/openacs-5.6.0/packages/acs-core-docs/www/files/postgresql.txt /etc/init.d/postgresql chown root.root /etc/rc.d/init.d/postgresql chmod 755 /etc/rc.d/init.d/postgresql</span></span></pre><p>Test the script.</p><pre class="screen">[root root]# <b class="userinput"><tt>service postgresql stop</tt></b> Stopping PostgreSQL: ok @@ -242,7 +242,7 @@ [root ~]# <b class="userinput"><tt>chown root.root /etc/init.d/postgresql</tt></b> [root ~]# <b class="userinput"><tt>chmod 755 /etc/init.d/postgresql</tt></b> [root ~]# <span class="action"><span class="action"> -cp /var/tmp/openacs-5.5.0/packages/acs-core-docs/www/files/postgresql.txt /etc/init.d/postgresql +cp /var/tmp/openacs-5.6.0/packages/acs-core-docs/www/files/postgresql.txt /etc/init.d/postgresql chown root.root /etc/init.d/postgresql chmod 755 /etc/init.d/postgresql</span></span></pre><p>Test the script</p><pre class="screen">[root ~]# <b class="userinput"><tt>/etc/init.d/postgresql stop</tt></b> Stopping PostgreSQL: ok @@ -260,11 +260,11 @@ /etc/rc5.d/S20postgresql -> ../init.d/postgresql [root ~]# <b class="userinput"><tt>/etc/init.d/postgresql start</tt></b> Starting PostgreSQL: ok -[root ~]#</pre></li><li><p>FreeBSD:</p><pre class="screen">[root ~]# <b class="userinput"><tt>cp /tmp/openacs-5.5.0/packages/acs-core-docs/www/files/postgresql.txt /usr/local/etc/rc.d/postgresql.sh</tt></b> +[root ~]#</pre></li><li><p>FreeBSD:</p><pre class="screen">[root ~]# <b class="userinput"><tt>cp /tmp/openacs-5.6.0/packages/acs-core-docs/www/files/postgresql.txt /usr/local/etc/rc.d/postgresql.sh</tt></b> [root ~]# <b class="userinput"><tt>chown root:wheel /usr/local/etc/rc.d/postgresql.sh</tt></b> [root ~]# <b class="userinput"><tt>chmod 755 /usr/local/etc/rc.d/postgresql.sh</tt></b> [root ~]# <span class="action"><span class="action"> -cp /tmp/openacs-5.5.0/packages/acs-core-docs/www/files/postgresql.txt /usr/local/etc/rc.d/postgresql.sh +cp /tmp/openacs-5.6.0/packages/acs-core-docs/www/files/postgresql.txt /usr/local/etc/rc.d/postgresql.sh chown root:wheel /usr/local/etc/rc.d/postgresql.sh chmod 755 /usr/local/etc/rc.d/postgresql.sh</span></span></pre><p>Test the script</p><pre class="screen">[root ~]# <b class="userinput"><tt>/usr/local/etc/rc.d/postgresql.sh stop</tt></b> Stopping PostgreSQL: ok @@ -282,7 +282,7 @@ <tt class="computeroutput">rc.d/</tt> part in each of the following commands. - </p></div><pre class="screen">[root ~]# <b class="userinput"><tt>cp /var/tmp/openacs-5.5.0/packages/acs-core-docs/www/files/postgresql.txt /etc/rc.d/init.d/postgresql</tt></b> + </p></div><pre class="screen">[root ~]# <b class="userinput"><tt>cp /var/tmp/openacs-5.6.0/packages/acs-core-docs/www/files/postgresql.txt /etc/rc.d/init.d/postgresql</tt></b> [root ~]# <b class="userinput"><tt>chown root.root /etc/rc.d/init.d/postgresql</tt></b> [root ~]# <b class="userinput"><tt>chmod 755 /etc/rc.d/init.d/postgresql</tt></b></pre><p> Index: openacs-4/packages/acs-core-docs/www/profile-code.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/profile-code.html,v diff -u -r1.11 -r1.12 --- openacs-4/packages/acs-core-docs/www/profile-code.html 13 Sep 2009 23:54:41 -0000 1.11 +++ openacs-4/packages/acs-core-docs/www/profile-code.html 17 Oct 2010 21:06:08 -0000 1.12 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Profile your code</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 9. Advanced Topics"><link rel="previous" href="tutorial-categories.html" title="Categories"><link rel="next" href="tutorial-distribute.html" title="Prepare the package for distribution."></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-categories.html">Prev</a> </td><th width="60%" align="center">Chapter 9. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-distribute.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="profile-code"></a>Profile your code</h2></div></div><div></div></div><div class="authorblurb"><p>by <a href="mailto:jade@rubick.com" target="_top">Jade Rubick</a></p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Profile your code</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 10. Advanced Topics"><link rel="previous" href="tutorial-categories.html" title="Categories"><link rel="next" href="tutorial-distribute.html" title="Prepare the package for distribution."></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-categories.html">Prev</a> </td><th width="60%" align="center">Chapter 10. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-distribute.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="profile-code"></a>Profile your code</h2></div></div><div></div></div><div class="authorblurb"><p>by <a href="mailto:jade@rubick.com" target="_top">Jade Rubick</a></p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><p>There are several facilities for profiling your code in Index: openacs-4/packages/acs-core-docs/www/programming-with-aolserver.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/programming-with-aolserver.html,v diff -u -r1.45 -r1.46 --- openacs-4/packages/acs-core-docs/www/programming-with-aolserver.html 13 Sep 2009 23:54:41 -0000 1.45 +++ openacs-4/packages/acs-core-docs/www/programming-with-aolserver.html 17 Oct 2010 21:06:08 -0000 1.46 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Programming with AOLserver</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="dev-guide.html" title="Chapter 10. Development Reference"><link rel="previous" href="object-identity.html" title="Object Identity"><link rel="next" href="form-builder.html" title="Using Form Builder: building html forms dynamically"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="object-identity.html">Prev</a> </td><th width="60%" align="center">Chapter 10. Development Reference</th><td width="20%" align="right"> <a accesskey="n" href="form-builder.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="programming-with-aolserver"></a>Programming with AOLserver</h2></div></div><div></div></div><div class="authorblurb"><p>By Michael Yoon, Jon Salz and <a href="http://www.pinds.com/lars" target="_top">Lars Pind</a>.</p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Programming with AOLserver</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="dev-guide.html" title="Chapter 11. Development Reference"><link rel="previous" href="object-identity.html" title="Object Identity"><link rel="next" href="form-builder.html" title="Using Form Builder: building html forms dynamically"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="object-identity.html">Prev</a> </td><th width="60%" align="center">Chapter 11. Development Reference</th><td width="20%" align="right"> <a accesskey="n" href="form-builder.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="programming-with-aolserver"></a>Programming with AOLserver</h2></div></div><div></div></div><div class="authorblurb"><p>By Michael Yoon, Jon Salz and <a href="http://www.pinds.com/lars" target="_top">Lars Pind</a>.</p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="programming-aolserver-global"></a>The <tt class="computeroutput">global</tt> command</h3></div></div><div></div></div><p> Index: openacs-4/packages/acs-core-docs/www/psgml-for-emacs.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/psgml-for-emacs.html,v diff -u -r1.37 -r1.38 --- openacs-4/packages/acs-core-docs/www/psgml-for-emacs.html 13 Sep 2009 23:54:41 -0000 1.37 +++ openacs-4/packages/acs-core-docs/www/psgml-for-emacs.html 17 Oct 2010 21:06:08 -0000 1.38 @@ -1,9 +1,9 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Add PSGML commands to emacs init file (OPTIONAL)</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="install-more-software.html" title="Appendix B. Install additional supporting software"><link rel="previous" href="install-cvs.html" title="Initialize CVS (OPTIONAL)"><link rel="next" href="install-daemontools.html" title="Install Daemontools (OPTIONAL)"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="install-cvs.html">Prev</a> </td><th width="60%" align="center">Appendix B. Install additional supporting software</th><td width="20%" align="right"> <a accesskey="n" href="install-daemontools.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="psgml-for-emacs"></a>Add PSGML commands to emacs init file (OPTIONAL)</h2></div></div><div></div></div><p><a class="indexterm" name="id3056928"></a> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Add PSGML commands to emacs init file (OPTIONAL)</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="install-more-software.html" title="Appendix B. Install additional supporting software"><link rel="previous" href="install-cvs.html" title="Initialize CVS (OPTIONAL)"><link rel="next" href="install-daemontools.html" title="Install Daemontools (OPTIONAL)"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="install-cvs.html">Prev</a> </td><th width="60%" align="center">Appendix B. Install additional supporting software</th><td width="20%" align="right"> <a accesskey="n" href="install-daemontools.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="psgml-for-emacs"></a>Add PSGML commands to emacs init file (OPTIONAL)</h2></div></div><div></div></div><p><a class="indexterm" name="id3016526"></a> If you plan to write or edit any documentation with emacs, install a customized emacs configuration file with DocBook commands in the skeleton directory, so it will be used for all new users. The file also fixes the backspace -> help mis-mapping that often occurs in - terminals.</p><pre class="screen">[root tmp]# <b class="userinput"><tt>cp /tmp/openacs-5.5.0/packages/acs-core-docs/www/files/emacs.txt /etc/skel/.emacs</tt></b> + terminals.</p><pre class="screen">[root tmp]# <b class="userinput"><tt>cp /tmp/openacs-5.6.0/packages/acs-core-docs/www/files/emacs.txt /etc/skel/.emacs</tt></b> cp: overwrite `/etc/skel/.emacs'? <b class="userinput"><tt>y</tt></b> [root tmp]# </pre><p>Debian users:</p><pre class="screen"><span class="action"><span class="action">apt-get install psgml</span></span></pre><p>Note: The new nxml mode for emacs, when used in combination with psgml, provides a pretty good set of functionality that makes DocBook editing much less painless. In particular, nxml does syntax testing in real-time so that you can see syntax errors immediately instead of in the output of the xsltproc hours or days later. For debian, <tt class="computeroutput">apt-get install nxml</tt>.</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="install-cvs.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="install-daemontools.html">Next</a></td></tr><tr><td width="40%" align="left">Initialize CVS (OPTIONAL) </td><td width="20%" align="center"><a accesskey="u" href="install-more-software.html">Up</a></td><td width="40%" align="right"> Install Daemontools (OPTIONAL)</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/psgml-for-emacs.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/psgml-mode.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/psgml-mode.html,v diff -u -r1.44 -r1.45 --- openacs-4/packages/acs-core-docs/www/psgml-mode.html 12 Jul 2009 01:08:29 -0000 1.44 +++ openacs-4/packages/acs-core-docs/www/psgml-mode.html 17 Oct 2010 21:06:08 -0000 1.45 @@ -1,53 +1,53 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Using PSGML mode in Emacs</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.0"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="doc-standards.html" title="Chapter 12. Documentation Standards"><link rel="previous" href="docbook-primer.html" title="OpenACS Documentation Guide"><link rel="next" href="nxml-mode.html" title="Using nXML mode in Emacs"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="docbook-primer.html">Prev</a> </td><th width="60%" align="center">Chapter 12. Documentation Standards</th><td width="20%" align="right"> <a accesskey="n" href="nxml-mode.html">Next</a></td></tr></table><hr></div><div class="sect1" title="Using PSGML mode in Emacs"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="psgml-mode"></a>Using PSGML mode in Emacs</h2></div></div></div><div class="authorblurb"><p>By David Lutterkort</p> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Using PSGML mode in Emacs</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="doc-standards.html" title="Chapter 13. Documentation Standards"><link rel="previous" href="docbook-primer.html" title="OpenACS Documentation Guide"><link rel="next" href="nxml-mode.html" title="Using nXML mode in Emacs"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="docbook-primer.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Documentation Standards</th><td width="20%" align="right"> <a accesskey="n" href="nxml-mode.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="psgml-mode"></a>Using PSGML mode in Emacs</h2></div></div><div></div></div><div class="authorblurb"><p>By David Lutterkort</p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. - </div><p>Note: <code class="computeroutput">nxml</code> mode replaces and/or complements psgml mode. <a class="ulink" href="http://www.xmlhack.com/read.php?item=2061" target="_top">More information</a>.</p><div class="sect2" title="What it is"><div class="titlepage"><div><div><h3 class="title"><a name="psgml-mode-whatisit"></a>What it is</h3></div></div></div><p>PSGML Mode is a mode for editing, umm, SGML and XML documents in emacs. It + </div><p>Note: <tt class="computeroutput">nxml</tt> mode replaces and/or complements psgml mode. <a href="http://www.xmlhack.com/read.php?item=2061" target="_top">More information</a>.</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="psgml-mode-whatisit"></a>What it is</h3></div></div><div></div></div><p>PSGML Mode is a mode for editing, umm, SGML and XML documents in emacs. It can parse a DTD and help you insert the right tags in the right place, knows about tags' attributes and can tell you in which contexts a tag can be used. <span class="emphasis"><em>If</em></span> you give it the right DTD, that is. But even without a DTD, -it can save you some typing since pressing <code class="computeroutput">C-c/</code> will close an open -tag automatically.</p></div><div class="sect2" title="Where to get it"><div class="titlepage"><div><div><h3 class="title"><a name="psgml-mode-getit"></a>Where to get it</h3></div></div></div><p>Most newer emacsen come with PSGML mode preinstalled. You can find out -whether your emacs has it with the <code class="computeroutput">locate-library</code> command. In Emacs, -type <code class="computeroutput">M-x locate-library</code> and enter <code class="computeroutput">psgml</code>. Emacs will tell +it can save you some typing since pressing <tt class="computeroutput">C-c/</tt> will close an open +tag automatically.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="psgml-mode-getit"></a>Where to get it</h3></div></div><div></div></div><p>Most newer emacsen come with PSGML mode preinstalled. You can find out +whether your emacs has it with the <tt class="computeroutput">locate-library</tt> command. In Emacs, +type <tt class="computeroutput">M-x locate-library</tt> and enter <tt class="computeroutput">psgml</tt>. Emacs will tell you if it found it or not.</p><p>If you don't have PSGML preinstalled in your Emacs, there are two -things you can do:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>On Linux: Get the <a class="ulink" href="ftp://sourceware.cygnus.com:/pub/docbook-tools/docware/RPMS/noarch/psgml-1.2.1-1.noarch.rpm" target="_top"> -psgml rpm</a> from <a class="ulink" href="http://sources.redhat.com/docbook-tools/" target="_top">RedHat's -docbook-tools</a> and install it as usual.</p></li><li class="listitem"><p>On other systems: Get the tarball from the <a class="ulink" href="http://www.lysator.liu.se/~lenst/about_psgml/" target="_top">PSGML Website.</a> -Unpack it and follow the install instructions.</p></li></ol></div></div><div class="sect2" title="Using CATALOG files"><div class="titlepage"><div><div><h3 class="title"><a name="psgml-mode-catalogs"></a>Using <code class="computeroutput">CATALOG</code> files</h3></div></div></div><p>The easiest way to teach PSGML mode about a DTD is by adding it to your -own <code class="computeroutput">CATALOG</code>. Here is an example of how you can set that up for the -Docbook XML DTD.</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Get the <a class="ulink" href="http://docbook.org/xml/index.html" target="_top">Docbook XML DTD</a> -zip archive from <a class="ulink" href="http://docbook.org/" target="_top">docbook.org</a></p></li><li class="listitem"><p>Go somewhere in your working directory and do </p><pre class="programlisting"> +things you can do:</p><div class="orderedlist"><ol type="1"><li><p>On Linux: Get the <a href="ftp://sourceware.cygnus.com:/pub/docbook-tools/docware/RPMS/noarch/psgml-1.2.1-1.noarch.rpm" target="_top"> +psgml rpm</a> from <a href="http://sources.redhat.com/docbook-tools/" target="_top">RedHat's +docbook-tools</a> and install it as usual.</p></li><li><p>On other systems: Get the tarball from the <a href="http://www.lysator.liu.se/~lenst/about_psgml/" target="_top">PSGML Website.</a> +Unpack it and follow the install instructions.</p></li></ol></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="psgml-mode-catalogs"></a>Using <tt class="computeroutput">CATALOG</tt> files</h3></div></div><div></div></div><p>The easiest way to teach PSGML mode about a DTD is by adding it to your +own <tt class="computeroutput">CATALOG</tt>. Here is an example of how you can set that up for the +Docbook XML DTD.</p><div class="orderedlist"><ol type="1"><li><p>Get the <a href="http://docbook.org/xml/index.html" target="_top">Docbook XML DTD</a> +zip archive from <a href="http://docbook.org/" target="_top">docbook.org</a></p></li><li><p>Go somewhere in your working directory and do </p><pre class="programlisting"> mkdir -p dtd/docbook-xml cd dtd/docbook-xml unzip -a <docbook XML DTD zip archive> -</pre></li><li class="listitem"><p>Create a file with the name <code class="computeroutput">CATALOG</code> in the <code class="computeroutput">dtd</code> +</pre></li><li><p>Create a file with the name <tt class="computeroutput">CATALOG</tt> in the <tt class="computeroutput">dtd</tt> directory and put the line </p><pre class="programlisting"> - CATALOG "docbook-xml/docbook.cat" + CATALOG "docbook-xml/docbook.cat" </pre><p> -in it. By maintaining your own <code class="computeroutput">CATALOG</code>, it is easy to add more +in it. By maintaining your own <tt class="computeroutput">CATALOG</tt>, it is easy to add more DTD's without changing your emacs settings. (<span class="emphasis"><em>How about that HTML 4.01 DTD you -always wanted to get from <a class="ulink" href="http://www.w3.org/TR/html4/" target="_top">W3C</a> ? The +always wanted to get from <a href="http://www.w3.org/TR/html4/" target="_top">W3C</a> ? The DTD is in the zip archives and tarballs available on the site.</em></span>)</p></li></ol></div><p>That's it. Now you are ready to tell emacs all about PSGML mode and -that funky <code class="computeroutput">CATALOG</code></p></div><div class="sect2" title="What to tell emacs"><div class="titlepage"><div><div><h3 class="title"><a name="psgml-mode-tell-emacs"></a>What to tell emacs</h3></div></div></div><p>If you installed PSGML mode in a non-standard location, e.g., somewhere in -your home directory, you need to add this to the <code class="computeroutput">load-path</code> by adding -this line to your <code class="computeroutput">.emacs</code> file:</p><pre class="programlisting"> - (add-to-list 'load-path "/some/dir/that/contains/psgml.elc") +that funky <tt class="computeroutput">CATALOG</tt></p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="psgml-mode-tell-emacs"></a>What to tell emacs</h3></div></div><div></div></div><p>If you installed PSGML mode in a non-standard location, e.g., somewhere in +your home directory, you need to add this to the <tt class="computeroutput">load-path</tt> by adding +this line to your <tt class="computeroutput">.emacs</tt> file:</p><pre class="programlisting"> + (add-to-list 'load-path "/some/dir/that/contains/psgml.elc") -</pre><p>To let PSGML mode find your <code class="computeroutput">CATALOG</code> and to enable PSGML mode for -all your editing, add these lines to your <code class="computeroutput">.emacs</code>:</p><pre class="programlisting"> +</pre><p>To let PSGML mode find your <tt class="computeroutput">CATALOG</tt> and to enable PSGML mode for +all your editing, add these lines to your <tt class="computeroutput">.emacs</tt>:</p><pre class="programlisting"> (require 'psgml) - (add-to-list 'auto-mode-alist '("\\.html" . sgml-mode)) - (add-to-list 'auto-mode-alist '("\\.adp" . xml-mode)) - (add-to-list 'auto-mode-alist '("\\.xml" . xml-mode)) - (add-to-list 'auto-mode-alist '("\\.xsl" . xml-mode)) + (add-to-list 'auto-mode-alist '("\\.html" . sgml-mode)) + (add-to-list 'auto-mode-alist '("\\.adp" . xml-mode)) + (add-to-list 'auto-mode-alist '("\\.xml" . xml-mode)) + (add-to-list 'auto-mode-alist '("\\.xsl" . xml-mode)) - (add-to-list 'sgml-catalog-files "/path/to/your/dtd/CATALOG") + (add-to-list 'sgml-catalog-files "/path/to/your/dtd/CATALOG") </pre><p>If you want font-locking and indentation, you can also add these lines -into the <code class="computeroutput">.emacs</code> file:</p><pre class="programlisting"> +into the <tt class="computeroutput">.emacs</tt> file:</p><pre class="programlisting"> (setq sgml-markup-faces '((start-tag . font-lock-function-name-face) (end-tag . font-lock-function-name-face) (comment . font-lock-comment-face) @@ -59,28 +59,28 @@ (setq sgml-set-face t) (setq-default sgml-indent-data t) ;; Some convenient key definitions: - (define-key sgml-mode-map "\C-c\C-x\C-e" 'sgml-describe-element-type) - (define-key sgml-mode-map "\C-c\C-x\C-i" 'sgml-general-dtd-info) - (define-key sgml-mode-map "\C-c\C-x\C-t" 'sgml-describe-entity) + (define-key sgml-mode-map "\C-c\C-x\C-e" 'sgml-describe-element-type) + (define-key sgml-mode-map "\C-c\C-x\C-i" 'sgml-general-dtd-info) + (define-key sgml-mode-map "\C-c\C-x\C-t" 'sgml-describe-entity) -</pre></div><div class="sect2" title="What is a DOCTYPE ?"><div class="titlepage"><div><div><h3 class="title"><a name="psgml-mode-doctype"></a>What is a <code class="computeroutput">DOCTYPE</code> ?</h3></div></div></div><p>All SGML and XML documents that should conform to a DTD have to declare a -doctype. For the docbook XML, all your <code class="computeroutput">.xml</code> files whould start with +</pre></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="psgml-mode-doctype"></a>What is a <tt class="computeroutput">DOCTYPE</tt> ?</h3></div></div><div></div></div><p>All SGML and XML documents that should conform to a DTD have to declare a +doctype. For the docbook XML, all your <tt class="computeroutput">.xml</tt> files whould start with the line</p><pre class="programlisting"> - <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "docbookx.dtd"> + <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "docbookx.dtd"> </pre><p>If your document is only part of a larger XML document, you can tell PSGML mode about it by <span class="emphasis"><em>appending</em></span> the following lines to your file. In this case, do <span class="emphasis"><em>not</em></span> include a DOCTYPE declaration in your file.</p><pre class="programlisting"> <!-- Local Variables: - sgml-parent-document: ("top.xml" "book" "sect1") + sgml-parent-document: ("top.xml" "book" "sect1") End: --> </pre><p>Which says that the parent of this document can be found in the file -<code class="computeroutput">top.xml</code>, that the element in the parent that will enclose the -current document is a <code class="computeroutput">book</code> and that the current file's topmost -element is a <code class="computeroutput">sect1</code>.</p></div><div class="sect2" title="How to use it"><div class="titlepage"><div><div><h3 class="title"><a name="psgml-mode-usage"></a>How to use it</h3></div></div></div><p>Of course, you should read the emacs texinfo pages that come with PSGML -mode from start to finish. Barring that, here are some handy commands:</p><div class="informaltable"><table cellspacing="0" border="0"><colgroup><col><col></colgroup><thead><tr><th>Key</th><th>Command</th></tr></thead><tbody><tr><td><code class="computeroutput">C-c C-e</code></td><td>Insert an element. Uses completion and only lets you insert elements that -are valid</td></tr><tr><td><code class="computeroutput">C-c C-a</code></td><td>Edit attributes of enclosing element.</td></tr><tr><td><code class="computeroutput">C-c C-x C-i</code></td><td>Show information about the document's DTD.</td></tr><tr><td><code class="computeroutput">C-c C-x C-e</code></td><td>Describe element. Shows for one element which elements can be parents, -what its contents can be and lists its attributes.</td></tr></tbody></table></div></div><div class="sect2" title="Further reading"><div class="titlepage"><div><div><h3 class="title"><a name="psgml-mode-reading"></a>Further reading</h3></div></div></div><p>Start with the <a class="xref" href="docbook-primer.html" title="OpenACS Documentation Guide">the section called “OpenACS Documentation Guide”</a></p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="docbook-primer.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="nxml-mode.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS Documentation Guide </td><td width="20%" align="center"><a accesskey="u" href="doc-standards.html">Up</a></td><td width="40%" align="right"> Using nXML mode in Emacs</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/psgml-mode.html#comments">View comments on this page at openacs.org</a></center></body></html> +<tt class="computeroutput">top.xml</tt>, that the element in the parent that will enclose the +current document is a <tt class="computeroutput">book</tt> and that the current file's topmost +element is a <tt class="computeroutput">sect1</tt>.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="psgml-mode-usage"></a>How to use it</h3></div></div><div></div></div><p>Of course, you should read the emacs texinfo pages that come with PSGML +mode from start to finish. Barring that, here are some handy commands:</p><div class="informaltable"><table cellspacing="0" border="0"><colgroup><col><col></colgroup><thead><tr><th>Key</th><th>Command</th></tr></thead><tbody><tr><td><tt class="computeroutput">C-c C-e</tt></td><td>Insert an element. Uses completion and only lets you insert elements that +are valid</td></tr><tr><td><tt class="computeroutput">C-c C-a</tt></td><td>Edit attributes of enclosing element.</td></tr><tr><td><tt class="computeroutput">C-c C-x C-i</tt></td><td>Show information about the document's DTD.</td></tr><tr><td><tt class="computeroutput">C-c C-x C-e</tt></td><td>Describe element. Shows for one element which elements can be parents, +what its contents can be and lists its attributes.</td></tr></tbody></table></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="psgml-mode-reading"></a>Further reading</h3></div></div><div></div></div><p>Start with the <a href="docbook-primer.html" title="OpenACS Documentation Guide">Section , “OpenACS Documentation Guide”</a></p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="docbook-primer.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="nxml-mode.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS Documentation Guide </td><td width="20%" align="center"><a accesskey="u" href="doc-standards.html">Up</a></td><td width="40%" align="right"> Using nXML mode in Emacs</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/psgml-mode.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/release-notes.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/release-notes.html,v diff -u -r1.51 -r1.52 --- openacs-4/packages/acs-core-docs/www/release-notes.html 13 Sep 2009 23:54:41 -0000 1.51 +++ openacs-4/packages/acs-core-docs/www/release-notes.html 17 Oct 2010 21:06:08 -0000 1.52 @@ -1,6 +1,35 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenACS Release Notes</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="general-documents.html" title="Chapter 1. High level information: What is OpenACS?"><link rel="previous" href="openacs-overview.html" title="Overview"><link rel="next" href="acs-admin.html" title="Part II. Administrator's Guide"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="openacs-overview.html">Prev</a> </td><th width="60%" align="center">Chapter 1. High level information: What is OpenACS?</th><td width="20%" align="right"> <a accesskey="n" href="acs-admin.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="release-notes"></a>OpenACS Release Notes</h2></div></div><div></div></div><p>The ChangeLogs include an annotated list of changes (<a href="release-notes.html#changelog-latest" title="Changelog (most recent release only)">Section , “Changelog (most recent release only)”</a>) since the last release and in the -entire 5.5 release sequence <a href="release-notes.html#changelog" title="Changelog for oacs-5-5">Section , “Changelog for oacs-5-5”</a>.</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="release-notes-5-5-0"></a>Release 5.5.0</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>PostgreSQL 8.3 is now fully supported, including the use of the built-in +entire 5.6 release sequence <a href="release-notes.html#changelog" title="Changelog for oacs-5-6">Section , “Changelog for oacs-5-6”</a>.</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="release-notes-5-6-0"></a>Release 5.6.0</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p> + Added new package dependency type, "embeds". This is a variant of the + "extends" package dependency type added in OpenACS 5.5.0. It allows one + to write embeddable packages, with scripts made visible in client packages + using URLs which include the embedded package's package key. An example + embeddable package might be a rewritten "attachments" package. The current + implementation requires a global instance be mounted, and client packages + generate urls to that global instance. Among other things, this leads to + the user navigating to the top-level subsite, losing any subsite theming + that might be associated with a community. Using "embeds", a rewritten + package would run in the client package's context, maintaining theming and + automatically associating attachments with the client package. + </p><p> + Added global package parameters - parameters can now have scope "local" or "global", + with "local" being the default.. + </p><p> + Fixes for ns_proxy handling + </p><p> + Significant speedup for large sites + </p><p> + Optional support for selenium remote control (acs-automated-tests) + </p><p> + New administration UI to manage mime types and extension map + </p><p> + Added acs-mail-lite package params for rollout support + </p><p> + Support for 3-chars language codes in acs-lang + </p><p> + Added OOXML mime types in acs-content-repository + </p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="release-notes-5-5-0"></a>Release 5.5.0</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>PostgreSQL 8.3 is now fully supported, including the use of the built-in standard version of tsearch2. </p><p>TinyMCE has been upgraded to 3.2.4.1 with language pack support. </p><p>acs-mail-lite now correctly implements rollout support. @@ -47,14 +76,14 @@ </p><p>Templates have been modified to comply with HTML strict</p><p>The Search package's results page has been improved</p><p>TinyMCE WYSIWYG support has been added, RTE and HTMLArea support dropped</p><p>acs-mail-lite's send has been cleaned up to properly encode content, to handle file attachments, etc. "complex-send" will disappear from acs-core in a future release.</p></li></ul></div></div><p>The ChangeLogs include an annotated list of changes (<a href="release-notes.html#changelog-latest" title="Changelog (most recent release only)">Section , “Changelog (most recent release only)”</a>) since the last release and in the -entire 5.5 release sequence <a href="release-notes.html#changelog" title="Changelog for oacs-5-5">Section , “Changelog for oacs-5-5”</a>.</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="release-notes-5-3-1"></a>Release 5.3.1</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Bug fixes.</p><p>New TIPs implemented.</p><p>All Core Automated Tests for Postgres pass.</p><p>New Site and Blank master templates and CSS compatible with the .LRN Zen +entire 5.6 release sequence <a href="release-notes.html#changelog" title="Changelog for oacs-5-6">Section , “Changelog for oacs-5-6”</a>.</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="release-notes-5-3-1"></a>Release 5.3.1</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Bug fixes.</p><p>New TIPs implemented.</p><p>All Core Automated Tests for Postgres pass.</p><p>New Site and Blank master templates and CSS compatible with the .LRN Zen work. Compatibility master templates are provided for existing sites.</p></li></ul></div></div><p>The ChangeLogs include an annotated list of changes (<a href="release-notes.html#changelog-latest" title="Changelog (most recent release only)">Section , “Changelog (most recent release only)”</a>) since the last release and in the -entire 5.5 release sequence <a href="release-notes.html#changelog" title="Changelog for oacs-5-5">Section , “Changelog for oacs-5-5”</a>.</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="release-notes-5-3-0"></a>Release 5.3.0</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Bug fixes.</p><p>New TIPs implemented.</p><p>All Core Automated Tests for Postgres pass.</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="release-notes-5-2-0"></a>Release 5.2.0</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Bug fixes.</p><p>New TIPs implemented.</p><p>This release does <span class="strong">not</span> include new translations.</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="release-notes-5-1-4"></a>Release 5.1.4</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Bug fixes.</p><p>The missing CR TCL API has been filled in, thanks to Rocael and +entire 5.6 release sequence <a href="release-notes.html#changelog" title="Changelog for oacs-5-6">Section , “Changelog for oacs-5-6”</a>.</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="release-notes-5-3-0"></a>Release 5.3.0</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Bug fixes.</p><p>New TIPs implemented.</p><p>All Core Automated Tests for Postgres pass.</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="release-notes-5-2-0"></a>Release 5.2.0</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Bug fixes.</p><p>New TIPs implemented.</p><p>This release does <span class="strong">not</span> include new translations.</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="release-notes-5-1-4"></a>Release 5.1.4</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Bug fixes.</p><p>The missing CR TCL API has been filled in, thanks to Rocael and his team and Dave Bauer.</p><p>This release does <span class="strong">not</span> include new translations.</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="release-notes-5-1-3"></a>Release 5.1.3</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Bug fixes, primarily for .LRN compatibility in support of upcoming .LRN 2.1.0 releases. This release does <span class="strong">not</span> include new translations since 5.1.2. </p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="release-notes-5-1-2"></a>Release 5.1.2</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Translations syncronized with the translation server. Basque and Catalan added. </p></li><li><p>For a complete change list, see the Change list since - 5.1.0 in <a href="release-notes.html#changelog" title="Changelog for oacs-5-5">Section , “Changelog for oacs-5-5”</a>.</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="release-notes-5-1-1"></a>Release 5.1.1</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>This is the first release using the newest adjustment to the versioning convention. The OpenACS 5.1.1 tag will apply to OpenACS core as well as to the most recent released version of every package, including .LRN.</p></li><li><p>Translations syncronized with the translation server. + 5.1.0 in <a href="release-notes.html#changelog" title="Changelog for oacs-5-6">Section , “Changelog for oacs-5-6”</a>.</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="release-notes-5-1-1"></a>Release 5.1.1</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>This is the first release using the newest adjustment to the versioning convention. The OpenACS 5.1.1 tag will apply to OpenACS core as well as to the most recent released version of every package, including .LRN.</p></li><li><p>Translations syncronized with the translation server. </p></li><li><p><a href="http://openacs.org/bugtracker/openacs/com/acs-lang/bug?bug%5fnumber=1519" target="_top">Bug 1519</a> fixed. This involved renaming all catalog files for ch_ZH, TH_TH, AR_EG, AR_LB, ms_my, RO_RO, FA_IR, @@ -65,7 +94,7 @@ the files and database before upgrading.)</p></li><li><p>Other bug fixes since 5.1.0: <a href="http://openacs.org/bugtracker/openacs/bug?bug_number=1785" target="_top">1785</a>, <a href="http://openacs.org/bugtracker/openacs/bug?bug_number=1793" target="_top">1793</a>, and over a dozen additional bug fixes.</p></li><li><p>For a complete change list, see the Change list since - 5.0.0 in <a href="release-notes.html#changelog" title="Changelog for oacs-5-5">Section , “Changelog for oacs-5-5”</a>.</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="release-notes-5-1-0"></a>Release 5.1.0</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Lots of little tweaks and fixes</p></li><li><p>Complete Change list since 5.0.0 in Changelog</p></li><li><p><a href="http://openacs.org/bugtracker/openacs/core?filter%2efix%5ffor%5fversion=125273&filter%2estatus=closed" target="_top">Many Bug fixes</a></p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="release-notes-5-0-4"></a>Release 5.0.4</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>New translations, including for .LRN 2.0.2.</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="release-notes-5-0-3"></a>Release 5.0.3</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Bug fixes: <a href="http://openacs.org/bugtracker/openacs/bug?bug%5fnumber=1560" target="_top">1560</a>, <a href="http://openacs.org/bugtracker/openacs/bug?bug%5fnumber=1556" target="_top">#1556. Site becomes unresponsive, requires restart</a></p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="release-notes-5-0-2"></a>Release 5.0.2</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Bug fixes: <a href="http://openacs.org/bugtracker/openacs/bug?bug%5fnumber=1495" target="_top">#1495. Croatian enabled by default</a>, <a href="http://openacs.org/bugtracker/openacs/bug?bug%5fnumber=1496" target="_top">#1496. APM automated install fails if files have spaces in their names</a>, <a href="http://openacs.org/bugtracker/openacs/bug?bug%5fnumber=1494" target="_top">#1494. automated upgrade crashes (halting the upgrade process)</a></p></li><li><p>Complete Change list since 5.0.0 in Changelog</p></li><li><p>File tagging scheme in CVS changed to follow <a href="http://openacs.org/forums/message-view?message_id=161375" target="_top">TIP #46: (Approved) Rules for Version Numbering and CVS tagging of Packages</a></p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="release-notes-5-0-1"></a>Release 5.0.1</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>All work on the translation server from 7 Nov 2003 to 7 Feb 2004 is now included in catalogs.</p></li><li><p>One new function in acs-tcl, util::age_pretty</p></li><li><p>Complete Change list since 5.0.0 in Changelog</p></li><li><p>Many documentation updates and doc bug fixes </p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="release-notes-5-0-0"></a>Release 5.0.0</h3></div></div><div></div></div><p> + 5.0.0 in <a href="release-notes.html#changelog" title="Changelog for oacs-5-6">Section , “Changelog for oacs-5-6”</a>.</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="release-notes-5-1-0"></a>Release 5.1.0</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Lots of little tweaks and fixes</p></li><li><p>Complete Change list since 5.0.0 in Changelog</p></li><li><p><a href="http://openacs.org/bugtracker/openacs/core?filter%2efix%5ffor%5fversion=125273&filter%2estatus=closed" target="_top">Many Bug fixes</a></p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="release-notes-5-0-4"></a>Release 5.0.4</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>New translations, including for .LRN 2.0.2.</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="release-notes-5-0-3"></a>Release 5.0.3</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Bug fixes: <a href="http://openacs.org/bugtracker/openacs/bug?bug%5fnumber=1560" target="_top">1560</a>, <a href="http://openacs.org/bugtracker/openacs/bug?bug%5fnumber=1556" target="_top">#1556. Site becomes unresponsive, requires restart</a></p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="release-notes-5-0-2"></a>Release 5.0.2</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Bug fixes: <a href="http://openacs.org/bugtracker/openacs/bug?bug%5fnumber=1495" target="_top">#1495. Croatian enabled by default</a>, <a href="http://openacs.org/bugtracker/openacs/bug?bug%5fnumber=1496" target="_top">#1496. APM automated install fails if files have spaces in their names</a>, <a href="http://openacs.org/bugtracker/openacs/bug?bug%5fnumber=1494" target="_top">#1494. automated upgrade crashes (halting the upgrade process)</a></p></li><li><p>Complete Change list since 5.0.0 in Changelog</p></li><li><p>File tagging scheme in CVS changed to follow <a href="http://openacs.org/forums/message-view?message_id=161375" target="_top">TIP #46: (Approved) Rules for Version Numbering and CVS tagging of Packages</a></p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="release-notes-5-0-1"></a>Release 5.0.1</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>All work on the translation server from 7 Nov 2003 to 7 Feb 2004 is now included in catalogs.</p></li><li><p>One new function in acs-tcl, util::age_pretty</p></li><li><p>Complete Change list since 5.0.0 in Changelog</p></li><li><p>Many documentation updates and doc bug fixes </p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="release-notes-5-0-0"></a>Release 5.0.0</h3></div></div><div></div></div><p> This is OpenACS 5.0.0. This version contains no known security, data loss, or crashing bugs, nor any bugs judged release blockers. This version has received manual testing. It has passed current automated testing, which is not comprehensive. This release contains work done on the translation server http://translate.openacs.org through 7 Nov 2003. </p><p> Please report bugs using our @@ -74,7 +103,7 @@ </p><p> You may want to begin by reading our installation documentation for <a href="unix-installation.html#unix-install" title="a Unix-like system">Section , “a Unix-like system”</a>. Note that the Windows documentation is - not current for OpenACS 5.5.0, but an alternative is to use John + not current for OpenACS 5.6.0, but an alternative is to use John Sequeira's <a href="http://www.pobox.com/~johnseq/projects/oasisvm/" target="_top">Oasis VM project</a>. </p><p> @@ -162,199 +191,10 @@ </p></li><li><p> Serving backup files and files from the CVS directories is turned off by default via the acs-kernel parameter ExcludedFiles in section request-processor (The variable provides a string match glob list of files and is defaulted to "*/CVS/* *~") - </p></li></ul></div><div class="cvstag">($Id$)</div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2815431"></a>Release 4.6.3</h3></div></div><div></div></div><p><a href="release-notes-4-6-3.html" target="_top">Release Notes for 4.6.3</a></p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2815447"></a>Release 4.6.2</h3></div></div><div></div></div><p><a href="release-notes-4-6-2.html" target="_top">Release Notes for 4.6.2</a></p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2815463"></a>Release 4.6</h3></div></div><div></div></div><p><a href="release-notes-4-6.html" target="_top">Release Notes for 4.6</a></p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2815479"></a>Release 4.5</h3></div></div><div></div></div><p><a href="release-notes-4-5.html" target="_top">Release Notes for 4.5</a></p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="changelog-latest"></a>Changelog (most recent release only)</h3></div></div><div></div></div><pre class="programlisting">ChangeLog missing</pre></div> + </p></li></ul></div><div class="cvstag">($Id$)</div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2815683"></a>Release 4.6.3</h3></div></div><div></div></div><p><a href="release-notes-4-6-3.html" target="_top">Release Notes for 4.6.3</a></p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2815699"></a>Release 4.6.2</h3></div></div><div></div></div><p><a href="release-notes-4-6-2.html" target="_top">Release Notes for 4.6.2</a></p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2815715"></a>Release 4.6</h3></div></div><div></div></div><p><a href="release-notes-4-6.html" target="_top">Release Notes for 4.6</a></p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2815731"></a>Release 4.5</h3></div></div><div></div></div><p><a href="release-notes-4-5.html" target="_top">Release Notes for 4.5</a></p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="changelog-latest"></a>Changelog (most recent release only)</h3></div></div><div></div></div><pre class="programlisting">ChangeLog missing</pre></div> --> -<div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="changelog"></a>Changelog for oacs-5-5</h3></div></div><div></div></div><pre class="programlisting"> -2009-09-05 21:44 donb - - * packages/acs-content-repository/tcl/apm-callback-procs.tcl: The - after upgrade callback needed a documentation block. - -2009-09-05 16:27 donb - - * packages/: acs-admin/acs-admin.info, - acs-api-browser/acs-api-browser.info, - acs-authentication/acs-authentication.info, - acs-automated-testing/acs-automated-testing.info, - acs-bootstrap-installer/acs-bootstrap-installer.info, - acs-content-repository/acs-content-repository.info, - acs-core-docs/acs-core-docs.info, acs-kernel/acs-kernel.info, - acs-lang/acs-lang.info, acs-mail-lite/acs-mail-lite.info, - acs-messaging/acs-messaging.info, - acs-reference/acs-reference.info, - acs-service-contract/acs-service-contract.info, - acs-subsite/acs-subsite.info, acs-tcl/acs-tcl.info, - acs-templating/acs-templating.info, - acs-translations/acs-translations.info, - intermedia-driver/intermedia-driver.info, - notifications/notifications.info, - openacs-default-theme/openacs-default-theme.info, - ref-timezones/ref-timezones.info, search/search.info, - tsearch2-driver/tsearch2-driver.info: Bumped version number to - 5.5.1b1 in preparation for release. - -2009-09-02 17:32 daveb - - * packages/acs-tcl/tcl/request-processor-procs.tcl: Fix redirect - when ForceHostP is true. Fix redirect to/from HTTP/HTTPS where - full URLs are used. - -2009-08-10 23:40 donb - - * packages/acs-subsite/tcl/: package-procs-oracle.xql, - package-procs-postgresql.xql, package-procs.tcl: - package_exec_plsql didn't work if the sql proc being called has a - parameter named "package_name"... - -2009-08-10 18:35 michaels - - * packages/acs-templating/tcl/richtext-procs.tcl: remove html - security check bypass for admins in the richtext validation per - OCT discussion - -2009-07-29 22:21 donb - - * packages/search/: search.info, tcl/apm-callback-procs.tcl, - tcl/search-init.tcl: Added a package instantiate callback so when - someone mounts "search", the search indexer is correctly started - up without a server restart being required. - -2009-07-24 14:12 victorg - - * packages/acs-templating/: acs-templating.info, - tcl/apm-callback-procs.tcl: Providing upgrade logic for removing - Xinha invalid plugins from the parameter XinhaDefaultPlugins. - -2009-07-22 20:47 emmar - - * packages/acs-subsite/acs-subsite.info: Fix dependencies and their - version - -2009-07-21 22:14 emmar - - * packages/acs-templating/tcl/date-procs.tcl: Localized default - format for date widget - -2009-07-20 21:29 emmar - - * packages/acs-templating/tcl/richtext-procs.tcl: Close LABEL tag - before adding the Format and Spellcheck widgets. This HTML should - be build in the template rather than in the rendering proc. Each - widget should be computed separately. - -2009-07-20 12:24 emmar - - * packages/acs-content-repository/: acs-content-repository.info, - sql/common/mime-type-data.sql, tcl/apm-callback-procs.tcl: - Implements TIP #135 (OOXML formats) - -2009-07-20 09:32 emmar - - * packages/acs-core-docs/www/individual-programs.html: Fix Tcl - version - -2009-07-20 08:42 emmar - - * packages/acs-core-docs/www/xml/install-guide/software.xml: Fix - Tcl version - -2009-07-17 11:48 emmar - - * packages/: acs-admin/acs-admin.info, - acs-api-browser/acs-api-browser.info, - acs-authentication/acs-authentication.info, - acs-automated-testing/acs-automated-testing.info, - acs-bootstrap-installer/acs-bootstrap-installer.info, - acs-content-repository/acs-content-repository.info, - acs-core-docs/acs-core-docs.info, acs-kernel/acs-kernel.info, - acs-lang/acs-lang.info, acs-mail-lite/acs-mail-lite.info, - acs-messaging/acs-messaging.info, - acs-reference/acs-reference.info, - acs-service-contract/acs-service-contract.info, - acs-subsite/acs-subsite.info, acs-tcl/acs-tcl.info, - acs-templating/acs-templating.info, - acs-translations/acs-translations.info, - intermedia-driver/intermedia-driver.info, - notifications/notifications.info, - openacs-default-theme/openacs-default-theme.info, - ref-timezones/ref-timezones.info, search/search.info, - tsearch2-driver/tsearch2-driver.info: Bumped version to 5.5.1d1 - -2009-07-14 11:44 emmar - - * packages/notifications/: - catalog/notifications.en_US.ISO-8859-1.xml, - catalog/notifications.es_ES.ISO-8859-1.xml, - tcl/notification-procs.tcl, www/manage.adp, www/manage.tcl, - www/request-change-frequency.adp, - www/request-change-frequency.tcl, www/request-new.adp, - www/request-new.tcl: Localization (level AA requirement) - -2009-07-14 09:47 emmar - - * packages/acs-subsite/: catalog/acs-subsite.en_US.ISO-8859-1.xml, - catalog/acs-subsite.es_ES.ISO-8859-1.xml, - www/shared/whos-online.adp, www/shared/whos-online.tcl: - Localization - -2009-07-06 11:17 emmar - - * packages/acs-core-docs/www/: database-management.html, - docbook-primer.html, install-next-nightly-vacuum.html, - install-openacs-delete-tablespace.html, - programming-with-aolserver.html, remote-postgres.html, - unix-installation.html: Regenerate HTML files after updating - variables values and the compatibility table - -2009-07-06 11:14 emmar - - * packages/acs-core-docs/www/: acs-admin.html, - acs-package-dev.html, acs-plat-dev.html, aolserver.html, - aolserver4.html, apm-design.html, apm-requirements.html, - automated-backup.html, automated-testing-best-practices.html, - backup-recovery.html, backups-with-cvs.html, - complete-install.html, configuring-configuring-packages.html, - configuring-configuring-permissions.html, - configuring-install-packages.html, - configuring-mounting-packages.html, credits.html, - cvs-guidelines.html, cvs-tips.html, db-api-detailed.html, - db-api.html, dev-guide.html, doc-standards.html, - eng-standards-constraint-naming.html, - eng-standards-filenaming.html, eng-standards-plsql.html, - eng-standards-versioning.html, ext-auth-requirements.html, - filename.html, form-builder.html, groups-design.html, - high-avail.html, how-do-I.html, i18n-convert.html, index.html, - individual-programs.html, install-cvs.html, - install-daemontools.html, install-full-text-search-openfts.html, - install-full-text-search-tsearch2.html, - install-next-add-server.html, install-next-backups.html, - install-openacs-keepalive.html, install-qmail.html, - install-redhat.html, install-steps.html, ix01.html, - kernel-doc.html, mac-installation.html, maint-performance.html, - maintenance-deploy.html, object-identity.html, - object-system-design.html, object-system-requirements.html, - objects.html, openacs-unpack.html, openacs.html, oracle.html, - packages.html, parties.html, - permissions-tediously-explained.html, permissions.html, - postgres.html, psgml-for-emacs.html, psgml-mode.html, - release-notes.html, releasing-openacs-core.html, - request-processor.html, requirements-template.html, - rp-design.html, security-notes.html, snapshot-backup.html, - style-guide.html, subsites.html, templates.html, - tutorial-database.html, tutorial-debug.html, - tutorial-newpackage.html, tutorial-pages.html, tutorial.html, - upgrade-4.5-to-4.6.html, upgrade-openacs-files.html, - upgrade-overview.html, variables.html: Updated with correct - variable values and last changes in the compatibility table - -2009-07-06 11:02 emmar - - * packages/acs-core-docs/www/xml/: variables.ent, - install-guide/compatibility.xml, install-guide/software.xml: - Updated the compatibility table. Set the variables according to - the last final release. Removed unused (and duplicated) file. - - +<div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="changelog"></a>Changelog for oacs-5-6</h3></div></div><div></div></div><pre class="programlisting"> +ChangeLog missing </pre></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="openacs-overview.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="acs-admin.html">Next</a></td></tr><tr><td width="40%" align="left">Overview </td><td width="20%" align="center"><a accesskey="u" href="general-documents.html">Up</a></td><td width="40%" align="right"> Part II. Administrator's Guide</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/release-notes.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/releasing-openacs-core.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/releasing-openacs-core.html,v diff -u -r1.16 -r1.17 --- openacs-4/packages/acs-core-docs/www/releasing-openacs-core.html 13 Sep 2009 23:54:41 -0000 1.16 +++ openacs-4/packages/acs-core-docs/www/releasing-openacs-core.html 17 Oct 2010 21:06:08 -0000 1.17 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenACS Core and .LRN</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="releasing-openacs.html" title="Chapter 15. Releasing OpenACS"><link rel="previous" href="releasing-openacs.html" title="Chapter 15. Releasing OpenACS"><link rel="next" href="update-repository.html" title="How to Update the OpenACS.org repository"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="releasing-openacs.html">Prev</a> </td><th width="60%" align="center">Chapter 15. Releasing OpenACS</th><td width="20%" align="right"> <a accesskey="n" href="update-repository.html">Next</a></td></tr></table><hr></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="releasing-openacs-core"></a>OpenACS Core and .LRN</h2></div></div><div></div></div><div class="orderedlist"><ol type="1"><li><p><b>Update Translations. </b><a href="update-translations.html" title="How to Update the translations">Section , “How to Update the translations”</a></p></li><li><p><b>Rebuild the Changelog. </b>Rebuild the Changelog. I use a tool called cvs2cl. Run this command from the package root to automatically generate a Changelog file in the same dir. We generate two changelogs, one for the minor branch and one for the most recent release. The example below is for OpenACS 5.0.2:</p><pre class="screen"><span class="action"><span class="action">cd /var/lib/aolserver/$OPENACS_SERVICE_NAME +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenACS Core and .LRN</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="releasing-openacs.html" title="Chapter 16. Releasing OpenACS"><link rel="previous" href="releasing-openacs.html" title="Chapter 16. Releasing OpenACS"><link rel="next" href="update-repository.html" title="How to Update the OpenACS.org repository"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="releasing-openacs.html">Prev</a> </td><th width="60%" align="center">Chapter 16. Releasing OpenACS</th><td width="20%" align="right"> <a accesskey="n" href="update-repository.html">Next</a></td></tr></table><hr></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="releasing-openacs-core"></a>OpenACS Core and .LRN</h2></div></div><div></div></div><div class="orderedlist"><ol type="1"><li><p><b>Update Translations. </b><a href="update-translations.html" title="How to Update the translations">Section , “How to Update the translations”</a></p></li><li><p><b>Rebuild the Changelog. </b>Rebuild the Changelog. I use a tool called cvs2cl. Run this command from the package root to automatically generate a Changelog file in the same dir. We generate two changelogs, one for the minor branch and one for the most recent release. The example below is for OpenACS 5.0.2:</p><pre class="screen"><span class="action"><span class="action">cd /var/lib/aolserver/$OPENACS_SERVICE_NAME cvs2cl -F <span class="replaceable"><span class="replaceable">oacs-5-0</span></span> --delta <span class="replaceable"><span class="replaceable">openacs-5-0-0-final</span></span>:<span class="replaceable"><span class="replaceable">oacs-5-0</span></span> -f ChangeLog cvs2cl -F <span class="replaceable"><span class="replaceable">oacs-5-0</span></span> --delta <span class="replaceable"><span class="replaceable">openacs-5-0-1-final</span></span>:<span class="replaceable"><span class="replaceable">oacs-5-0</span></span> -f ChangeLog-recent</span></span></pre></li><li><p><b>Update Version Numbers. </b>The version numbers in the documentation and in the packages must be updated. This should only happen after a release candidate is approved.</p><i><span class="remark">.LRN: this must be repeated for .LRN modules (dotlrn-core in the dotlrn cvs tree) and for any modified modules in the .LRN prerequisites (dotlrn-prereq in openacs cvs tree). My current working model is that I bulk-update .LRN and OpenACS core but that I don't touch dotlrn-prereq modules - I just use the most recent release and it's up to individual package developers to tag and <a href="releasing-package.html" title="How to package and release an OpenACS Package">release those packages</a> when they change. This model is already broken because following it means that dotlrn-prereqs don't get new translations.</span></i><div class="orderedlist"><ol type="a"><li><p>Update /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-core-docs/www/xml/variables.ent with the new version number. </p></li><li><p>Add new section in /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-core-docs/www/xml/for-everyone/release-notes.xml @@ -139,4 +139,4 @@ # Clean up after ourselves... cd $BASE && rm -rf dotlrn-tarball tarball openacs-4 dotlrn-packages -</pre><div class="cvstag">($Id$)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="releasing-openacs.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="update-repository.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter 15. Releasing OpenACS </td><td width="20%" align="center"><a accesskey="u" href="releasing-openacs.html">Up</a></td><td width="40%" align="right"> How to Update the OpenACS.org repository</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/releasing-openacs-core.html#comments">View comments on this page at openacs.org</a></center></body></html> +</pre><div class="cvstag">($Id$)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="releasing-openacs.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="update-repository.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter 16. Releasing OpenACS </td><td width="20%" align="center"><a accesskey="u" href="releasing-openacs.html">Up</a></td><td width="40%" align="right"> How to Update the OpenACS.org repository</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/releasing-openacs-core.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/releasing-openacs.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/releasing-openacs.html,v diff -u -r1.25 -r1.26 --- openacs-4/packages/acs-core-docs/www/releasing-openacs.html 13 Sep 2009 23:54:41 -0000 1.25 +++ openacs-4/packages/acs-core-docs/www/releasing-openacs.html 17 Oct 2010 21:06:08 -0000 1.26 @@ -1,2 +1,2 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter 15. Releasing OpenACS</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="acs-plat-dev.html" title="Part IV. For OpenACS Platform Developers"><link rel="previous" href="ext-auth-requirements.html" title="External Authentication Requirements"><link rel="next" href="releasing-openacs-core.html" title="OpenACS Core and .LRN"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="ext-auth-requirements.html">Prev</a> </td><th width="60%" align="center">Part IV. For OpenACS Platform Developers</th><td width="20%" align="right"> <a accesskey="n" href="releasing-openacs-core.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="releasing-openacs"></a>Chapter 15. Releasing OpenACS</h2></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="releasing-openacs-core.html">OpenACS Core and .LRN</a></dt><dt><a href="update-repository.html">How to Update the OpenACS.org repository</a></dt><dt><a href="releasing-package.html">How to package and release an OpenACS Package</a></dt><dt><a href="update-translations.html">How to Update the translations</a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ext-auth-requirements.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="releasing-openacs-core.html">Next</a></td></tr><tr><td width="40%" align="left">External Authentication Requirements </td><td width="20%" align="center"><a accesskey="u" href="acs-plat-dev.html">Up</a></td><td width="40%" align="right"> OpenACS Core and .LRN</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/releasing-openacs.html#comments">View comments on this page at openacs.org</a></center></body></html> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter 16. Releasing OpenACS</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="acs-plat-dev.html" title="Part IV. For OpenACS Platform Developers"><link rel="previous" href="ext-auth-requirements.html" title="External Authentication Requirements"><link rel="next" href="releasing-openacs-core.html" title="OpenACS Core and .LRN"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="ext-auth-requirements.html">Prev</a> </td><th width="60%" align="center">Part IV. For OpenACS Platform Developers</th><td width="20%" align="right"> <a accesskey="n" href="releasing-openacs-core.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="releasing-openacs"></a>Chapter 16. Releasing OpenACS</h2></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="releasing-openacs-core.html">OpenACS Core and .LRN</a></dt><dt><a href="update-repository.html">How to Update the OpenACS.org repository</a></dt><dt><a href="releasing-package.html">How to package and release an OpenACS Package</a></dt><dt><a href="update-translations.html">How to Update the translations</a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ext-auth-requirements.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="releasing-openacs-core.html">Next</a></td></tr><tr><td width="40%" align="left">External Authentication Requirements </td><td width="20%" align="center"><a accesskey="u" href="acs-plat-dev.html">Up</a></td><td width="40%" align="right"> OpenACS Core and .LRN</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/releasing-openacs.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/releasing-package.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/releasing-package.html,v diff -u -r1.11 -r1.12 --- openacs-4/packages/acs-core-docs/www/releasing-package.html 13 Sep 2009 23:54:41 -0000 1.11 +++ openacs-4/packages/acs-core-docs/www/releasing-package.html 17 Oct 2010 21:06:08 -0000 1.12 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>How to package and release an OpenACS Package</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="releasing-openacs.html" title="Chapter 15. Releasing OpenACS"><link rel="previous" href="update-repository.html" title="How to Update the OpenACS.org repository"><link rel="next" href="update-translations.html" title="How to Update the translations"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="update-repository.html">Prev</a> </td><th width="60%" align="center">Chapter 15. Releasing OpenACS</th><td width="20%" align="right"> <a accesskey="n" href="update-translations.html">Next</a></td></tr></table><hr></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="releasing-package"></a>How to package and release an OpenACS Package</h2></div></div><div></div></div><p>In this example, we are packaging and releasing <tt class="computeroutput">myfirstpackage</tt> as version 1.0.0, which is compatible with OpenACS 5.0.x.</p><div class="orderedlist"><ol type="1"><li><p>Update the version number, release date, and <a href="http://openacs.org/forums/message-view?message_id=161393" target="_top">package maturity</a> of your package in the <a href="/acs-admin/apm/" target="_top">APM</a>.</p></li><li><p>Make sure all changes are committed.</p></li><li><p>Tag the updated work.:</p><pre class="screen"><span class="action"><span class="action">cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/<span class="replaceable"><span class="replaceable">myfirstpackage</span></span> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>How to package and release an OpenACS Package</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="releasing-openacs.html" title="Chapter 16. Releasing OpenACS"><link rel="previous" href="update-repository.html" title="How to Update the OpenACS.org repository"><link rel="next" href="update-translations.html" title="How to Update the translations"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="update-repository.html">Prev</a> </td><th width="60%" align="center">Chapter 16. Releasing OpenACS</th><td width="20%" align="right"> <a accesskey="n" href="update-translations.html">Next</a></td></tr></table><hr></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="releasing-package"></a>How to package and release an OpenACS Package</h2></div></div><div></div></div><p>In this example, we are packaging and releasing <tt class="computeroutput">myfirstpackage</tt> as version 1.0.0, which is compatible with OpenACS 5.0.x.</p><div class="orderedlist"><ol type="1"><li><p>Update the version number, release date, and <a href="http://openacs.org/forums/message-view?message_id=161393" target="_top">package maturity</a> of your package in the <a href="/acs-admin/apm/" target="_top">APM</a>.</p></li><li><p>Make sure all changes are committed.</p></li><li><p>Tag the updated work.:</p><pre class="screen"><span class="action"><span class="action">cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/<span class="replaceable"><span class="replaceable">myfirstpackage</span></span> cvs tag <span class="replaceable"><span class="replaceable">myfirstpackages-1-0-0-final</span></span> cvs tag -F <span class="replaceable"><span class="replaceable">openacs-5-0-compat</span></span> </span></span></pre></li></ol></div><p>Done. The package will be added to the <a href="http://openacs.org/repository" target="_top">repository</a> automatically. If the correct version does not show up within 24 hours, ask for help on the OpenACS.org development forum.</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="update-repository.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="update-translations.html">Next</a></td></tr><tr><td width="40%" align="left">How to Update the OpenACS.org repository </td><td width="20%" align="center"><a accesskey="u" href="releasing-openacs.html">Up</a></td><td width="40%" align="right"> How to Update the translations</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/releasing-package.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/request-processor.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/request-processor.html,v diff -u -r1.45 -r1.46 --- openacs-4/packages/acs-core-docs/www/request-processor.html 13 Sep 2009 23:54:41 -0000 1.45 +++ openacs-4/packages/acs-core-docs/www/request-processor.html 17 Oct 2010 21:06:08 -0000 1.46 @@ -1,13 +1,13 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>The Request Processor</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="dev-guide.html" title="Chapter 10. Development Reference"><link rel="previous" href="objects.html" title="OpenACS Data Models and the Object System"><link rel="next" href="db-api.html" title="The OpenACS Database Access API"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="objects.html">Prev</a> </td><th width="60%" align="center">Chapter 10. Development Reference</th><td width="20%" align="right"> <a accesskey="n" href="db-api.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="request-processor"></a>The Request Processor</h2></div></div><div></div></div><div class="authorblurb"><p>By Pete Su</p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>The Request Processor</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="dev-guide.html" title="Chapter 11. Development Reference"><link rel="previous" href="objects.html" title="OpenACS Data Models and the Object System"><link rel="next" href="db-api.html" title="The OpenACS Database Access API"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="objects.html">Prev</a> </td><th width="60%" align="center">Chapter 11. Development Reference</th><td width="20%" align="right"> <a accesskey="n" href="db-api.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="request-processor"></a>The Request Processor</h2></div></div><div></div></div><div class="authorblurb"><p>By Pete Su</p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="rp-overview"></a>Overview</h3></div></div><div></div></div><p> -This document is a brief introduction to the OpenACS 5.5.0 Request Processor; +This document is a brief introduction to the OpenACS 5.6.0 Request Processor; more details can be found in the <a href="rp-design.html">OpenACS 4 Request Processor Design</a>. Here we cover the high level concepts behind the system, and implications and usage for the application developer. </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="rp-thenewway"></a>Request Processor</h3></div></div><div></div></div><p> -The 5.5.0 Request Processor is a global filter and set of Tcl procs that +The 5.6.0 Request Processor is a global filter and set of Tcl procs that respond to every incoming URL reaching the server. The following diagram summarizes the stages of the request processor assuming a URL request like <tt class="computeroutput">http://someserver.com/notes/somepage.adp</tt>. @@ -18,14 +18,14 @@ The first thing the RP does is to map the given URL to the appropriate physical directory in the filesystem, from which to serve content. We do this by searching the site map data model (touched on in the <a href="packages.html">Packages</a>, and further -discussed in ???). This data model maps URLs to objects representing +discussed in <a href="subsites.html">Writing OpenACS Application Pages</a>). This data model maps URLs to objects representing content, and these objects are typically package instances. </p><p> After looking up the appropriate object, the RP stores the URL, the ID of the object it found, and the package and package instance the object belongs to into the environment of the connection. This environment can be queried using the <tt class="computeroutput">ad_conn</tt> procedure, -which is described in detail in <a href="rp-design.html">OpenACS 4 Request Processor Design</a>. The <a href="">page +which is described in detail in <a href="rp-design.html">OpenACS 4 Request Processor Design</a>. The <a href="subsites.html" title="Writing OpenACS Application Pages">page development</a> tutorial shows you how to use this interface to make your pages aware of which instance was requested. </p></dd><dt><span class="term">Stage 2: Authentication</span></dt><dd><p> @@ -36,7 +36,7 @@ extracts or sets up new session tokens for the user. </p></dd><dt><span class="term">Stage 3: Authorization</span></dt><dd><p> Next, the Request Processor checks if the user has appropriate access -privileges to the requested part of the site. In OpenACS 5.5.0, access control +privileges to the requested part of the site. In OpenACS 5.6.0, access control is dictated by the <a href="permissions" target="_top">permissions system</a>. In this case, the RP checks if the user has "read" priviledges on the object in the site map specified by the URL. This object is typically Index: openacs-4/packages/acs-core-docs/www/requirements-template.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/requirements-template.html,v diff -u -r1.45 -r1.46 --- openacs-4/packages/acs-core-docs/www/requirements-template.html 13 Sep 2009 23:54:41 -0000 1.45 +++ openacs-4/packages/acs-core-docs/www/requirements-template.html 17 Oct 2010 21:06:08 -0000 1.46 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>System/Application Requirements Template</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="doc-standards.html" title="Chapter 12. Documentation Standards"><link rel="previous" href="filename.html" title="Detailed Design Documentation Template"><link rel="next" href="i18n.html" title="Chapter 13. Internationalization"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="filename.html">Prev</a> </td><th width="60%" align="center">Chapter 12. Documentation Standards</th><td width="20%" align="right"> <a accesskey="n" href="i18n.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="requirements-template"></a>System/Application Requirements Template</h2></div></div><div></div></div><div class="authorblurb"><p>By <a href="mailto:youremail@example.com" target="_top">You</a></p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>System/Application Requirements Template</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="doc-standards.html" title="Chapter 13. Documentation Standards"><link rel="previous" href="filename.html" title="Detailed Design Documentation Template"><link rel="next" href="i18n.html" title="Chapter 14. Internationalization"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="filename.html">Prev</a> </td><th width="60%" align="center">Chapter 13. Documentation Standards</th><td width="20%" align="right"> <a accesskey="n" href="i18n.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="requirements-template"></a>System/Application Requirements Template</h2></div></div><div></div></div><div class="authorblurb"><p>By <a href="mailto:youremail@example.com" target="_top">You</a></p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="yourpackage-requirements-introduction"></a>Introduction</h3></div></div><div></div></div><p> @@ -81,4 +81,4 @@ pre-existing system or prototype first, and thus you may want to write some thoughts on implementation, for aiding and guiding yourself or other programmers. </em></span> - </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="yourpackage-revision-history"></a>Revision History</h3></div></div><div></div></div><div class="informaltable"><table cellspacing="0" border="1"><colgroup><col><col><col><col></colgroup><thead><tr><th class="revisionheader">Document Revision #</th><th>Action Taken, Notes</th><th>When?</th><th>By Whom?</th></tr></thead><tbody><tr><td class="revisionbody">0.3</td><td>Edited further, incorporated feedback from Michael Yoon</td><td>9/05/2000</td><td>Kai Wu</td></tr><tr><td>0.2</td><td>Edited</td><td>8/22/2000</td><td>Kai Wu</td></tr><tr><td>0.1</td><td>Created</td><td>8/21/2000</td><td>Josh Finkler, Audrey McLoghlin</td></tr></tbody></table></div><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="filename.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="i18n.html">Next</a></td></tr><tr><td width="40%" align="left">Detailed Design Documentation Template </td><td width="20%" align="center"><a accesskey="u" href="doc-standards.html">Up</a></td><td width="40%" align="right"> Chapter 13. Internationalization</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/requirements-template.html#comments">View comments on this page at openacs.org</a></center></body></html> + </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="yourpackage-revision-history"></a>Revision History</h3></div></div><div></div></div><div class="informaltable"><table cellspacing="0" border="1"><colgroup><col><col><col><col></colgroup><thead><tr><th class="revisionheader">Document Revision #</th><th>Action Taken, Notes</th><th>When?</th><th>By Whom?</th></tr></thead><tbody><tr><td class="revisionbody">0.3</td><td>Edited further, incorporated feedback from Michael Yoon</td><td>9/05/2000</td><td>Kai Wu</td></tr><tr><td>0.2</td><td>Edited</td><td>8/22/2000</td><td>Kai Wu</td></tr><tr><td>0.1</td><td>Created</td><td>8/21/2000</td><td>Josh Finkler, Audrey McLoghlin</td></tr></tbody></table></div><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="filename.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="i18n.html">Next</a></td></tr><tr><td width="40%" align="left">Detailed Design Documentation Template </td><td width="20%" align="center"><a accesskey="u" href="doc-standards.html">Up</a></td><td width="40%" align="right"> Chapter 14. Internationalization</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/requirements-template.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/rp-design.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/rp-design.html,v diff -u -r1.33 -r1.34 --- openacs-4/packages/acs-core-docs/www/rp-design.html 13 Sep 2009 23:54:41 -0000 1.33 +++ openacs-4/packages/acs-core-docs/www/rp-design.html 17 Oct 2010 21:06:08 -0000 1.34 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Request Processor Design</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 14. Kernel Documentation"><link rel="previous" href="rp-requirements.html" title="Request Processor Requirements"><link rel="next" href="tcl-doc.html" title="Documenting Tcl Files: Page Contracts and Libraries"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="rp-requirements.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="tcl-doc.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="rp-design"></a>Request Processor Design</h2></div></div><div></div></div><div class="authorblurb"><p>By <a href="http://planitia.org" target="_top">Rafael H. Schloming</a> </p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Request Processor Design</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 15. Kernel Documentation"><link rel="previous" href="rp-requirements.html" title="Request Processor Requirements"><link rel="next" href="bootstrap-acs.html" title="Bootstrapping OpenACS"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="rp-requirements.html">Prev</a> </td><th width="60%" align="center">Chapter 15. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="bootstrap-acs.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="rp-design"></a>Request Processor Design</h2></div></div><div></div></div><div class="authorblurb"><p>By <a href="http://planitia.org" target="_top">Rafael H. Schloming</a> </p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="rp-design-essentials"></a>Essentials</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p><a href="rp-requirements.html">OpenACS 4 Request Processor Requirements</a></p></li><li><p><a href="/api-doc/procs-file-view?path=packages/acs-tcl/tcl/request-processor-procs.tcl" target="_top"> @@ -99,4 +99,4 @@ blank</td></tr><tr><td valign="top"><tt class="computeroutput">[ad_conn sec_validated]</tt></td><td valign="top">This becomes "secure" when the connection uses SSL</td></tr><tr><td colspan="2"> </td></tr><tr><td colspan="2"><span class="strong">Database API</span></td></tr><tr><td valign="top"><tt class="computeroutput">[ad_conn db,handles]</tt></td><td valign="top">What are the list of handles available to AOL?</td></tr><tr><td valign="top"><tt class="computeroutput">[ad_conn db,n_handles_used]</tt></td><td valign="top">How many database handles are currently used?</td></tr><tr><td valign="top"><tt class="computeroutput">[ad_conn db,last_used]</tt></td><td valign="top">Which database handle did we use last?</td></tr><tr><td valign="top"><tt class="computeroutput">[ad_conn db,transaction_level,$db]</tt></td><td valign="top">Specifies what transaction level we are in</td></tr><tr><td valign="top"><tt class="computeroutput">[ad_conn db,db_abort_p,$dbh]</tt></td><td valign="top">Whether the transaction is aborted</td></tr><tr><td colspan="2"> </td></tr><tr><td colspan="2"><span class="strong">APM</span></td></tr><tr><td valign="top"><tt class="computeroutput">[ad_conn xml_loaded_p]</tt></td><td valign="top">Checks whether the XML parser is loaded so that it only gets loaded once. Set in apm_load_xml_packages</td></tr><tr><td colspan="2"> </td></tr><tr><td colspan="2"><span class="strong">Packages</span></td></tr><tr><td valign="top"><tt class="computeroutput">[ad_conn package_id]</tt></td><td valign="top">The package_id of the package associated with the URL.</td></tr><tr><td valign="top"><tt class="computeroutput">[ad_conn package_url]</tt></td><td valign="top">The URL on which the package is mounted.</td></tr><tr><td colspan="2"> </td></tr><tr><td colspan="2"><span class="strong">Miscellaneous</span></td></tr><tr><td valign="top"><tt class="computeroutput">[ad_conn system_p]</tt></td><td valign="top">If true then the request has been made to one of the special directories specified in the config file (somewhere), and no authentication or -authorization has been performed.</td></tr><tr><td colspan="2"> </td></tr><tr><td colspan="2"><span class="strong">Documentation</span></td></tr><tr><td valign="top"><tt class="computeroutput">[ad_conn api_page_documentation_mode_p]</tt></td><td valign="top"> </td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="rp-requirements.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="tcl-doc.html">Next</a></td></tr><tr><td width="40%" align="left">Request Processor Requirements </td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right"> Documenting Tcl Files: Page Contracts and Libraries</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/rp-design.html#comments">View comments on this page at openacs.org</a></center></body></html> +authorization has been performed.</td></tr><tr><td colspan="2"> </td></tr><tr><td colspan="2"><span class="strong">Documentation</span></td></tr><tr><td valign="top"><tt class="computeroutput">[ad_conn api_page_documentation_mode_p]</tt></td><td valign="top"> </td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="rp-requirements.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="bootstrap-acs.html">Next</a></td></tr><tr><td width="40%" align="left">Request Processor Requirements </td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right"> Bootstrapping OpenACS</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/rp-design.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/rp-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/rp-requirements.html,v diff -u -r1.29 -r1.30 --- openacs-4/packages/acs-core-docs/www/rp-requirements.html 13 Sep 2009 23:54:41 -0000 1.29 +++ openacs-4/packages/acs-core-docs/www/rp-requirements.html 17 Oct 2010 21:06:08 -0000 1.30 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Request Processor Requirements</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 14. Kernel Documentation"><link rel="previous" href="security-notes.html" title="Security Notes"><link rel="next" href="rp-design.html" title="Request Processor Design"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="security-notes.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="rp-design.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="rp-requirements"></a>Request Processor Requirements</h2></div></div><div></div></div><div class="authorblurb"><p>By <a href="http://planitia.org" target="_top">Rafael H. Schloming</a> </p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Request Processor Requirements</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 15. Kernel Documentation"><link rel="previous" href="security-notes.html" title="Security Notes"><link rel="next" href="rp-design.html" title="Request Processor Design"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="security-notes.html">Prev</a> </td><th width="60%" align="center">Chapter 15. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="rp-design.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="rp-requirements"></a>Request Processor Requirements</h2></div></div><div></div></div><div class="authorblurb"><p>By <a href="http://planitia.org" target="_top">Rafael H. Schloming</a> </p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="rp-requirements-intro"></a>Introduction</h3></div></div><div></div></div><p>The following is a requirements document for the OpenACS 4.0 request Index: openacs-4/packages/acs-core-docs/www/security-design.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/security-design.html,v diff -u -r1.31 -r1.32 --- openacs-4/packages/acs-core-docs/www/security-design.html 13 Sep 2009 23:54:41 -0000 1.31 +++ openacs-4/packages/acs-core-docs/www/security-design.html 17 Oct 2010 21:06:08 -0000 1.32 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Security Design</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 14. Kernel Documentation"><link rel="previous" href="security-requirements.html" title="Security Requirements"><link rel="next" href="security-notes.html" title="Security Notes"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="security-requirements.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="security-notes.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="security-design"></a>Security Design</h2></div></div><div></div></div><div class="authorblurb"><p>By Richard Li and Archit Shah</p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Security Design</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 15. Kernel Documentation"><link rel="previous" href="security-requirements.html" title="Security Requirements"><link rel="next" href="security-notes.html" title="Security Notes"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="security-requirements.html">Prev</a> </td><th width="60%" align="center">Chapter 15. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="security-notes.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="security-design"></a>Security Design</h2></div></div><div></div></div><div class="authorblurb"><p>By Richard Li and Archit Shah</p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="security-design-essentials"></a>Essentials</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p><a href="security-requirements.html">OpenACS 4 Security Requirements</a></p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="security-design-intro"></a>Introduction</h3></div></div><div></div></div><p> Index: openacs-4/packages/acs-core-docs/www/security-notes.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/security-notes.html,v diff -u -r1.45 -r1.46 --- openacs-4/packages/acs-core-docs/www/security-notes.html 13 Sep 2009 23:54:41 -0000 1.45 +++ openacs-4/packages/acs-core-docs/www/security-notes.html 17 Oct 2010 21:06:08 -0000 1.46 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Security Notes</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 14. Kernel Documentation"><link rel="previous" href="security-design.html" title="Security Design"><link rel="next" href="rp-requirements.html" title="Request Processor Requirements"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="security-design.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="rp-requirements.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="security-notes"></a>Security Notes</h2></div></div><div></div></div><div class="authorblurb"><p>By Richard Li</p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Security Notes</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 15. Kernel Documentation"><link rel="previous" href="security-design.html" title="Security Design"><link rel="next" href="rp-requirements.html" title="Request Processor Requirements"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="security-design.html">Prev</a> </td><th width="60%" align="center">Chapter 15. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="rp-requirements.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="security-notes"></a>Security Notes</h2></div></div><div></div></div><div class="authorblurb"><p>By Richard Li</p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><p> Index: openacs-4/packages/acs-core-docs/www/security-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/security-requirements.html,v diff -u -r1.31 -r1.32 --- openacs-4/packages/acs-core-docs/www/security-requirements.html 13 Sep 2009 23:54:41 -0000 1.31 +++ openacs-4/packages/acs-core-docs/www/security-requirements.html 17 Oct 2010 21:06:08 -0000 1.32 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Security Requirements</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 14. Kernel Documentation"><link rel="previous" href="i18n-requirements.html" title="OpenACS Internationalization Requirements"><link rel="next" href="security-design.html" title="Security Design"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="i18n-requirements.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="security-design.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="security-requirements"></a>Security Requirements</h2></div></div><div></div></div><div class="authorblurb"><p>By Richard Li</p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Security Requirements</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 15. Kernel Documentation"><link rel="previous" href="i18n-requirements.html" title="OpenACS Internationalization Requirements"><link rel="next" href="security-design.html" title="Security Design"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="i18n-requirements.html">Prev</a> </td><th width="60%" align="center">Chapter 15. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="security-design.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="security-requirements"></a>Security Requirements</h2></div></div><div></div></div><div class="authorblurb"><p>By Richard Li</p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="security-requirements-intro"></a>Introduction</h3></div></div><div></div></div><p> Index: openacs-4/packages/acs-core-docs/www/snapshot-backup.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/snapshot-backup.html,v diff -u -r1.10 -r1.11 --- openacs-4/packages/acs-core-docs/www/snapshot-backup.html 12 Jul 2009 01:08:29 -0000 1.10 +++ openacs-4/packages/acs-core-docs/www/snapshot-backup.html 17 Oct 2010 21:06:08 -0000 1.11 @@ -1,35 +1,35 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Manual backup and recovery</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.0"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="backup-recovery.html" title="Chapter 8. Backup and Recovery"><link rel="previous" href="install-next-backups.html" title="Backup Strategy"><link rel="next" href="automated-backup.html" title="Automated Backup"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="install-next-backups.html">Prev</a> </td><th width="60%" align="center">Chapter 8. Backup and Recovery</th><td width="20%" align="right"> <a accesskey="n" href="automated-backup.html">Next</a></td></tr></table><hr></div><div class="sect1" title="Manual backup and recovery"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="snapshot-backup"></a>Manual backup and recovery</h2></div></div></div><p>This section describes how to make a one-time backup and +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Manual backup and recovery</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="backup-recovery.html" title="Chapter 8. Backup and Recovery"><link rel="previous" href="install-next-backups.html" title="Backup Strategy"><link rel="next" href="automated-backup.html" title="Automated Backup"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="install-next-backups.html">Prev</a> </td><th width="60%" align="center">Chapter 8. Backup and Recovery</th><td width="20%" align="right"> <a accesskey="n" href="automated-backup.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="snapshot-backup"></a>Manual backup and recovery</h2></div></div><div></div></div><p>This section describes how to make a one-time backup and restore of the files and database. This is useful for rolling back to known-good versions of a service, such as at initial installation and just before an upgrade. First, you back up the database to a file within the file tree. Then, you back up the file tree. All of the information needed to rebuild the site, including the AOLserver config files, is then in tree for regular - file system backup.</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p title="Back up the database to a file"><b>Back up the database to a file. </b></p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p title="Oracle"><a name="oracle-snapshot-backup"></a><b>Oracle. </b></p><div class="itemizedlist"><ul class="itemizedlist" type="circle"><li class="listitem"><p> - Download the backup script. Save the file <a class="ulink" href="files/export-oracle.txt" target="_top">export-oracle.txt</a> as - <code class="filename">/var/tmp/export-oracle.txt</code> - </p></li><li class="listitem"><p> + file system backup.</p><div class="orderedlist"><ol type="1"><li><p><b>Back up the database to a file. </b></p><div class="itemizedlist"><ul type="disc"><li><p><a name="oracle-snapshot-backup"></a><b>Oracle. </b></p><div class="itemizedlist"><ul type="circle"><li><p> + Download the backup script. Save the file <a href="files/export-oracle.txt" target="_top">export-oracle.txt</a> as + <tt class="filename">/var/tmp/export-oracle.txt</tt> + </p></li><li><p> Login as root. The following commands will install the export script: - </p><pre class="programlisting">[joeuser ~]$ <strong class="userinput"><code>su -</code></strong> -[root ~]# <strong class="userinput"><code>cp /var/tmp/export-oracle.txt /usr/sbin/export-oracle</code></strong> -[root ~]# <strong class="userinput"><code>chmod 700 /usr/sbin/export-oracle</code></strong></pre></li><li class="listitem"><p> + </p><pre class="programlisting">[joeuser ~]$ <b class="userinput"><tt>su -</tt></b> +[root ~]# <b class="userinput"><tt>cp /var/tmp/export-oracle.txt /usr/sbin/export-oracle</tt></b> +[root ~]# <b class="userinput"><tt>chmod 700 /usr/sbin/export-oracle</tt></b></pre></li><li><p> Setup the export directory; this is the directory where backups will be stored. We recommend the directory - <code class="filename">/ora8/m02/oracle-exports</code>.</p><pre class="programlisting">[root ~]# <strong class="userinput"><code>mkdir <span class="replaceable"><span class="replaceable">/ora8/m02/</span></span>oracle-exports</code></strong> -[root ~]# <strong class="userinput"><code>chown oracle:dba <span class="replaceable"><span class="replaceable">/ora8/m02/</span></span>oracle-exports</code></strong> -[root ~]# <strong class="userinput"><code>chmod 770 <span class="replaceable"><span class="replaceable">/ora8/m02/</span></span>oracle-exports</code></strong></pre></li><li class="listitem"><p> + <tt class="filename">/ora8/m02/oracle-exports</tt>.</p><pre class="programlisting">[root ~]# <b class="userinput"><tt>mkdir <span class="replaceable"><span class="replaceable">/ora8/m02/</span></span>oracle-exports</tt></b> +[root ~]# <b class="userinput"><tt>chown oracle:dba <span class="replaceable"><span class="replaceable">/ora8/m02/</span></span>oracle-exports</tt></b> +[root ~]# <b class="userinput"><tt>chmod 770 <span class="replaceable"><span class="replaceable">/ora8/m02/</span></span>oracle-exports</tt></b></pre></li><li><p> Now edit - <code class="filename">/usr/sbin/export-oracle</code> and - change the <code class="computeroutput">SERVICE_NAME</code> and - <code class="computeroutput">DATABASE_PASSWORD</code> fields to + <tt class="filename">/usr/sbin/export-oracle</tt> and + change the <tt class="computeroutput">SERVICE_NAME</tt> and + <tt class="computeroutput">DATABASE_PASSWORD</tt> fields to their correct values. If you want to use a directory other than - <code class="filename">/ora8/m02/oracle-exports</code>, you + <tt class="filename">/ora8/m02/oracle-exports</tt>, you also need to change the - <code class="computeroutput">exportdir</code> setting. + <tt class="computeroutput">exportdir</tt> setting. </p><p> Test the export procedure by running the command: - </p><pre class="programlisting">[root ~]# <strong class="userinput"><code>/usr/sbin/export-oracle</code></strong> + </p><pre class="programlisting">[root ~]# <b class="userinput"><tt>/usr/sbin/export-oracle</tt></b> mv: /ora8/m02/oracle-exports/oraexport-service_name.dmp.gz: No such file or directory Export: Release 8.1.6.1.0 - Production on Sun Jun 11 18:07:45 2000 @@ -64,70 +64,70 @@ . exporting dimensions . exporting post-schema procedural objects and actions . exporting statistics -Export terminated successfully without warnings.</pre></li></ul></div></li><li class="listitem"><p title="PostgreSQL"><a name="postgres-snapshot-backup"></a><b>PostgreSQL. </b>Create a backup file and verify that it was created and has a reasonable size (several megabytes).</p><pre class="screen">[root root]# <strong class="userinput"><code>su - $OPENACS_SERVICE_NAME</code></strong> -[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <strong class="userinput"><code>pg_dump -f /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/database-backup/before_upgrade_to_4.6.dmp <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></code></strong> -[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <strong class="userinput"><code>ls -al /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/database-backup/before_upgrade_to_4.6.dmp </code></strong> +Export terminated successfully without warnings.</pre></li></ul></div></li><li><p><a name="postgres-snapshot-backup"></a><b>PostgreSQL. </b>Create a backup file and verify that it was created and has a reasonable size (several megabytes).</p><pre class="screen">[root root]# <b class="userinput"><tt>su - $OPENACS_SERVICE_NAME</tt></b> +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <b class="userinput"><tt>pg_dump -f /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/database-backup/before_upgrade_to_4.6.dmp <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></tt></b> +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <b class="userinput"><tt>ls -al /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/database-backup/before_upgrade_to_4.6.dmp </tt></b> -rw-rw-r-x 1 $OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME 4005995 Feb 21 18:28 /var/lib/aolserver/$OPENACS_SERVICE_NAME/database-backup/before_upgrade_to_4.6.dmp -[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <strong class="userinput"><code>exit</code></strong> +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <b class="userinput"><tt>exit</tt></b> [root root]# <span class="action"><span class="action">su - $OPENACS_SERVICE_NAME pg_dump -f /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/database-backup/before_upgrade_to_4.6.dmp <span class="replaceable"><span class="replaceable">openacs-dev</span></span> ls -al /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/database-backup/before_upgrade_to_4.6.dmp -exit</span></span></pre></li></ul></div></li><li class="listitem"><a name="backup-file-system"></a><p title="Back up the file system"><b>Back up the file system. </b>Back up all of the files in the service, including the +exit</span></span></pre></li></ul></div></li><li><a name="backup-file-system"></a><p><b>Back up the file system. </b>Back up all of the files in the service, including the database backup file but excluding the auto-generated - <code class="filename">supervise</code> directory, which is - unneccesary and has complicated permissions. </p><p>In the tar command,</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><code class="computeroutput">c</code> create a - new tar archive</p></li><li class="listitem"><p><code class="computeroutput">p</code> preserves permissions.</p></li><li class="listitem"><p><code class="computeroutput">s</code> preserves file sort order</p></li><li class="listitem"><p><code class="computeroutput">z</code> compresses the output with gzip.</p></li><li class="listitem"><p>The <code class="computeroutput">--exclude</code> clauses skips some daemontools files that + <tt class="filename">supervise</tt> directory, which is + unneccesary and has complicated permissions. </p><p>In the tar command,</p><div class="itemizedlist"><ul type="disc"><li><p><tt class="computeroutput">c</tt> create a + new tar archive</p></li><li><p><tt class="computeroutput">p</tt> preserves permissions.</p></li><li><p><tt class="computeroutput">s</tt> preserves file sort order</p></li><li><p><tt class="computeroutput">z</tt> compresses the output with gzip.</p></li><li><p>The <tt class="computeroutput">--exclude</tt> clauses skips some daemontools files that are owned by root and thus cannot be backed up by the service owner. These files are autogenerated and we don't - break anything by omitting them.</p></li><li class="listitem"><p>The <code class="computeroutput">--file</code> clause + break anything by omitting them.</p></li><li><p>The <tt class="computeroutput">--file</tt> clause specifies the name of the output file to be generated; we - manually add the correct extensions.</p></li><li class="listitem"><p>The last clause, - <code class="filename">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/</code>, + manually add the correct extensions.</p></li><li><p>The last clause, + <tt class="filename">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/</tt>, specifies the starting point for backup. Tar defaults to - recursive backup.</p></li></ul></div><pre class="screen">[root root]# <strong class="userinput"><code>su - <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></code></strong> -[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <strong class="userinput"><code>tar -cpsz --exclude /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/etc/daemontools/supervise \ - --file /var/tmp/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>-backup.tar.gz /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/</code></strong> + recursive backup.</p></li></ul></div><pre class="screen">[root root]# <b class="userinput"><tt>su - <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></tt></b> +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <b class="userinput"><tt>tar -cpsz --exclude /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/etc/daemontools/supervise \ + --file /var/tmp/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>-backup.tar.gz /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/</tt></b> tar: Removing leading `/' from member names -[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$</pre></li><li class="listitem"><p title="Suffer a catastrophic failure on your production system"><b>Suffer a catastrophic failure on your production system. </b>(We'll simulate this step)</p><pre class="screen">[root root]# <strong class="userinput"><code>svc -d /service/$OPENACS_SERVICE_NAME</code></strong> -[root root]# <strong class="userinput"><code>mv /var/lib/aolserver/$OPENACS_SERVICE_NAME/ /var/lib/aolserver/$OPENACS_SERVICE_NAME.lost</code></strong> -[root root]#<strong class="userinput"><code> rm /service/$OPENACS_SERVICE_NAME</code></strong> +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$</pre></li><li><p><b>Suffer a catastrophic failure on your production system. </b>(We'll simulate this step)</p><pre class="screen">[root root]# <b class="userinput"><tt>svc -d /service/$OPENACS_SERVICE_NAME</tt></b> +[root root]# <b class="userinput"><tt>mv /var/lib/aolserver/$OPENACS_SERVICE_NAME/ /var/lib/aolserver/$OPENACS_SERVICE_NAME.lost</tt></b> +[root root]#<b class="userinput"><tt> rm /service/$OPENACS_SERVICE_NAME</tt></b> rm: remove symbolic link `/service/$OPENACS_SERVICE_NAME'? y -[root root]# <strong class="userinput"><code>ps -auxw | grep $OPENACS_SERVICE_NAME</code></strong> +[root root]# <b class="userinput"><tt>ps -auxw | grep $OPENACS_SERVICE_NAME</tt></b> root 1496 0.0 0.0 1312 252 ? S 16:58 0:00 supervise $OPENACS_SERVICE_NAME -[root root]#<strong class="userinput"><code> kill<span class="replaceable"><span class="replaceable"> 1496</span></span></code></strong> -[root root]# <strong class="userinput"><code>ps -auxw | grep $OPENACS_SERVICE_NAME</code></strong> -[root root]# <strong class="userinput"><code>su - postgres</code></strong> -[postgres pgsql]$ <strong class="userinput"><code>dropdb $OPENACS_SERVICE_NAME</code></strong> +[root root]#<b class="userinput"><tt> kill<span class="replaceable"><span class="replaceable"> 1496</span></span></tt></b> +[root root]# <b class="userinput"><tt>ps -auxw | grep $OPENACS_SERVICE_NAME</tt></b> +[root root]# <b class="userinput"><tt>su - postgres</tt></b> +[postgres pgsql]$ <b class="userinput"><tt>dropdb $OPENACS_SERVICE_NAME</tt></b> DROP DATABASE -[postgres pgsql]$ <strong class="userinput"><code>dropuser $OPENACS_SERVICE_NAME</code></strong> +[postgres pgsql]$ <b class="userinput"><tt>dropuser $OPENACS_SERVICE_NAME</tt></b> DROP USER -[postgres pgsql]$ <strong class="userinput"><code>exit</code></strong> +[postgres pgsql]$ <b class="userinput"><tt>exit</tt></b> logout -[root root]#</pre></li><li class="listitem"><p title="Recovery"><a name="recovery"></a><b>Recovery. </b></p><div class="orderedlist"><ol class="orderedlist" type="a"><li class="listitem"><p>Restore the operating system and required software. +[root root]#</pre></li><li><p><a name="recovery"></a><b>Recovery. </b></p><div class="orderedlist"><ol type="a"><li><p>Restore the operating system and required software. You can do this with standard backup processes or by keeping copies of the install material (OS CDs, OpenACS tarball and supporting software) and repeating the install - guide. Recreate the service user (<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>).</p></li><li class="listitem"><p>Restore the OpenACS files and database backup file.</p><pre class="screen">[root root]# <strong class="userinput"><code>su - <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></code></strong> -[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <strong class="userinput"><code>cd /var/lib/aolserver</code></strong> -[$OPENACS_SERVICE_NAME aolserver]$<strong class="userinput"><code> tar xzf /var/tmp/$OPENACS_SERVICE_NAME-backup.tar.gz</code></strong> -[$OPENACS_SERVICE_NAME aolserver]$ <strong class="userinput"><code>chmod -R 775 <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></code></strong> -[$OPENACS_SERVICE_NAME aolserver]$ <strong class="userinput"><code>chown -R <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME.web</span></span> <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></code></strong></pre></li><li class="listitem"><p>Restore the database</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p title="Oracle"><b>Oracle. </b></p><div class="orderedlist"><ol class="orderedlist" type="i"><li class="listitem"><p>Set up a clean Oracle database user and - tablespace with the same names as the ones exported from (<a class="link" href="openacs.html#install-openacs-prepare-oracle" title="Prepare Oracle for OpenACS">more information</a>).</p></li><li class="listitem"><p>Invoke the import command</p><pre class="screen"><span class="action"><span class="action">imp <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span> FILE=/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/database-backup/nighty_backup.dmp FULL=Y</span></span></pre></li></ol></div></li><li class="listitem"><p title="Postgres"><a name="restore-postgres"></a><b>Postgres. </b>If the database user does not already exist, create it.</p><pre class="screen">[root root]# <strong class="userinput"><code>su - postgres</code></strong> -[postgres ~]$ <strong class="userinput"><code>createuser <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></code></strong> -Shall the new user be allowed to create databases? (y/n) <strong class="userinput"><code>y</code></strong> -Shall the new user be allowed to create more new users? (y/n) <strong class="userinput"><code>y</code></strong> + guide. Recreate the service user (<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>).</p></li><li><p>Restore the OpenACS files and database backup file.</p><pre class="screen">[root root]# <b class="userinput"><tt>su - <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></tt></b> +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <b class="userinput"><tt>cd /var/lib/aolserver</tt></b> +[$OPENACS_SERVICE_NAME aolserver]$<b class="userinput"><tt> tar xzf /var/tmp/$OPENACS_SERVICE_NAME-backup.tar.gz</tt></b> +[$OPENACS_SERVICE_NAME aolserver]$ <b class="userinput"><tt>chmod -R 775 <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></tt></b> +[$OPENACS_SERVICE_NAME aolserver]$ <b class="userinput"><tt>chown -R <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME.web</span></span> <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></tt></b></pre></li><li><p>Restore the database</p><div class="itemizedlist"><ul type="disc"><li><p><b>Oracle. </b></p><div class="orderedlist"><ol type="i"><li><p>Set up a clean Oracle database user and + tablespace with the same names as the ones exported from (<a href="openacs.html#install-openacs-prepare-oracle">more information</a>).</p></li><li><p>Invoke the import command</p><pre class="screen"><span class="action"><span class="action">imp <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span> FILE=/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/database-backup/nighty_backup.dmp FULL=Y</span></span></pre></li></ol></div></li><li><p><a name="restore-postgres"></a><b>Postgres. </b>If the database user does not already exist, create it.</p><pre class="screen">[root root]# <b class="userinput"><tt>su - postgres</tt></b> +[postgres ~]$ <b class="userinput"><tt>createuser <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></tt></b> +Shall the new user be allowed to create databases? (y/n) <b class="userinput"><tt>y</tt></b> +Shall the new user be allowed to create more new users? (y/n) <b class="userinput"><tt>y</tt></b> CREATE USER -[postgres ~]$ <strong class="userinput"><code>exit</code></strong> -</pre><p>Because of a bug in Postgres backup-recovery, database objects are not guaranteed to be created in the right order. In practice, running the OpenACS initialization script is always sufficient to create any out-of-order database objects. Next, restore the database from the dump file. The restoration will show some error messages at the beginning for objects that were pre-created from the OpenACS initialization script, which can be ignored.</p><pre class="screen">[root root]# <strong class="userinput"><code>su - <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></code></strong> -[$OPENACS_SERVICE_NAME ~]$ <strong class="userinput"><code>createdb <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></code></strong> +[postgres ~]$ <b class="userinput"><tt>exit</tt></b> +</pre><p>Because of a bug in Postgres backup-recovery, database objects are not guaranteed to be created in the right order. In practice, running the OpenACS initialization script is always sufficient to create any out-of-order database objects. Next, restore the database from the dump file. The restoration will show some error messages at the beginning for objects that were pre-created from the OpenACS initialization script, which can be ignored.</p><pre class="screen">[root root]# <b class="userinput"><tt>su - <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></tt></b> +[$OPENACS_SERVICE_NAME ~]$ <b class="userinput"><tt>createdb <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></tt></b> CREATE DATABASE -[$OPENACS_SERVICE_NAME ~]$<strong class="userinput"><code> psql -f /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/packages/acs-kernel/sql/postgresql/postgresql.sql <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></code></strong> +[$OPENACS_SERVICE_NAME ~]$<b class="userinput"><tt> psql -f /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/packages/acs-kernel/sql/postgresql/postgresql.sql <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></tt></b> <span class="emphasis"><em>(many lines omitted)</em></span> -[$OPENACS_SERVICE_NAME ~]$ <strong class="userinput"><code>psql <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span> < /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/database-backup/<span class="replaceable"><span class="replaceable">database-backup.dmp</span></span></code></strong> +[$OPENACS_SERVICE_NAME ~]$ <b class="userinput"><tt>psql <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span> < /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/database-backup/<span class="replaceable"><span class="replaceable">database-backup.dmp</span></span></tt></b> <span class="emphasis"><em>(many lines omitted)</em></span> -[$OPENACS_SERVICE_NAME ~]$ <strong class="userinput"><code>exit</code></strong> -[postgres ~]$ <strong class="userinput"><code>exit</code></strong> -logout</pre></li></ul></div></li><li class="listitem"><p>Activate the service</p><pre class="screen">[root root]# <strong class="userinput"><code>ln -s /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/etc/daemontools /service/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></code></strong> -[root root]# <strong class="userinput"><code>sleep 10</code></strong> -[root root]# <strong class="userinput"><code>svgroup web /service/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></code></strong></pre></li></ol></div></li></ol></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="install-next-backups.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="automated-backup.html">Next</a></td></tr><tr><td width="40%" align="left">Backup Strategy </td><td width="20%" align="center"><a accesskey="u" href="backup-recovery.html">Up</a></td><td width="40%" align="right"> Automated Backup</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/snapshot-backup.html#comments">View comments on this page at openacs.org</a></center></body></html> +[$OPENACS_SERVICE_NAME ~]$ <b class="userinput"><tt>exit</tt></b> +[postgres ~]$ <b class="userinput"><tt>exit</tt></b> +logout</pre></li></ul></div></li><li><p>Activate the service</p><pre class="screen">[root root]# <b class="userinput"><tt>ln -s /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/etc/daemontools /service/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></tt></b> +[root root]# <b class="userinput"><tt>sleep 10</tt></b> +[root root]# <b class="userinput"><tt>svgroup web /service/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></tt></b></pre></li></ol></div></li></ol></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="install-next-backups.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="automated-backup.html">Next</a></td></tr><tr><td width="40%" align="left">Backup Strategy </td><td width="20%" align="center"><a accesskey="u" href="backup-recovery.html">Up</a></td><td width="40%" align="right"> Automated Backup</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/snapshot-backup.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/style-guide.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/style-guide.html,v diff -u -r1.24 -r1.25 --- openacs-4/packages/acs-core-docs/www/style-guide.html 13 Sep 2009 23:54:41 -0000 1.24 +++ openacs-4/packages/acs-core-docs/www/style-guide.html 17 Oct 2010 21:06:08 -0000 1.25 @@ -1,7 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenACS Style Guide</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="eng-standards.html" title="Chapter 11. Engineering Standards"><link rel="previous" href="eng-standards.html" title="Chapter 11. Engineering Standards"><link rel="next" href="cvs-guidelines.html" title=" - CVS Guidelines - "></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="eng-standards.html">Prev</a> </td><th width="60%" align="center">Chapter 11. Engineering Standards</th><td width="20%" align="right"> <a accesskey="n" href="cvs-guidelines.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="style-guide"></a>OpenACS Style Guide</h2></div></div><div></div></div><p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenACS Style Guide</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="eng-standards.html" title="Chapter 12. Engineering Standards"><link rel="previous" href="eng-standards.html" title="Chapter 12. Engineering Standards"><link rel="next" href="eng-standards-versioning.html" title="Release Version Numbering"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="eng-standards.html">Prev</a> </td><th width="60%" align="center">Chapter 12. Engineering Standards</th><td width="20%" align="right"> <a accesskey="n" href="eng-standards-versioning.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="style-guide"></a>OpenACS Style Guide</h2></div></div><div></div></div><p> By Jeff Davis </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="style-guide-motivation"></a>Motivation</h3></div></div><div></div></div><p> Why have coding standards for OpenACS? And if the code works why change it to @@ -90,6 +88,4 @@ </p></li><li><p><b>Solicit code reviews. </b> Ask others to look over your code and provide feedback and do the same for others. - </p></li></ol></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="style-guide-rev-history"></a>Revision History</h3></div></div><div></div></div><div class="informaltable"><table cellspacing="0" border="1"><colgroup><col><col><col><col></colgroup><thead><tr><th>Document Revision #</th><th>Action Taken, Notes</th><th>When?</th><th>By Whom?</th></tr></thead><tbody><tr><td>0.1</td><td>Creation</td><td>12/2003</td><td>Jeff Davis</td></tr></tbody></table></div><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="eng-standards.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="cvs-guidelines.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter 11. Engineering Standards </td><td width="20%" align="center"><a accesskey="u" href="eng-standards.html">Up</a></td><td width="40%" align="right"> - CVS Guidelines - </td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/style-guide.html#comments">View comments on this page at openacs.org</a></center></body></html> + </p></li></ol></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="style-guide-rev-history"></a>Revision History</h3></div></div><div></div></div><div class="informaltable"><table cellspacing="0" border="1"><colgroup><col><col><col><col></colgroup><thead><tr><th>Document Revision #</th><th>Action Taken, Notes</th><th>When?</th><th>By Whom?</th></tr></thead><tbody><tr><td>0.1</td><td>Creation</td><td>12/2003</td><td>Jeff Davis</td></tr></tbody></table></div><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="eng-standards.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="eng-standards-versioning.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter 12. Engineering Standards </td><td width="20%" align="center"><a accesskey="u" href="eng-standards.html">Up</a></td><td width="40%" align="right"> Release Version Numbering</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/style-guide.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/subsites-design.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/subsites-design.html,v diff -u -r1.31 -r1.32 --- openacs-4/packages/acs-core-docs/www/subsites-design.html 13 Sep 2009 23:54:41 -0000 1.31 +++ openacs-4/packages/acs-core-docs/www/subsites-design.html 17 Oct 2010 21:06:08 -0000 1.32 @@ -1,10 +1,10 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Subsites Design Document</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 14. Kernel Documentation"><link rel="previous" href="groups-design.html" title="Groups Design"><link rel="next" href="apm-requirements.html" title="Package Manager Requirements"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="groups-design.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="apm-requirements.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="subsites-design"></a>Subsites Design Document</h2></div></div><div></div></div><div class="authorblurb"><p>By <a href="http://planitia.org" target="_top">Rafael H. Schloming</a> </p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Subsites Design Document</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 15. Kernel Documentation"><link rel="previous" href="subsites-requirements.html" title="Subsites Requirements"><link rel="next" href="apm-requirements.html" title="Package Manager Requirements"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="subsites-requirements.html">Prev</a> </td><th width="60%" align="center">Chapter 15. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="apm-requirements.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="subsites-design"></a>Subsites Design Document</h2></div></div><div></div></div><div class="authorblurb"><p>By <a href="http://planitia.org" target="_top">Rafael H. Schloming</a> </p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><p><span class="emphasis"><em>*Note* This document has not gone through the any of the required QA process yet. It is being tagged as stable due to high -demand.</em></span></p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="subsites-design-essentials"></a>Essentials</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>???</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="subsites-design-intro"></a>Introduction</h3></div></div><div></div></div><p>An OpenACS 4 subsite is a managed suite of applications that work together for +demand.</em></span></p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="subsites-design-essentials"></a>Essentials</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p><a href="subsites-requirements.html">OpenACS 4 Subsites Requirements</a></p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="subsites-design-intro"></a>Introduction</h3></div></div><div></div></div><p>An OpenACS 4 subsite is a managed suite of applications that work together for a particular user community. This definition covers a very broad range of requirements: from a Geocities style homepage where a user can install whatever available application he wants (e.g. a single user could have their @@ -211,4 +211,4 @@ a particular configuration of site nodes/packages. As we build more fundamental applications that can be applied in more general areas, this feature will become more and more in demand since more problems will be -solvable by configuration instead of coding.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="subsites-design-authors"></a>Authors</h3></div></div><div></div></div><p><a href="mailto:rhs@mit.edu" target="_top">rhs@mit.edu</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="groups-design.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="apm-requirements.html">Next</a></td></tr><tr><td width="40%" align="left">Groups Design </td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right"> Package Manager Requirements</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/subsites-design.html#comments">View comments on this page at openacs.org</a></center></body></html> +solvable by configuration instead of coding.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="subsites-design-authors"></a>Authors</h3></div></div><div></div></div><p><a href="mailto:rhs@mit.edu" target="_top">rhs@mit.edu</a></p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="subsites-requirements.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="apm-requirements.html">Next</a></td></tr><tr><td width="40%" align="left">Subsites Requirements </td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right"> Package Manager Requirements</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/subsites-design.html#comments">View comments on this page at openacs.org</a></center></body></html> 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.30 -r1.31 --- openacs-4/packages/acs-core-docs/www/subsites-requirements.html 12 Jul 2009 01:08:29 -0000 1.30 +++ openacs-4/packages/acs-core-docs/www/subsites-requirements.html 17 Oct 2010 21:06:08 -0000 1.31 @@ -1,31 +1,31 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Subsites Requirements</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.0"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 14. Kernel Documentation"><link rel="previous" href="groups-design.html" title="Groups Design"><link rel="next" href="subsites-design.html" title="Subsites Design Document"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="groups-design.html">Prev</a> </td><th width="60%" align="center">Chapter 14. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="subsites-design.html">Next</a></td></tr></table><hr></div><div class="sect1" title="Subsites Requirements"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="subsites-requirements"></a>Subsites Requirements</h2></div></div></div><div class="authorblurb"><p>By <a class="ulink" href="http://planitia.org" target="_top">Rafael H. Schloming</a> and Dennis Gregorovic</p> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Subsites Requirements</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter 15. Kernel Documentation"><link rel="previous" href="groups-design.html" title="Groups Design"><link rel="next" href="subsites-design.html" title="Subsites Design Document"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="groups-design.html">Prev</a> </td><th width="60%" align="center">Chapter 15. Kernel Documentation</th><td width="20%" align="right"> <a accesskey="n" href="subsites-design.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="subsites-requirements"></a>Subsites Requirements</h2></div></div><div></div></div><div class="authorblurb"><p>By <a href="http://planitia.org" target="_top">Rafael H. Schloming</a> and Dennis Gregorovic</p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. - </div><div class="sect2" title="Introduction"><div class="titlepage"><div><div><h3 class="title"><a name="subsites-requirements-intro"></a>Introduction</h3></div></div></div><p>The following is a requirements document for OpenACS 4 Subsites, part of the + </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="subsites-requirements-intro"></a>Introduction</h3></div></div><div></div></div><p>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.</p></div><div class="sect2" title="Vision Statement"><div class="titlepage"><div><div><h3 class="title"><a name="subsites-requirements-vision"></a>Vision Statement</h3></div></div></div><p>Many online communities are also collections of discrete subcommunities, +applications to be customized for defined user communities.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="subsites-requirements-vision"></a>Vision Statement</h3></div></div><div></div></div><p>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.</p></div><div class="sect2" title="System Overview"><div class="titlepage"><div><div><h3 class="title"><a name="subsites-requirements-system-overview"></a>System Overview</h3></div></div></div><p>The OpenACS subsite system allows a single OpenACS installation to serve multiple +subcommunity.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="subsites-requirements-system-overview"></a>System Overview</h3></div></div><div></div></div><p>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 -instance. The <a class="link" href="rp-design.html" title="Request Processor Design">request +having an application "scope" its content to a particular package +instance. The <a href="rp-design.html" title="Request Processor Design">request processor</a> then figures out which package_id a particular URL references -and then provides this information through the <code class="computeroutput">ad_conn</code> api (<code class="computeroutput">[ad_conn -package_id]</code>, <code class="computeroutput">[ad_conn package_url]</code>).</p><p>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 <tt class="computeroutput">ad_conn</tt> api (<tt class="computeroutput">[ad_conn +package_id]</tt>, <tt class="computeroutput">[ad_conn package_url]</tt>).</p><p>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.</p></div><div class="sect2" title="Use-cases and User-scenarios"><div class="titlepage"><div><div><h3 class="title"><a name="subsites-requirements-use-cases"></a>Use-cases and User-scenarios</h3></div></div></div><p>The Subsites functionality is intended for use by two different classes of -users:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Package programmers (referred to as 'the programmer') must -develop subcommunity-aware applications.</p></li><li class="listitem"><p>Site administrators (referred to as 'the administrator') use -subsites to provide tailored "virtual websites" to different +available at the "main" site which is in fact simply another +subsite.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="subsites-requirements-use-cases"></a>Use-cases and User-scenarios</h3></div></div><div></div></div><p>The Subsites functionality is intended for use by two different classes of +users:</p><div class="orderedlist"><ol type="1"><li><p>Package programmers (referred to as 'the programmer') must +develop subcommunity-aware applications.</p></li><li><p>Site administrators (referred to as 'the administrator') use +subsites to provide tailored "virtual websites" to different subcommunities.</p></li></ol></div><p>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 @@ -40,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.</p></div><div class="sect2" title="Related Links"><div class="titlepage"><div><div><h3 class="title"><a name="subsites-requirements-links"></a>Related Links</h3></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><a class="xref" href="subsites-design.html" title="Subsites Design Document">OpenACS 4 Subsites Design Document</a></p></li><li class="listitem"><p>Test plan (Not available yet)</p></li></ul></div></div><div class="sect2" title="Requirements: Programmer's API"><div class="titlepage"><div><div><h3 class="title"><a name="subsites-requirements-api"></a>Requirements: Programmer's API</h3></div></div></div><p>A subsite API is required for programmers to ensure their packages are -subsite-aware. The following functions should be sufficient for this:</p><p><span class="strong"><strong>10.10.0 Package creation</strong></span></p><p>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.</p><p><span class="strong"><strong>10.20.0 Package deletion</strong></span></p><p>The system must provide an API call to delete a package and all related -objects in the subsite's context.</p><p><span class="strong"><strong>10.30.0 Object's package information</strong></span></p><p>Given an object ID, the system must provide an API call to determine the -package (ID) to which the object belongs.</p><p><span class="strong"><strong>10.40.0 URL from package</strong></span></p><p>Given a package (ID), the system must provide an API call to return the -canonical URL for that package.</p><p><span class="strong"><strong>10.50.0 Main subsite's package_id</strong></span></p><p>The system must provide an API call to return a package ID corresponding -to the main subsite's package ID (the degenerate subsite).</p></div><div class="sect2" title="Requirements: The User Interface"><div class="titlepage"><div><div><h3 class="title"><a name="subsites-requirements-ui"></a>Requirements: The User Interface</h3></div></div></div><p><span class="strong"><strong>The Programmer's User Interface</strong></span></p><p>There is no programmer's UI, other than the API described above.</p><p><span class="strong"><strong>The Administrator's User Interface</strong></span></p><p>The UI for administrators is a set of HTML pages that are used to drive +defaults.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="subsites-requirements-links"></a>Related Links</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p><a href="subsites-design.html">OpenACS 4 Subsites Design Document</a></p></li><li><p>Test plan (Not available yet)</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="subsites-requirements-api"></a>Requirements: Programmer's API</h3></div></div><div></div></div><p>A subsite API is required for programmers to ensure their packages are +subsite-aware. The following functions should be sufficient for this:</p><p><span class="strong">10.10.0 Package creation</span></p><p>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.</p><p><span class="strong">10.20.0 Package deletion</span></p><p>The system must provide an API call to delete a package and all related +objects in the subsite's context.</p><p><span class="strong">10.30.0 Object's package information</span></p><p>Given an object ID, the system must provide an API call to determine the +package (ID) to which the object belongs.</p><p><span class="strong">10.40.0 URL from package</span></p><p>Given a package (ID), the system must provide an API call to return the +canonical URL for that package.</p><p><span class="strong">10.50.0 Main subsite's package_id</span></p><p>The system must provide an API call to return a package ID corresponding +to the main subsite's package ID (the degenerate subsite).</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="subsites-requirements-ui"></a>Requirements: The User Interface</h3></div></div><div></div></div><p><span class="strong">The Programmer's User Interface</span></p><p>There is no programmer's UI, other than the API described above.</p><p><span class="strong">The Administrator's User Interface</span></p><p>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.</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><span class="strong"><strong>20.10.0 Package creation</strong></span></p><p><span class="strong"><strong>20.10.1</strong></span> The administrator should be able to create a -package and make it available at a URL underneath the subsite.</p></li><li class="listitem"><p><span class="strong"><strong>20.20.0 Package deactivation</strong></span></p><p><span class="strong"><strong>20.20.1</strong></span> The administrator should be able to deactivate -any package, causing it to be inaccessible to users.</p><p><span class="strong"><strong>20.20.5</strong></span> Deactivating a package makes the package no +Site-Wide Administrators can manage all subsites.</p><div class="itemizedlist"><ul type="disc"><li><p><span class="strong">20.10.0 Package creation</span></p><p><span class="strong">20.10.1</span> The administrator should be able to create a +package and make it available at a URL underneath the subsite.</p></li><li><p><span class="strong">20.20.0 Package deactivation</span></p><p><span class="strong">20.20.1</span> The administrator should be able to deactivate +any package, causing it to be inaccessible to users.</p><p><span class="strong">20.20.5</span> Deactivating a package makes the package no longer accessible, but it does not remove data created within the context of -that package.</p></li></ul></div></div><div class="sect2" title="Revision History"><div class="titlepage"><div><div><h3 class="title"><a name="subsites-requirements-rev-history"></a>Revision History</h3></div></div></div><div class="informaltable"><table cellspacing="0" border="1"><colgroup><col><col><col><col></colgroup><tbody><tr><td><span class="strong"><strong>Document Revision #</strong></span></td><td><span class="strong"><strong>Action Taken, Notes</strong></span></td><td><span class="strong"><strong>When?</strong></span></td><td><span class="strong"><strong>By Whom?</strong></span></td></tr><tr><td>0.1</td><td>Creation</td><td>08/18/2000</td><td>Dennis Gregorovic</td></tr><tr><td>0.2</td><td>Edited, reviewed</td><td>08/29/2000</td><td>Kai Wu</td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="groups-design.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="subsites-design.html">Next</a></td></tr><tr><td width="40%" align="left">Groups Design </td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right"> Subsites Design Document</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/subsites-requirements.html#comments">View comments on this page at openacs.org</a></center></body></html> +that package.</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="subsites-requirements-rev-history"></a>Revision History</h3></div></div><div></div></div><div class="informaltable"><table cellspacing="0" border="1"><colgroup><col><col><col><col></colgroup><tbody><tr><td><span class="strong">Document Revision #</span></td><td><span class="strong">Action Taken, Notes</span></td><td><span class="strong">When?</span></td><td><span class="strong">By Whom?</span></td></tr><tr><td>0.1</td><td>Creation</td><td>08/18/2000</td><td>Dennis Gregorovic</td></tr><tr><td>0.2</td><td>Edited, reviewed</td><td>08/29/2000</td><td>Kai Wu</td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="groups-design.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="subsites-design.html">Next</a></td></tr><tr><td width="40%" align="left">Groups Design </td><td width="20%" align="center"><a accesskey="u" href="kernel-doc.html">Up</a></td><td width="40%" align="right"> Subsites Design Document</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/subsites-requirements.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/subsites.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/subsites.html,v diff -u -r1.44 -r1.45 --- openacs-4/packages/acs-core-docs/www/subsites.html 12 Jul 2009 01:08:29 -0000 1.44 +++ openacs-4/packages/acs-core-docs/www/subsites.html 17 Oct 2010 21:06:08 -0000 1.45 @@ -1,8 +1,8 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Writing OpenACS Application Pages</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.0"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="dev-guide.html" title="Chapter 10. Development Reference"><link rel="previous" href="permissions.html" title="Groups, Context, Permissions"><link rel="next" href="parties.html" title="Parties in OpenACS"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="permissions.html">Prev</a> </td><th width="60%" align="center">Chapter 10. Development Reference</th><td width="20%" align="right"> <a accesskey="n" href="parties.html">Next</a></td></tr></table><hr></div><div class="sect1" title="Writing OpenACS Application Pages"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="subsites"></a>Writing OpenACS Application Pages</h2></div></div></div><div class="authorblurb"><p>By Rafael H. Schloming and Pete Su</p> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Writing OpenACS Application Pages</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="dev-guide.html" title="Chapter 11. Development Reference"><link rel="previous" href="permissions.html" title="Groups, Context, Permissions"><link rel="next" href="parties.html" title="Parties in OpenACS"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="permissions.html">Prev</a> </td><th width="60%" align="center">Chapter 11. Development Reference</th><td width="20%" align="right"> <a accesskey="n" href="parties.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="subsites"></a>Writing OpenACS Application Pages</h2></div></div><div></div></div><div class="authorblurb"><p>By Rafael H. Schloming and Pete Su</p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. - </div><div class="sect2" title="Overview"><div class="titlepage"><div><div><h3 class="title"><a name="subsites-overview"></a>Overview</h3></div></div></div><p> + </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="subsites-overview"></a>Overview</h3></div></div><div></div></div><p> In this document, we'll examine the user interface pages of the Notes application in more detail, covering two separate aspects of page development in OpenACS. First, we'll talk about the code needed to make @@ -11,8 +11,8 @@ form-based user interfaces in OpenACS. While these seem like unrelated topics, they both come up in the example page that we are going to look at, so it makes sense to address them at the same time. -</p></div><div class="sect2" title="Application Instances and Subsites"><div class="titlepage"><div><div><h3 class="title"><a name="subsites-instances"></a>Application Instances and Subsites</h3></div></div></div><p> -As you will recall from the <a class="link" href="packages.html" title="OpenACS Packages">packages</a> tutorial, the Request +</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="subsites-instances"></a>Application Instances and Subsites</h3></div></div><div></div></div><p> +As you will recall from the <a href="packages.html" title="OpenACS Packages">packages</a> tutorial, the Request Processor (RP) and Package Manager (APM) allow site administrators to define an arbitrary mapping from URLs in the site to objects representing content. These objects may represent single @@ -22,63 +22,63 @@ particular URL. The tutorial also showed how a given URL is translated into a physical file to serve using the site map. We'll repeat this description here, assuming that you have mounted an -instance of Notes at the URL <code class="computeroutput">/notes</code> as we did in the <a class="link" href="packages.html#packages-looks" title="What a Package Looks Like">packages-example</a>: -</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> -AOLserver receives your request for the URL <code class="computeroutput">/notes/somepage</code>. -</p></li><li class="listitem"><p> +instance of Notes at the URL <tt class="computeroutput">/notes</tt> as we did in the <a href="packages.html#packages-looks" title="What a Package Looks Like">packages-example</a>: +</p><div class="itemizedlist"><ul type="disc"><li><p> +AOLserver receives your request for the URL <tt class="computeroutput">/notes/somepage</tt>. +</p></li><li><p> This URL is passed to the request processor. -</p></li><li class="listitem"><p> +</p></li><li><p> The RP looks up the URL in the site map, and sees that the object -mounted at that location is an instance of the <code class="computeroutput">notes</code> +mounted at that location is an instance of the <tt class="computeroutput">notes</tt> application. -</p></li><li class="listitem"><p> +</p></li><li><p> The RP asks the package manager where in the file system the Notes package lives. In the standard case, this would be -<code class="computeroutput">ROOT/packages/notes</code>. -</p></li><li class="listitem"><p> +<tt class="computeroutput">ROOT/packages/notes</tt>. +</p></li><li><p> The RP translates the URL to serve a page relative to the page root of the application, which is -<code class="computeroutput">ROOT/packages/notes/www/</code>. Therefore, the page that is -finally served is <code class="computeroutput">ROOT/packages/notes/www/hello.html</code>, +<tt class="computeroutput">ROOT/packages/notes/www/</tt>. Therefore, the page that is +finally served is <tt class="computeroutput">ROOT/packages/notes/www/hello.html</tt>, which is what we wanted. </p></li></ul></div><p> What is missing from this description is a critical fact for application developers: In addition to working out what file to serve, the RP also stores information about which package instance the file belongs to into the AOLserver connection environment. The following -<code class="computeroutput">ad_conn</code> interfaces can be used to extract this +<tt class="computeroutput">ad_conn</tt> interfaces can be used to extract this information: -</p><div class="variablelist"><dl><dt><span class="term"><code class="computeroutput">[ad_conn package_url]</code></span></dt><dd><p> +</p><div class="variablelist"><dl><dt><span class="term"><tt class="computeroutput">[ad_conn package_url]</tt></span></dt><dd><p> If the URL refers to a package instance, this is the URL to the root of the tree where the package is mounted. -</p></dd><dt><span class="term"><code class="computeroutput">[ad_conn package_id]</code></span></dt><dd><p> +</p></dd><dt><span class="term"><tt class="computeroutput">[ad_conn package_id]</tt></span></dt><dd><p> If the URL refers to a package instance, this is the ID of that package instance. -</p></dd><dt><span class="term"><code class="computeroutput">[ad_conn package_key]</code> +</p></dd><dt><span class="term"><tt class="computeroutput">[ad_conn package_key]</tt> </span></dt><dd><p> If the URL refers to a package instance, this is the unique key name of the package. -</p></dd><dt><span class="term"><code class="computeroutput">[ad_conn extra_url]</code> +</p></dd><dt><span class="term"><tt class="computeroutput">[ad_conn extra_url]</tt> </span></dt><dd><p> If we found the URL in the site map, this is the tail of the URL following the part that matched a site map entry. </p></dd></dl></div><p> In the Notes example, we are particularly interested in the -<code class="computeroutput">package_id</code> field. If you study the data model and code, -you'll see why. As we said before in the <a class="link" href="objects.html" title="OpenACS Data Models and the Object System">data modeling</a> tutorial, the Notes application points the -<code class="computeroutput">context_id</code> of each Note object that it creates to the -package instance that created it. That is, the <code class="computeroutput">context_id</code> -corresponds exactly to the <code class="computeroutput">package_id</code> that comes in from +<tt class="computeroutput">package_id</tt> field. If you study the data model and code, +you'll see why. As we said before in the <a href="objects.html" title="OpenACS Data Models and the Object System">data modeling</a> tutorial, the Notes application points the +<tt class="computeroutput">context_id</tt> of each Note object that it creates to the +package instance that created it. That is, the <tt class="computeroutput">context_id</tt> +corresponds exactly to the <tt class="computeroutput">package_id</tt> that comes in from the RP. This is convenient because it allows the administrator and the owner of the package to easily define access control policies for all the notes in a particular instance just my setting permissions on the package instance itself. </p><p> The code for adding and editing notes, in -<code class="computeroutput">notes/www/add-edit.tcl</code>, shows how this works. At the top -of the page, we extract the <code class="computeroutput">package_id</code> and use it to do +<tt class="computeroutput">notes/www/add-edit.tcl</tt>, shows how this works. At the top +of the page, we extract the <tt class="computeroutput">package_id</tt> and use it to do permission checks: </p><pre class="programlisting"> @@ -87,11 +87,11 @@ if {[info exists note_id]} { permission::require_permission -object_id $note_id -privilege write - set context_bar [ad_context_bar "Edit Note"] + set context_bar [ad_context_bar "Edit Note"] } else { permission::require_permission -object_id $note_id -privilege create - set context_bar [ad_context_bar "New Note"] + set context_bar [ad_context_bar "New Note"] } </pre><p> @@ -100,7 +100,7 @@ for each action. </p><p> Later, when we actually create a note, the SQL that we run ensures -that the <code class="computeroutput">context_id</code> is set the right way: +that the <tt class="computeroutput">context_id</tt> is set the right way: </p><pre class="programlisting"> db_dml new_note { @@ -124,25 +124,25 @@ without generating a lot of duplicated HTML in your pages. It also encapsulates most of the common logic that we use in dealing with forms, which we'll discuss next. -</p></div><div class="sect2" title="Using Forms"><div class="titlepage"><div><div><h3 class="title"><a name="subsites-using-forms"></a>Using Forms</h3></div></div></div><p> +</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="subsites-using-forms"></a>Using Forms</h3></div></div><div></div></div><p> The forms API is pretty simple: You use calls in the -<code class="computeroutput">template::form</code> namespace in your Tcl script to create +<tt class="computeroutput">template::form</tt> namespace in your Tcl script to create form elements. The final template page then picks this stuff up and lays the form out for the user. The form is set up to route submit buttons and whatnot back to the same Tcl script that set up the form, so your Tcl script will also contain the logic needed to process these requests. </p><p> So, given this outline, here is a breakdown of how the forms code -works in the <code class="computeroutput">add-edit.tcl</code> page. First, we create a form object -called <code class="computeroutput">new_note</code>: +works in the <tt class="computeroutput">add-edit.tcl</tt> page. First, we create a form object +called <tt class="computeroutput">new_note</tt>: </p><pre class="programlisting"> template::form create new_note </pre><p> All the forms related code in this page will refer back to this -object. In addition, the <code class="computeroutput">adp</code> part of this page does +object. In addition, the <tt class="computeroutput">adp</tt> part of this page does nothing but display the form object: </p><pre class="programlisting"> @@ -153,7 +153,7 @@ <hr> <center> -<formtemplate id="new_note"></formtemplate> +<formtemplate id="new_note"></formtemplate> </center> </pre><p> @@ -176,31 +176,31 @@ } </pre><p> -The <code class="computeroutput">if_request</code> call returns true if we are asking the +The <tt class="computeroutput">if_request</tt> call returns true if we are asking the page to render the form for the first time. That is, we are rendering -the form to ask the user for input. The <code class="computeroutput">tcl</code> part of a +the form to ask the user for input. The <tt class="computeroutput">tcl</tt> part of a form page can be called in 3 different states: the initial request, the initial submission, and the validated submission. These states reflect the typical logic of a forms based page in OpenACS: -</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> +</p><div class="itemizedlist"><ul type="disc"><li><p> First render the input form. -</p></li><li class="listitem"><p> +</p></li><li><p> Next, control passes to a validation page that checks and confirms the inputs. -</p></li><li class="listitem"><p> +</p></li><li><p> Finally, control passes to the page that performs the update in the database. </p></li></ul></div><p> -The rest of the <code class="computeroutput">if</code> condition figures out if we are +The rest of the <tt class="computeroutput">if</tt> condition figures out if we are creating a new note or editing an existing note. If -<code class="computeroutput">note_id</code> is passed to us from the calling page, we assume +<tt class="computeroutput">note_id</tt> is passed to us from the calling page, we assume that we are editing an existing note. In this case, we do a database query to grab the data for the note so we can populate the form with it. </p><p> The next two calls create form elements where the user can insert or edit the title and body of the Note. The interface to -<code class="computeroutput">template::element</code> is pretty straightforward. +<tt class="computeroutput">template::element</tt> is pretty straightforward. </p><p> Finally, the code at the bottom of the page performs the actual database updates when the form is submitted and validated: @@ -234,7 +234,7 @@ } } - ad_returnredirect "." + ad_returnredirect "." } </pre><p> @@ -243,7 +243,7 @@ the HTML rendering, input validation and database transaction logic on your behalf. This means that you can write pages without duplicating all of that code in every set of pages that uses forms. -</p></div><div class="sect2" title="How it All Fits"><div class="titlepage"><div><div><h3 class="title"><a name="subsites-how-it-all-fits"></a>How it All Fits</h3></div></div></div><p> +</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="subsites-how-it-all-fits"></a>How it All Fits</h3></div></div><div></div></div><p> To watch all of this work, use the installer to update the Notes package with the new code that you grabbed out of CVS or the package repository, mount an instance of Notes somewhere in your server and @@ -254,15 +254,15 @@ visible to that user. The end result is a site where users can come and write notes to themselves. </p><p> -This is a good example of the leverage available in the OpenACS 5.5.0 +This is a good example of the leverage available in the OpenACS 5.6.0 system. The code that we have written for Notes is not at all more complex than a similar application without access control or site map awareness. By adding a small amount of code, we have taken a small, simple, and special purpose application to something that has the potential to be a very useful, general-purpose tool, complete with multi-user features, access control, and centralized administration. -</p></div><div class="sect2" title="Summary"><div class="titlepage"><div><div><h3 class="title"><a name="subsites-summary"></a>Summary</h3></div></div></div><p> -In OpenACS 5.5.0, application pages and scripts can be aware of the package +</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="subsites-summary"></a>Summary</h3></div></div><div></div></div><p> +In OpenACS 5.6.0, application pages and scripts can be aware of the package instance, or subsite in which they are executing. This is a powerful general purpose mechanism that can be used to structure web services in very flexible ways. Index: openacs-4/packages/acs-core-docs/www/templates.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/templates.html,v diff -u -r1.45 -r1.46 --- openacs-4/packages/acs-core-docs/www/templates.html 13 Sep 2009 23:54:41 -0000 1.45 +++ openacs-4/packages/acs-core-docs/www/templates.html 17 Oct 2010 21:06:08 -0000 1.46 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Using Templates in OpenACS</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="dev-guide.html" title="Chapter 10. Development Reference"><link rel="previous" href="db-api.html" title="The OpenACS Database Access API"><link rel="next" href="permissions.html" title="Groups, Context, Permissions"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="db-api.html">Prev</a> </td><th width="60%" align="center">Chapter 10. Development Reference</th><td width="20%" align="right"> <a accesskey="n" href="permissions.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="templates"></a>Using Templates in OpenACS</h2></div></div><div></div></div><div class="authorblurb"><p>By Pete Su</p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Using Templates in OpenACS</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="dev-guide.html" title="Chapter 11. Development Reference"><link rel="previous" href="db-api.html" title="The OpenACS Database Access API"><link rel="next" href="permissions.html" title="Groups, Context, Permissions"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="db-api.html">Prev</a> </td><th width="60%" align="center">Chapter 11. Development Reference</th><td width="20%" align="right"> <a accesskey="n" href="permissions.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="templates"></a>Using Templates in OpenACS</h2></div></div><div></div></div><div class="authorblurb"><p>By Pete Su</p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="templates-overview"></a>Overview</h3></div></div><div></div></div><p> @@ -79,7 +79,7 @@ </pre><p> Some things to note about this code: </p><div class="itemizedlist"><ul type="disc"><li><p> -The procedure <a href="tcl-doc.html#tcl-doc-ad-page-contract" title="ad_page_contract">ad_page_contract</a> is +The procedure <a href="">ad_page_contract</a> is always the first thing a <tt class="computeroutput">.tcl</tt> file calls, if it's under the www/ directory (i.e. not a Tcl library file). It does validation of input values from the HTTP request (i.e. form variables) and in Index: openacs-4/packages/acs-core-docs/www/tutorial-admin-pages.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-admin-pages.html,v diff -u -r1.11 -r1.12 --- openacs-4/packages/acs-core-docs/www/tutorial-admin-pages.html 13 Sep 2009 23:54:41 -0000 1.11 +++ openacs-4/packages/acs-core-docs/www/tutorial-admin-pages.html 17 Oct 2010 21:06:08 -0000 1.12 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Admin Pages</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 9. Advanced Topics"><link rel="previous" href="tutorial-comments.html" title="Adding Comments"><link rel="next" href="tutorial-categories.html" title="Categories"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-comments.html">Prev</a> </td><th width="60%" align="center">Chapter 9. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-categories.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-admin-pages"></a>Admin Pages</h2></div></div><div></div></div><p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Admin Pages</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 10. Advanced Topics"><link rel="previous" href="tutorial-comments.html" title="Adding Comments"><link rel="next" href="tutorial-categories.html" title="Categories"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-comments.html">Prev</a> </td><th width="60%" align="center">Chapter 10. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-categories.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-admin-pages"></a>Admin Pages</h2></div></div><div></div></div><p> There are at least two flavors of admin user interface: </p><div class="itemizedlist"><ul type="disc"><li><p>Admins use same pages as all other users, except that they are offered admin links and buttons where appropriate. Index: openacs-4/packages/acs-core-docs/www/tutorial-advanced.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-advanced.html,v diff -u -r1.32 -r1.33 --- openacs-4/packages/acs-core-docs/www/tutorial-advanced.html 13 Sep 2009 23:54:41 -0000 1.32 +++ openacs-4/packages/acs-core-docs/www/tutorial-advanced.html 17 Oct 2010 21:06:08 -0000 1.33 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter 9. Advanced Topics</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="acs-package-dev.html" title="Part III. For OpenACS Package Developers"><link rel="previous" href="tutorial-debug.html" title="Debugging and Automated Testing"><link rel="next" href="tutorial-specs.html" title="Write the Requirements and Design Specs"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-debug.html">Prev</a> </td><th width="60%" align="center">Part III. For OpenACS Package Developers</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-specs.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="tutorial-advanced"></a>Chapter 9. Advanced Topics</h2></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="tutorial-specs.html">Write the Requirements and Design Specs</a></dt><dt><a href="tutorial-cvs.html">Add the new package to CVS</a></dt><dt><a href="tutorial-etp-templates.html">OpenACS Edit This Page Templates</a></dt><dt><a href="tutorial-comments.html">Adding Comments</a></dt><dt><a href="tutorial-admin-pages.html">Admin Pages</a></dt><dt><a href="tutorial-categories.html">Categories</a></dt><dt><a href="profile-code.html">Profile your code</a></dt><dt><a href="tutorial-distribute.html">Prepare the package for distribution.</a></dt><dt><a href="tutorial-upgrades.html">Distributing upgrades of your package</a></dt><dt><a href="tutorial-notifications.html">Notifications</a></dt><dt><a href="tutorial-hierarchical.html">Hierarchical data</a></dt><dt><a href="tutorial-vuh.html">Using .vuh files for pretty urls</a></dt><dt><a href="tutorial-css-layout.html">Laying out a page with CSS instead of tables</a></dt><dt><a href="tutorial-html-email.html">Sending HTML email from your application</a></dt><dt><a href="tutorial-caching.html">Basic Caching</a></dt><dt><a href="tutorial-schedule-procs.html">Scheduled Procedures</a></dt><dt><a href="tutorial-wysiwyg-editor.html">Enabling WYSIWYG</a></dt><dt><a href="tutorial-parameters.html">Adding in parameters for your package</a></dt><dt><a href="tutorial-upgrade-scripts.html">Writing upgrade scripts</a></dt><dt><a href="tutorial-second-database.html">Connect to a second database</a></dt><dt><a href="tutorial-future-topics.html">Future Topics</a></dt></dl></div><div class="authorblurb"><p>by <a href="mailto:joel@aufrecht.org" target="_top">Joel Aufrecht</a></p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter 10. Advanced Topics</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="acs-package-dev.html" title="Part III. For OpenACS Package Developers"><link rel="previous" href="tutorial-debug.html" title="Debugging and Automated Testing"><link rel="next" href="tutorial-specs.html" title="Write the Requirements and Design Specs"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-debug.html">Prev</a> </td><th width="60%" align="center">Part III. For OpenACS Package Developers</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-specs.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="tutorial-advanced"></a>Chapter 10. Advanced Topics</h2></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="tutorial-specs.html">Write the Requirements and Design Specs</a></dt><dt><a href="tutorial-cvs.html">Add the new package to CVS</a></dt><dt><a href="tutorial-etp-templates.html">OpenACS Edit This Page Templates</a></dt><dt><a href="tutorial-comments.html">Adding Comments</a></dt><dt><a href="tutorial-admin-pages.html">Admin Pages</a></dt><dt><a href="tutorial-categories.html">Categories</a></dt><dt><a href="profile-code.html">Profile your code</a></dt><dt><a href="tutorial-distribute.html">Prepare the package for distribution.</a></dt><dt><a href="tutorial-upgrades.html">Distributing upgrades of your package</a></dt><dt><a href="tutorial-notifications.html">Notifications</a></dt><dt><a href="tutorial-hierarchical.html">Hierarchical data</a></dt><dt><a href="tutorial-vuh.html">Using .vuh files for pretty urls</a></dt><dt><a href="tutorial-css-layout.html">Laying out a page with CSS instead of tables</a></dt><dt><a href="tutorial-html-email.html">Sending HTML email from your application</a></dt><dt><a href="tutorial-caching.html">Basic Caching</a></dt><dt><a href="tutorial-schedule-procs.html">Scheduled Procedures</a></dt><dt><a href="tutorial-wysiwyg-editor.html">Enabling WYSIWYG</a></dt><dt><a href="tutorial-parameters.html">Adding in parameters for your package</a></dt><dt><a href="tutorial-upgrade-scripts.html">Writing upgrade scripts</a></dt><dt><a href="tutorial-second-database.html">Connect to a second database</a></dt><dt><a href="tutorial-future-topics.html">Future Topics</a></dt></dl></div><div class="authorblurb"><p>by <a href="mailto:joel@aufrecht.org" target="_top">Joel Aufrecht</a></p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><p>This tutorial covers topics which are not essential to Index: openacs-4/packages/acs-core-docs/www/tutorial-caching.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-caching.html,v diff -u -r1.8 -r1.9 --- openacs-4/packages/acs-core-docs/www/tutorial-caching.html 13 Sep 2009 23:54:41 -0000 1.8 +++ openacs-4/packages/acs-core-docs/www/tutorial-caching.html 17 Oct 2010 21:06:08 -0000 1.9 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Basic Caching</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 9. Advanced Topics"><link rel="previous" href="tutorial-html-email.html" title="Sending HTML email from your application"><link rel="next" href="tutorial-schedule-procs.html" title="Scheduled Procedures"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-html-email.html">Prev</a> </td><th width="60%" align="center">Chapter 9. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-schedule-procs.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-caching"></a>Basic Caching</h2></div></div><div></div></div><div class="authorblurb"><p>Based on <a href="http://openacs.org/forums/message-view?message_id=157448" target="_top">a post by Dave Bauer</a>.</p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Basic Caching</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 10. Advanced Topics"><link rel="previous" href="tutorial-html-email.html" title="Sending HTML email from your application"><link rel="next" href="tutorial-schedule-procs.html" title="Scheduled Procedures"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-html-email.html">Prev</a> </td><th width="60%" align="center">Chapter 10. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-schedule-procs.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-caching"></a>Basic Caching</h2></div></div><div></div></div><div class="authorblurb"><p>Based on <a href="http://openacs.org/forums/message-view?message_id=157448" target="_top">a post by Dave Bauer</a>.</p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><p>Caching using the database API is described in the database API tutorial.</p><p>Caching using util_memoize</p><div class="orderedlist"><ol type="1"><li><p>Implement your proc as <tt class="computeroutput">my_proc_not_cached</tt></p></li><li><p>Create a version of your proc called <tt class="computeroutput">my_proc</tt> which wraps the non-cached version in the caching mechanism. In this example, my_proc_not_cached takes one argument, -foo, so the wrapper passes that on. The wrapper also uses the list command, to ensure that the arguments get passed correctly and to prevent commands passed in as arguments from being executed.</p><pre class="programlisting">ad_proc my_proc {-foo} { Index: openacs-4/packages/acs-core-docs/www/tutorial-categories.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-categories.html,v diff -u -r1.11 -r1.12 --- openacs-4/packages/acs-core-docs/www/tutorial-categories.html 13 Sep 2009 23:54:41 -0000 1.11 +++ openacs-4/packages/acs-core-docs/www/tutorial-categories.html 17 Oct 2010 21:06:08 -0000 1.12 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Categories</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 9. Advanced Topics"><link rel="previous" href="tutorial-admin-pages.html" title="Admin Pages"><link rel="next" href="profile-code.html" title="Profile your code"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-admin-pages.html">Prev</a> </td><th width="60%" align="center">Chapter 9. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="profile-code.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-categories"></a>Categories</h2></div></div><div></div></div><div class="authorblurb"><p>extended by <a href="mailto:nima.mazloumi@gmx.de" target="_top">Nima Mazloumi</a></p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Categories</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 10. Advanced Topics"><link rel="previous" href="tutorial-admin-pages.html" title="Admin Pages"><link rel="next" href="profile-code.html" title="Profile your code"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-admin-pages.html">Prev</a> </td><th width="60%" align="center">Chapter 10. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="profile-code.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-categories"></a>Categories</h2></div></div><div></div></div><div class="authorblurb"><p>extended by <a href="mailto:nima.mazloumi@gmx.de" target="_top">Nima Mazloumi</a></p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><p>You can associate any ACS Object with one or more categories. Index: openacs-4/packages/acs-core-docs/www/tutorial-comments.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-comments.html,v diff -u -r1.11 -r1.12 --- openacs-4/packages/acs-core-docs/www/tutorial-comments.html 13 Sep 2009 23:54:41 -0000 1.11 +++ openacs-4/packages/acs-core-docs/www/tutorial-comments.html 17 Oct 2010 21:06:08 -0000 1.12 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Adding Comments</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 9. Advanced Topics"><link rel="previous" href="tutorial-etp-templates.html" title="OpenACS Edit This Page Templates"><link rel="next" href="tutorial-admin-pages.html" title="Admin Pages"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-etp-templates.html">Prev</a> </td><th width="60%" align="center">Chapter 9. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-admin-pages.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-comments"></a>Adding Comments</h2></div></div><div></div></div><p>You can track comments for any ACS Object. Here we'll track +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Adding Comments</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 10. Advanced Topics"><link rel="previous" href="tutorial-etp-templates.html" title="OpenACS Edit This Page Templates"><link rel="next" href="tutorial-admin-pages.html" title="Admin Pages"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-etp-templates.html">Prev</a> </td><th width="60%" align="center">Chapter 10. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-admin-pages.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-comments"></a>Adding Comments</h2></div></div><div></div></div><p>You can track comments for any ACS Object. Here we'll track comments for notes. On the note-edit.tcl/adp pair, which is used to display individual notes, we want to put a link to add comments at the bottom of the screen. If there are any comments, we want to Index: openacs-4/packages/acs-core-docs/www/tutorial-css-layout.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-css-layout.html,v diff -u -r1.9 -r1.10 --- openacs-4/packages/acs-core-docs/www/tutorial-css-layout.html 13 Sep 2009 23:54:41 -0000 1.9 +++ openacs-4/packages/acs-core-docs/www/tutorial-css-layout.html 17 Oct 2010 21:06:08 -0000 1.10 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Laying out a page with CSS instead of tables</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 9. Advanced Topics"><link rel="previous" href="tutorial-vuh.html" title="Using .vuh files for pretty urls"><link rel="next" href="tutorial-html-email.html" title="Sending HTML email from your application"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-vuh.html">Prev</a> </td><th width="60%" align="center">Chapter 9. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-html-email.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-css-layout"></a>Laying out a page with CSS instead of tables</h2></div></div><div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id3044948"></a>.LRN home page with table-based layout</h3></div></div><div></div></div><div class="mediaobject" align="center"><img src="../images/dotlrn-style-1.png" align="middle"></div><p>A sample of the HTML code (<a href="files/dotlrn-style-1.html" target="_top">full source</a>)</p><pre class="programlisting"><table border="0" width="100%"> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Laying out a page with CSS instead of tables</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 10. Advanced Topics"><link rel="previous" href="tutorial-vuh.html" title="Using .vuh files for pretty urls"><link rel="next" href="tutorial-html-email.html" title="Sending HTML email from your application"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-vuh.html">Prev</a> </td><th width="60%" align="center">Chapter 10. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-html-email.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-css-layout"></a>Laying out a page with CSS instead of tables</h2></div></div><div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id3039914"></a>.LRN home page with table-based layout</h3></div></div><div></div></div><div class="mediaobject" align="center"><img src="../images/dotlrn-style-1.png" align="middle"></div><p>A sample of the HTML code (<a href="files/dotlrn-style-1.html" target="_top">full source</a>)</p><pre class="programlisting"><table border="0" width="100%"> <tr> <td valign="top" width="50%"> <table class="element" border=0 cellpadding="0" cellspacing="0" width="100%"> @@ -21,7 +21,7 @@ <table border="0" bgcolor="white" cellpadding="0" cellspacing="0" width="100%"> <tr> <td class=element-text> - MBA 101</pre></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id3045011"></a>.LRN Home with CSS-based layout</h3></div></div><div></div></div><div class="mediaobject" align="center"><img src="../images/dotlrn-style-3.png" align="middle"></div><p>A sample of the HTML code (<a href="files/dotlrn-style-2.html" target="_top">full source</a>)</p><pre class="programlisting"><div class="left"> + MBA 101</pre></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id3039978"></a>.LRN Home with CSS-based layout</h3></div></div><div></div></div><div class="mediaobject" align="center"><img src="../images/dotlrn-style-3.png" align="middle"></div><p>A sample of the HTML code (<a href="files/dotlrn-style-2.html" target="_top">full source</a>)</p><pre class="programlisting"><div class="left"> <div class="portlet-wrap-shadow"> <div class="portlet-wrap-bl"> <div class="portlet-wrap-tr"> Index: openacs-4/packages/acs-core-docs/www/tutorial-cvs.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-cvs.html,v diff -u -r1.23 -r1.24 --- openacs-4/packages/acs-core-docs/www/tutorial-cvs.html 13 Sep 2009 23:54:41 -0000 1.23 +++ openacs-4/packages/acs-core-docs/www/tutorial-cvs.html 17 Oct 2010 21:06:08 -0000 1.24 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Add the new package to CVS</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 9. Advanced Topics"><link rel="previous" href="tutorial-specs.html" title="Write the Requirements and Design Specs"><link rel="next" href="tutorial-etp-templates.html" title="OpenACS Edit This Page Templates"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-specs.html">Prev</a> </td><th width="60%" align="center">Chapter 9. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-etp-templates.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-cvs"></a>Add the new package to CVS</h2></div></div><div></div></div><p>Before you do any more work, make sure that your work is +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Add the new package to CVS</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 10. Advanced Topics"><link rel="previous" href="tutorial-specs.html" title="Write the Requirements and Design Specs"><link rel="next" href="tutorial-etp-templates.html" title="OpenACS Edit This Page Templates"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-specs.html">Prev</a> </td><th width="60%" align="center">Chapter 10. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-etp-templates.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-cvs"></a>Add the new package to CVS</h2></div></div><div></div></div><p>Before you do any more work, make sure that your work is protected by putting it all into cvs. The <tt class="computeroutput">cvs add</tt> command is not recursive, so you'll have to traverse the directory tree manually and add as you go. (<a href="http://www.piskorski.com/docs/cvs-conventions.html" target="_top">More on @@ -59,4 +59,4 @@ initial revision: 1.1 done <span class="emphasis"><em>(many lines omitted)</em></span> -[$OPENACS_SERVICE_NAME myfirstpackage]$</pre><div class="figure"><a name="id3016168"></a><p class="title"><b>Figure 9.1. Upgrading a local CVS repository</b></p><div class="mediaobject" align="center"><img src="../images/development-with-cvs.png" align="middle" alt="Upgrading a local CVS repository"></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="tutorial-specs.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="tutorial-etp-templates.html">Next</a></td></tr><tr><td width="40%" align="left">Write the Requirements and Design Specs </td><td width="20%" align="center"><a accesskey="u" href="tutorial-advanced.html">Up</a></td><td width="40%" align="right"> OpenACS Edit This Page Templates</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/tutorial-cvs.html#comments">View comments on this page at openacs.org</a></center></body></html> +[$OPENACS_SERVICE_NAME myfirstpackage]$</pre><div class="figure"><a name="id3068116"></a><p class="title"><b>Figure 10.1. Upgrading a local CVS repository</b></p><div class="mediaobject" align="center"><img src="../images/development-with-cvs.png" align="middle" alt="Upgrading a local CVS repository"></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="tutorial-specs.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="tutorial-etp-templates.html">Next</a></td></tr><tr><td width="40%" align="left">Write the Requirements and Design Specs </td><td width="20%" align="center"><a accesskey="u" href="tutorial-advanced.html">Up</a></td><td width="40%" align="right"> OpenACS Edit This Page Templates</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/tutorial-cvs.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/tutorial-database.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-database.html,v diff -u -r1.40 -r1.41 --- openacs-4/packages/acs-core-docs/www/tutorial-database.html 13 Sep 2009 23:54:41 -0000 1.40 +++ openacs-4/packages/acs-core-docs/www/tutorial-database.html 17 Oct 2010 21:06:08 -0000 1.41 @@ -1,8 +1,8 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Setting Up Database Objects</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial.html" title="Chapter 8. Development Tutorial"><link rel="previous" href="tutorial.html" title="Chapter 8. Development Tutorial"><link rel="next" href="tutorial-pages.html" title="Creating Web Pages"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial.html">Prev</a> </td><th width="60%" align="center">Chapter 8. Development Tutorial</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-pages.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-database"></a>Setting Up Database Objects</h2></div></div><div></div></div><div class="authorblurb"><p>by <a href="mailto:joel@aufrecht.org" target="_top">Joel Aufrecht</a></p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Setting Up Database Objects</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial.html" title="Chapter 9. Development Tutorial"><link rel="previous" href="tutorial-newpackage.html" title="Creating an Application Package"><link rel="next" href="tutorial-pages.html" title="Creating Web Pages"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-newpackage.html">Prev</a> </td><th width="60%" align="center">Chapter 9. Development Tutorial</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-pages.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-database"></a>Setting Up Database Objects</h2></div></div><div></div></div><div class="authorblurb"><p>by <a href="mailto:joel@aufrecht.org" target="_top">Joel Aufrecht</a></p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. - </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2964483"></a>Code the data model</h3></div></div><div></div></div><p>We create all database objects with scripts in the + </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2935608"></a>Code the data model</h3></div></div><div></div></div><p>We create all database objects with scripts in the <tt class="computeroutput">myfirstpackage/sql/</tt> directory. All database scripts are database-specific and are thus in either the <tt class="computeroutput">myfirstpackage/sql/oracle</tt> or @@ -32,13 +32,13 @@ repository functions to simplify our database creation. (<a href="objects.html" target="_top">More information about ACS Objects</a>. <a href="/doc/acs-content-repository" target="_top">More information about the Content Repository</a>.) -</p><div class="figure"><a name="id2951246"></a><p class="title"><b>Figure 8.1. Tutorial Data Model</b></p><div class="mediaobject" align="center"><img src="../images/tutorial-data-model.png" align="middle" alt="Tutorial Data Model"></div></div><p>The top of each sql file has some +</p><div class="figure"><a name="id2968475"></a><p class="title"><b>Figure 9.2. Tutorial Data Model</b></p><div class="mediaobject" align="center"><img src="../images/tutorial-data-model.png" align="middle" alt="Tutorial Data Model"></div></div><p>The top of each sql file has some standard comments, including doc tags such as <tt class="computeroutput">@author</tt> which will be picked up by the API browser. The string <tt class="computeroutput">$Id$</tt> will automatically be expanded when the file is checked in to cvs.</p><pre class="screen">[$OPENACS_SERVICE_NAME ~]$ <b class="userinput"><tt>cd /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/packages/myfirstpackage/sql/postgresql</tt></b> -[$OPENACS_SERVICE_NAME postgresql]$ <b class="userinput"><tt>emacs myfirstpackage-create.sql</tt></b></pre><p>Paste the text below into the file, save, and close.</p><div class="figure"><a name="id2960713"></a><p class="title"><b>Figure 8.2. The Database Creation Script</b></p><pre class="programlisting">-- creation script +[$OPENACS_SERVICE_NAME postgresql]$ <b class="userinput"><tt>emacs myfirstpackage-create.sql</tt></b></pre><p>Paste the text below into the file, save, and close.</p><div class="figure"><a name="id2965509"></a><p class="title"><b>Figure 9.3. The Database Creation Script</b></p><pre class="programlisting">-- creation script -- -- @author joel@aufrecht.org -- @cvs-id &Id:$ @@ -62,7 +62,7 @@ object. Notice the use of "mfp." This is derived from "My First Package" and ensures that our object is unlikely to conflict with objects from other packages.</p><p>Create a database file to drop everything if the package is uninstalled.</p><pre class="screen"> -[$OPENACS_SERVICE_NAME postgresql]$ <b class="userinput"><tt>emacs myfirstpackage-drop.sql</tt></b></pre><div class="figure"><a name="id2952155"></a><p class="title"><b>Figure 8.3. Database Deletion Script</b></p><pre class="programlisting">-- drop script +[$OPENACS_SERVICE_NAME postgresql]$ <b class="userinput"><tt>emacs myfirstpackage-drop.sql</tt></b></pre><div class="figure"><a name="id2899656"></a><p class="title"><b>Figure 9.4. Database Deletion Script</b></p><pre class="programlisting">-- drop script -- -- @author joel@aufrecht.org -- @cvs-id &Id:$ @@ -89,4 +89,4 @@ 0 (1 row) -[$OPENACS_SERVICE_NAME postgresql]$</pre><p>Once both scripts are working without errors, <span class="emphasis"><em>run the create script one last time</em></span> and proceed.</p><pre class="screen">[$OPENACS_SERVICE_NAME postgresql]$ <b class="userinput"><tt>psql service0 -f myfirstpackage-create.sql</tt></b></pre></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="tutorial.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="tutorial-pages.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter 8. Development Tutorial </td><td width="20%" align="center"><a accesskey="u" href="tutorial.html">Up</a></td><td width="40%" align="right"> Creating Web Pages</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/tutorial-database.html#comments">View comments on this page at openacs.org</a></center></body></html> +[$OPENACS_SERVICE_NAME postgresql]$</pre><p>Once both scripts are working without errors, <span class="emphasis"><em>run the create script one last time</em></span> and proceed.</p><pre class="screen">[$OPENACS_SERVICE_NAME postgresql]$ <b class="userinput"><tt>psql service0 -f myfirstpackage-create.sql</tt></b></pre></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="tutorial-newpackage.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="tutorial-pages.html">Next</a></td></tr><tr><td width="40%" align="left">Creating an Application Package </td><td width="20%" align="center"><a accesskey="u" href="tutorial.html">Up</a></td><td width="40%" align="right"> Creating Web Pages</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/tutorial-database.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/tutorial-debug.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-debug.html,v diff -u -r1.39 -r1.40 --- openacs-4/packages/acs-core-docs/www/tutorial-debug.html 13 Sep 2009 23:54:41 -0000 1.39 +++ openacs-4/packages/acs-core-docs/www/tutorial-debug.html 17 Oct 2010 21:06:08 -0000 1.40 @@ -1,8 +1,8 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Debugging and Automated Testing</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial.html" title="Chapter 8. Development Tutorial"><link rel="previous" href="tutorial-pages.html" title="Creating Web Pages"><link rel="next" href="tutorial-advanced.html" title="Chapter 9. Advanced Topics"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-pages.html">Prev</a> </td><th width="60%" align="center">Chapter 8. Development Tutorial</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-advanced.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-debug"></a>Debugging and Automated Testing</h2></div></div><div></div></div><div class="authorblurb"><p>by <a href="mailto:joel@aufrecht.org" target="_top">Joel Aufrecht</a></p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Debugging and Automated Testing</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial.html" title="Chapter 9. Development Tutorial"><link rel="previous" href="tutorial-pages.html" title="Creating Web Pages"><link rel="next" href="tutorial-advanced.html" title="Chapter 10. Advanced Topics"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-pages.html">Prev</a> </td><th width="60%" align="center">Chapter 9. Development Tutorial</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-advanced.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-debug"></a>Debugging and Automated Testing</h2></div></div><div></div></div><div class="authorblurb"><p>by <a href="mailto:joel@aufrecht.org" target="_top">Joel Aufrecht</a></p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. - </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2975422"></a>Debugging</h3></div></div><div></div></div><p><b>Developer Support. </b>The Developer Support package adds several goodies: debug + </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2944859"></a>Debugging</h3></div></div><div></div></div><p><b>Developer Support. </b>The Developer Support package adds several goodies: debug information for every page; the ability to log comments to the page instead of the error log, and fast user switching so that you can test pages as anonymous and as dummy users without logging @@ -23,16 +23,16 @@ ? searches backward <br> / searches forward. <br> </p></div><p> - </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2981616"></a>Manual testing</h3></div></div><div></div></div><p>Make a list of basic tests to make sure it works</p><div class="segmentedlist"><table border="0"><thead><tr><th>Test Num</th><th>Action</th><th>Expected Result</th></tr></thead><tbody><tr><td>001</td><td>Browse to the index page while not logged in and + </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id3063610"></a>Manual testing</h3></div></div><div></div></div><p>Make a list of basic tests to make sure it works</p><div class="segmentedlist"><table border="0"><thead><tr><th>Test Num</th><th>Action</th><th>Expected Result</th></tr></thead><tbody><tr><td>001</td><td>Browse to the index page while not logged in and while one or more notes exist.</td><td>No edit or delete or add links should appear.</td></tr><tr><td>002</td><td>Browse to the index page while logged in. An Edit link should appear. Click on it. Fill out the form and click Submit.</td><td>The text added in the form should be visible on the index page.</td></tr><tr><td>API-001</td><td>Invoke mfp::note::create with a specific word as the title.</td><td>Proc should return an object id.</td></tr><tr><td>API-002</td><td>Given an object id from API-001, invoke mfp::note::get.</td><td>Proc should return the specific word in the title.</td></tr><tr><td>API-003</td><td>Given the object id from API-001, invoke mfp::note::delete.</td><td>Proc should return 0 for success.</td></tr></tbody></table></div><p>Other things to test: try to delete someone else's note. Try to delete your own note. Edit your own note. - Search for a note.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2932915"></a>Write automated tests</h3></div></div><div></div></div><div class="authorblurb"><p>by <a href="mailto:simon@collaboraid.net" target="_top">Simon Carstensen</a> and Joel Aufrecht</p> + Search for a note.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id3014028"></a>Write automated tests</h3></div></div><div></div></div><div class="authorblurb"><p>by <a href="mailto:simon@collaboraid.net" target="_top">Simon Carstensen</a> and Joel Aufrecht</p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. - </div><p><a class="indexterm" name="id2932938"></a> + </div><p><a class="indexterm" name="id3014052"></a> It seems to me that a lot of people have been asking for some guidelines on how to write automated tests. I've done several tests by now and have found the process to be extremely easy and useful. It's a joy to work with automated testing once you get the hang of it.</p><p>Create the directory that will contain the test script and edit the script file. The directory location and file name are standards which are recognized by the automated testing package:</p><pre class="screen">[$OPENACS_SERVICE_NAME www]$<b class="userinput"><tt> mkdir /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/packages/myfirstpackage/tcl/test</tt></b> [$OPENACS_SERVICE_NAME www]$<b class="userinput"><tt> cd /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/packages/myfirstpackage/tcl/test</tt></b> @@ -68,7 +68,7 @@ goes inside <tt class="computeroutput">-test_code {}</tt>. We want to implement test case API-001, "Given an object id from API-001, invoke mfp::note::get. Proc should return the specific word in the title."</p><pre class="programlisting"> set name [ad_generate_random_string] set new_id [mfp::note::add -title $name] - aa_true "Note add succeeded" [exists_and_not_null new_id]</pre><p>To test our simple case, we must load the test file into the system (just as with the /tcl file in the basic tutorial, since the file didn't exist when the system started, the system doesn't know about it.) To make this file take effect, go to the <a href="/acs-admin/apm" target="_top">APM</a> and choose "Reload changed" for "MyFirstPackage". Since we'll be changing it frequently, select "watch this file" on the next page. This will cause the system to check this file every time any page is requested, which is bad for production systems but convenient for developing. We can also add some aa_register_case flags to make it easier to run the test. The <tt class="computeroutput">-procs</tt> flag, which indicates which procs are tested by this test case, makes it easier to find procs in your package that aren't tested at all. The <tt class="computeroutput">-cats</tt> flag, setting categories, makes it easier to control which tests to run. The <tt class="computeroutput">smoke</tt> test setting means that this is a basic test case that can and should be run any time you are doing any test. (<a href="http://www.nedbatchelder.com/blog/20030408T062805.html" target="_top">a definition of "smoke test"</a>)</p><p>Once the file is loaded, go to <a href="/test" target="_top">ACS Automated Testing</a> and click on myfirstpackage. You should see your test case. Run it and examine the results.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id3054425"></a>TCLWebtest tests</h4></div></div><div></div></div><p>API testing can only test part of our package - it doesn't test the code in our adp/tcl pairs. For this, we can use TCLwebtest. TCLwebtest must be <a href="install-tclwebtest.html" title="Install tclwebtest.">installed</a> for this test to work. This provides a <a href="http://tclwebtest.sourceforge.net/doc/api_public.html" target="_top">library of functions</a> that make it easy to call a page through HTTP, examine the results, and drive forms. TCLwebtest's functions overlap slightly with acs-automated-testing; see the example provided for one approach on integrating them.</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id3054458"></a>Example</h4></div></div><div></div></div><p>Now we can add the rest of the API tests, including a test with deliberately bad data. The complete test looks like:</p><pre class="programlisting">ad_library { + aa_true "Note add succeeded" [exists_and_not_null new_id]</pre><p>To test our simple case, we must load the test file into the system (just as with the /tcl file in the basic tutorial, since the file didn't exist when the system started, the system doesn't know about it.) To make this file take effect, go to the <a href="/acs-admin/apm" target="_top">APM</a> and choose "Reload changed" for "MyFirstPackage". Since we'll be changing it frequently, select "watch this file" on the next page. This will cause the system to check this file every time any page is requested, which is bad for production systems but convenient for developing. We can also add some aa_register_case flags to make it easier to run the test. The <tt class="computeroutput">-procs</tt> flag, which indicates which procs are tested by this test case, makes it easier to find procs in your package that aren't tested at all. The <tt class="computeroutput">-cats</tt> flag, setting categories, makes it easier to control which tests to run. The <tt class="computeroutput">smoke</tt> test setting means that this is a basic test case that can and should be run any time you are doing any test. (<a href="http://www.nedbatchelder.com/blog/20030408T062805.html" target="_top">a definition of "smoke test"</a>)</p><p>Once the file is loaded, go to <a href="/test" target="_top">ACS Automated Testing</a> and click on myfirstpackage. You should see your test case. Run it and examine the results.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2968910"></a>TCLWebtest tests</h4></div></div><div></div></div><p>API testing can only test part of our package - it doesn't test the code in our adp/tcl pairs. For this, we can use TCLwebtest. TCLwebtest must be <a href="install-tclwebtest.html" title="Install tclwebtest.">installed</a> for this test to work. This provides a <a href="http://tclwebtest.sourceforge.net/doc/api_public.html" target="_top">library of functions</a> that make it easy to call a page through HTTP, examine the results, and drive forms. TCLwebtest's functions overlap slightly with acs-automated-testing; see the example provided for one approach on integrating them.</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id3033493"></a>Example</h4></div></div><div></div></div><p>Now we can add the rest of the API tests, including a test with deliberately bad data. The complete test looks like:</p><pre class="programlisting">ad_library { Test cases for my first package. } @@ -214,4 +214,4 @@ } } -</pre><p>See also <a href="automated-testing-best-practices.html" title="Automated Testing">Section , “Automated Testing”</a>.</p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="tutorial-pages.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="tutorial-advanced.html">Next</a></td></tr><tr><td width="40%" align="left">Creating Web Pages </td><td width="20%" align="center"><a accesskey="u" href="tutorial.html">Up</a></td><td width="40%" align="right"> Chapter 9. Advanced Topics</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/tutorial-debug.html#comments">View comments on this page at openacs.org</a></center></body></html> +</pre><p>See also <a href="automated-testing-best-practices.html" title="Automated Testing">Section , “Automated Testing”</a>.</p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="tutorial-pages.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="tutorial-advanced.html">Next</a></td></tr><tr><td width="40%" align="left">Creating Web Pages </td><td width="20%" align="center"><a accesskey="u" href="tutorial.html">Up</a></td><td width="40%" align="right"> Chapter 10. Advanced Topics</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/tutorial-debug.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/tutorial-distribute.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-distribute.html,v diff -u -r1.23 -r1.24 --- openacs-4/packages/acs-core-docs/www/tutorial-distribute.html 13 Sep 2009 23:54:41 -0000 1.23 +++ openacs-4/packages/acs-core-docs/www/tutorial-distribute.html 17 Oct 2010 21:06:08 -0000 1.24 @@ -1,11 +1,11 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Prepare the package for distribution.</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 9. Advanced Topics"><link rel="previous" href="profile-code.html" title="Profile your code"><link rel="next" href="tutorial-upgrades.html" title="Distributing upgrades of your package"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="profile-code.html">Prev</a> </td><th width="60%" align="center">Chapter 9. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-upgrades.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-distribute"></a>Prepare the package for distribution.</h2></div></div><div></div></div><p>Browse to the package manager. Click on +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Prepare the package for distribution.</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 10. Advanced Topics"><link rel="previous" href="profile-code.html" title="Profile your code"><link rel="next" href="tutorial-upgrades.html" title="Distributing upgrades of your package"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="profile-code.html">Prev</a> </td><th width="60%" align="center">Chapter 10. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-upgrades.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-distribute"></a>Prepare the package for distribution.</h2></div></div><div></div></div><p>Browse to the package manager. Click on <tt class="computeroutput"><span class="guilabel"><span class="guilabel">tutorialapp</span></span></tt>.</p><p>Click on <tt class="computeroutput"><span class="guilabel"><span class="guilabel">Generate a distribution file for this package from the filesystem</span></span></tt>. </p><p>Click on the file size (<tt class="computeroutput"><span class="guilabel"><span class="guilabel">37.1KB</span></span></tt>) after the label <tt class="computeroutput"><span class="guilabel"><span class="guilabel">Distribution File:</span></span></tt> and save the file to - /var/tmp.</p><p><a class="indexterm" name="id3058425"></a> + /var/tmp.</p><p><a class="indexterm" name="id3045731"></a> </p><p><a href="http://openacs.org/forums/message-view?message_id=192919" target="_top">Package development guidelines</a></p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="profile-code.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="tutorial-upgrades.html">Next</a></td></tr><tr><td width="40%" align="left">Profile your code </td><td width="20%" align="center"><a accesskey="u" href="tutorial-advanced.html">Up</a></td><td width="40%" align="right"> Distributing upgrades of your package</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/tutorial-distribute.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/tutorial-etp-templates.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-etp-templates.html,v diff -u -r1.6 -r1.7 --- openacs-4/packages/acs-core-docs/www/tutorial-etp-templates.html 13 Sep 2009 23:54:41 -0000 1.6 +++ openacs-4/packages/acs-core-docs/www/tutorial-etp-templates.html 17 Oct 2010 21:06:08 -0000 1.7 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenACS Edit This Page Templates</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 9. Advanced Topics"><link rel="previous" href="tutorial-cvs.html" title="Add the new package to CVS"><link rel="next" href="tutorial-comments.html" title="Adding Comments"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-cvs.html">Prev</a> </td><th width="60%" align="center">Chapter 9. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-comments.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-etp-templates"></a>OpenACS Edit This Page Templates</h2></div></div><div></div></div><div class="authorblurb"><p>by <a href="mailto:ncarroll@ee.usyd.edu.au" target="_top">Nick Carroll</a></p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenACS Edit This Page Templates</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 10. Advanced Topics"><link rel="previous" href="tutorial-cvs.html" title="Add the new package to CVS"><link rel="next" href="tutorial-comments.html" title="Adding Comments"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-cvs.html">Prev</a> </td><th width="60%" align="center">Chapter 10. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-comments.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-etp-templates"></a>OpenACS Edit This Page Templates</h2></div></div><div></div></div><div class="authorblurb"><p>by <a href="mailto:ncarroll@ee.usyd.edu.au" target="_top">Nick Carroll</a></p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="goals"></a>Goals</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Learn about the OpenACS templating system.</p></li><li><p>Learn about subsites and site-map administration.</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="introduction"></a>Introduction</h3></div></div><div></div></div><p> @@ -13,5 +13,5 @@ cvs -d:pserver:anonymous@openacs.org:/cvsroot co edit-this-page</pre></li><li><p>Go to the package manager at http://yoursite/acs-admin/apm. And install the new package: edit-this-page.</p></li><li><p>Or use the "Add Application" form available on the Main site.</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="exercise3"></a>Change ETP Application</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Work out how to change the ETP application.</p></li><li><p>Investigate each of the available ETP templates:</p><div class="itemizedlist"><ul type="circle"><li><p>Default</p></li><li><p>News</p></li><li><p>FAQ</p></li></ul></div></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="exercise4"></a>Exercise 4: Create a New ETP Template</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Browse the files for each of the above ETP templates at:</p><pre class="screen">cd ~/openacs/packages/edit-this-page/templates</pre></li><li><p>Use the article template as the basis of our new col2 template.</p><pre class="screen">cp article-content.adp col2-content.adp cp article-content.tcl col2-content.tcl cp article-index.adp col2-index.adp - cp article-index.tcl col2-index.tcl</pre></li><li><p>The template should provide us with the following ETP layout:</p><div class="table"><a name="id2979596"></a><p class="title"><b>Table 9.1. table showing ETP layout</b></p><table summary="table showing ETP layout" cellspacing="0" border="1" width="250"><colgroup><col align="left"><col align="left"></colgroup><tbody><tr><td colspan="2" align="center">Header</td></tr><tr height="200"><td align="left">Sidebar</td><td align="left">Main Content Pane</td></tr></tbody></table></div></li><li><p>The "Main Content" pane should contain the editable content that ETP provides.</p></li><li><p>The "Header" should display the title of the page that you set in ETP.</p></li><li><p>The "Sidebar" should display the extlinks that you add as a content item in ETP.</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="exercise5"></a>Exercise 5: Register the col2 Template with ETP</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Need to register your template with ETP so that it appears in the drop-down menu that you would have seen in Exercise 3.</p><pre class="screen">cd ~/openacs/packages/edit-this-page/tcl + cp article-index.tcl col2-index.tcl</pre></li><li><p>The template should provide us with the following ETP layout:</p><div class="table"><a name="id3013801"></a><p class="title"><b>Table 10.1. table showing ETP layout</b></p><table summary="table showing ETP layout" cellspacing="0" border="1" width="250"><colgroup><col align="left"><col align="left"></colgroup><tbody><tr><td colspan="2" align="center">Header</td></tr><tr height="200"><td align="left">Sidebar</td><td align="left">Main Content Pane</td></tr></tbody></table></div></li><li><p>The "Main Content" pane should contain the editable content that ETP provides.</p></li><li><p>The "Header" should display the title of the page that you set in ETP.</p></li><li><p>The "Sidebar" should display the extlinks that you add as a content item in ETP.</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="exercise5"></a>Exercise 5: Register the col2 Template with ETP</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Need to register your template with ETP so that it appears in the drop-down menu that you would have seen in Exercise 3.</p><pre class="screen">cd ~/openacs/packages/edit-this-page/tcl emacs etp-custom-init.tcl</pre></li><li><p>Use the function etp::define_application to register your template with ETP</p><div class="itemizedlist"><ul type="circle"><li><p>Uncomment the "asc" definition</p></li><li><p>Set allow_extlinks to true, the rest should be false.</p></li></ul></div></li><li><p>Restart your server for the changes to take effect.</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="exercise6"></a>Exercise 6: Configure ETP to use the col2 Template</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Configure your ETP instance at /lab4/index to use the col2 template.</p></li><li><p>Create external links to link to other mounted ETP instances.</p></li><li><p>Check that your external links show up in the sidebar when you view your ETP application using the col2 template.</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="end"></a>Who Wrote This and When</h3></div></div><div></div></div><p>This problem set was originally written by <a href="http://www.weg.ee.usyd.edu.au/people/ncarroll" target="_top">Nick Carroll</a> in August 2004 for the <a href="http://www.usyd.edu.au" target="_top">University of Sydney</a> Course <a href="http://www.weg.ee.usyd.edu.au/courses/ebus5002" target="_top">EBUS5002</a>.</p><p>This material is copyright 2004 by Nick Carroll. It may be copied, reused, and modified, provided credit is given to the original author.</p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="tutorial-cvs.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="tutorial-comments.html">Next</a></td></tr><tr><td width="40%" align="left">Add the new package to CVS </td><td width="20%" align="center"><a accesskey="u" href="tutorial-advanced.html">Up</a></td><td width="40%" align="right"> Adding Comments</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/tutorial-etp-templates.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/tutorial-future-topics.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-future-topics.html,v diff -u -r1.14 -r1.15 --- openacs-4/packages/acs-core-docs/www/tutorial-future-topics.html 13 Sep 2009 23:54:41 -0000 1.14 +++ openacs-4/packages/acs-core-docs/www/tutorial-future-topics.html 17 Oct 2010 21:06:08 -0000 1.15 @@ -1,7 +1,7 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Future Topics</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 9. Advanced Topics"><link rel="previous" href="tutorial-second-database.html" title="Connect to a second database"><link rel="next" href="dev-guide.html" title="Chapter 10. Development Reference"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-second-database.html">Prev</a> </td><th width="60%" align="center">Chapter 9. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="dev-guide.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-future-topics"></a>Future Topics</h2></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>How to enforce security so that users can't +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Future Topics</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 10. Advanced Topics"><link rel="previous" href="tutorial-second-database.html" title="Connect to a second database"><link rel="next" href="dev-guide.html" title="Chapter 11. Development Reference"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-second-database.html">Prev</a> </td><th width="60%" align="center">Chapter 10. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="dev-guide.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-future-topics"></a>Future Topics</h2></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>How to enforce security so that users can't change other users records</p></li><li><p>How to use the content management tables so that ... what?</p></li><li><p>How to change the default stylesheets for Form Builder HTML forms.</p></li><li><p>How to make your package searchable with OpenFTS/Oracle</p></li><li><p>How to prepare pagelets for inclusion in other pages</p></li><li><p>How and when to put procedures in a tcl procedure library</p></li><li><p>More on ad_form - data validation, other stuff. (plan to draw from Jon Griffin's doc)</p></li><li><p>partialquery in xql</p></li><li><p>How to use the html/text entry widget to get the - "does this look right" confirm page </p></li><li><p>APM package dependencies</p></li></ul></div><p>See also the <a href="http://openacs.org/faq/one-faq?faq_id=43841" target="_top">OpenACS Programming FAQ</a></p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="tutorial-second-database.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="dev-guide.html">Next</a></td></tr><tr><td width="40%" align="left">Connect to a second database </td><td width="20%" align="center"><a accesskey="u" href="tutorial-advanced.html">Up</a></td><td width="40%" align="right"> Chapter 10. Development Reference</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/tutorial-future-topics.html#comments">View comments on this page at openacs.org</a></center></body></html> + "does this look right" confirm page </p></li><li><p>APM package dependencies</p></li></ul></div><p>See also the <a href="http://openacs.org/faq/one-faq?faq_id=43841" target="_top">OpenACS Programming FAQ</a></p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="tutorial-second-database.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="dev-guide.html">Next</a></td></tr><tr><td width="40%" align="left">Connect to a second database </td><td width="20%" align="center"><a accesskey="u" href="tutorial-advanced.html">Up</a></td><td width="40%" align="right"> Chapter 11. Development Reference</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/tutorial-future-topics.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/tutorial-hierarchical.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-hierarchical.html,v diff -u -r1.8 -r1.9 --- openacs-4/packages/acs-core-docs/www/tutorial-hierarchical.html 13 Sep 2009 23:54:41 -0000 1.8 +++ openacs-4/packages/acs-core-docs/www/tutorial-hierarchical.html 17 Oct 2010 21:06:08 -0000 1.9 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Hierarchical data</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 9. Advanced Topics"><link rel="previous" href="tutorial-notifications.html" title="Notifications"><link rel="next" href="tutorial-vuh.html" title="Using .vuh files for pretty urls"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-notifications.html">Prev</a> </td><th width="60%" align="center">Chapter 9. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-vuh.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-hierarchical"></a>Hierarchical data</h2></div></div><div></div></div><div class="authorblurb"><p>by <a href="http://rubick.com:8002" target="_top">Jade Rubick</a> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Hierarchical data</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 10. Advanced Topics"><link rel="previous" href="tutorial-notifications.html" title="Notifications"><link rel="next" href="tutorial-vuh.html" title="Using .vuh files for pretty urls"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-notifications.html">Prev</a> </td><th width="60%" align="center">Chapter 10. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-vuh.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-hierarchical"></a>Hierarchical data</h2></div></div><div></div></div><div class="authorblurb"><p>by <a href="http://rubick.com:8002" target="_top">Jade Rubick</a> with help from many people in the OpenACS community</p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. Index: openacs-4/packages/acs-core-docs/www/tutorial-html-email.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-html-email.html,v diff -u -r1.8 -r1.9 --- openacs-4/packages/acs-core-docs/www/tutorial-html-email.html 13 Sep 2009 23:54:41 -0000 1.8 +++ openacs-4/packages/acs-core-docs/www/tutorial-html-email.html 17 Oct 2010 21:06:08 -0000 1.9 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Sending HTML email from your application</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 9. Advanced Topics"><link rel="previous" href="tutorial-css-layout.html" title="Laying out a page with CSS instead of tables"><link rel="next" href="tutorial-caching.html" title="Basic Caching"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-css-layout.html">Prev</a> </td><th width="60%" align="center">Chapter 9. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-caching.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-html-email"></a>Sending HTML email from your application</h2></div></div><div></div></div><div class="authorblurb"><p>by <a href="mailto:jade@rubick.com" target="_top">Jade Rubick</a></p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Sending HTML email from your application</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 10. Advanced Topics"><link rel="previous" href="tutorial-css-layout.html" title="Laying out a page with CSS instead of tables"><link rel="next" href="tutorial-caching.html" title="Basic Caching"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-css-layout.html">Prev</a> </td><th width="60%" align="center">Chapter 10. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-caching.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-html-email"></a>Sending HTML email from your application</h2></div></div><div></div></div><div class="authorblurb"><p>by <a href="mailto:jade@rubick.com" target="_top">Jade Rubick</a></p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><p>Sending email is fairly simple using the acs-mail-lite Index: openacs-4/packages/acs-core-docs/www/tutorial-newpackage.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-newpackage.html,v diff -u -r1.39 -r1.40 --- openacs-4/packages/acs-core-docs/www/tutorial-newpackage.html 12 Jul 2009 01:08:29 -0000 1.39 +++ openacs-4/packages/acs-core-docs/www/tutorial-newpackage.html 17 Oct 2010 21:06:08 -0000 1.40 @@ -1,12 +1,12 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Creating an Application Package</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.0"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial.html" title="Chapter 9. Development Tutorial"><link rel="previous" href="tutorial.html" title="Chapter 9. Development Tutorial"><link rel="next" href="tutorial-database.html" title="Setting Up Database Objects"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial.html">Prev</a> </td><th width="60%" align="center">Chapter 9. Development Tutorial</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-database.html">Next</a></td></tr></table><hr></div><div class="sect1" title="Creating an Application Package"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-newpackage"></a>Creating an Application Package</h2></div></div></div><div class="authorblurb"><p>by <a class="ulink" href="mailto:joel@aufrecht.org" target="_top">Joel Aufrecht</a></p> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Creating an Application Package</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial.html" title="Chapter 9. Development Tutorial"><link rel="previous" href="tutorial.html" title="Chapter 9. Development Tutorial"><link rel="next" href="tutorial-database.html" title="Setting Up Database Objects"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial.html">Prev</a> </td><th width="60%" align="center">Chapter 9. Development Tutorial</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-database.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-newpackage"></a>Creating an Application Package</h2></div></div><div></div></div><div class="authorblurb"><p>by <a href="mailto:joel@aufrecht.org" target="_top">Joel Aufrecht</a></p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. - </div><div class="sect2" title="The intended page map"><div class="titlepage"><div><div><h3 class="title"><a name="tutorial-picture"></a>The intended page map</h3></div></div></div><div class="mediaobject"><img src="../images/openacs-best-practice.png"></div></div><div class="sect2" title="Overview"><div class="titlepage"><div><div><h3 class="title"><a name="id494088"></a>Overview</h3></div></div></div><p>To start developing new code in OpenACS, we build a new package. A package + </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="tutorial-picture"></a>The intended page map</h3></div></div><div></div></div><div class="mediaobject"><img src="../images/openacs-best-practice.png"></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2969710"></a>Overview</h3></div></div><div></div></div><p>To start developing new code in OpenACS, we build a new package. A package is a a discrete collection of web pages, tcl code, and database tables and procedures. - A package with user interface is called an <span class="strong"><strong>application</strong></span>; + A package with user interface is called an <span class="strong">application</span>; a package which provides functions to other packages and has no direct interface, a - <span class="strong"><strong>service</strong></span>. A package can be installed, upgraded, and + <span class="strong">service</span>. A package can be installed, upgraded, and removed. It communicates with other packages through an API. This chapter walks you through the minimum steps to create a useful package, including writing documentation, setting up database tables and procedures, writing web pages, debugging, and automatic regression testing. @@ -18,55 +18,55 @@ right now. Code that is temporary hackage is clearly marked. </p><p>In this tutorial, we will make an application package for displaying a list of text notes. -</p></div><div class="sect2" title="Before you begin"><div class="titlepage"><div><div><h3 class="title"><a name="id504236"></a>Before you begin</h3></div></div></div><p>You will need:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>A computer with a working installation of - OpenACS. If you don't have this, see <a class="xref" href="install-overview.html" title="Chapter 2. Installation Overview">Chapter 2, <i>Installation Overview</i></a>. - </p></li><li class="listitem"><p>Example files, which are included in the -standard OpenACS 5.5.0 distribution. - </p></li></ul></div><div class="figure"><a name="id551139"></a><p class="title"><b>Figure 9.1. Assumptions in this section</b></p><div class="figure-contents"><div class="informaltable"><table cellspacing="0" border="1"><colgroup><col><col></colgroup><tbody><tr><td>Fully qualified domain name of your server</td><td><span class="replaceable"><span class="replaceable">yourserver.test</span></span></td></tr><tr><td>URL of your server</td><td><span class="replaceable"><span class="replaceable">http://yourserver.test:8000</span></span></td></tr><tr><td>Name of development account</td><td><span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></td></tr><tr><td>New Package key</td><td><span class="replaceable"><span class="replaceable">myfirstpackage</span></span></td></tr></tbody></table></div></div></div><br class="figure-break"></div><div class="sect2" title="Use the APM to initialize a new package"><div class="titlepage"><div><div><h3 class="title"><a name="id534302"></a>Use the APM to initialize a new package</h3></div></div></div><p>We use the <a class="ulink" href="packages.html" target="_top">ACS Package Manager</a> (APM) to add, remove, and +</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2909026"></a>Before you begin</h3></div></div><div></div></div><p>You will need:</p><div class="itemizedlist"><ul type="disc"><li><p>A computer with a working installation of + OpenACS. If you don't have this, see <a href="install-overview.html" title="Chapter 2. Installation Overview">Chapter 2, <i>Installation Overview</i></a>. + </p></li><li><p>Example files, which are included in the +standard OpenACS 5.6.0 distribution. + </p></li></ul></div><div class="figure"><a name="id2909060"></a><p class="title"><b>Figure 9.1. Assumptions in this section</b></p><div class="informaltable"><table cellspacing="0" border="1"><colgroup><col><col></colgroup><tbody><tr><td>Fully qualified domain name of your server</td><td><span class="replaceable"><span class="replaceable">yourserver.test</span></span></td></tr><tr><td>URL of your server</td><td><span class="replaceable"><span class="replaceable">http://yourserver.test:8000</span></span></td></tr><tr><td>Name of development account</td><td><span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></td></tr><tr><td>New Package key</td><td><span class="replaceable"><span class="replaceable">myfirstpackage</span></span></td></tr></tbody></table></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2949130"></a>Use the APM to initialize a new package</h3></div></div><div></div></div><p>We use the <a href="packages.html" target="_top">ACS Package Manager</a> (APM) to add, remove, and upgrade packages. It handles package meta-data, such as lists of files that belong in the package. Each package is uniquely identified by a package key. To start developing a new package, use the APM to create an empty package with our new package key, <span class="replaceable"><span class="replaceable">myfirstpackage</span></span>. This will create the initial directories, meta-information files, and database - entries for a new package. (<a class="ulink" href="apm-requirements.html" target="_top">More info on APM</a>) -</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Browse to - <code class="computeroutput">http://<span class="replaceable"><span class="replaceable">yourserver:8000</span></span><a class="ulink" href="/acs-admin/apm" target="_top">/acs-admin/apm</a></code>. -</p></li><li class="listitem"><p>Click <code class="computeroutput">Create a New Package</code>.</p><p>Fill in the fields listed below. <span class="strong"><strong>Ignore the rest (and leave the check boxes alone).</strong></span> + entries for a new package. (<a href="apm-requirements.html" target="_top">More info on APM</a>) +</p><div class="orderedlist"><ol type="1"><li><p>Browse to + <tt class="computeroutput">http://<span class="replaceable"><span class="replaceable">yourserver:8000</span></span><a href="/acs-admin/apm" target="_top">/acs-admin/apm</a></tt>. +</p></li><li><p>Click <tt class="computeroutput">Create a New Package</tt>.</p><p>Fill in the fields listed below. <span class="strong">Ignore the rest (and leave the check boxes alone).</span> (Some will change automatically. Don't mess with those.) -</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> - <code class="computeroutput">Package Key</code>: - <strong class="userinput"><code>myfirstpackage</code></strong></p></li><li class="listitem"><p> - <code class="computeroutput">Package Name</code>: - <strong class="userinput"><code>My First Package</code></strong> - </p></li><li class="listitem"><p> - <code class="computeroutput">Package Plural</code>: - <strong class="userinput"><code>My First Package</code></strong></p></li><li class="listitem"><p> - <code class="computeroutput">Package Type</code>: - <strong class="userinput"><code>Application</code></strong> - </p></li><li class="listitem"><p> - <code class="computeroutput">Initial Version</code>: - <strong class="userinput"><code>0.1d</code></strong> - </p></li><li class="listitem"><p><code class="computeroutput">Summary</code>: - <strong class="userinput"><code>This is my first package.</code></strong> +</p><div class="itemizedlist"><ul type="disc"><li><p> + <tt class="computeroutput">Package Key</tt>: + <b class="userinput"><tt>myfirstpackage</tt></b></p></li><li><p> + <tt class="computeroutput">Package Name</tt>: + <b class="userinput"><tt>My First Package</tt></b> + </p></li><li><p> + <tt class="computeroutput">Package Plural</tt>: + <b class="userinput"><tt>My First Package</tt></b></p></li><li><p> + <tt class="computeroutput">Package Type</tt>: + <b class="userinput"><tt>Application</tt></b> + </p></li><li><p> + <tt class="computeroutput">Initial Version</tt>: + <b class="userinput"><tt>0.1d</tt></b> + </p></li><li><p><tt class="computeroutput">Summary</tt>: + <b class="userinput"><tt>This is my first package.</tt></b> </p></li></ul></div><p>At the bottom, click - <code class="computeroutput"><span class="guibutton"><span class="guibutton">Create Package</span></span></code>. + <tt class="computeroutput"><span class="guibutton"><span class="guibutton">Create Package</span></span></tt>. </p></li></ol></div><p>This creates a package rooted at - <code class="computeroutput">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/packages/<span class="replaceable"><span class="replaceable">myfirstpackage</span></span></code>. - This is the "home directory" of our new package, and all - files in the package will be within this directory. <a class="ulink" href="packages.html" target="_top">More on the structure of - packages</a>). </p></div><div class="sect2" title="Add an Application Instance to the Server"><div class="titlepage"><div><div><h3 class="title"><a name="id594777"></a>Add an Application Instance to the Server</h3></div></div></div><p>In order to see your work in progress, you must create a + <tt class="computeroutput">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/packages/<span class="replaceable"><span class="replaceable">myfirstpackage</span></span></tt>. + This is the "home directory" of our new package, and all + files in the package will be within this directory. <a href="packages.html" target="_top">More on the structure of + packages</a>). </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2983059"></a>Add an Application Instance to the Server</h3></div></div><div></div></div><p>In order to see your work in progress, you must create a map between the URL space of incoming requests and the package application instance. You do this by adding the application in the main site administration). This creates a link between the incoming URL requests and an - <span class="emphasis"><em>instance</em></span> of the application. (<a class="ulink" href="rp-design.html" target="_top">More on applications and nodes</a>)</p><p>You can have instances of a package on one site, each with a + <span class="emphasis"><em>instance</em></span> of the application. (<a href="rp-design.html" target="_top">More on applications and nodes</a>)</p><p>You can have instances of a package on one site, each with a different URL and different permissions, all sharing the same code and tables. This requires that a package be developed <span class="emphasis"><em>package-aware</em></span>. You'll see how to do that - in this tutorial.</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Browse to -<code class="computeroutput"><span class="replaceable"><span class="replaceable">http://yourserver.test:8000</span></span><a class="ulink" href="/admin/applications/application-add" target="_top">/admin/applications/application-add/</a></code>.</p></li><li class="listitem"><p>Choose "My First Package" from the list and click OK (the other fields are optional).</p></li></ol></div><p>By mounting the package, we've caused all requests to - <code class="computeroutput">http://yourserver.test:8000/myfirstpackage</code> - to be satisfied from the files at <code class="computeroutput">/var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackage/www</code>.</p></div><div class="sect2" title="Quick start"><div class="titlepage"><div><div><h3 class="title"><a name="id508973"></a>Quick start</h3></div></div></div><p>The remainder of the tutorial walks you through each file one at a time as you create the package. You can skip all this, and get a working package, by doing the following:</p><pre class="screen">cd /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/packages/acs-core-docs/www/files/tutorial + in this tutorial.</p><div class="orderedlist"><ol type="1"><li><p>Browse to +<tt class="computeroutput"><span class="replaceable"><span class="replaceable">http://yourserver.test:8000</span></span><a href="/admin/applications/application-add" target="_top">/admin/applications/application-add/</a></tt>.</p></li><li><p>Choose "My First Package" from the list and click OK (the other fields are optional).</p></li></ol></div><p>By mounting the package, we've caused all requests to + <tt class="computeroutput">http://yourserver.test:8000/myfirstpackage</tt> + to be satisfied from the files at <tt class="computeroutput">/var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackage/www</tt>.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2910797"></a>Quick start</h3></div></div><div></div></div><p>The remainder of the tutorial walks you through each file one at a time as you create the package. You can skip all this, and get a working package, by doing the following:</p><pre class="screen">cd /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/packages/acs-core-docs/www/files/tutorial psql <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span> -f myfirstpackage-create.sql cp note-edit.* note-delete.tcl index.* ../../../../myfirstpackage/www/ mkdir ../../../../myfirstpackage/lib Index: openacs-4/packages/acs-core-docs/www/tutorial-notifications.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-notifications.html,v diff -u -r1.13 -r1.14 --- openacs-4/packages/acs-core-docs/www/tutorial-notifications.html 13 Sep 2009 23:54:41 -0000 1.13 +++ openacs-4/packages/acs-core-docs/www/tutorial-notifications.html 17 Oct 2010 21:06:08 -0000 1.14 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Notifications</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 9. Advanced Topics"><link rel="previous" href="tutorial-upgrades.html" title="Distributing upgrades of your package"><link rel="next" href="tutorial-hierarchical.html" title="Hierarchical data"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-upgrades.html">Prev</a> </td><th width="60%" align="center">Chapter 9. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-hierarchical.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-notifications"></a>Notifications</h2></div></div><div></div></div><div class="authorblurb"><p>by <a href="mailto:dave@student.usyd.edu.au" target="_top">David Bell</a> and <a href="mailto:simon@collaboraid.net" target="_top">Simon Carstensen</a></p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Notifications</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 10. Advanced Topics"><link rel="previous" href="tutorial-upgrades.html" title="Distributing upgrades of your package"><link rel="next" href="tutorial-hierarchical.html" title="Hierarchical data"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-upgrades.html">Prev</a> </td><th width="60%" align="center">Chapter 10. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-hierarchical.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-notifications"></a>Notifications</h2></div></div><div></div></div><div class="authorblurb"><p>by <a href="mailto:dave@student.usyd.edu.au" target="_top">David Bell</a> and <a href="mailto:simon@collaboraid.net" target="_top">Simon Carstensen</a></p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><p>The notifications package allows you to send notifications through any Index: openacs-4/packages/acs-core-docs/www/tutorial-pages.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-pages.html,v diff -u -r1.40 -r1.41 --- openacs-4/packages/acs-core-docs/www/tutorial-pages.html 13 Sep 2009 23:54:41 -0000 1.40 +++ openacs-4/packages/acs-core-docs/www/tutorial-pages.html 17 Oct 2010 21:06:08 -0000 1.41 @@ -1,9 +1,9 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Creating Web Pages</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial.html" title="Chapter 8. Development Tutorial"><link rel="previous" href="tutorial-database.html" title="Setting Up Database Objects"><link rel="next" href="tutorial-debug.html" title="Debugging and Automated Testing"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-database.html">Prev</a> </td><th width="60%" align="center">Chapter 8. Development Tutorial</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-debug.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-pages"></a>Creating Web Pages</h2></div></div><div></div></div><div class="authorblurb"><p>by <a href="mailto:joel@aufrecht.org" target="_top">Joel Aufrecht</a></p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Creating Web Pages</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial.html" title="Chapter 9. Development Tutorial"><link rel="previous" href="tutorial-database.html" title="Setting Up Database Objects"><link rel="next" href="tutorial-debug.html" title="Debugging and Automated Testing"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-database.html">Prev</a> </td><th width="60%" align="center">Chapter 9. Development Tutorial</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-debug.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-pages"></a>Creating Web Pages</h2></div></div><div></div></div><div class="authorblurb"><p>by <a href="mailto:joel@aufrecht.org" target="_top">Joel Aufrecht</a></p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. - </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2927136"></a>Install some API</h3></div></div><div></div></div><p>As a workaround for missing content-repository functionality, copy a provided file into the directory for tcl files:</p><pre class="screen"> - <span class="action"><span class="action">cp /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/packages/acs-core-docs/www/files/tutorial/note-procs.tcl /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/packages/myfirstpackage/tcl/</span></span></pre><p>To make this file take effect, go to the <a href="/acs-admin/apm" target="_top">APM</a> and choose "Reload changed" for "MyFirstPackage".</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2966694"></a>Page Map</h3></div></div><div></div></div><p>Our package will have two visible pages. The first shows a list of all objects; the second shows a single object in view or edit mode, and can also be used to add an object. The index page will display the list, but since we might reuse the list later, we'll put it in a seperate file and include it on the index page.</p><div class="figure"><a name="id2980436"></a><p class="title"><b>Figure 8.4. Page Map</b></p><div class="mediaobject" align="center"><img src="../images/tutorial-page-map.png" align="middle" alt="Page Map"></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2934190"></a>Build the "Index" page</h3></div></div><div></div></div><p>Each user-visible page in your package has, typically, + </div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2964526"></a>Install some API</h3></div></div><div></div></div><p>As a workaround for missing content-repository functionality, copy a provided file into the directory for tcl files:</p><pre class="screen"> + <span class="action"><span class="action">cp /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/packages/acs-core-docs/www/files/tutorial/note-procs.tcl /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/packages/myfirstpackage/tcl/</span></span></pre><p>To make this file take effect, go to the <a href="/acs-admin/apm" target="_top">APM</a> and choose "Reload changed" for "MyFirstPackage".</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2970686"></a>Page Map</h3></div></div><div></div></div><p>Our package will have two visible pages. The first shows a list of all objects; the second shows a single object in view or edit mode, and can also be used to add an object. The index page will display the list, but since we might reuse the list later, we'll put it in a seperate file and include it on the index page.</p><div class="figure"><a name="id2920689"></a><p class="title"><b>Figure 9.5. Page Map</b></p><div class="mediaobject" align="center"><img src="../images/tutorial-page-map.png" align="middle" alt="Page Map"></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2932217"></a>Build the "Index" page</h3></div></div><div></div></div><p>Each user-visible page in your package has, typically, three parts. The <tt class="computeroutput">tcl</tt> file holds the procedural logic for the page, including TCL and database-independent SQL code, and does things like Index: openacs-4/packages/acs-core-docs/www/tutorial-parameters.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-parameters.html,v diff -u -r1.6 -r1.7 --- openacs-4/packages/acs-core-docs/www/tutorial-parameters.html 13 Sep 2009 23:54:41 -0000 1.6 +++ openacs-4/packages/acs-core-docs/www/tutorial-parameters.html 17 Oct 2010 21:06:08 -0000 1.7 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Adding in parameters for your package</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 9. Advanced Topics"><link rel="previous" href="tutorial-wysiwyg-editor.html" title="Enabling WYSIWYG"><link rel="next" href="tutorial-upgrade-scripts.html" title="Writing upgrade scripts"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-wysiwyg-editor.html">Prev</a> </td><th width="60%" align="center">Chapter 9. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-upgrade-scripts.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-parameters"></a>Adding in parameters for your package</h2></div></div><div></div></div><p>Each instance of a package can have paramaters associated +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Adding in parameters for your package</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 10. Advanced Topics"><link rel="previous" href="tutorial-wysiwyg-editor.html" title="Enabling WYSIWYG"><link rel="next" href="tutorial-upgrade-scripts.html" title="Writing upgrade scripts"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-wysiwyg-editor.html">Prev</a> </td><th width="60%" align="center">Chapter 10. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-upgrade-scripts.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-parameters"></a>Adding in parameters for your package</h2></div></div><div></div></div><p>Each instance of a package can have paramaters associated with it. These are like preferences, and they can be set by the administrator for each application to change the behavior of your application. </p><p>To add parameters for your package, go to the Automatic Index: openacs-4/packages/acs-core-docs/www/tutorial-schedule-procs.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-schedule-procs.html,v diff -u -r1.7 -r1.8 --- openacs-4/packages/acs-core-docs/www/tutorial-schedule-procs.html 13 Sep 2009 23:54:41 -0000 1.7 +++ openacs-4/packages/acs-core-docs/www/tutorial-schedule-procs.html 17 Oct 2010 21:06:08 -0000 1.8 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Scheduled Procedures</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 9. Advanced Topics"><link rel="previous" href="tutorial-caching.html" title="Basic Caching"><link rel="next" href="tutorial-wysiwyg-editor.html" title="Enabling WYSIWYG"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-caching.html">Prev</a> </td><th width="60%" align="center">Chapter 9. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-wysiwyg-editor.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-schedule-procs"></a>Scheduled Procedures</h2></div></div><div></div></div><p>Put this proc in a file <tt class="computeroutput">/packages/<span class="replaceable"><span class="replaceable">myfirstpackage</span></span>/tcl/scheduled-init.tcl</tt>. Files in /tcl with the -init.tcl ending are sourced on server startup. This one executes my_proc every 60 seconds:</p><pre class="programlisting">ad_schedule_proc 60 myfirstpackage::my_proc +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Scheduled Procedures</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 10. Advanced Topics"><link rel="previous" href="tutorial-caching.html" title="Basic Caching"><link rel="next" href="tutorial-wysiwyg-editor.html" title="Enabling WYSIWYG"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-caching.html">Prev</a> </td><th width="60%" align="center">Chapter 10. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-wysiwyg-editor.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-schedule-procs"></a>Scheduled Procedures</h2></div></div><div></div></div><p>Put this proc in a file <tt class="computeroutput">/packages/<span class="replaceable"><span class="replaceable">myfirstpackage</span></span>/tcl/scheduled-init.tcl</tt>. Files in /tcl with the -init.tcl ending are sourced on server startup. This one executes my_proc every 60 seconds:</p><pre class="programlisting">ad_schedule_proc 60 myfirstpackage::my_proc </pre><p>This executes once a day, at midnight:</p><pre class="programlisting">ad_schedule_proc \ -schedule_proc ns_schedule_daily \ [list 0 0] \ Index: openacs-4/packages/acs-core-docs/www/tutorial-second-database.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-second-database.html,v diff -u -r1.7 -r1.8 --- openacs-4/packages/acs-core-docs/www/tutorial-second-database.html 13 Sep 2009 23:54:41 -0000 1.7 +++ openacs-4/packages/acs-core-docs/www/tutorial-second-database.html 17 Oct 2010 21:06:08 -0000 1.8 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Connect to a second database</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 9. Advanced Topics"><link rel="previous" href="tutorial-upgrade-scripts.html" title="Writing upgrade scripts"><link rel="next" href="tutorial-future-topics.html" title="Future Topics"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-upgrade-scripts.html">Prev</a> </td><th width="60%" align="center">Chapter 9. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-future-topics.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-second-database"></a>Connect to a second database</h2></div></div><div></div></div><p>It is possible to use the OpenACS TCL database API with +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Connect to a second database</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 10. Advanced Topics"><link rel="previous" href="tutorial-upgrade-scripts.html" title="Writing upgrade scripts"><link rel="next" href="tutorial-future-topics.html" title="Future Topics"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-upgrade-scripts.html">Prev</a> </td><th width="60%" align="center">Chapter 10. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-future-topics.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-second-database"></a>Connect to a second database</h2></div></div><div></div></div><p>It is possible to use the OpenACS TCL database API with other databases. In this example, the OpenACS site uses a PostGre database, and accesses another PostGre database called legacy.</p><div class="orderedlist"><ol type="1"><li><p>Modify config.tcl to accomodate the legacy database, and to Index: openacs-4/packages/acs-core-docs/www/tutorial-specs.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-specs.html,v diff -u -r1.11 -r1.12 --- openacs-4/packages/acs-core-docs/www/tutorial-specs.html 13 Sep 2009 23:54:41 -0000 1.11 +++ openacs-4/packages/acs-core-docs/www/tutorial-specs.html 17 Oct 2010 21:06:08 -0000 1.12 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Write the Requirements and Design Specs</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 9. Advanced Topics"><link rel="previous" href="tutorial-advanced.html" title="Chapter 9. Advanced Topics"><link rel="next" href="tutorial-cvs.html" title="Add the new package to CVS"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-advanced.html">Prev</a> </td><th width="60%" align="center">Chapter 9. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-cvs.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-specs"></a>Write the Requirements and Design Specs</h2></div></div><div></div></div><p>Before you get started you should make yourself familiar with +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Write the Requirements and Design Specs</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 10. Advanced Topics"><link rel="previous" href="tutorial-advanced.html" title="Chapter 10. Advanced Topics"><link rel="next" href="tutorial-cvs.html" title="Add the new package to CVS"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-advanced.html">Prev</a> </td><th width="60%" align="center">Chapter 10. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-cvs.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-specs"></a>Write the Requirements and Design Specs</h2></div></div><div></div></div><p>Before you get started you should make yourself familiar with the tags that are used to write your documentation. For tips on editing SGML files in emacs, see <a href="docbook-primer.html" title="OpenACS Documentation Guide">Section , “OpenACS Documentation Guide”</a>.</p><p>It's time to document. For the tutorial we'll use pre-written documentation. When creating a package @@ -50,4 +50,4 @@ Writing bi01.html for bibliography Writing index.html for book [$OPENACS_SERVICE_NAME xml]$</pre><p>Verify that the documentation was generated and reflects - your changes by browsing to <tt class="computeroutput">http://<span class="replaceable"><span class="replaceable">yoursite</span></span>:8000/myfirstpackage/doc</tt></p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="tutorial-advanced.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="tutorial-cvs.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter 9. Advanced Topics </td><td width="20%" align="center"><a accesskey="u" href="tutorial-advanced.html">Up</a></td><td width="40%" align="right"> Add the new package to CVS</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/tutorial-specs.html#comments">View comments on this page at openacs.org</a></center></body></html> + your changes by browsing to <tt class="computeroutput">http://<span class="replaceable"><span class="replaceable">yoursite</span></span>:8000/myfirstpackage/doc</tt></p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="tutorial-advanced.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="tutorial-cvs.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter 10. Advanced Topics </td><td width="20%" align="center"><a accesskey="u" href="tutorial-advanced.html">Up</a></td><td width="40%" align="right"> Add the new package to CVS</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/tutorial-specs.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/tutorial-upgrade-scripts.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-upgrade-scripts.html,v diff -u -r1.6 -r1.7 --- openacs-4/packages/acs-core-docs/www/tutorial-upgrade-scripts.html 13 Sep 2009 23:54:41 -0000 1.6 +++ openacs-4/packages/acs-core-docs/www/tutorial-upgrade-scripts.html 17 Oct 2010 21:06:08 -0000 1.7 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Writing upgrade scripts</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 9. Advanced Topics"><link rel="previous" href="tutorial-parameters.html" title="Adding in parameters for your package"><link rel="next" href="tutorial-second-database.html" title="Connect to a second database"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-parameters.html">Prev</a> </td><th width="60%" align="center">Chapter 9. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-second-database.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-upgrade-scripts"></a>Writing upgrade scripts</h2></div></div><div></div></div><div class="authorblurb"><p>by <a href="mailto:jade@rubick.com" target="_top">Jade Rubick</a></p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Writing upgrade scripts</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 10. Advanced Topics"><link rel="previous" href="tutorial-parameters.html" title="Adding in parameters for your package"><link rel="next" href="tutorial-second-database.html" title="Connect to a second database"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-parameters.html">Prev</a> </td><th width="60%" align="center">Chapter 10. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-second-database.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-upgrade-scripts"></a>Writing upgrade scripts</h2></div></div><div></div></div><div class="authorblurb"><p>by <a href="mailto:jade@rubick.com" target="_top">Jade Rubick</a></p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><p>If your package changes its data model, you have to write an Index: openacs-4/packages/acs-core-docs/www/tutorial-upgrades.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-upgrades.html,v diff -u -r1.6 -r1.7 --- openacs-4/packages/acs-core-docs/www/tutorial-upgrades.html 13 Sep 2009 23:54:41 -0000 1.6 +++ openacs-4/packages/acs-core-docs/www/tutorial-upgrades.html 17 Oct 2010 21:06:08 -0000 1.7 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Distributing upgrades of your package</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 9. Advanced Topics"><link rel="previous" href="tutorial-distribute.html" title="Prepare the package for distribution."><link rel="next" href="tutorial-notifications.html" title="Notifications"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-distribute.html">Prev</a> </td><th width="60%" align="center">Chapter 9. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-notifications.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-upgrades"></a>Distributing upgrades of your package</h2></div></div><div></div></div><div class="authorblurb"><p>by Jade Rubick</p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Distributing upgrades of your package</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 10. Advanced Topics"><link rel="previous" href="tutorial-distribute.html" title="Prepare the package for distribution."><link rel="next" href="tutorial-notifications.html" title="Notifications"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-distribute.html">Prev</a> </td><th width="60%" align="center">Chapter 10. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-notifications.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-upgrades"></a>Distributing upgrades of your package</h2></div></div><div></div></div><div class="authorblurb"><p>by Jade Rubick</p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><p>The OpenACS Package Repository builds a list of packages Index: openacs-4/packages/acs-core-docs/www/tutorial-vuh.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-vuh.html,v diff -u -r1.15 -r1.16 --- openacs-4/packages/acs-core-docs/www/tutorial-vuh.html 13 Sep 2009 23:54:41 -0000 1.15 +++ openacs-4/packages/acs-core-docs/www/tutorial-vuh.html 17 Oct 2010 21:06:08 -0000 1.16 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Using .vuh files for pretty urls</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 9. Advanced Topics"><link rel="previous" href="tutorial-hierarchical.html" title="Hierarchical data"><link rel="next" href="tutorial-css-layout.html" title="Laying out a page with CSS instead of tables"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-hierarchical.html">Prev</a> </td><th width="60%" align="center">Chapter 9. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-css-layout.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-vuh"></a>Using .vuh files for pretty urls</h2></div></div><div></div></div><p>.Vuh files are special cases of .tcl files, used for rewriting incoming urls. We can use a vuh file to prettify the uri for our notes. Instead of <tt class="computeroutput">note-edit?item_id=495</tt>, we can use <tt class="computeroutput">note/495</tt>. To do this, we will need a new .vuh file for redirection and we will need to change the referring links in note-list. First, add the vuh:</p><pre class="screen">[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <b class="userinput"><tt>cd /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/packages/myfirstpackage/www</tt></b> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Using .vuh files for pretty urls</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 10. Advanced Topics"><link rel="previous" href="tutorial-hierarchical.html" title="Hierarchical data"><link rel="next" href="tutorial-css-layout.html" title="Laying out a page with CSS instead of tables"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-hierarchical.html">Prev</a> </td><th width="60%" align="center">Chapter 10. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-css-layout.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-vuh"></a>Using .vuh files for pretty urls</h2></div></div><div></div></div><p>.Vuh files are special cases of .tcl files, used for rewriting incoming urls. We can use a vuh file to prettify the uri for our notes. Instead of <tt class="computeroutput">note-edit?item_id=495</tt>, we can use <tt class="computeroutput">note/495</tt>. To do this, we will need a new .vuh file for redirection and we will need to change the referring links in note-list. First, add the vuh:</p><pre class="screen">[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <b class="userinput"><tt>cd /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/packages/myfirstpackage/www</tt></b> [$OPENACS_SERVICE_NAME www]$ <b class="userinput"><tt>emacs note.vuh</tt></b> </pre><p>Paste this into the file:</p><pre class="programlisting"># Transform requests of type: a/b # into this internal request: A?c=b Index: openacs-4/packages/acs-core-docs/www/tutorial-wysiwyg-editor.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-wysiwyg-editor.html,v diff -u -r1.6 -r1.7 --- openacs-4/packages/acs-core-docs/www/tutorial-wysiwyg-editor.html 13 Sep 2009 23:54:41 -0000 1.6 +++ openacs-4/packages/acs-core-docs/www/tutorial-wysiwyg-editor.html 17 Oct 2010 21:06:08 -0000 1.7 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Enabling WYSIWYG</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 9. Advanced Topics"><link rel="previous" href="tutorial-schedule-procs.html" title="Scheduled Procedures"><link rel="next" href="tutorial-parameters.html" title="Adding in parameters for your package"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-schedule-procs.html">Prev</a> </td><th width="60%" align="center">Chapter 9. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-parameters.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-wysiwyg-editor"></a>Enabling WYSIWYG</h2></div></div><div></div></div><div class="authorblurb"><p>by <a href="mailto:nima.mazloumi@gmx.de" target="_top">Nima Mazloumi</a></p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Enabling WYSIWYG</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="tutorial-advanced.html" title="Chapter 10. Advanced Topics"><link rel="previous" href="tutorial-schedule-procs.html" title="Scheduled Procedures"><link rel="next" href="tutorial-parameters.html" title="Adding in parameters for your package"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="tutorial-schedule-procs.html">Prev</a> </td><th width="60%" align="center">Chapter 10. Advanced Topics</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-parameters.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tutorial-wysiwyg-editor"></a>Enabling WYSIWYG</h2></div></div><div></div></div><div class="authorblurb"><p>by <a href="mailto:nima.mazloumi@gmx.de" target="_top">Nima Mazloumi</a></p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><p>Most of the forms in OpenACS are created using the form builder, see <a href="form-builder.html" title="Using Form Builder: building html forms dynamically">Section , “Using Form Builder: building html forms dynamically”</a>. For detailed information on the Index: openacs-4/packages/acs-core-docs/www/tutorial.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial.html,v diff -u -r1.21 -r1.22 --- openacs-4/packages/acs-core-docs/www/tutorial.html 13 Sep 2009 23:54:41 -0000 1.21 +++ openacs-4/packages/acs-core-docs/www/tutorial.html 17 Oct 2010 21:06:08 -0000 1.22 @@ -1,2 +1,2 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter 8. Development Tutorial</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="acs-package-dev.html" title="Part III. For OpenACS Package Developers"><link rel="previous" href="acs-package-dev.html" title="Part III. For OpenACS Package Developers"><link rel="next" href="tutorial-database.html" title="Setting Up Database Objects"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="acs-package-dev.html">Prev</a> </td><th width="60%" align="center">Part III. For OpenACS Package Developers</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-database.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="tutorial"></a>Chapter 8. Development Tutorial</h2></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="tutorial-database.html">Setting Up Database Objects</a></dt><dt><a href="tutorial-pages.html">Creating Web Pages</a></dt><dt><a href="tutorial-debug.html">Debugging and Automated Testing</a></dt></dl></div>Section missing</div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="acs-package-dev.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="tutorial-database.html">Next</a></td></tr><tr><td width="40%" align="left">Part III. For OpenACS Package Developers </td><td width="20%" align="center"><a accesskey="u" href="acs-package-dev.html">Up</a></td><td width="40%" align="right"> Setting Up Database Objects</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/tutorial.html#comments">View comments on this page at openacs.org</a></center></body></html> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter 9. Development Tutorial</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="acs-package-dev.html" title="Part III. For OpenACS Package Developers"><link rel="previous" href="acs-package-dev.html" title="Part III. For OpenACS Package Developers"><link rel="next" href="tutorial-newpackage.html" title="Creating an Application Package"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="acs-package-dev.html">Prev</a> </td><th width="60%" align="center">Part III. For OpenACS Package Developers</th><td width="20%" align="right"> <a accesskey="n" href="tutorial-newpackage.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="tutorial"></a>Chapter 9. Development Tutorial</h2></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="tutorial-newpackage.html">Creating an Application Package</a></dt><dt><a href="tutorial-database.html">Setting Up Database Objects</a></dt><dt><a href="tutorial-pages.html">Creating Web Pages</a></dt><dt><a href="tutorial-debug.html">Debugging and Automated Testing</a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="acs-package-dev.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="tutorial-newpackage.html">Next</a></td></tr><tr><td width="40%" align="left">Part III. For OpenACS Package Developers </td><td width="20%" align="center"><a accesskey="u" href="acs-package-dev.html">Up</a></td><td width="40%" align="right"> Creating an Application Package</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/tutorial.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/update-repository.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/update-repository.html,v diff -u -r1.14 -r1.15 --- openacs-4/packages/acs-core-docs/www/update-repository.html 13 Sep 2009 23:54:41 -0000 1.14 +++ openacs-4/packages/acs-core-docs/www/update-repository.html 17 Oct 2010 21:06:08 -0000 1.15 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>How to Update the OpenACS.org repository</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="releasing-openacs.html" title="Chapter 15. Releasing OpenACS"><link rel="previous" href="releasing-openacs-core.html" title="OpenACS Core and .LRN"><link rel="next" href="releasing-package.html" title="How to package and release an OpenACS Package"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="releasing-openacs-core.html">Prev</a> </td><th width="60%" align="center">Chapter 15. Releasing OpenACS</th><td width="20%" align="right"> <a accesskey="n" href="releasing-package.html">Next</a></td></tr></table><hr></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="update-repository"></a>How to Update the OpenACS.org repository</h2></div></div><div></div></div><div class="orderedlist"><ol type="1"><li><p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>How to Update the OpenACS.org repository</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="releasing-openacs.html" title="Chapter 16. Releasing OpenACS"><link rel="previous" href="releasing-openacs-core.html" title="OpenACS Core and .LRN"><link rel="next" href="releasing-package.html" title="How to package and release an OpenACS Package"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="releasing-openacs-core.html">Prev</a> </td><th width="60%" align="center">Chapter 16. Releasing OpenACS</th><td width="20%" align="right"> <a accesskey="n" href="releasing-package.html">Next</a></td></tr></table><hr></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="update-repository"></a>How to Update the OpenACS.org repository</h2></div></div><div></div></div><div class="orderedlist"><ol type="1"><li><p> Setup a local OpenACS server running 5.0 or better. </p></li><li><p> Edit <tt class="computeroutput">packages/acs-admin/www/apm/build-repository.tcl</tt> and adjust the Configuration Settings. </p></li><li><p> Index: openacs-4/packages/acs-core-docs/www/update-translations.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/update-translations.html,v diff -u -r1.13 -r1.14 --- openacs-4/packages/acs-core-docs/www/update-translations.html 13 Sep 2009 23:54:41 -0000 1.13 +++ openacs-4/packages/acs-core-docs/www/update-translations.html 17 Oct 2010 21:06:08 -0000 1.14 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>How to Update the translations</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="releasing-openacs.html" title="Chapter 15. Releasing OpenACS"><link rel="previous" href="releasing-package.html" title="How to package and release an OpenACS Package"><link rel="next" href="ix01.html" title="Index"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="releasing-package.html">Prev</a> </td><th width="60%" align="center">Chapter 15. Releasing OpenACS</th><td width="20%" align="right"> <a accesskey="n" href="ix01.html">Next</a></td></tr></table><hr></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="update-translations"></a>How to Update the translations</h2></div></div><div></div></div><div class="orderedlist"><ol type="1"><li><p>Identify any new locales that have been created. +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>How to Update the translations</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="releasing-openacs.html" title="Chapter 16. Releasing OpenACS"><link rel="previous" href="releasing-package.html" title="How to package and release an OpenACS Package"><link rel="next" href="ix01.html" title="Index"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="releasing-package.html">Prev</a> </td><th width="60%" align="center">Chapter 16. Releasing OpenACS</th><td width="20%" align="right"> <a accesskey="n" href="ix01.html">Next</a></td></tr></table><hr></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="update-translations"></a>How to Update the translations</h2></div></div><div></div></div><div class="orderedlist"><ol type="1"><li><p>Identify any new locales that have been created. For each new locale, check the parameters, especially that the locale is in the format <span class="emphasis"><em>[two-letter code for language, lower-case]_[TWO-LETTER CODE FOR COUNTRY, Index: openacs-4/packages/acs-core-docs/www/upgrade-4.5-to-4.6.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/upgrade-4.5-to-4.6.html,v diff -u -r1.23 -r1.24 --- openacs-4/packages/acs-core-docs/www/upgrade-4.5-to-4.6.html 13 Sep 2009 23:54:41 -0000 1.23 +++ openacs-4/packages/acs-core-docs/www/upgrade-4.5-to-4.6.html 17 Oct 2010 21:06:08 -0000 1.24 @@ -1,6 +1,6 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Upgrading 4.5 or higher to 4.6.3</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="upgrade.html" title="Chapter 5. Upgrading"><link rel="previous" href="upgrade-overview.html" title="Overview"><link rel="next" href="upgrade-4.6.3-to-5.html" title="Upgrading OpenACS 4.6.3 to 5.0"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="upgrade-overview.html">Prev</a> </td><th width="60%" align="center">Chapter 5. Upgrading</th><td width="20%" align="right"> <a accesskey="n" href="upgrade-4.6.3-to-5.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="upgrade-4.5-to-4.6"></a>Upgrading 4.5 or higher to 4.6.3</h2></div></div><div></div></div><a class="indexterm" name="id2980903"></a><p>The required platform for OpenACS 4.6 is the same as - 4.5, with the exception of OpenFTS. OpenACS 4.6 and later require OpenFTS 0.3.2 for full text search on PostGreSQL. If you have OpenFTS 0.2, you'll need to upgrade. </p><p>If upgrading from 4.4, you need to manually run acs-kernel/sql/postgres/upgrade-4.4-4.5.sql. See <a href="http://openacs.org/bugtracker/openacs/bug?bug_number=632" target="_top">Bug #632</a></p><div class="itemizedlist"><ul type="circle"><li style="list-style-type: circle"><p>A computer with OpenACS 4.5.</p></li><li style="list-style-type: circle"><p><a href="http://openacs.org/projects/openacs/download/" target="_top">OpenACS 4.6 tarball</a> or CVS checkout/export.</p></li><li style="list-style-type: circle"><p>Required for Full Text Search on PostgreSQL: <a href="http://openfts.sourceforge.net" target="_top">OpenFTS 0.3.2</a></p></li></ul></div><div class="orderedlist"><ol type="1"><li><p><b>Make a Backup. </b>Back up the database and file system (see ???).</p></li><li><p><b>OPTIONAL: Upgrade OpenFTS. </b><a href="upgrade-supporting.html#upgrade-openfts-0.2-to-0.3.2" title="Upgrading OpenFTS from 0.2 to 0.3.2">Section , “Upgrading OpenFTS from 0.2 to 0.3.2”</a></p></li><li><p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Upgrading 4.5 or higher to 4.6.3</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="upgrade.html" title="Chapter 5. Upgrading"><link rel="previous" href="upgrade-overview.html" title="Overview"><link rel="next" href="upgrade-4.6.3-to-5.html" title="Upgrading OpenACS 4.6.3 to 5.0"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="upgrade-overview.html">Prev</a> </td><th width="60%" align="center">Chapter 5. Upgrading</th><td width="20%" align="right"> <a accesskey="n" href="upgrade-4.6.3-to-5.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="upgrade-4.5-to-4.6"></a>Upgrading 4.5 or higher to 4.6.3</h2></div></div><div></div></div><a class="indexterm" name="id2980166"></a><p>The required platform for OpenACS 4.6 is the same as + 4.5, with the exception of OpenFTS. OpenACS 4.6 and later require OpenFTS 0.3.2 for full text search on PostGreSQL. If you have OpenFTS 0.2, you'll need to upgrade. </p><p>If upgrading from 4.4, you need to manually run acs-kernel/sql/postgres/upgrade-4.4-4.5.sql. See <a href="http://openacs.org/bugtracker/openacs/bug?bug_number=632" target="_top">Bug #632</a></p><div class="itemizedlist"><ul type="circle"><li style="list-style-type: circle"><p>A computer with OpenACS 4.5.</p></li><li style="list-style-type: circle"><p><a href="http://openacs.org/projects/openacs/download/" target="_top">OpenACS 4.6 tarball</a> or CVS checkout/export.</p></li><li style="list-style-type: circle"><p>Required for Full Text Search on PostgreSQL: <a href="http://openfts.sourceforge.net" target="_top">OpenFTS 0.3.2</a></p></li></ul></div><div class="orderedlist"><ol type="1"><li><p><b>Make a Backup. </b>Back up the database and file system (see <a href="snapshot-backup.html" title="Manual backup and recovery">Section , “Manual backup and recovery”</a>).</p></li><li><p><b>OPTIONAL: Upgrade OpenFTS. </b><a href="upgrade-supporting.html#upgrade-openfts-0.2-to-0.3.2" title="Upgrading OpenFTS from 0.2 to 0.3.2">Section , “Upgrading OpenFTS from 0.2 to 0.3.2”</a></p></li><li><p> Stop the server </p><pre class="screen">[root root]# <b class="userinput"><tt>svc -d /service/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></tt></b></pre></li><li><p><b>Upgrade the file system. </b><a href="upgrade-openacs-files.html" title="Upgrading the OpenACS files">Section , “Upgrading the OpenACS files”</a></p></li><li><p> <span class="strong">Start the server</span> @@ -9,4 +9,4 @@ <tt class="computeroutput">upgrade</tt>, plus any new packages you want. It's safest to upgrade the kernel by itself, and then come back and upgrade the rest of the - desired packages in a second pass.</p></li><li><p>On the next screen, click <tt class="computeroutput"><span class="guibutton"><span class="guibutton">Install Packages</span></span></tt></p></li><li><p>When prompted, restart the server:</p><pre class="screen">[root root]# <b class="userinput"><tt>restart-aolserver <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></tt></b></pre></li><li><p>Wait a minute, then browse to the package manager, <tt class="computeroutput">http://<span class="replaceable"><span class="replaceable">yourserver</span></span>/acs-admin/apm</tt>.</p></li><li><p>Check that the kernel upgrade worked by clicking <tt class="computeroutput"><span class="guilabel"><span class="guilabel">All</span></span></tt> and making sure that <tt class="computeroutput">acs-kernel</tt> version is 5.5.0.</p></li></ol></div></li><li><p><b>Rollback. </b>If anything goes wrong, <a href="">roll back</a> to the backup snapshot.</p></li></ol></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="upgrade-overview.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="upgrade-4.6.3-to-5.html">Next</a></td></tr><tr><td width="40%" align="left">Overview </td><td width="20%" align="center"><a accesskey="u" href="upgrade.html">Up</a></td><td width="40%" align="right"> Upgrading OpenACS 4.6.3 to 5.0</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/upgrade-4.5-to-4.6.html#comments">View comments on this page at openacs.org</a></center></body></html> + desired packages in a second pass.</p></li><li><p>On the next screen, click <tt class="computeroutput"><span class="guibutton"><span class="guibutton">Install Packages</span></span></tt></p></li><li><p>When prompted, restart the server:</p><pre class="screen">[root root]# <b class="userinput"><tt>restart-aolserver <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></tt></b></pre></li><li><p>Wait a minute, then browse to the package manager, <tt class="computeroutput">http://<span class="replaceable"><span class="replaceable">yourserver</span></span>/acs-admin/apm</tt>.</p></li><li><p>Check that the kernel upgrade worked by clicking <tt class="computeroutput"><span class="guilabel"><span class="guilabel">All</span></span></tt> and making sure that <tt class="computeroutput">acs-kernel</tt> version is 5.6.0.</p></li></ol></div></li><li><p><b>Rollback. </b>If anything goes wrong, <a href="snapshot-backup.html#recovery">roll back</a> to the backup snapshot.</p></li></ol></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="upgrade-overview.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="upgrade-4.6.3-to-5.html">Next</a></td></tr><tr><td width="40%" align="left">Overview </td><td width="20%" align="center"><a accesskey="u" href="upgrade.html">Up</a></td><td width="40%" align="right"> Upgrading OpenACS 4.6.3 to 5.0</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/upgrade-4.5-to-4.6.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/upgrade-4.6.3-to-5.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/upgrade-4.6.3-to-5.html,v diff -u -r1.13 -r1.14 --- openacs-4/packages/acs-core-docs/www/upgrade-4.6.3-to-5.html 13 Sep 2009 23:54:41 -0000 1.13 +++ openacs-4/packages/acs-core-docs/www/upgrade-4.6.3-to-5.html 17 Oct 2010 21:06:08 -0000 1.14 @@ -4,7 +4,7 @@ how to upgrade an Oracle installation from OpenACS 4.6.3 to 5 </a>. </p></li><li><p><b>PostGreSQL. </b>You must use PostGreSQL 7.3.x or newer to upgrade OpenACS beyond 4.6.3. See <a href="upgrade-supporting.html#upgrade-postgres-7.2-to-7.3" title="Upgrading from PostGreSQL 7.2 to 7.3">Upgrade PostGreSQL to 7.3</a>; <a href="individual-programs.html#compatibility-matrix" title="Table 2.2. Version Compatibility Matrix">Table 2.2</a> - </p><div class="orderedlist"><ol type="1"><li><p><a href="">Back up the database and file system.</a></p></li><li><p><b>Upgrade the file system for packages/acs-kernel. </b><a href="upgrade-openacs-files.html" title="Upgrading the OpenACS files">Section , “Upgrading the OpenACS files”</a></p></li><li><p>Upgrade the kernel manually. (There is a script to do most of the rest: <a href="http://cvs.openacs.org/cvs/openacs-4/contrib/misc/upgrade_4.6_to_5.0.sh?only_with_tag=HEAD" target="_top">/contrib/misc/upgrade_4.6_to_5.0.sh on HEAD</a>). You'll still have to do a lot of stuff manually, but automated trial and error is much more fun.)</p><pre class="screen">[root root]# <b class="userinput"><tt>su - <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></tt></b> + </p><div class="orderedlist"><ol type="1"><li><p><a href="snapshot-backup.html" title="Manual backup and recovery">Back up the database and file system.</a></p></li><li><p><b>Upgrade the file system for packages/acs-kernel. </b><a href="upgrade-openacs-files.html" title="Upgrading the OpenACS files">Section , “Upgrading the OpenACS files”</a></p></li><li><p>Upgrade the kernel manually. (There is a script to do most of the rest: <a href="http://cvs.openacs.org/cvs/openacs-4/contrib/misc/upgrade_4.6_to_5.0.sh?only_with_tag=HEAD" target="_top">/contrib/misc/upgrade_4.6_to_5.0.sh on HEAD</a>). You'll still have to do a lot of stuff manually, but automated trial and error is much more fun.)</p><pre class="screen">[root root]# <b class="userinput"><tt>su - <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></tt></b> [$OPENACS_SERVICE_NAME aolserver]$ <b class="userinput"><tt>cd /var/lib/aolserver/ <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/packages/acs-kernel/sql/postgresql/upgrade</tt></b></pre><p> Manually execute each of the upgrade scripts in sequence, either from within psql or from the command line with commands such as <tt class="computeroutput"><b class="userinput"><tt>psql -f upgrade-4.6.3-4.6.4.sql <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></tt></b></tt>. Run the scripts in this order (order is tentative, not verified): </p><pre class="programlisting">psql -f upgrade-4.6.3-4.6.4.sql <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span> Index: openacs-4/packages/acs-core-docs/www/upgrade-openacs-files.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/upgrade-openacs-files.html,v diff -u -r1.23 -r1.24 --- openacs-4/packages/acs-core-docs/www/upgrade-openacs-files.html 13 Sep 2009 23:54:41 -0000 1.23 +++ openacs-4/packages/acs-core-docs/www/upgrade-openacs-files.html 17 Oct 2010 21:06:08 -0000 1.24 @@ -1,5 +1,5 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Upgrading the OpenACS files</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="upgrade.html" title="Chapter 5. Upgrading"><link rel="previous" href="upgrade-5-0-dot.html" title="Upgrading an OpenACS 5.0.0 or greater installation"><link rel="next" href="upgrade-supporting.html" title="Upgrading Platform components"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="upgrade-5-0-dot.html">Prev</a> </td><th width="60%" align="center">Chapter 5. Upgrading</th><td width="20%" align="right"> <a accesskey="n" href="upgrade-supporting.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="upgrade-openacs-files"></a>Upgrading the OpenACS files</h2></div></div><div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2979105"></a>Chosing a Method to Upgrade your Files</h3></div></div><div></div></div><p>OpenACS is distributed in many different ways: +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Upgrading the OpenACS files</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="upgrade.html" title="Chapter 5. Upgrading"><link rel="previous" href="upgrade-5-0-dot.html" title="Upgrading an OpenACS 5.0.0 or greater installation"><link rel="next" href="upgrade-supporting.html" title="Upgrading Platform components"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="upgrade-5-0-dot.html">Prev</a> </td><th width="60%" align="center">Chapter 5. Upgrading</th><td width="20%" align="right"> <a accesskey="n" href="upgrade-supporting.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="upgrade-openacs-files"></a>Upgrading the OpenACS files</h2></div></div><div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2979036"></a>Chosing a Method to Upgrade your Files</h3></div></div><div></div></div><p>OpenACS is distributed in many different ways: </p><div class="itemizedlist"><ul type="disc"><li><p>as a collection of files</p></li><li><p> as one big tarball</p></li><li><p> via CVS</p></li><li><p> via automatic download from within the APM (package manager)</p></li></ul></div><p> </p><p>Upgrades work by first changing the file system (via any @@ -11,7 +11,7 @@ describes whether or not you need to be upgrading using this page or not: <a href="upgrade-5-0-dot.html" title="Upgrading an OpenACS 5.0.0 or greater installation">Section , “Upgrading an OpenACS 5.0.0 or greater installation”</a> - </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2979166"></a>Methods of upgrading OpenACS files</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p><b>Upgrading files for a site which is not in a CVS repository. </b>Unpack the tarball into a new directory and copy its + </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2979096"></a>Methods of upgrading OpenACS files</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p><b>Upgrading files for a site which is not in a CVS repository. </b>Unpack the tarball into a new directory and copy its contents on top of your working directory. Or just 'install software', select remote repository, and upgrade your files from there.</p><pre class="screen">[root root]# <b class="userinput"><tt>su - <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></tt></b> @@ -32,7 +32,7 @@ with the latest OpenACS version, without overriding your own local customizations. </p><p>This diagram explains the basic idea. However, the labels are incorrect. Step 1(a) has been removed, and Step - 1(b) should be labelled Step 1.</p><div class="figure"><a name="id2979286"></a><p class="title"><b>Figure 5.2. Upgrading a local CVS repository</b></p><div class="mediaobject" align="center"><img src="../images/upgrade-cvs.png" align="middle" alt="Upgrading a local CVS repository"></div></div><div class="itemizedlist"><ul type="circle"><li><p><b>Step 0: Set up a working CVS checkout. </b>To get your OpenACS code into your local CVS + 1(b) should be labelled Step 1.</p><div class="figure"><a name="id2979216"></a><p class="title"><b>Figure 5.2. Upgrading a local CVS repository</b></p><div class="mediaobject" align="center"><img src="../images/upgrade-cvs.png" align="middle" alt="Upgrading a local CVS repository"></div></div><div class="itemizedlist"><ul type="circle"><li><p><b>Step 0: Set up a working CVS checkout. </b>To get your OpenACS code into your local CVS repository, you will set up a working CVS checkout of OpenACS. When you want to update your site, you'll update the working CVS checkout, import those changes @@ -97,7 +97,7 @@ </p><div class="orderedlist"><ol type="1"><li><pre class="screen">[$OPENACS_SERVICE_NAME ~]$ <b class="userinput"><tt>cd /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></tt></b> [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <b class="userinput"><tt>cvs up -Pd</tt></b> (CVS feedback) -[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$</pre></li></ol></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2983117"></a>Upgrading a Production Site Safely</h3></div></div><div></div></div><p>If you are upgrading a production OpenACS site which is on a private CVS tree, this process lets you do the upgrade without risking extended downtime or an unusable site:</p><div class="orderedlist"><ol type="1"><li><p>Declare a freeze on new cvs updates - ie, you cannot run cvs update +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$</pre></li></ol></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2982380"></a>Upgrading a Production Site Safely</h3></div></div><div></div></div><p>If you are upgrading a production OpenACS site which is on a private CVS tree, this process lets you do the upgrade without risking extended downtime or an unusable site:</p><div class="orderedlist"><ol type="1"><li><p>Declare a freeze on new cvs updates - ie, you cannot run cvs update on the production site</p></li><li><p> Make a manual backup of the production site in addition to the automated backups</p></li><li><p>Import the new code (for example, OpenACS 5.0.4, openacs-5-0-compat versions of Index: openacs-4/packages/acs-core-docs/www/upgrade-overview.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/upgrade-overview.html,v diff -u -r1.23 -r1.24 --- openacs-4/packages/acs-core-docs/www/upgrade-overview.html 13 Sep 2009 23:54:41 -0000 1.23 +++ openacs-4/packages/acs-core-docs/www/upgrade-overview.html 17 Oct 2010 21:06:08 -0000 1.24 @@ -4,4 +4,4 @@ or better, you should always be able to upgrade all of your core packages automatically. If you haven't changed anything, no manual intervention should be required. If you are running - OpenACS prior to 4.5, upgrading will require manual effort.</p><p>If all of these conditions are true:</p><div class="itemizedlist"><ul type="disc"><li><p>Your OpenACS Core is 5.0.0 or later</p></li><li><p>You do not keep your OpenACS site in a local CVS repository</p></li><li><p>You do not have any custom code</p></li></ul></div><p>then you can upgrade automatically using the automated installer in the OpenACS Package Manager (APM), and you can probably skip the rest of this chapter. To upgrade directly from the OpenACS repository using the APM:</p><div class="orderedlist"><ol type="1"><li><p>Browse to the <a href="/acs-admin/install/" target="_top">Installer</a>.</p></li><li><p>Click install or upgrade under "Install from OpenACS Repository" and select the packages to install or upgrade.</p></li><li><p>The APM will download the requested packages from OpenACS.org, install the files on your hard drive, run any appropriate database upgrade scripts, and prompt you to restart the server. After restarting the server again, the upgrade is complete.</p></li></ol></div><div class="figure"><a name="id2931177"></a><p class="title"><b>Figure 5.1. Upgrading with the APM</b></p><div class="mediaobject" align="center"><img src="../images/upgrade-apm.png" align="middle" alt="Upgrading with the APM"></div></div><p>It's always a good idea to precede an upgrade attempt with a <a href="">snapshot backup</a>.</p><div class="table"><a name="id2931219"></a><p class="title"><b>Table 5.1. Assumptions in this section</b></p><table summary="Assumptions in this section" cellspacing="0" border="1"><colgroup><col><col></colgroup><tbody><tr><td>name of OpenACS user</td><td><span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></td></tr><tr><td>OpenACS server name</td><td><span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></td></tr><tr><td>Root of OpenACS file tree</td><td><span class="replaceable"><span class="replaceable">/var/lib/aolserver/$OPENACS_SERVICE_NAME</span></span></td></tr><tr><td>Database backup directory</td><td><span class="replaceable"><span class="replaceable">/var/lib/aolserver/$OPENACS_SERVICE_NAME/database-backup</span></span></td></tr></tbody></table></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="upgrade.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="upgrade-4.5-to-4.6.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter 5. Upgrading </td><td width="20%" align="center"><a accesskey="u" href="upgrade.html">Up</a></td><td width="40%" align="right"> Upgrading 4.5 or higher to 4.6.3</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/upgrade-overview.html#comments">View comments on this page at openacs.org</a></center></body></html> + OpenACS prior to 4.5, upgrading will require manual effort.</p><p>If all of these conditions are true:</p><div class="itemizedlist"><ul type="disc"><li><p>Your OpenACS Core is 5.0.0 or later</p></li><li><p>You do not keep your OpenACS site in a local CVS repository</p></li><li><p>You do not have any custom code</p></li></ul></div><p>then you can upgrade automatically using the automated installer in the OpenACS Package Manager (APM), and you can probably skip the rest of this chapter. To upgrade directly from the OpenACS repository using the APM:</p><div class="orderedlist"><ol type="1"><li><p>Browse to the <a href="/acs-admin/install/" target="_top">Installer</a>.</p></li><li><p>Click install or upgrade under "Install from OpenACS Repository" and select the packages to install or upgrade.</p></li><li><p>The APM will download the requested packages from OpenACS.org, install the files on your hard drive, run any appropriate database upgrade scripts, and prompt you to restart the server. After restarting the server again, the upgrade is complete.</p></li></ol></div><div class="figure"><a name="id2965953"></a><p class="title"><b>Figure 5.1. Upgrading with the APM</b></p><div class="mediaobject" align="center"><img src="../images/upgrade-apm.png" align="middle" alt="Upgrading with the APM"></div></div><p>It's always a good idea to precede an upgrade attempt with a <a href="snapshot-backup.html" title="Manual backup and recovery">snapshot backup</a>.</p><div class="table"><a name="id2965995"></a><p class="title"><b>Table 5.1. Assumptions in this section</b></p><table summary="Assumptions in this section" cellspacing="0" border="1"><colgroup><col><col></colgroup><tbody><tr><td>name of OpenACS user</td><td><span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></td></tr><tr><td>OpenACS server name</td><td><span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></td></tr><tr><td>Root of OpenACS file tree</td><td><span class="replaceable"><span class="replaceable">/var/lib/aolserver/$OPENACS_SERVICE_NAME</span></span></td></tr><tr><td>Database backup directory</td><td><span class="replaceable"><span class="replaceable">/var/lib/aolserver/$OPENACS_SERVICE_NAME/database-backup</span></span></td></tr></tbody></table></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="upgrade.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="upgrade-4.5-to-4.6.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter 5. Upgrading </td><td width="20%" align="center"><a accesskey="u" href="upgrade.html">Up</a></td><td width="40%" align="right"> Upgrading 4.5 or higher to 4.6.3</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/upgrade-overview.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/upgrade-supporting.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/upgrade-supporting.html,v diff -u -r1.16 -r1.17 --- openacs-4/packages/acs-core-docs/www/upgrade-supporting.html 13 Sep 2009 23:54:41 -0000 1.16 +++ openacs-4/packages/acs-core-docs/www/upgrade-supporting.html 17 Oct 2010 21:06:08 -0000 1.17 @@ -43,7 +43,7 @@ are not, and so they don't match. Also some functions use casting commands that no longer work in 7.3 and these functions must be recreated.</p><p> - To upgrade an OpenACS site from PostGreSQL 7.2 to 7.3, first upgrade the kernel to 4.6.3. Then, dump the database, run the upgrade script <tt class="computeroutput">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/bin/pg_7.2to7.3_upgrade_helper.pl</tt> on the dump file, and reply the dump. See <a href="http://openacs.org/forums/message-view?message_id=109337" target="_top">Forum OpenACS Q&A: PG 7.2->7.3 upgrade gotcha?</a>. Example:</p><div class="orderedlist"><ol type="1"><li><p>Back up the database as per ???.</p></li><li><p>Run the upgrade script on the backup file.</p><pre class="screen">[root root]# <b class="userinput"><tt>su - <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></tt></b> + To upgrade an OpenACS site from PostGreSQL 7.2 to 7.3, first upgrade the kernel to 4.6.3. Then, dump the database, run the upgrade script <tt class="computeroutput">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/bin/pg_7.2to7.3_upgrade_helper.pl</tt> on the dump file, and reply the dump. See <a href="http://openacs.org/forums/message-view?message_id=109337" target="_top">Forum OpenACS Q&A: PG 7.2->7.3 upgrade gotcha?</a>. Example:</p><div class="orderedlist"><ol type="1"><li><p>Back up the database as per <a href="snapshot-backup.html#postgres-snapshot-backup" title="PostgreSQL">PostgreSQL</a>.</p></li><li><p>Run the upgrade script on the backup file.</p><pre class="screen">[root root]# <b class="userinput"><tt>su - <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></tt></b> [$OPENACS_SERVICE_NAME <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>]# <b class="userinput"><tt>cd /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/bin</tt></b> [$OPENACS_SERVICE_NAME bin]$ <b class="userinput"><tt>./pg_7.2to7.3_upgrade_helper.pl \ ../database-backup/nightly.dmp \ @@ -76,4 +76,4 @@ postgres73 user's home directory.</p></li><li><p>Change the path in <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>'s .bashrc or .bash_profile (or both) files to reflect the new postgres73 - user directory. Also add in the PGPORT.</p></li><li><p>Restore the database from dump as per the <a href="">recovery instructions</a>.</p></li></ol></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="upgrade-openacs-files.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="maintenance-web.html">Next</a></td></tr><tr><td width="40%" align="left">Upgrading the OpenACS files </td><td width="20%" align="center"><a accesskey="u" href="upgrade.html">Up</a></td><td width="40%" align="right"> Chapter 6. Production Environments</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/upgrade-supporting.html#comments">View comments on this page at openacs.org</a></center></body></html> + user directory. Also add in the PGPORT.</p></li><li><p>Restore the database from dump as per the <a href="snapshot-backup.html#restore-postgres">recovery instructions</a>.</p></li></ol></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="upgrade-openacs-files.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="maintenance-web.html">Next</a></td></tr><tr><td width="40%" align="left">Upgrading the OpenACS files </td><td width="20%" align="center"><a accesskey="u" href="upgrade.html">Up</a></td><td width="40%" align="right"> Chapter 6. Production Environments</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/upgrade-supporting.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/variables.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/variables.html,v diff -u -r1.26 -r1.27 --- openacs-4/packages/acs-core-docs/www/variables.html 13 Sep 2009 23:54:41 -0000 1.26 +++ openacs-4/packages/acs-core-docs/www/variables.html 17 Oct 2010 21:06:08 -0000 1.27 @@ -1,10 +1,10 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Variables</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="eng-standards.html" title="Chapter 11. Engineering Standards"><link rel="previous" href="eng-standards-plsql.html" title="PL/SQL Standards"><link rel="next" href="automated-testing-best-practices.html" title="Automated Testing"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="eng-standards-plsql.html">Prev</a> </td><th width="60%" align="center">Chapter 11. Engineering Standards</th><td width="20%" align="right"> <a accesskey="n" href="automated-testing-best-practices.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="variables"></a>Variables</h2></div></div><div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="variables-datetime"></a>Date and Time Variables</h3></div></div><div></div></div><div class="authorblurb"><div class="cvstag">($Id$)</div><p>By <a href="mailto:joel@aufrecht.org" target="_top">joel@aufrecht.org</a></p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Variables</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="eng-standards.html" title="Chapter 12. Engineering Standards"><link rel="previous" href="eng-standards-plsql.html" title="PL/SQL Standards"><link rel="next" href="automated-testing-best-practices.html" title="Automated Testing"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="eng-standards-plsql.html">Prev</a> </td><th width="60%" align="center">Chapter 12. Engineering Standards</th><td width="20%" align="right"> <a accesskey="n" href="automated-testing-best-practices.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="variables"></a>Variables</h2></div></div><div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="variables-datetime"></a>Date and Time Variables</h3></div></div><div></div></div><div class="authorblurb"><div class="cvstag">($Id$)</div><p>By <a href="mailto:joel@aufrecht.org" target="_top">joel@aufrecht.org</a></p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><p>Starting with OpenACS 5.0 and the introduction of acs-lang, we recommend retrieving date/time information from the database in - ANSI format and then using <a href="/api-doc/proc-view?proc=lc%5ftime%5ffmt" target="_top">lc_time_fmt</a> to format it for display.</p><div class="example"><a name="id3049006"></a><p class="title"><b>Example 11.1. Getting datetime from the database ANSI-style</b></p><pre class="programlisting">db_multirow -extend { mydate_pretty } { + ANSI format and then using <a href="/api-doc/proc-view?proc=lc%5ftime%5ffmt" target="_top">lc_time_fmt</a> to format it for display.</p><div class="example"><a name="id2983561"></a><p class="title"><b>Example 12.1. Getting datetime from the database ANSI-style</b></p><pre class="programlisting">db_multirow -extend { mydate_pretty } { select to_char(mydate, 'YYYY-MM-DD HH24:MI:SS') as mydate_ansi, ... ... Index: openacs-4/packages/acs-core-docs/www/win2k-installation.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/win2k-installation.html,v diff -u -r1.45 -r1.46 --- openacs-4/packages/acs-core-docs/www/win2k-installation.html 13 Sep 2009 23:54:41 -0000 1.45 +++ openacs-4/packages/acs-core-docs/www/win2k-installation.html 17 Oct 2010 21:06:08 -0000 1.46 @@ -1,12 +1,12 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 'http://www.w3.org/TR/html4/loose.dtd"'> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenACS Installation Guide for Windows2000</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="complete-install.html" title="Chapter 3. Complete Installation"><link rel="previous" href="openacs.html" title="Install OpenACS 5.5.0"><link rel="next" href="mac-installation.html" title="OpenACS Installation Guide for Mac OS X"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="openacs.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Complete Installation</th><td width="20%" align="right"> <a accesskey="n" href="mac-installation.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="win2k-installation"></a>OpenACS Installation Guide for Windows2000</h2></div></div><div></div></div><div class="authorblurb"><p>by Matthew Burke and Curtis Galloway</p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>OpenACS Installation Guide for Windows2000</title><link rel="stylesheet" href="openacs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="complete-install.html" title="Chapter 3. Complete Installation"><link rel="previous" href="openacs.html" title="Install OpenACS 5.6.0"><link rel="next" href="mac-installation.html" title="OpenACS Installation Guide for Mac OS X"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" style="border:0" alt="Alex logo"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="openacs.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Complete Installation</th><td width="20%" align="right"> <a accesskey="n" href="mac-installation.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="win2k-installation"></a>OpenACS Installation Guide for Windows2000</h2></div></div><div></div></div><div class="authorblurb"><p>by Matthew Burke and Curtis Galloway</p> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </div><p><span class="strong">NOTE:</span> These instructions were valid for ACS v4, but have not been tested with OpenACS and the ArsDigita binary distributions are no longer available. Currently - (10/2003), the best option to get OpenACS 5.5.0 running on Windows + (10/2003), the best option to get OpenACS 5.6.0 running on Windows is to use <a href="http://vmware.com" target="_top">VMware</a> and John Sequeira's <a href="http://www.pobox.com/~johnseq/projects/oasisvm/" target="_top">Oasis VM distribution</a> @@ -250,4 +250,4 @@ </pre><p> In the services control panel you should see two services: <tt class="computeroutput">AOLserver-lintcollectors</tt> and <tt class="computeroutput">AOLserver-iguanasdirect</tt>. - </p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="openacs.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="mac-installation.html">Next</a></td></tr><tr><td width="40%" align="left">Install OpenACS 5.5.0 </td><td width="20%" align="center"><a accesskey="u" href="complete-install.html">Up</a></td><td width="40%" align="right"> OpenACS Installation Guide for Mac OS X</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/win2k-installation.html#comments">View comments on this page at openacs.org</a></center></body></html> + </p><div class="cvstag">($Id$)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="openacs.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="mac-installation.html">Next</a></td></tr><tr><td width="40%" align="left">Install OpenACS 5.6.0 </td><td width="20%" align="center"><a accesskey="u" href="complete-install.html">Up</a></td><td width="40%" align="right"> OpenACS Installation Guide for Mac OS X</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/current/win2k-installation.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/xml/variables.ent =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/variables.ent,v diff -u -r1.19 -r1.20 --- openacs-4/packages/acs-core-docs/www/xml/variables.ent 12 Jul 2009 01:08:30 -0000 1.19 +++ openacs-4/packages/acs-core-docs/www/xml/variables.ent 17 Oct 2010 21:06:08 -0000 1.20 @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="ISO-8859-1" ?> -<!ENTITY version "5.5.0"> -<!ENTITY tarballpath "openacs-5.5.0"> -<!ENTITY cvsversiontag "oacs-5-5-0-final"> +<!ENTITY version "5.6.0"> +<!ENTITY tarballpath "openacs-5.6.0"> +<!ENTITY cvsversiontag "oacs-5-6-0-final"> <!ENTITY majorversion "5"> -<!ENTITY minorversion "5"> -<!ENTITY releasebranch "oacs-5-5"> +<!ENTITY minorversion "6"> +<!ENTITY releasebranch "oacs-5-6"> Index: openacs-4/packages/acs-core-docs/www/xml/for-everyone/release-notes.xml =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/for-everyone/release-notes.xml,v diff -u -r1.27 -r1.28 --- openacs-4/packages/acs-core-docs/www/xml/for-everyone/release-notes.xml 12 Jul 2009 01:08:30 -0000 1.27 +++ openacs-4/packages/acs-core-docs/www/xml/for-everyone/release-notes.xml 17 Oct 2010 21:06:08 -0000 1.28 @@ -37,6 +37,52 @@ linkend="changelog-latest"></xref>) since the last release and in the entire &majorversion;.&minorversion; release sequence <xref linkend="changelog"></xref>.</para> + <sect2 id="release-notes-5-6-0"> + <title>Release 5.6.0</title> + <itemizedlist> + <listitem> + <para> + Added new package dependency type, "embeds". This is a variant of the + "extends" package dependency type added in OpenACS 5.5.0. It allows one + to write embeddable packages, with scripts made visible in client packages + using URLs which include the embedded package's package key. An example + embeddable package might be a rewritten "attachments" package. The current + implementation requires a global instance be mounted, and client packages + generate urls to that global instance. Among other things, this leads to + the user navigating to the top-level subsite, losing any subsite theming + that might be associated with a community. Using "embeds", a rewritten + package would run in the client package's context, maintaining theming and + automatically associating attachments with the client package. + </para> + <para> + Added global package parameters - parameters can now have scope "local" or "global", + with "local" being the default.. + </para> + <para> + Fixes for ns_proxy handling + </para> + <para> + Significant speedup for large sites + </para> + <para> + Optional support for selenium remote control (acs-automated-tests) + </para> + <para> + New administration UI to manage mime types and extension map + </para> + <para> + Added acs-mail-lite package params for rollout support + </para> + <para> + Support for 3-chars language codes in acs-lang + </para> + <para> + Added OOXML mime types in acs-content-repository + </para> + </listitem> + </itemizedlist> + </sect2> + <sect2 id="release-notes-5-5-0"> <title>Release 5.5.0</title> <itemizedlist> Index: openacs-4/packages/acs-kernel/acs-kernel.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-kernel/acs-kernel.info,v diff -u -r1.113 -r1.114 --- openacs-4/packages/acs-kernel/acs-kernel.info 4 Oct 2010 21:59:19 -0000 1.113 +++ openacs-4/packages/acs-kernel/acs-kernel.info 17 Oct 2010 21:06:08 -0000 1.114 @@ -10,7 +10,7 @@ <version name="5.7.0d2" url="http://openacs.org/repository/download/apm/acs-kernel-5.7.0d2.apm"> <owner url="mailto:oct@openacs.org">OpenACS Core Team</owner> <summary>Routines and data models providing the foundation for OpenACS-based Web services.</summary> - <release-date>2009-06-19</release-date> + <release-date>2010-06-17</release-date> <vendor url="http://openacs.org">OpenACS</vendor> <description format="text/html">The OpenACS kernel contains the core datamodel create and drop scripts for such things as objects, groups, partiies and the supporting PL/SQL and PL/pgSQL procedures.</description> <maturity>3</maturity> Index: openacs-4/packages/acs-kernel/sql/oracle/acs-objects-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-kernel/sql/oracle/acs-objects-create.sql,v diff -u -r1.24 -r1.25 --- openacs-4/packages/acs-kernel/sql/oracle/acs-objects-create.sql 16 Jul 2009 00:40:07 -0000 1.24 +++ openacs-4/packages/acs-kernel/sql/oracle/acs-objects-create.sql 17 Oct 2010 21:06:08 -0000 1.25 @@ -165,7 +165,7 @@ create index acs_objects_creation_user_idx on acs_objects (creation_user); create index acs_objects_modify_user_idx on acs_objects (modifying_user); -create index acs_objects_package_object_idx on acs_objects (package_id, object_id); +create index acs_objects_package_idx on acs_objects (package_id); create index acs_objects_title_idx on acs_objects(title); -- create bitmap index acs_objects_object_type_idx on acs_objects (object_type); Index: openacs-4/packages/acs-kernel/sql/oracle/apm-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-kernel/sql/oracle/apm-create.sql,v diff -u -r1.53 -r1.54 --- openacs-4/packages/acs-kernel/sql/oracle/apm-create.sql 31 Mar 2010 01:21:00 -0000 1.53 +++ openacs-4/packages/acs-kernel/sql/oracle/apm-create.sql 17 Oct 2010 21:06:08 -0000 1.54 @@ -2088,7 +2088,6 @@ return 'f'; end is_child; - end apm_package; / show errors Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/acs-kernel/sql/oracle/upgrade/upgrade-5.6.0b1-5.6.0b2.sql'. Fisheye: No comparison available. Pass `N' to diff? Index: openacs-4/packages/acs-kernel/sql/oracle/upgrade/upgrade-5.6.0d7-5.6.0d8.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-kernel/sql/oracle/upgrade/upgrade-5.6.0d7-5.6.0d8.sql,v diff -u -r1.2 -r1.3 --- openacs-4/packages/acs-kernel/sql/oracle/upgrade/upgrade-5.6.0d7-5.6.0d8.sql 31 Mar 2010 01:21:00 -0000 1.2 +++ openacs-4/packages/acs-kernel/sql/oracle/upgrade/upgrade-5.6.0d7-5.6.0d8.sql 17 Oct 2010 21:06:08 -0000 1.3 @@ -1,4 +1,61 @@ +create or replace package apm_package +as +function new ( + package_id in apm_packages.package_id%TYPE + default null, + instance_name in apm_packages.instance_name%TYPE + default null, + package_key in apm_packages.package_key%TYPE, + object_type in acs_objects.object_type%TYPE + default 'apm_package', + creation_date in acs_objects.creation_date%TYPE + default sysdate, + creation_user in acs_objects.creation_user%TYPE + default null, + creation_ip in acs_objects.creation_ip%TYPE + default null, + context_id in acs_objects.context_id%TYPE + default null + ) return apm_packages.package_id%TYPE; + + procedure del ( + package_id in apm_packages.package_id%TYPE + ); + + function initial_install_p ( + package_key in apm_packages.package_key%TYPE + ) return integer; + + function singleton_p ( + package_key in apm_packages.package_key%TYPE + ) return integer; + + function num_instances ( + package_key in apm_package_types.package_key%TYPE + ) return integer; + + function name ( + package_id in apm_packages.package_id%TYPE + ) return varchar2; + + function highest_version ( + package_key in apm_package_types.package_key%TYPE + ) return apm_package_versions.version_id%TYPE; + + function parent_id ( + package_id in apm_packages.package_id%TYPE + ) return apm_packages.package_id%TYPE; + + function is_child ( + parent_package_key in apm_packages.package_key%TYPE, + child_package_key in apm_packages.package_key%TYPE + ) return char; + +end apm_package; +/ +show errors + create or replace package body apm_package as procedure initialize_parameters ( Index: openacs-4/packages/acs-kernel/sql/postgresql/acs-objects-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-kernel/sql/postgresql/acs-objects-create.sql,v diff -u -r1.62 -r1.63 --- openacs-4/packages/acs-kernel/sql/postgresql/acs-objects-create.sql 4 Oct 2010 21:59:20 -0000 1.62 +++ openacs-4/packages/acs-kernel/sql/postgresql/acs-objects-create.sql 17 Oct 2010 21:06:08 -0000 1.63 @@ -253,7 +253,7 @@ create index acs_objects_creation_user_idx on acs_objects (creation_user); create index acs_objects_modify_user_idx on acs_objects (modifying_user); -create index acs_objects_package_object_idx on acs_objects (package_id, object_id); +create index acs_objects_package_idx on acs_objects (package_id); create index acs_objects_title_idx on acs_objects(title); create index acs_objects_object_type_idx on acs_objects (object_type); @@ -654,7 +654,7 @@ -- function new -select define_function_args('acs_object__new','object_id,object_type;acs_object,creation_date;now(),creation_user,creation_ip,context_id,security_inherit_p;t,title,package_id'); +select define_function_args('acs_object__new','object_id,object_type;acs_object,creation_date,creation_user,creation_ip,context_id,security_inherit_p;t,title,package_id'); create or replace function acs_object__new (integer,varchar,timestamptz,integer,varchar,integer,boolean,varchar,integer) returns integer as ' Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/acs-kernel/sql/postgresql/upgrade/upgrade-5.6.0b1-5.6.0b2.sql'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/acs-kernel/sql/postgresql/upgrade/upgrade-5.6.0b2-5.6.0b3.sql'. Fisheye: No comparison available. Pass `N' to diff? Index: openacs-4/packages/acs-kernel/sql/postgresql/upgrade/upgrade-5.6.0d1-5.6.0d2.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-kernel/sql/postgresql/upgrade/upgrade-5.6.0d1-5.6.0d2.sql,v diff -u -r1.2 -r1.3 --- openacs-4/packages/acs-kernel/sql/postgresql/upgrade/upgrade-5.6.0d1-5.6.0d2.sql 2 Jun 2009 00:40:22 -0000 1.2 +++ openacs-4/packages/acs-kernel/sql/postgresql/upgrade/upgrade-5.6.0d1-5.6.0d2.sql 17 Oct 2010 21:06:08 -0000 1.3 @@ -1,13 +1,37 @@ -alter table persons add bio text; create function inline_0 () returns integer as ' declare one_user_id integer; bio_id integer; + bio_mime_type_id integer; attr_id integer; begin + if exists(select 1 + from acs_attributes + where object_type = ''person'' + and attribute_name = ''bio'' + and storage = ''type_specific'') + then + return 0; + end if; + + alter table persons add bio text; + + drop view acs_users_all; + create view acs_users_all + as + select pa.*, pe.*, u.* + from parties pa, persons pe, users u + where pa.party_id = pe.person_id + and pe.person_id = u.user_id; + + bio_mime_type_id := attribute_id + from acs_attributes + where object_type = ''person'' + and attribute_name = ''bio_mime_type''; + bio_id := attribute_id from acs_attributes where object_type = ''person'' @@ -30,6 +54,9 @@ delete from acs_attribute_values where attribute_id = bio_id; + delete from acs_attribute_values + where attribute_id = bio_mime_type_id; + perform acs_attribute__drop_attribute (''person'',''bio''); perform acs_attribute__drop_attribute (''person'',''bio_mime_type''); Index: openacs-4/packages/acs-lang/acs-lang.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-lang/acs-lang.info,v diff -u -r1.56 -r1.57 --- openacs-4/packages/acs-lang/acs-lang.info 8 Jan 2010 17:39:58 -0000 1.56 +++ openacs-4/packages/acs-lang/acs-lang.info 17 Oct 2010 21:06:08 -0000 1.57 @@ -7,21 +7,23 @@ <initial-install-p>t</initial-install-p> <singleton-p>t</singleton-p> - <version name="5.6.0d3" url="http://openacs.org/repository/download/apm/acs-lang-5.6.0d3.apm"> + <version name="5.6.0" url="http://openacs.org/repository/download/apm/acs-lang-5.6.0.apm"> <owner url="mailto:peter@collaboraid.biz">Peter Marklund</owner> <summary>OpenACS Internationalization Support.</summary> - <release-date>2009-06-19</release-date> + <release-date>2010-06-17</release-date> <vendor url="http://www.collaboraid.biz">Collaboraid</vendor> <license url="http://www.gnu.org/copyleft/gpl.html">GPL</license> <maturity>3</maturity> <description format="text/plain">Internationalization and localization support routines and admin UI for manipulating Locales, request processor hooks, templating, accessing and managing the message catalog, and locale-specific formatting functions for localizing dates, times, monetary amounts etc.</description> - <provides url="acs-lang" version="5.6.0d3"/> - <requires url="acs-kernel" version="5.6.0d1"/> - <requires url="acs-translations" version="5.6.0d1"/> - <requires url="ref-timezones" version="5.6.0d1"/> + <provides url="acs-lang" version="5.6.0"/> + <requires url="acs-kernel" version="5.6.0"/> + <requires url="acs-translations" version="5.6.0"/> + <requires url="ref-timezones" version="5.6.0"/> + <requires url="ref-countries" version="5.6.0"/> + <requires url="ref-language" version="5.6.0"/> <callbacks> <callback type="after-install" proc="lang::apm::after_install"/> Index: openacs-4/packages/acs-lang/sql/oracle/ad-locales-drop.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-lang/sql/oracle/ad-locales-drop.sql,v diff -u -r1.4 -r1.5 --- openacs-4/packages/acs-lang/sql/oracle/ad-locales-drop.sql 8 Jan 2010 17:39:58 -0000 1.4 +++ openacs-4/packages/acs-lang/sql/oracle/ad-locales-drop.sql 17 Oct 2010 21:06:08 -0000 1.5 @@ -16,5 +16,4 @@ drop table ad_locale_user_prefs; drop view enabled_locales; drop table ad_locales; -drop table language_codes; -drop table country_codes; + Index: openacs-4/packages/acs-lang/sql/oracle/ad-locales.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-lang/sql/oracle/ad-locales.sql,v diff -u -r1.36 -r1.37 --- openacs-4/packages/acs-lang/sql/oracle/ad-locales.sql 22 Mar 2010 00:51:38 -0000 1.36 +++ openacs-4/packages/acs-lang/sql/oracle/ad-locales.sql 17 Oct 2010 21:06:08 -0000 1.37 @@ -13,23 +13,6 @@ -- * that gets loaded on server startup, and hence should not get updated. -- **************************************************************************** --- The language and country codes tables are filled by after_install --- and after_upgrade apm callbacks --- using the iso-3166-1-countries.txt and iso-639-2_utf-8.txt files - -create table language_codes ( - iso_639_2 char(3) constraint language_codes_iso_639_2_pk primary key, - iso_639_1 char(2), - label varchar(200) -); -comment on table language_codes is 'Contains ISO-639-2 language codes and their corresponding ISO-639-1 when it exists.'; - -create table country_codes ( - label varchar(200), - country char(2) constraint country_codes_country_pk primary key -); -comment on table country_codes is 'Contains ISO-3166 country codes'; - create table ad_locales ( locale varchar2(30) constraint ad_locales_locale_pk Index: openacs-4/packages/acs-lang/sql/oracle/upgrade/upgrade-5.6.0d2-5.6.0d3.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-lang/sql/oracle/upgrade/upgrade-5.6.0d2-5.6.0d3.sql,v diff -u -r1.2 -r1.3 --- openacs-4/packages/acs-lang/sql/oracle/upgrade/upgrade-5.6.0d2-5.6.0d3.sql 22 Mar 2010 01:24:07 -0000 1.2 +++ openacs-4/packages/acs-lang/sql/oracle/upgrade/upgrade-5.6.0d2-5.6.0d3.sql 17 Oct 2010 21:06:08 -0000 1.3 @@ -1,26 +1,6 @@ --- Create tables for languages and countries --- --- The tables are filled by after_install and after_upgrade apm callbacks --- using the iso-3166-1-countries.txt and iso-639-2_utf-8.txt files - - -create table language_codes ( - iso_639_2 char(3) constraint language_codes_iso_639_2_pk primary key, - iso_639_1 char(2), - label varchar(200) -); - -comment on table language_codes is 'Contains ISO-639-2 language codes and their corresponding ISO-639-1 when it exists.'; - -create table country_codes ( - label varchar(200), - country char(2) constraint country_codes_country_pk primary key -); - -comment on table country_codes is 'Contains ISO-3166 country codes'; - -- update comment on ad_locales to be more accurate about how to -- create new locales. + comment on table ad_locales is ' An OpenACS locale is identified by a language and country. Locale definitions in Oracle consist of a language, and optionally Index: openacs-4/packages/acs-lang/sql/postgresql/ad-locales-drop.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-lang/sql/postgresql/ad-locales-drop.sql,v diff -u -r1.4 -r1.5 --- openacs-4/packages/acs-lang/sql/postgresql/ad-locales-drop.sql 8 Jan 2010 17:39:58 -0000 1.4 +++ openacs-4/packages/acs-lang/sql/postgresql/ad-locales-drop.sql 17 Oct 2010 21:06:08 -0000 1.5 @@ -16,5 +16,3 @@ drop table ad_locale_user_prefs; drop view enabled_locales; drop table ad_locales; -drop table language_codes; -drop table country_codes; Index: openacs-4/packages/acs-lang/sql/postgresql/ad-locales.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-lang/sql/postgresql/ad-locales.sql,v diff -u -r1.32 -r1.33 --- openacs-4/packages/acs-lang/sql/postgresql/ad-locales.sql 22 Mar 2010 00:51:38 -0000 1.32 +++ openacs-4/packages/acs-lang/sql/postgresql/ad-locales.sql 17 Oct 2010 21:06:08 -0000 1.33 @@ -15,23 +15,6 @@ begin; --- The language and country codes tables are filled by after_install --- and after_upgrade apm callbacks --- using the iso-3166-1-countries.txt and iso-639-2_utf-8.txt files - -create table language_codes ( - iso_639_2 char(3) constraint language_codes_iso_639_2_pk primary key, - iso_639_1 char(2), - label varchar(200) -); -comment on table language_codes is 'Contains ISO-639-2 language codes and their corresponding ISO-639-1 when it exists.'; - -create table country_codes ( - label varchar(200), - country char(2) constraint country_codes_country_pk primary key -); -comment on table country_codes is 'Contains ISO-3166 country codes'; - create table ad_locales ( locale varchar(30) constraint ad_locales_locale_pk Index: openacs-4/packages/acs-lang/sql/postgresql/upgrade/upgrade-5.6.0d2-5.6.0d3.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-lang/sql/postgresql/upgrade/upgrade-5.6.0d2-5.6.0d3.sql,v diff -u -r1.2 -r1.3 --- openacs-4/packages/acs-lang/sql/postgresql/upgrade/upgrade-5.6.0d2-5.6.0d3.sql 22 Mar 2010 01:24:30 -0000 1.2 +++ openacs-4/packages/acs-lang/sql/postgresql/upgrade/upgrade-5.6.0d2-5.6.0d3.sql 17 Oct 2010 21:06:08 -0000 1.3 @@ -1,26 +1,6 @@ --- Create tables for languages and countries --- --- The tables are filled by after_install and after_upgrade apm callbacks --- using the iso-3166-1-countries.txt and iso-639-2_utf-8.txt files - - -create table language_codes ( - iso_639_2 char(3) constraint language_codes_iso_639_2_pk primary key, - iso_639_1 char(2), - label varchar(200) -); - -comment on table language_codes is 'Contains ISO-639-2 language codes and their corresponding ISO-639-1 when it exists.'; - -create table country_codes ( - label varchar(200), - country char(2) constraint country_codes_country_pk primary key -); - -comment on table country_codes is 'Contains ISO-3166 country codes'; - -- update comment on ad_locales to be more accurate about how to -- create new locales. + comment on table ad_locales is ' An OpenACS locale is identified by a language and country. Locale definitions in Oracle consist of a language, and optionally Index: openacs-4/packages/acs-lang/tcl/apm-callback-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-lang/tcl/apm-callback-procs.tcl,v diff -u -r1.1 -r1.2 --- openacs-4/packages/acs-lang/tcl/apm-callback-procs.tcl 8 Jan 2010 17:39:58 -0000 1.1 +++ openacs-4/packages/acs-lang/tcl/apm-callback-procs.tcl 17 Oct 2010 21:06:08 -0000 1.2 @@ -15,10 +15,8 @@ ad_proc -private lang::apm::after_install { } { - Add ISO-639-2 codes to ad_locales + After install callback } { - lang::apm::add_language_codes - lang::apm::add_country_codes } ad_proc -private lang::apm::after_upgrade { @@ -31,110 +29,5 @@ -from_version_name $from_version_name \ -to_version_name $to_version_name \ -spec { - 5.6.0d2 5.6.0d3 { - lang::apm::add_language_codes - lang::apm::add_country_codes - } } } - -## Helper procs - -ad_proc -private lang::apm::add_language_codes { -} { - Fills language_codes with ISO-639-2 codes - - The ISO-639-2 codes are in a text file located at - acs-lang/resources directory. The file was downloaded from - http://www.loc.gov/standards/iso639-2/ISO-639-2_utf-8.txt - - Separator is "|" and the columns are: - - <ul> - <li>ISO 639-2 Bibliographic code (used if terminology one is empty)</li> - <li>ISO 639-2 Terminology code (used if exists)</li> - <li>ISO 639-1 code (2 digits)</li> - <li>Language name in english</li> - <li>Language name in french (ignored)</li> - </ul> - -} { - - set filename "[acs_root_dir]/packages/acs-lang/resources/iso-639-2_utf-8.txt" - - set channel [open $filename] - set data [read $channel] - close $channel - - set row_list [split $data "\n"] - foreach row $row_list { - - if { $row eq "" } { - continue - } - - set col_list [split $row "|"] - - # Set iso-639-2 code to terminology if exists, otherwise - # uses the bibliography one (see RFC 4646) - - set iso2b [lindex $col_list 0] - set iso2 [lindex $col_list 1] - set iso1 [lindex $col_list 2] - set label [lindex $col_list 3] - - if { $iso2 eq "" } { - set iso2 $iso2b - } - - db_dml insert_iso639 { - insert into language_codes - (iso_639_2, iso_639_1, label) - values - (:iso2, :iso1, :label) - } - } -} - -ad_proc -private lang::apm::add_country_codes { -} { - Fills country_codes with ISO-3166 codes - - The ISO-3166 codes are in a text file located at - acs-lang/resources directory. The file was downloaded from - http://www.iso.org/iso/list-en1-semic-3.txt - - Separator is ";" and the columns are: - - <ul> - <li>Country name in english</li> - <li>ISO 3166 code</li> - </ul> - -} { - - set filename "[acs_root_dir]/packages/acs-lang/resources/iso-3166-1-countries.txt" - - set channel [open $filename] - set data [read $channel] - close $channel - - set row_list [split $data "\n"] - foreach row $row_list { - - if { $row eq "" } { - continue - } - - set col_list [split $row ";"] - set label [lindex $col_list 0] - set country [lindex $col_list 1] - - db_dml insert_iso3166 { - insert into country_codes - (label, country) - values - (:label, :country) - } - } -} Index: openacs-4/packages/acs-lang/tcl/lang-util-procs.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-lang/tcl/lang-util-procs.xql,v diff -u -r1.7 -r1.8 --- openacs-4/packages/acs-lang/tcl/lang-util-procs.xql 8 Jan 2010 17:39:58 -0000 1.7 +++ openacs-4/packages/acs-lang/tcl/lang-util-procs.xql 17 Oct 2010 21:06:08 -0000 1.8 @@ -45,7 +45,7 @@ <querytext> select iso_639_2 - from language_codes + from language_639_2_codes where iso_639_1 = :language </querytext> @@ -55,7 +55,7 @@ <querytext> select iso_639_2 - from language_codes + from language_639_2_codes where iso_639_2 = :language </querytext> @@ -65,7 +65,7 @@ <querytext> select label - from language_codes + from language_639_2_codes where iso_639_1 = :language </querytext> @@ -75,7 +75,7 @@ <querytext> select label - from language_codes + from language_639_2_codes where iso_639_2 = :language </querytext> Index: openacs-4/packages/acs-lang/www/admin/locale-delete.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-lang/www/admin/locale-delete.adp,v diff -u -r1.8 -r1.9 --- openacs-4/packages/acs-lang/www/admin/locale-delete.adp 15 Aug 2003 07:50:44 -0000 1.8 +++ openacs-4/packages/acs-lang/www/admin/locale-delete.adp 17 Oct 2010 21:06:08 -0000 1.9 @@ -2,14 +2,11 @@ <property name="title">@page_title@</property> <property name="context">@context;noquote@</property> -<p /> +<h1>Delete @locale_label@</h1> -<p>Deleting locale <strong>@locale_label@</strong> [ <tt>@locale@</tt> ]</p> +<p>Are you sure you want to delete @locale_label@ which locale is @locale@?</p> <form action="locale-delete"> @form_export_vars;noquote@ <input type="submit" value="Confirm delete"> </form> - - - Index: openacs-4/packages/acs-lang/www/admin/locale-edit.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-lang/www/admin/locale-edit.adp,v diff -u -r1.7 -r1.8 --- openacs-4/packages/acs-lang/www/admin/locale-edit.adp 14 Aug 2003 16:06:20 -0000 1.7 +++ openacs-4/packages/acs-lang/www/admin/locale-edit.adp 17 Oct 2010 21:06:08 -0000 1.8 @@ -1,10 +1,8 @@ <master> - <property name="title">@page_title@</property> + <property name="&doc">doc</property> <property name="context">@context;noquote@</property> <property name="focus">locale_editing.country</property> -<p>Please update the necesary fields and press "Submit"</p> -<p /> -<p>Editing locale <strong>@locale_label@</strong> [ <tt>@locale@</tt> ]</p> +<h1>Editing locale @locale_label@</h1> <formtemplate id="locale_editing"></formtemplate> Index: openacs-4/packages/acs-lang/www/admin/locale-edit.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-lang/www/admin/locale-edit.tcl,v diff -u -r1.9 -r1.10 --- openacs-4/packages/acs-lang/www/admin/locale-edit.tcl 14 May 2007 20:30:23 -0000 1.9 +++ openacs-4/packages/acs-lang/www/admin/locale-edit.tcl 17 Oct 2010 21:06:08 -0000 1.10 @@ -22,8 +22,8 @@ # ns_setformencoding $encoding_charset # ns_set put [ns_conn outputheaders] "content-type" "text/html; charset=$encoding_charset" -set page_title "Edit Locale" -set context [list $page_title] +set doc(title) "Edit Locale" +set context [list $doc(title)] form create locale_editing @@ -64,14 +64,17 @@ # Greenpeace had a table of contries and languages and their two-digit ISO-code # but not so in ACS-LANG - here you must provide the two-digit ISO-code -element create locale_editing country -label "Country (2 digit ISO-code)" \ - -datatype text -widget text -html { maxLength 2 size 2 } +element create locale_editing locale -label "Locale" \ + -datatype text -widget inform -element create locale_editing language -label "Language (2 digit ISO-code)" \ - -datatype text -widget text -html { maxLength 2 size 2 } +element create locale_editing label -label "Label" -datatype text -widget inform -element create locale_editing label -label "Label" -datatype text +element create locale_editing country -label "Country" \ + -datatype text -widget inform +element create locale_editing language -label "Language" \ + -datatype text -widget inform + if { [info exists list_nls_language] } { element create locale_editing nls_language -label "NLS Language" \ -datatype text -widget select -options $list_nls_language @@ -98,9 +101,6 @@ element create locale_editing default_p -label "Default" \ -datatype text -widget hidden -element create locale_editing locale -p label "Locale" \ - -datatype text -widget hidden -value $locale - if { [form is_request locale_editing] } { # Finish building the form to present to the user @@ -111,15 +111,33 @@ mime_charset as locale_mime_charset, default_p as locale_default_p from ad_locales where locale = :locale" + + set locale_language [string trim $locale_language] + + element set_properties locale_editing locale -value $locale_locale element set_properties locale_editing label -value $locale_label - element set_properties locale_editing language -value $locale_language - element set_properties locale_editing country -value $locale_country element set_properties locale_editing nls_language -value $locale_nls_language element set_properties locale_editing nls_territory -value $locale_nls_territory element set_properties locale_editing nls_charset -value $locale_nls_charset element set_properties locale_editing mime_charset -value $locale_mime_charset element set_properties locale_editing default_p -value $locale_default_p + set lang_query "select label from language_639_2_codes" + + if { [string length $locale_language] eq 3 } { + append lang_query " where iso_639_2 = :locale_language" + } else { + append lang_query " where iso_639_1 = :locale_language" + } + + element set_properties locale_editing language \ + -value [db_string get_lang_label $lang_query -default $locale_language] + + element set_properties locale_editing country \ + -value [db_string get_country_name { + select default_name from countries where iso = :locale_country + } -default $locale_country] + } else { # If we are not building a request form, we are processing a submission. @@ -146,7 +164,6 @@ db_transaction { db_dml update_locale "update ad_locales set - language = :language, country = :country, label = :label, nls_language = :nls_language, nls_territory = :nls_territory, nls_charset = :nls_charset, mime_charset = :mime_charset, default_p = :default_p Index: openacs-4/packages/acs-lang/www/admin/locale-new.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-lang/www/admin/locale-new.xql,v diff -u -r1.1 -r1.2 --- openacs-4/packages/acs-lang/www/admin/locale-new.xql 8 Jan 2010 17:39:58 -0000 1.1 +++ openacs-4/packages/acs-lang/www/admin/locale-new.xql 17 Oct 2010 21:06:08 -0000 1.2 @@ -4,16 +4,16 @@ <fullquery name="select_countries"> <querytext> - select label, country - from country_codes - order by label + select default_name, iso + from countries + order by default_name </querytext> </fullquery> <fullquery name="select_languages"> <querytext> select label, coalesce(iso_639_1, iso_639_2) - from language_codes + from language_639_2_codes order by label </querytext> </fullquery> Index: openacs-4/packages/acs-mail-lite/acs-mail-lite.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-mail-lite/acs-mail-lite.info,v diff -u -r1.45 -r1.46 --- openacs-4/packages/acs-mail-lite/acs-mail-lite.info 16 Mar 2010 12:10:27 -0000 1.45 +++ openacs-4/packages/acs-mail-lite/acs-mail-lite.info 17 Oct 2010 21:06:08 -0000 1.46 @@ -9,19 +9,19 @@ <implements-subsite-p>f</implements-subsite-p> <inherit-templates-p>t</inherit-templates-p> - <version name="5.6.0d2" url="http://openacs.org/repository/download/apm/acs-mail-lite-5.6.0d2.apm"> + <version name="5.6.0" url="http://openacs.org/repository/download/apm/acs-mail-lite-5.6.0.apm"> <owner url="mailto:malte.sussdorff@cognovis.de">Malte Sussdorff</owner> <owner url="mailto:timo@studio-k4.de">Timo Hentschel</owner> <summary>Simplified reliable email transmission with bounce management.</summary> - <release-date>2009-06-19</release-date> + <release-date>2010-06-17</release-date> <vendor url="http://www.openacs.org">OpenACS</vendor> <description format="text/html">This package provides a service for sending messages, queueing messages in the database to ensure reliable sending and make sending a message 'transactional'. Replacement for acs-mail.</description> <maturity>2</maturity> - <provides url="acs-mail-lite" version="5.6.0d2"/> - <requires url="acs-kernel" version="5.6.0d1"/> - <requires url="acs-service-contract" version="5.6.0d1"/> - <requires url="acs-tcl" version="5.6.0d4"/> + <provides url="acs-mail-lite" version="5.6.0"/> + <requires url="acs-kernel" version="5.6.0"/> + <requires url="acs-service-contract" version="5.6.0"/> + <requires url="acs-tcl" version="5.6.0"/> <callbacks> <callback type="after-upgrade" proc="acs_mail_lite::after_upgrade"/> Index: openacs-4/packages/acs-mail-lite/tcl/acs-mail-lite-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-mail-lite/tcl/acs-mail-lite-procs.tcl,v diff -u -r1.87 -r1.88 --- openacs-4/packages/acs-mail-lite/tcl/acs-mail-lite-procs.tcl 16 Mar 2010 12:10:27 -0000 1.87 +++ openacs-4/packages/acs-mail-lite/tcl/acs-mail-lite-procs.tcl 17 Oct 2010 21:06:08 -0000 1.88 @@ -15,7 +15,7 @@ namespace eval acs_mail_lite { ad_proc -public get_package_id {} { - @returns package_id of this package + @return package_id of this package } { return [apm_package_id_from_key acs-mail-lite] } @@ -27,13 +27,13 @@ Returns an apm-parameter value of this package @option name parameter name @option default default parameter value - @returns apm-parameter value of this package + @return apm-parameter value of this package } { return [parameter::get -package_id [get_package_id] -parameter $name -default $default] } ad_proc -private mail_dir {} { - @returns incoming mail directory to be scanned for bounces + @return incoming mail directory to be scanned for bounces } { return [get_parameter -name "BounceMailDir"] } @@ -44,7 +44,7 @@ } { Extracts the email address out of a mail address (like Joe User <joe@user.com>) @option email mail address to be parsed - @returns only the email address part of the mail address + @return only the email address part of the mail address } { if {![regexp {<([^>]*)>} $email all clean_email]} { return $email @@ -72,7 +72,7 @@ ad_proc -public generate_message_id { } { Generate an id suitable as a Message-Id: header for an email. - @returns valid message-id for mail header + @return valid message-id for mail header } { # The combination of high resolution time and random # value should be pretty unique. @@ -88,7 +88,7 @@ Validates if provided signature matches message_id @option signature signature to be checked @option msg message-id that the signature should be checked against - @returns boolean 0 or 1 + @return boolean 0 or 1 } { if {![regexp "(<\[\-0-9\]+\\.\[0-9\]+\\.oacs@[address_domain]>)" $message_id match id] || $signature ne [ns_sha1 $id] } { # either couldn't find message-id or signature doesn't match @@ -153,7 +153,7 @@ user_names and user_ids. If not, get the additional data from the db and return the full array. @option addresses variable to checked for array - @returns array of emails, user_names and user_ids to be used + @return array of emails, user_names and user_ids to be used for the mail procedures } { if {[catch {array set address_array $addresses}] Index: openacs-4/packages/acs-mail-lite/tcl/bounce-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-mail-lite/tcl/Attic/bounce-procs.tcl,v diff -u -r1.8 -r1.9 --- openacs-4/packages/acs-mail-lite/tcl/bounce-procs.tcl 13 Feb 2009 21:35:33 -0000 1.8 +++ openacs-4/packages/acs-mail-lite/tcl/bounce-procs.tcl 17 Oct 2010 21:06:08 -0000 1.9 @@ -15,7 +15,7 @@ #--------------------------------------- ad_proc -private bounce_prefix {} { - @returns bounce prefix for x-envelope-from + @return bounce prefix for x-envelope-from } { return [parameter::get_from_package_key -package_key "acs-mail-lite" -parameter "EnvelopePrefix"] } @@ -26,7 +26,7 @@ } { Checks if email address is bouncing mail @option email email address to be checked for bouncing - @returns boolean 1 if bouncing 0 if ok. + @return boolean 1 if bouncing 0 if ok. } { return [db_string bouncing_p {} -default 0] } @@ -37,7 +37,7 @@ } { Checks if email address of user is bouncing mail @option user_id user to be checked for bouncing - @returns boolean 1 if bouncing 0 if ok. + @return boolean 1 if bouncing 0 if ok. } { return [db_string bouncing_p {} -default 0] } @@ -53,7 +53,7 @@ @option package_id package_id of the mail sending package (needed to call package-specific code to deal with bounces) @option message_id message-id of the mail - @returns bounce address + @return bounce address } { return "[bounce_prefix]-$user_id-[ns_sha1 $message_id]-$package_id@[address_domain]" } @@ -65,7 +65,7 @@ This takes a reply address, checks it for consistency, and returns a list of user_id, package_id and bounce_signature found @option bounce_address bounce address to be checked - @returns tcl-list of user_id package_id bounce_signature + @return tcl-list of user_id package_id bounce_signature } { set regexp_str "\[[bounce_prefix]\]-(\[0-9\]+)-(\[^-\]+)-(\[0-9\]*)\@" if {![regexp $regexp_str $bounce_address all user_id signature package_id]} { Index: openacs-4/packages/acs-mail-lite/tcl/incoming-mail-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-mail-lite/tcl/Attic/incoming-mail-procs.tcl,v diff -u -r1.4 -r1.5 --- openacs-4/packages/acs-mail-lite/tcl/incoming-mail-procs.tcl 29 Aug 2007 12:59:34 -0000 1.4 +++ openacs-4/packages/acs-mail-lite/tcl/incoming-mail-procs.tcl 17 Oct 2010 21:06:08 -0000 1.5 @@ -15,7 +15,7 @@ #--------------------------------------- ad_proc -public address_domain {} { - @returns domain address to which bounces are directed to + @return domain address to which bounces are directed to } { set domain [parameter::get_from_package_key -package_key "acs-mail-lite" -parameter "BounceDomain"] if { $domain eq "" } { Index: openacs-4/packages/acs-messaging/acs-messaging.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-messaging/acs-messaging.info,v diff -u -r1.31 -r1.32 --- openacs-4/packages/acs-messaging/acs-messaging.info 11 Jul 2009 23:47:24 -0000 1.31 +++ openacs-4/packages/acs-messaging/acs-messaging.info 17 Oct 2010 21:06:08 -0000 1.32 @@ -7,23 +7,23 @@ <initial-install-p>t</initial-install-p> <singleton-p>t</singleton-p> - <version name="5.6.0d1" url="http://openacs.org/repository/download/apm/acs-messaging-5.6.0d1.apm"> + <version name="5.6.0" url="http://openacs.org/repository/download/apm/acs-messaging-5.6.0.apm"> <owner url="mailto:akk+@cs.cmu.edu">Anukul Kapoor</owner> <owner url="mailto:prevost@maya.com">John Prevost</owner> <owner url="mailto:vinod@kurup.com">Vinod Kurup</owner> <summary>General messaging for bboard and general comments.</summary> - <release-date>2009-06-19</release-date> + <release-date>2010-06-17</release-date> <maturity>3</maturity> <vendor url="http://openacs.org">OpenACS</vendor> <license url="http://www.gnu.org/copyleft/gpl.html">GPL</license> <maturity>3</maturity> <description format="text/html">Provides generic message services, with email sending. acs-mail-lite and notifications are the prefered packages for delivering this functionality and it is anticipated that this package will ultimately be deprecated.</description> - <provides url="acs-messaging" version="5.6.0d1"/> - <requires url="acs-content-repository" version="5.6.0d1"/> - <requires url="acs-kernel" version="5.6.0d1"/> - <requires url="acs-mail-lite" version="5.6.0d1"/> + <provides url="acs-messaging" version="5.6.0"/> + <requires url="acs-content-repository" version="5.6.0"/> + <requires url="acs-kernel" version="5.6.0"/> + <requires url="acs-mail-lite" version="5.6.0"/> <callbacks> </callbacks> Index: openacs-4/packages/acs-reference/acs-reference.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-reference/acs-reference.info,v diff -u -r1.31 -r1.32 --- openacs-4/packages/acs-reference/acs-reference.info 11 Jul 2009 23:47:24 -0000 1.31 +++ openacs-4/packages/acs-reference/acs-reference.info 17 Oct 2010 21:06:08 -0000 1.32 @@ -7,10 +7,10 @@ <initial-install-p>t</initial-install-p> <singleton-p>t</singleton-p> - <version name="5.6.0d1" url="http://openacs.org/repository/download/apm/acs-reference-5.6.0d1.apm"> + <version name="5.6.0" url="http://openacs.org/repository/download/apm/acs-reference-5.6.0.apm"> <owner url="mailto:jon@jongriffin.com">Jon Griffin</owner> <summary>Tools and API for managing refrence data.</summary> - <release-date>2009-06-19</release-date> + <release-date>2010-06-17</release-date> <maturity>3</maturity> <vendor url="http://www.mayuli.com">Mayuli Enterprises, LLC</vendor> <license url="http://www.gnu.org/copyleft/gpl.html">GPL</license> @@ -21,8 +21,8 @@ <li> Running standard reports on this data. <li> Monitoring the usage of reference data. </ul></description> - <provides url="acs-reference" version="5.6.0d1"/> - <requires url="acs-kernel" version="5.6.0d1"/> + <provides url="acs-reference" version="5.6.0"/> + <requires url="acs-kernel" version="5.6.0"/> <callbacks> </callbacks> Index: openacs-4/packages/acs-service-contract/acs-service-contract.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-service-contract/acs-service-contract.info,v diff -u -r1.39 -r1.40 --- openacs-4/packages/acs-service-contract/acs-service-contract.info 11 Jul 2009 23:47:24 -0000 1.39 +++ openacs-4/packages/acs-service-contract/acs-service-contract.info 17 Oct 2010 21:06:08 -0000 1.40 @@ -7,10 +7,10 @@ <initial-install-p>t</initial-install-p> <singleton-p>t</singleton-p> - <version name="5.6.0d1" url="http://openacs.org/repository/download/apm/acs-service-contract-5.6.0d1.apm"> + <version name="5.6.0" url="http://openacs.org/repository/download/apm/acs-service-contract-5.6.0.apm"> <owner url="http://openacs.org">OpenACS</owner> <summary>API and UI for service contracts</summary> - <release-date>2009-06-19</release-date> + <release-date>2010-06-17</release-date> <maturity>3</maturity> <vendor url="http://openacs.org">OpenACS</vendor> <description format="text/html">Service contracts defines an API for the creation of interfaces and discovery of interface implementations. @@ -19,8 +19,8 @@ <license>GPL version 2</license> <maturity>3</maturity> - <provides url="acs-service-contract" version="5.6.0d1"/> - <requires url="acs-kernel" version="5.6.0d1"/> + <provides url="acs-service-contract" version="5.6.0"/> + <requires url="acs-kernel" version="5.6.0"/> <callbacks> </callbacks> Index: openacs-4/packages/acs-subsite/acs-subsite.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/acs-subsite.info,v diff -u -r1.108 -r1.109 --- openacs-4/packages/acs-subsite/acs-subsite.info 4 Oct 2010 21:59:20 -0000 1.108 +++ openacs-4/packages/acs-subsite/acs-subsite.info 17 Oct 2010 21:06:09 -0000 1.109 @@ -11,7 +11,7 @@ <version name="5.7.0d2" url="http://openacs.org/repository/download/apm/acs-subsite-5.7.0d2.apm"> <owner url="http://openacs.org">OpenACS</owner> <summary>Subsite</summary> - <release-date>2009-06-19</release-date> + <release-date>2010-06-17</release-date> <vendor url="http://openacs.org">OpenACS</vendor> <description format="text/html">Provides for creating subsites within the OpenACS Community System. Aware of parties, groups, users, portraits. Can be themed via a per subsite master template.</description> <license>GPL</license> Index: openacs-4/packages/acs-subsite/tcl/package-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/tcl/package-procs.tcl,v diff -u -r1.24 -r1.25 --- openacs-4/packages/acs-subsite/tcl/package-procs.tcl 13 Sep 2009 23:54:41 -0000 1.24 +++ openacs-4/packages/acs-subsite/tcl/package-procs.tcl 17 Oct 2010 21:06:09 -0000 1.25 @@ -819,8 +819,8 @@ lappend var_list [list creation_user $creation_user] lappend var_list [list creation_ip $creation_ip] + lappend var_list [list object_type $object_type] - # The first thing we need to do is select out the list of all # the parameters that can be passed to this object type's new function. # This will prevent us from passing in any parameters that are Index: openacs-4/packages/acs-subsite/tcl/party-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/tcl/Attic/party-procs.tcl,v diff -u -r1.7 -r1.8 --- openacs-4/packages/acs-subsite/tcl/party-procs.tcl 14 Dec 2007 19:23:41 -0000 1.7 +++ openacs-4/packages/acs-subsite/tcl/party-procs.tcl 17 Oct 2010 21:06:09 -0000 1.8 @@ -239,7 +239,7 @@ @param party_id The party_id to get the name from. @param email The email of the party - @returns The party name + @return The party name } { if {$party_id eq "" && $email eq ""} { error "You need to provide either party_id or email" Index: openacs-4/packages/acs-tcl/acs-tcl.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/acs-tcl.info,v diff -u -r1.62 -r1.63 --- openacs-4/packages/acs-tcl/acs-tcl.info 16 Mar 2010 12:07:25 -0000 1.62 +++ openacs-4/packages/acs-tcl/acs-tcl.info 17 Oct 2010 21:06:09 -0000 1.63 @@ -7,7 +7,7 @@ <initial-install-p>t</initial-install-p> <singleton-p>t</singleton-p> - <version name="5.6.0d4" url="http://openacs.org/repository/download/apm/acs-tcl-5.6.0d4.apm"> + <version name="5.6.0" url="http://openacs.org/repository/download/apm/acs-tcl-5.6.0.apm"> <owner url="http://openacs.org">OpenACS</owner> <summary>The Kernel Tcl API library.</summary> <release-date>2009-11-26</release-date> @@ -18,9 +18,9 @@ <license>GPL version 2</license> <maturity>3</maturity> - <provides url="acs-tcl" version="5.6.0d4"/> - <requires url="acs-bootstrap-installer" version="5.6.0d1"/> - <requires url="acs-kernel" version="5.6.0d1"/> + <provides url="acs-tcl" version="5.6.0"/> + <requires url="acs-bootstrap-installer" version="5.6.0"/> + <requires url="acs-kernel" version="5.6.0"/> <callbacks> </callbacks> Index: openacs-4/packages/acs-tcl/tcl/00-database-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/Attic/00-database-procs.tcl,v diff -u -r1.79 -r1.80 --- openacs-4/packages/acs-tcl/tcl/00-database-procs.tcl 23 Jan 2010 18:02:56 -0000 1.79 +++ openacs-4/packages/acs-tcl/tcl/00-database-procs.tcl 17 Oct 2010 21:06:09 -0000 1.80 @@ -160,7 +160,7 @@ } -ad_proc -private -private db_driverkey {{ +ad_proc -private db_driverkey {{ -handle_p 0 } dbn } { Normally, a dbn is passed to this proc. Unfortunately, there are Index: openacs-4/packages/acs-tcl/tcl/apm-install-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/apm-install-procs.tcl,v diff -u -r1.105 -r1.106 --- openacs-4/packages/acs-tcl/tcl/apm-install-procs.tcl 1 Apr 2010 23:21:01 -0000 1.105 +++ openacs-4/packages/acs-tcl/tcl/apm-install-procs.tcl 17 Oct 2010 21:06:09 -0000 1.106 @@ -987,6 +987,18 @@ return $version_id } +ad_proc apm_unregister_disinherited_params { package_key dependency_id } { + + Remove parameters for package_key that have been disinherited (i.e., the + dependency that caused them to be inherited have been removed). Called only + by the APM and keep it that way, please. + +} { + foreach parameter_id [db_list get_parameter_ids {}] { + apm_parameter_unregister $parameter_id + } +} + ad_proc apm_copy_param_to_descendents { new_package_key parameter_name } { Copy a new parameter in a package to its descendents. Called when a package is upgraded or a parameter added in the APM. Index: openacs-4/packages/acs-tcl/tcl/apm-install-procs.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/apm-install-procs.xql,v diff -u -r1.9 -r1.10 --- openacs-4/packages/acs-tcl/tcl/apm-install-procs.xql 31 Mar 2010 18:08:59 -0000 1.9 +++ openacs-4/packages/acs-tcl/tcl/apm-install-procs.xql 17 Oct 2010 21:06:09 -0000 1.10 @@ -89,6 +89,19 @@ </querytext> </fullquery> +<fullquery name="apm_unregister_disinherited_params.get_parameter_ids"> + <querytext> + select ap.parameter_id + from apm_parameters ap + where ap.package_key = :package_key + and exists (select 1 + from apm_parameters ap2, apm_package_dependencies apd + where ap2.package_key = apd.service_uri + and ap2.parameter_name = ap.parameter_name + and apd.dependency_id = :dependency_id) + </querytext> +</fullquery> + <fullquery name="apm_copy_param_to_descendents.param"> <querytext> select ap.* Index: openacs-4/packages/acs-tcl/tcl/apm-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/apm-procs.tcl,v diff -u -r1.87 -r1.88 --- openacs-4/packages/acs-tcl/tcl/apm-procs.tcl 31 Mar 2010 18:08:59 -0000 1.87 +++ openacs-4/packages/acs-tcl/tcl/apm-procs.tcl 17 Oct 2010 21:06:09 -0000 1.88 @@ -195,9 +195,30 @@ switch $dependency_type { extends - "" { lappend apm_package_url_resolution [acs_root_dir]/packages/$package_key/www } - embeds { lappend apm_package_url_resolution \ - [list [acs_root_dir]/packages/$package_key/embed $package_key] - } + embeds { + + # Reference to an embedded package is through URLs relative to the embedding + # package's mount point, taking one of the forms package-key, + # admin/package-key and sitewide-admin/package-key. These map to package-key/embed, + # package-key/embed/admin, and package-key/embed/sitewide-admin respectively. + + # We break references like package-key/admin because such references are unsafe, + # as the request processor will not perform the expected permission check. + + lappend apm_package_url_resolution \ + [list [acs_root_dir]/packages/$package_key/embed/admin admin/$package_key] + lappend apm_package_url_resolution \ + [list "" $package_key/admin] + + lappend apm_package_url_resolution \ + [list [acs_root_dir]/packages/$package_key/embed/sitewide-admin \ + sitewide-admin/$package_key] + lappend apm_package_url_resolution \ + [list "" $package_key/sitewide-admin] + + lappend apm_package_url_resolution \ + [list [acs_root_dir]/packages/$package_key/embed $package_key] + } default { error "apm_package_list_url_resolution: dependency type is $dependency_type" } Index: openacs-4/packages/acs-tcl/tcl/apm-xml-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/apm-xml-procs.tcl,v diff -u -r1.29 -r1.30 --- openacs-4/packages/acs-tcl/tcl/apm-xml-procs.tcl 28 Mar 2010 01:13:17 -0000 1.29 +++ openacs-4/packages/acs-tcl/tcl/apm-xml-procs.tcl 17 Oct 2010 21:06:09 -0000 1.30 @@ -129,6 +129,9 @@ append spec " </callbacks>" append spec "\n <parameters>\n" apm_log APMDebug "APM: Writing parameters" + + set parent_package_keys [lrange [apm_one_package_inherit_order $package_key] 0 end-1] + db_foreach parameter_info {} { append spec " <parameter scope=\"[ad_quotehtml $scope]\" datatype=\"[ad_quotehtml $datatype]\" \ min_n_values=\"[ad_quotehtml $min_n_values]\" \ Index: openacs-4/packages/acs-tcl/tcl/apm-xml-procs.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/apm-xml-procs.xql,v diff -u -r1.9 -r1.10 --- openacs-4/packages/acs-tcl/tcl/apm-xml-procs.xql 28 Mar 2010 01:13:17 -0000 1.9 +++ openacs-4/packages/acs-tcl/tcl/apm-xml-procs.xql 17 Oct 2010 21:06:09 -0000 1.10 @@ -68,17 +68,22 @@ <fullquery name="apm_generate_package_spec.parameter_info"> <querytext> - select parameter_name, - description, - datatype, - section_name, - default_value, - min_n_values, - max_n_values, - scope - from apm_parameters - where package_key = :package_key - order by parameter_name + select ap.parameter_name, + ap.description, + ap.datatype, + ap.section_name, + ap.default_value, + ap.min_n_values, + ap.max_n_values, + ap.scope + from apm_parameters ap + where ap.package_key = :package_key + and not exists (select 1 + from apm_parameters ap2 + where ap.parameter_name = ap2.parameter_name + and ap2.package_key in ('[join $parent_package_keys ',']') + ) + order by ap.parameter_name </querytext> </fullquery> Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/acs-tcl/tcl/json-procs.tcl'. Fisheye: No comparison available. Pass `N' to diff? Index: openacs-4/packages/acs-tcl/tcl/pools-init.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/pools-init.tcl,v diff -u -r1.5 -r1.6 --- openacs-4/packages/acs-tcl/tcl/pools-init.tcl 13 Oct 2007 04:22:12 -0000 1.5 +++ openacs-4/packages/acs-tcl/tcl/pools-init.tcl 17 Oct 2010 21:06:09 -0000 1.6 @@ -1,11 +1,11 @@ if {[ns_info version] eq "4.5"} { set cfgsection "ns/server/[ns_info server]" - set minthreads [ns_config $cfgsection minthreads 0] + set minthreads [ns_config $cfgsection minthreads 5] set maxthreads [ns_config $cfgsection maxthreads 10] - set maxconns [ns_config $cfgsection maxconnections 0] - set timeout [ns_config $cfgsection threadtimeout 0] - + set maxconns [ns_config $cfgsection maxconnections 100] + set timeout [ns_config $cfgsection threadtimeout 120] + ns_pools set default -minthreads $minthreads -maxthreads $maxthreads -maxconns $maxconns -timeout $timeout ns_log Notice "Default Pool: [ns_pools get default]" Index: openacs-4/packages/acs-tcl/tcl/request-processor-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/request-processor-procs.tcl,v diff -u -r1.102 -r1.103 --- openacs-4/packages/acs-tcl/tcl/request-processor-procs.tcl 11 Mar 2010 11:03:01 -0000 1.102 +++ openacs-4/packages/acs-tcl/tcl/request-processor-procs.tcl 17 Oct 2010 21:06:09 -0000 1.103 @@ -869,6 +869,12 @@ set extra_url [ad_conn extra_url] if { $match_prefix ne "" } { if { [string first $match_prefix $extra_url] == 0 } { + # An empty root indicates we should reject the attempted reference. This + # is used to block references to embeded package [sitewide-]admin pages that + # avoid the request processor permission check + if { $root eq "" } { + break + } set extra_url [string trimleft \ [string range $extra_url [string length $match_prefix] end] /] } else { Index: openacs-4/packages/acs-tcl/tcl/security-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/security-procs.tcl,v diff -u -r1.61 -r1.62 --- openacs-4/packages/acs-tcl/tcl/security-procs.tcl 15 Mar 2010 00:10:53 -0000 1.61 +++ openacs-4/packages/acs-tcl/tcl/security-procs.tcl 17 Oct 2010 21:06:09 -0000 1.62 @@ -1651,7 +1651,7 @@ } ad_proc -public security::locations {} { - @returns insecure location and secure location followed possibly by alternate insecure location(s) as a list. + @return insecure location and secure location followed possibly by alternate insecure location(s) as a list. The location consists of protocol://domain:port for website. This proc is ported from ec_insecure_location and ec_secure_location for reliably getting locations. If acs-tcl's SuppressHttpPort parameter is true, then the alternate ec_insecure_location without port is appended to the list, since it is a valid alternate. This proc also assumes hostnames from host_node_map table are accurate and legit. } { Index: openacs-4/packages/acs-tcl/tcl/test/file-test-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/test/file-test-procs.tcl,v diff -u -r1.8 -r1.9 --- openacs-4/packages/acs-tcl/tcl/test/file-test-procs.tcl 12 Feb 2009 15:51:23 -0000 1.8 +++ openacs-4/packages/acs-tcl/tcl/test/file-test-procs.tcl 17 Oct 2010 21:06:09 -0000 1.9 @@ -41,7 +41,7 @@ aa_log "$good good of $nfiles checked" } -aa_register_case -cats {smoke production_safe} -error_level notice files__tcl_file_common_errors { +aa_register_case -cats {smoke production_safe} -error_level error files__tcl_file_common_errors { Check for some common error patterns. @author Jeff Davis davis@xarg.net @@ -59,16 +59,18 @@ #inspect every tcl file in the directory tree starting with $startdir foreach file [ad_find_all_files -check_file_func ::tcl_p $startdir] { + if {[string match */acs-tcl/tcl/test/file-test-procs.tcl $file]} continue + set fp [open $file "r"] set data [read $fp] close $fp - if {![regexp {/packages/acs-tcl/tcl/test/acs-tcl-test-procs\.tcl$} $file match]} { - if {[string first @returns $data] < 0} { - aa_log_result fail "$file should not contain '@returns'. @returns is probably a typo of @return" - } - } + if {[string first @returns $data] > -1} { + aa_log_result fail "$file should not contain '@returns'. @returns is probably a typo of @return" + } + } + aa_log "Checked $count tcl files" } Index: openacs-4/packages/acs-templating/acs-templating.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/acs-templating.info,v diff -u -r1.49 -r1.50 --- openacs-4/packages/acs-templating/acs-templating.info 11 Jul 2009 23:47:24 -0000 1.49 +++ openacs-4/packages/acs-templating/acs-templating.info 17 Oct 2010 21:06:09 -0000 1.50 @@ -9,10 +9,10 @@ <implements-subsite-p>f</implements-subsite-p> <inherit-templates-p>t</inherit-templates-p> - <version name="5.6.0d1" url="http://openacs.org/repository/download/apm/acs-templating-5.6.0d1.apm"> + <version name="5.6.0" url="http://openacs.org/repository/download/apm/acs-templating-5.6.0.apm"> <owner url="http://openacs.org">OpenACS</owner> <summary>Templating library.</summary> - <release-date>2009-06-19</release-date> + <release-date>2010-06-17</release-date> <vendor url="http://openacs.org">OpenACS</vendor> <description format="text/html">The templating system provides the tag library and support routines that allow developers and graphic designers to work @@ -27,8 +27,8 @@ <license>GPL version 2</license> <maturity>3</maturity> - <provides url="acs-templating" version="5.6.0d1"/> - <requires url="acs-kernel" version="5.6.0d1"/> + <provides url="acs-templating" version="5.6.0"/> + <requires url="acs-kernel" version="5.6.0"/> <callbacks> <callback type="before-upgrade" proc="template::apm::before_upgrade"/> Index: openacs-4/packages/acs-templating/tcl/apm-callback-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/tcl/apm-callback-procs.tcl,v diff -u -r1.5 -r1.6 --- openacs-4/packages/acs-templating/tcl/apm-callback-procs.tcl 13 Sep 2009 23:54:42 -0000 1.5 +++ openacs-4/packages/acs-templating/tcl/apm-callback-procs.tcl 17 Oct 2010 21:06:09 -0000 1.6 @@ -61,12 +61,14 @@ -package_id $package_id_templating \ -parameter "XinhaDefaultPlugins" \ -default ""] - set del_pos [lsearch $plugins FullScreen] - set plugins [lreplace $plugins $del_pos $del_pos] - parameter::set_value \ - -package_id $package_id_templating \ - -parameter "XinhaDefaultPlugins" \ - -value $plugins + if { $plugins ne "" } { + set del_pos [lsearch $plugins FullScreen] + set plugins [lreplace $plugins $del_pos $del_pos] + parameter::set_value \ + -package_id $package_id_templating \ + -parameter "XinhaDefaultPlugins" \ + -value $plugins + } } } } Index: openacs-4/packages/acs-templating/tcl/date-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/tcl/date-procs.tcl,v diff -u -r1.45 -r1.46 --- openacs-4/packages/acs-templating/tcl/date-procs.tcl 13 Sep 2009 23:54:42 -0000 1.45 +++ openacs-4/packages/acs-templating/tcl/date-procs.tcl 17 Oct 2010 21:06:09 -0000 1.46 @@ -274,7 +274,8 @@ } return 0 } - sql_date { + sql_date - + sql_timestamp { # LARS: Empty date results in NULL value if { $date eq "" } { return "NULL" Index: openacs-4/packages/acs-templating/tcl/form-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/tcl/form-procs.tcl,v diff -u -r1.43 -r1.44 --- openacs-4/packages/acs-templating/tcl/form-procs.tcl 7 Jan 2010 10:32:23 -0000 1.43 +++ openacs-4/packages/acs-templating/tcl/form-procs.tcl 17 Oct 2010 21:06:09 -0000 1.44 @@ -33,6 +33,7 @@ @see template::form::get_button @see template::form::get_action @see template::form::set_properties + @see template::form::get_properties @see template::form::exists @see template::form::export @see template::form::get_combined_values @@ -153,8 +154,8 @@ # If the user hit a button named "cancel", redirect and about if { $submission && $formbutton eq "cancel" && [exists_and_not_null opts(cancel_url)]} { - ad_returnredirect $opts(cancel_url) - ad_script_abort + ad_returnredirect $opts(cancel_url) + ad_script_abort } set formaction [get_action $id] @@ -194,6 +195,25 @@ template::util::get_opts $args } +ad_proc -public template::form::get_properties { id } { + Get properties of a form + + @param id The ID of a form +} { + set level [template::adp_level] + + # form properties + upvar #$level $id:properties formprop + + if { [info exists formprop] } { + # properties exist in the form, return them + return [array get formprop] + } else { + # no props exist in the form, return the empty list + return [list] + } +} + ad_proc -public template::form::get_button { id } { Find out which button was clicked Index: openacs-4/packages/acs-templating/www/resources/lists.css =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/resources/lists.css,v diff -u -r1.11 -r1.12 --- openacs-4/packages/acs-templating/www/resources/lists.css 31 Mar 2009 12:31:10 -0000 1.11 +++ openacs-4/packages/acs-templating/www/resources/lists.css 17 Oct 2010 21:06:09 -0000 1.12 @@ -1,148 +1,149 @@ -div.list-button-bar-top { - padding-top: 5px; - padding-bottom: 10px; -} +div.list-button-bar-top { + padding-top: 5px; + padding-bottom: 10px; +} + +div.list-button-bar-bottom { + padding-top: 10px; +} + +table.list-table { + border-collapse: collapse; + border: 1px solid #ccc; +} + +table.list-tiny { + font-size: x-small; + border-collapse: collapse; +} + +.list-table tr.list-header { + background-color: #ffffff; + color: inherit; +} + +th.list-table, th.list-table-narrow, .list-table th { + padding: 8px 16px; + border-bottom: 3px solid #A0BDEB; +} + +.list-table tr.even, .list-tiny tr.even { + background-color: #ffffff; + color: inherit; +} + +.list-table tr.odd, .list-tiny tr.odd { + background-color: #f0eff0; + color: inherit; +} + +td.list-table, td.list-table-narrow, .list-table td { + padding: 8px 16px; + border-bottom: 1px solid #A0BDEB; +} + +td.list-table-narrow, th.list-table-narrow { + padding-left: 4px; + padding-right: 4px; +} + +tr.last td { + border-bottom: 3px solid #A0BDEB; +} + +/* pagination ------------------------------------------ */ +div.list-paginator-top { + padding-bottom: 5px; +} + +div.list-paginator-bottom { + padding-top: 15px; +} + +.list-paginator li { + padding:5px; +} + +.list-paginator li { + border: 1px solid #f00; + background-color: #fff; + padding: 2px 4px; + font-weight: bold; + border: 1px solid #fff; + color: inherit; +} + +.list-paginator li a:hover { + background-color: #e5e5e5; + color: inherit; +} + +.list-paginator li.current { + background-color: #e5e5e5; + border: 1px solid #999; + color: inherit; +} + +/* end pagination ------------------------------------------ */ + +/* list-filter ------------------------------------------ */ + +td.list-filter-pane { + background-color: #eee; + vertical-align: top; + border: 1px solid #ccc; + font-size: .9em; + color: inherit; +} + +.list-filter-header { + font-weight: bold; + border-top: 1px solid #999; + +} + +.list-filter { + font-size: x-small; + padding-left:10px; +} + +tr.list-filter-selected { + background-color: #bbb; + color: inherit; +} + +span.list-filter-selected { + font-weight: bold; +} + +.list-filter-section { + font-size: x-small; + font-weight: bold; + background-color: #bbbbff; + padding-left: 4px; + padding-top: 4px; + padding-bottom: 4px; + margin-top: 0px; + margin-bottom: 8px; +} + +div.list-inline-filter { + font-size: x-small; +} + +span.list-inline-filter { +} + +span.list-inline-filter-selected { + font-weight: bold; +} + +a.list-inline-filter { +} + +td.list-list-pane { + background-color: white; + vertical-align: top; + padding-left: 10px; +} -div.list-button-bar-bottom { - padding-top: 10px; -} - -table.list-table { - border-collapse: collapse; - border: 1px solid #ccc; -} - -table.list-tiny { - font-size: x-small; - border-collapse: collapse; -} - -.list-table tr.list-header { - background-color: #ffffff; - color: inherit; -} - -th.list-table, th.list-table-narrow, .list-table th { - padding: 8px 16px; - border-bottom: 3px solid #A0BDEB; -} - -.list-table tr.even, .list-tiny tr.even { - background-color: #ffffff; - color: inherit; -} - -.list-table tr.odd, .list-tiny tr.odd { - background-color: #f0eff0; - color: inherit; -} - -td.list-table, td.list-table-narrow, .list-table td { - padding: 8px 16px; - border-bottom: 1px solid #A0BDEB; -} - -td.list-table-narrow, th.list-table-narrow { - padding-left: 4px; - padding-right: 4px; -} - -tr.last td { - border-bottom: 3px solid #A0BDEB; -} - -/* pagination ------------------------------------------ */ -div.list-paginator-top { - padding-bottom: 5px; -} - -div.list-paginator-bottom { - padding-top: 15px; -} - -.list-paginator li { - padding:5px; -} - -.list-paginator li { - border: 1px solid #f00; - background-color: #fff; - padding: 2px 4px; - font-weight: bold; - border: 1px solid #fff; - color: inherit; -} - -.list-paginator li a:hover { - background-color: #e5e5e5; - color: inherit; -} - -.list-paginator li.current { - background-color: #e5e5e5; - border: 1px solid #999; - color: inherit; -} - -/* end pagination ------------------------------------------ */ - -/* list-filter ------------------------------------------ */ - -td.list-filter-pane { - background-color: #eee; - vertical-align: top; - border: 1px solid #ccc; - font-size: .9em; - color: inherit; -} - -.list-filter-header { - font-weight: bold; - border-top: 1px solid #999; - -} - -.list-filter { - font-size: x-small; - padding-left:10px; -} - -tr.list-filter-selected { - background-color: #bbb; - color: inherit; -} - -span.list-filter-selected { - font-weight: bold; -} - -.list-filter-section { - font-size: x-small; - font-weight: bold; - background-color: #bbbbff; - padding-left: 4px; - padding-top: 4px; - padding-bottom: 4px; - margin-top: 0px; - margin-bottom: 8px; -} - -div.list-inline-filter { - font-size: x-small; -} - -span.list-inline-filter { -} - -span.list-inline-filter-selected { - font-weight: bold; -} - -a.list-inline-filter { -} - -td.list-list-pane { - background-color: white; - vertical-align: top; - padding-left: 10px; -} Index: openacs-4/packages/acs-translations/acs-translations.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-translations/acs-translations.info,v diff -u -r1.11 -r1.12 --- openacs-4/packages/acs-translations/acs-translations.info 11 Jul 2009 23:47:24 -0000 1.11 +++ openacs-4/packages/acs-translations/acs-translations.info 17 Oct 2010 21:06:09 -0000 1.12 @@ -7,14 +7,14 @@ <initial-install-p>t</initial-install-p> <singleton-p>t</singleton-p> - <version name="5.6.0d1" url="http://openacs.org/repository/download/apm/acs-translations-5.6.0d1.apm"> + <version name="5.6.0" url="http://openacs.org/repository/download/apm/acs-translations-5.6.0.apm"> <owner url="mailto:sussdorff@sussdorff.de">Malte Sussdorff</owner> <summary>Package for storing dynamic translations</summary> - <release-date>2009-06-19</release-date> + <release-date>2010-06-17</release-date> <description format="text/html">Package for storing dynamic translations</description> <maturity>3</maturity> - <provides url="acs-translations" version="5.6.0d1"/> + <provides url="acs-translations" version="5.6.0"/> <callbacks> </callbacks> Index: openacs-4/packages/intermedia-driver/intermedia-driver.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/intermedia-driver/intermedia-driver.info,v diff -u -r1.6 -r1.7 --- openacs-4/packages/intermedia-driver/intermedia-driver.info 11 Jul 2009 23:47:24 -0000 1.6 +++ openacs-4/packages/intermedia-driver/intermedia-driver.info 17 Oct 2010 21:06:09 -0000 1.7 @@ -7,16 +7,16 @@ <initial-install-p>f</initial-install-p> <singleton-p>t</singleton-p> - <version name="5.6.0d1" url="http://openacs.org/repository/download/apm/intermedia-driver-5.6.0d1.apm"> + <version name="5.6.0" url="http://openacs.org/repository/download/apm/intermedia-driver-5.6.0.apm"> <owner url="mailto:dave@thedesignexperience.org">David Bauer</owner> <owner url="mailto:dirk@dirkgomez.de">Dirk Gomez</owner> <summary>Search package callback implementation for Oracle Intermedia.</summary> - <release-date>2009-06-19</release-date> + <release-date>2010-06-17</release-date> <description format="text/html">Implemented the search package callback interface for search engine driver using Oracle Intermedia.</description> <maturity>3</maturity> - <provides url="intermedia-driver" version="5.6.0d1"/> - <requires url="search" version="5.6.0d1"/> + <provides url="intermedia-driver" version="5.6.0"/> + <requires url="search" version="5.6.0"/> <callbacks> </callbacks> Index: openacs-4/packages/notifications/notifications.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/notifications/notifications.info,v diff -u -r1.49 -r1.50 --- openacs-4/packages/notifications/notifications.info 11 Jul 2009 23:47:24 -0000 1.49 +++ openacs-4/packages/notifications/notifications.info 17 Oct 2010 21:06:09 -0000 1.50 @@ -8,18 +8,18 @@ <singleton-p>t</singleton-p> <auto-mount>notifications</auto-mount> - <version name="5.6.0d1" url="http://openacs.org/repository/download/apm/notifications-5.6.0d1.apm"> + <version name="5.6.0" url="http://openacs.org/repository/download/apm/notifications-5.6.0.apm"> <owner url="http://openacs.org">OpenACS</owner> <summary>Email notifications management</summary> - <release-date>2009-06-19</release-date> + <release-date>2010-06-17</release-date> <vendor url="http://openacs.org">OpenACS</vendor> <description format="text/html">Provides an API for packages to provide subscription based email notifications and handle replies. Used by forums, bug-tracker, etc. The currently prefered package for email notifications.</description> <maturity>2</maturity> <package_instance_name>#notifications.Notifications#</package_instance_name> - <provides url="notifications" version="5.6.0d1"/> - <requires url="acs-kernel" version="5.6.0d1"/> - <requires url="acs-mail-lite" version="5.6.0d1"/> + <provides url="notifications" version="5.6.0"/> + <requires url="acs-kernel" version="5.6.0"/> + <requires url="acs-mail-lite" version="5.6.0"/> <callbacks> <callback type="after-install" proc="notification::apm::after_install"/> Index: openacs-4/packages/openacs-default-theme/openacs-default-theme.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/openacs-default-theme/openacs-default-theme.info,v diff -u -r1.7 -r1.8 --- openacs-4/packages/openacs-default-theme/openacs-default-theme.info 11 Jul 2009 23:47:24 -0000 1.7 +++ openacs-4/packages/openacs-default-theme/openacs-default-theme.info 17 Oct 2010 21:06:09 -0000 1.8 @@ -7,17 +7,17 @@ <initial-install-p>t</initial-install-p> <singleton-p>t</singleton-p> - <version name="5.6.0d1" url="http://openacs.org/repository/download/apm/openacs-default-theme-5.6.0d1.apm"> + <version name="5.6.0" url="http://openacs.org/repository/download/apm/openacs-default-theme-5.6.0.apm"> <owner url="mailto:dhogaza@pacifier.com">Don Baccus</owner> <summary>Provides the default "plain" and "tabbed" themes for OpenACS Subsites.</summary> - <release-date>2009-06-19</release-date> + <release-date>2010-06-17</release-date> <description format="text/plain">Provides the default "plain" and "tabbed" themes for OpenACS Subsites. This has been moved out to a separate package, with availability recorded in the database, to make it easier for developer's to create their own themes and distribute and/or install them in package form. </description> <maturity>0</maturity> - <provides url="openacs-default-theme" version="5.6.0d1"/> - <requires url="acs-subsite" version="5.6.0d1"/> + <provides url="openacs-default-theme" version="5.6.0"/> + <requires url="acs-subsite" version="5.6.0"/> <callbacks> <callback type="after-install" proc="openacs_default_theme::install::after_install"/> Index: openacs-4/packages/openacs-default-theme/www/resources/styles/default-master.css =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/openacs-default-theme/www/resources/styles/default-master.css,v diff -u -r1.11 -r1.12 --- openacs-4/packages/openacs-default-theme/www/resources/styles/default-master.css 2 Feb 2010 23:19:51 -0000 1.11 +++ openacs-4/packages/openacs-default-theme/www/resources/styles/default-master.css 17 Oct 2010 21:06:09 -0000 1.12 @@ -496,6 +496,18 @@ border: solid 1px black; } +a.button .disabled +{ + color: #A0A0A0; + background-color: #E0E0E0; + cursor: not-allowed; +} + +a.button .disabled:hover +{ + text-decoration: none; +} + /* END BUTTON ---- */ .center {text-align: center;} Index: openacs-4/packages/ref-countries/ref-countries.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/ref-countries/ref-countries.info,v diff -u -r1.10 -r1.11 --- openacs-4/packages/ref-countries/ref-countries.info 13 May 2010 10:11:23 -0000 1.10 +++ openacs-4/packages/ref-countries/ref-countries.info 17 Oct 2010 21:06:09 -0000 1.11 @@ -4,22 +4,21 @@ <package key="ref-countries" url="http://www.mayuli.com/acs-repository/apm/packages/ref-countries" type="apm_service"> <package-name>Reference Data - Country</package-name> <pretty-plural>Reference Data - Countries</pretty-plural> - <initial-install-p>f</initial-install-p> + <initial-install-p>t</initial-install-p> <singleton-p>t</singleton-p> - <version name="5.6.0d2" url="http://www.mayuli.com/acs-repository/download/apm/ref-countries-5.6.0d2.apm"> - <database-support> - <database>oracle</database> - <database>postgresql</database> - </database-support> + <version name="5.6.0" url="http://www.mayuli.com/acs-repository/download/apm/ref-countries-5.6.0.apm"> <owner url="mailto:jon@jongriffin.com">Jon Griffin</owner> <summary>ISO 3166 country data.</summary> + <release-date>2010-06-17</release-date> <vendor url="http://www.mayuli.com">Mayuli Enterprises, LLC</vendor> - <description format="text/html">Countries supplies the ISO 3166 Country data for acs-reference.</description> + <license url="http://www.gnu.org/copyleft/gpl.html">GPL</license> + <maturity>1</maturity> + <description format="text/plain">Countries supplies the ISO 3166 Country data for acs-reference.</description> - <provides url="ref-countries" version="5.6.0d2"/> - <requires url="acs-kernel" version="5.6.0d1"/> - <requires url="acs-reference" version="5.6.0d1"/> + <provides url="ref-countries" version="5.6.0"/> + <requires url="acs-kernel" version="5.6.0"/> + <requires url="acs-reference" version="5.6.0"/> <callbacks> <callback type="after-upgrade" proc="ref_countries::apm::after_upgrade"/> @@ -31,3 +30,8 @@ </version> </package> + + + + + Index: openacs-4/packages/ref-countries/sql/oracle/ref-countries-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/ref-countries/sql/oracle/ref-countries-create.sql,v diff -u -r1.4 -r1.5 --- openacs-4/packages/ref-countries/sql/oracle/ref-countries-create.sql 19 May 2007 06:55:54 -0000 1.4 +++ openacs-4/packages/ref-countries/sql/oracle/ref-countries-create.sql 17 Oct 2010 21:06:09 -0000 1.5 @@ -15,7 +15,7 @@ default_name varchar(100) constraint countries_default_name_nn not null - constraint countries_default_name_uq + constraint countries_default_name_un unique, iso char(2) constraint countries_iso_pk Index: openacs-4/packages/ref-countries/sql/postgresql/ref-countries-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/ref-countries/sql/postgresql/ref-countries-create.sql,v diff -u -r1.3 -r1.4 --- openacs-4/packages/ref-countries/sql/postgresql/ref-countries-create.sql 19 May 2007 06:55:10 -0000 1.3 +++ openacs-4/packages/ref-countries/sql/postgresql/ref-countries-create.sql 17 Oct 2010 21:06:09 -0000 1.4 @@ -15,7 +15,7 @@ default_name varchar(100) constraint countries_default_name_nn not null - constraint countries_default_name_uq + constraint countries_default_name_un unique, iso char(2) constraint countries_iso_pk Index: openacs-4/packages/ref-language/ref-language.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/ref-language/ref-language.info,v diff -u -r1.10 -r1.11 --- openacs-4/packages/ref-language/ref-language.info 14 May 2010 12:22:49 -0000 1.10 +++ openacs-4/packages/ref-language/ref-language.info 17 Oct 2010 21:06:09 -0000 1.11 @@ -4,18 +4,18 @@ <package key="ref-language" url="http://www.mayuli.com/acs-repository/apm/packages/ref-language" type="apm_service"> <package-name>Reference Data - Language</package-name> <pretty-plural>Reference Data - Languages</pretty-plural> - <initial-install-p>f</initial-install-p> + <initial-install-p>t</initial-install-p> <singleton-p>t</singleton-p> - <version name="5.6.0d3" url="http://www.mayuli.com/acs-repository/download/apm/ref-language-5.6.0d3.apm"> + <version name="5.6.0" url="http://www.mayuli.com/acs-repository/download/apm/ref-language-5.6.0.apm"> <owner url="mailto:jon@jongriffin.com">Jon Griffin</owner> <summary>ISO 639-1 language reference data for acs-reference.</summary> <vendor url="http://www.mayuli.com">Mayuli Enterprises, LLC</vendor> <description format="text/plain">This is the ISO 639-1 language reference data (with languages names in English).</description> - <provides url="ref-language" version="5.6.0d3"/> - <requires url="acs-kernel" version="5.6.0d1"/> - <requires url="acs-reference" version="5.6.0d1"/> + <provides url="ref-language" version="5.6.0"/> + <requires url="acs-kernel" version="5.6.0"/> + <requires url="acs-reference" version="5.6.0"/> <callbacks> <callback type="after-install" proc="ref_language::apm::after_install"/> Index: openacs-4/packages/ref-language/sql/oracle/ref-language-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/ref-language/sql/oracle/ref-language-create.sql,v diff -u -r1.7 -r1.8 --- openacs-4/packages/ref-language/sql/oracle/ref-language-create.sql 14 May 2010 12:22:49 -0000 1.7 +++ openacs-4/packages/ref-language/sql/oracle/ref-language-create.sql 17 Oct 2010 21:06:09 -0000 1.8 @@ -12,8 +12,6 @@ constraint language_codes_language_id_pk primary key, name varchar(100) - constraint language_codes_name_uq - unique constraint language_codes_name_nn not null ); Index: openacs-4/packages/ref-language/sql/postgresql/ref-language-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/ref-language/sql/postgresql/ref-language-create.sql,v diff -u -r1.4 -r1.5 --- openacs-4/packages/ref-language/sql/postgresql/ref-language-create.sql 14 May 2010 12:22:49 -0000 1.4 +++ openacs-4/packages/ref-language/sql/postgresql/ref-language-create.sql 17 Oct 2010 21:06:09 -0000 1.5 @@ -12,8 +12,6 @@ constraint language_codes_language_id_pk primary key, name varchar(100) - constraint language_codes_name_uq - unique constraint language_codes_name_nn not null ); Index: openacs-4/packages/ref-language/tcl/apm-callback-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/ref-language/tcl/apm-callback-procs.tcl,v diff -u -r1.2 -r1.3 --- openacs-4/packages/ref-language/tcl/apm-callback-procs.tcl 14 May 2010 12:22:49 -0000 1.2 +++ openacs-4/packages/ref-language/tcl/apm-callback-procs.tcl 17 Oct 2010 21:06:09 -0000 1.3 @@ -26,6 +26,9 @@ -spec { 5.6.0d1 5.6.0d2 { + # If the constraint doesn't exist, we don't care ... + catch [db_dml drop_constraint {}] + set new_languages [ref_language::apm::lang_list_for_5_6_0d2] foreach {code name} $new_languages { Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/ref-language/tcl/apm-callback-procs.xql'. Fisheye: No comparison available. Pass `N' to diff? Index: openacs-4/packages/ref-timezones/ref-timezones.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/ref-timezones/ref-timezones.info,v diff -u -r1.31 -r1.32 --- openacs-4/packages/ref-timezones/ref-timezones.info 11 Jul 2009 23:47:24 -0000 1.31 +++ openacs-4/packages/ref-timezones/ref-timezones.info 17 Oct 2010 21:06:09 -0000 1.32 @@ -7,17 +7,17 @@ <initial-install-p>t</initial-install-p> <singleton-p>t</singleton-p> - <version name="5.6.0d1" url="http://openacs.org/repository/download/apm/ref-timezones-5.6.0d1.apm"> + <version name="5.6.0" url="http://openacs.org/repository/download/apm/ref-timezones-5.6.0.apm"> <owner url="mailto:jon@mayuli.com">Jon Griffin</owner> <summary>Timezone data for acs-reference.</summary> - <release-date>2009-06-19</release-date> + <release-date>2010-06-17</release-date> <maturity>3</maturity> <vendor url="http://www.mayuli.com">Mayuli Enterprises, LLC</vendor> <description format="text/plain">This is the timezone data for the acs-reference data package. Used by acs-lang (among others) for localized times.</description> - <provides url="ref-timezones" version="5.6.0d1"/> - <requires url="acs-kernel" version="5.6.0d1"/> - <requires url="acs-reference" version="5.6.0d1"/> + <provides url="ref-timezones" version="5.6.0"/> + <requires url="acs-kernel" version="5.6.0"/> + <requires url="acs-reference" version="5.6.0"/> <callbacks> <callback type="after-upgrade" proc="ref-timezones::apm::after_upgrade"/> Index: openacs-4/packages/search/search.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/search/search.info,v diff -u -r1.37 -r1.38 --- openacs-4/packages/search/search.info 13 Sep 2009 23:54:42 -0000 1.37 +++ openacs-4/packages/search/search.info 17 Oct 2010 21:06:09 -0000 1.38 @@ -7,18 +7,18 @@ <initial-install-p>t</initial-install-p> <singleton-p>t</singleton-p> - <version name="5.6.0d1" url="http://openacs.org/repository/download/apm/search-5.6.0d1.apm"> + <version name="5.6.0" url="http://openacs.org/repository/download/apm/search-5.6.0.apm"> <owner url="http://openacs.org">OpenACS</owner> - <release-date>2009-06-19</release-date> + <release-date>2010-06-17</release-date> <maturity>3</maturity> <summary>Site wide search</summary> <vendor url="http://openacs.org">OpenACS</vendor> <maturity>3</maturity> <license url="http://www.gnu.org/copyleft/gpl.html">GPL version 2</license> <description format="text/html">Site wide search implemented with service contracts, currently supports postgres via the tsearch2 driver (OpenFTS still support but deprecated).</description> - <provides url="search" version="5.6.0d1"/> - <requires url="acs-service-contract" version="5.6.0d1"/> + <provides url="search" version="5.6.0"/> + <requires url="acs-service-contract" version="5.6.0"/> <callbacks> <callback type="after-instantiate" proc="search::install::after_instantiate"/> Index: openacs-4/packages/tsearch2-driver/tsearch2-driver.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/tsearch2-driver/tsearch2-driver.info,v diff -u -r1.9 -r1.10 --- openacs-4/packages/tsearch2-driver/tsearch2-driver.info 11 Jul 2009 23:47:24 -0000 1.9 +++ openacs-4/packages/tsearch2-driver/tsearch2-driver.info 17 Oct 2010 21:06:09 -0000 1.10 @@ -7,15 +7,15 @@ <initial-install-p>f</initial-install-p> <singleton-p>t</singleton-p> - <version name="5.6.0d1" url="http://openacs.org/repository/download/apm/tsearch2-driver-5.6.0d1.apm"> + <version name="5.6.0" url="http://openacs.org/repository/download/apm/tsearch2-driver-5.6.0.apm"> <owner url="mailto:dave@thedesignexperience.org">Dave Bauer</owner> <summary>Full text search support for Search via Tsearch2.</summary> - <release-date>2009-06-19</release-date> + <release-date>2010-06-17</release-date> <description format="text/html">Provides an implementation for the search packages service contract for searching on postgresql.</description> <maturity>3</maturity> - <provides url="tsearch2-driver" version="5.6.0d1"/> - <requires url="search" version="5.6.0d1"/> + <provides url="tsearch2-driver" version="5.6.0"/> + <requires url="search" version="5.6.0"/> <callbacks> <callback type="before-install" proc="tsearch2_driver::install::preinstall_checks"/> Index: openacs-4/www/blank-master.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/www/blank-master.tcl,v diff -u -r1.51 -r1.52 --- openacs-4/www/blank-master.tcl 21 Sep 2010 22:54:10 -0000 1.51 +++ openacs-4/www/blank-master.tcl 17 Oct 2010 21:06:09 -0000 1.52 @@ -84,7 +84,6 @@ set css [parameter::get -package_id [ad_conn subsite_id] -parameter ThemeCSS -default ""] if { $css ne "" } { - set params [list] # DRB: Need to handle two cases, the lame first attempt and the more complete current # attempt which allows you to specify all of the parameters to template::head::add_css @@ -95,6 +94,7 @@ if { [llength $css] == 2 && [llength [lindex $css 0]] == 1 } { template::head::add_css -href [lindex $css 0] -media [lindex $css 1] } else { + set params [list] foreach param $css { lappend params -[lindex $param 0] [lindex $param 1] } @@ -246,8 +246,9 @@ } } -template::head::prepare_multirows -set event_handlers [template::get_body_event_handlers] # Retrieve headers and footers set header [template::get_header_html] set footer [template::get_footer_html] + +template::head::prepare_multirows +set event_handlers [template::get_body_event_handlers]