Index: openacs-4/packages/acs-authentication/www/doc/configure-batch-sync.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-authentication/www/doc/configure-batch-sync.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-authentication/www/doc/configure-batch-sync.adp 8 Feb 2019 13:00:50 -0000 1.4 +++ openacs-4/packages/acs-authentication/www/doc/configure-batch-sync.adp 3 Sep 2021 09:14:34 -0000 1.4.2.1 @@ -22,8 +22,7 @@ files in IMS Enterprise 1.1 format.

  • Configure your Authority (RADIUS server, etc) to supply XML files to the URLs IncrementalURL and SnapshotURL. A typical set of -incremental file record looks like:

    -<?xml version="1.0" encoding="ISO-8859-1"?>
    +incremental file record looks like:

    <?xml version="1.0" encoding="ISO-8859-1"?>
     <enterprise>
       <properties>
         <datasource>FOO</datasource>
    Index: openacs-4/packages/acs-authentication/www/doc/ext-auth-pam-install.adp
    ===================================================================
    RCS file: /usr/local/cvsroot/openacs-4/packages/acs-authentication/www/doc/ext-auth-pam-install.adp,v
    diff -u -r1.4.2.2 -r1.4.2.3
    --- openacs-4/packages/acs-authentication/www/doc/ext-auth-pam-install.adp	3 Jul 2020 07:53:44 -0000	1.4.2.2
    +++ openacs-4/packages/acs-authentication/www/doc/ext-auth-pam-install.adp	3 Sep 2021 09:14:38 -0000	1.4.2.3
    @@ -85,13 +85,11 @@
     domain configuration lines into a single file, /etc/pam.conf. On Red Hat, create the file
     /etc/pam.d/service0
      with these
    -contents:

    -auth       sufficient   /lib/security/pam_radius_auth.so
    +contents:

    auth       sufficient   /lib/security/pam_radius_auth.so
     
  • Modify the AOLserver configuration file to use this PAM domain. -Edit the line

    -ns_param   PamDomain             "service0"

    So that the value of the parameter matches the name (just the +Edit the line

    ns_param   PamDomain             "service0"

    So that the value of the parameter matches the name (just the filename, not the fully pathed name) of the domain file in

    /etc/pam.d/
  • @@ -102,8 +100,7 @@
  • Modify the AOLserver configuration file to support ns_pam. 

    In /var/lib/aolserver/service0/etc/config.tcl, enable -the nspam module by uncommenting this line:

    -ns_param   nspam           ${bindir}/nspam.so
    +the nspam module by uncommenting this line:

    ns_param   nspam           ${bindir}/nspam.so
  • Index: openacs-4/packages/acs-automated-testing/www/doc/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-automated-testing/www/doc/index.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-automated-testing/www/doc/index.adp 7 Aug 2017 23:47:46 -0000 1.3 +++ openacs-4/packages/acs-automated-testing/www/doc/index.adp 3 Sep 2021 09:14:38 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-automated-testing {ACS Automated Testing}} {Automated Testing} +{/doc/acs-automated-testing/ {ACS Automated Testing}} {Automated Testing} Automated Testing

    Index: openacs-4/packages/acs-automated-testing/www/doc/install.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-automated-testing/www/doc/install.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-automated-testing/www/doc/install.adp 30 Apr 2018 08:13:40 -0000 1.4 +++ openacs-4/packages/acs-automated-testing/www/doc/install.adp 3 Sep 2021 09:14:39 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-automated-testing {ACS Automated Testing}} {Installation} +{/doc/acs-automated-testing/ {ACS Automated Testing}} {Installation} Installation {/doc/acs-automated-testing {ACS Automated Testing}} {Requirements} +{/doc/acs-automated-testing/ {ACS Automated Testing}} {Requirements} Requirements Test scripts can be imported and exported. It should be possible to import a test into the database from a file, and to export it to a file. These files -should be shareable by different OpenACS installations. It should be -possible to import/export directly between running OpenACS sites. -(We should look at what did and didn't work in acs-lang catalog -files and work from there.) +should be shareable by different OpenACS installations. It should +be possible to import/export directly between running OpenACS +sites. (We should look at what did and didn't work in acs-lang +catalog files and work from there.) 5 B Macro Recording. End users can Index: openacs-4/packages/acs-automated-testing/www/doc/usage.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-automated-testing/www/doc/usage.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-automated-testing/www/doc/usage.adp 30 Apr 2018 08:13:40 -0000 1.4 +++ openacs-4/packages/acs-automated-testing/www/doc/usage.adp 3 Sep 2021 09:14:39 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-automated-testing {ACS Automated Testing}} {Usage} +{/doc/acs-automated-testing/ {ACS Automated Testing}} {Usage} Usage

    Suppose the first test server is service1. Set up a dedicated user and automated install script.

  • To run automated testing automatically each time the server is -rebuilt, add this to /home/service1/install/install.tcl:

    -set do_tclapi_testing "yes"
    +rebuilt, add this to /home/service1/install/install.tcl:

           set do_tclapi_testing "yes"
  • Get the results of the automated tests dumped where the master server can see them - in this example, the same directory as above, /var/log/openacs-install, by adding -this to install.tcl (requires 5.1):

    -set install_xml_file          "/var/lib/aolserver/service0/packages/acs-core-docs/www/files/install-autotest.xml"

    This will copy in the file install-autotest.xml:

    <?xml version="1.0"?>
    +this to install.tcl (requires 5.1):

              set install_xml_file          "/var/lib/aolserver/service0/packages/acs-core-docs/www/files/install-autotest.xml"

    This will copy in the file install-autotest.xml:

    <?xml version="1.0"?>
     
     <!-- This is an install.xml which can be used to configure servers for reporting their automated test results.  Requires acs-automated-testing 5.1.0b2 or better -->
     
    @@ -65,8 +63,7 @@
     
     sudo /home/$1/install/install.sh 2>&1

    and allow the master user to execute this file as root (this is a limitation of the automatic -install script, which must be root). In /etc/sudoers, include a line:

    -master ALL = NOPASSWD: /usr/local/bin/rebuild-server.sh
    +install script, which must be root). In /etc/sudoers, include a line:

    master ALL = NOPASSWD: /usr/local/bin/rebuild-server.sh
  • Index: openacs-4/packages/acs-content-repository/www/doc/design.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/doc/design.adp,v diff -u -r1.5 -r1.5.2.1 --- openacs-4/packages/acs-content-repository/www/doc/design.adp 3 Jul 2018 18:19:14 -0000 1.5 +++ openacs-4/packages/acs-content-repository/www/doc/design.adp 3 Sep 2021 09:14:39 -0000 1.5.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-content-repository {ACS Content Repository}} {Content Repository Design} +{/doc/acs-content-repository/ {ACS Content Repository}} {Content Repository Design} Content Repository Design

    Content Repository Design

    @@ -76,13 +76,13 @@ efficiently.

    VI. Further Reading

    The Object Model provides a -graphic overview of how the content repository is designed. -The model links to pages of the API Guide that describe individual +graphic overview of how the content repository is designed. The +model links to pages of the API Guide that describe individual objects. The Developer Guide describes how to address common development tasks using the content repository.


    karlg\@arsdigita.com
    -Last Modified: $‌Id: design.html,v 1.2 2017/08/07 23:47:47 gustafn +Last Modified: $‌Id: design.html,v 1.3 2018/07/03 18:19:14 hectorr Exp $ Index: openacs-4/packages/acs-content-repository/www/doc/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/doc/index.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-content-repository/www/doc/index.adp 30 Apr 2018 08:15:07 -0000 1.4 +++ openacs-4/packages/acs-content-repository/www/doc/index.adp 3 Sep 2021 09:14:39 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-content-repository {ACS Content Repository}} {ACS Content Repository} +{/doc/acs-content-repository/ {ACS Content Repository}} {ACS Content Repository} ACS Content Repository

    ACS Content Repository

    Index: openacs-4/packages/acs-content-repository/www/doc/install.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/doc/install.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-content-repository/www/doc/install.adp 30 Apr 2018 08:15:07 -0000 1.4 +++ openacs-4/packages/acs-content-repository/www/doc/install.adp 3 Sep 2021 09:14:39 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-content-repository {ACS Content Repository}} {Content Repository: Installation} +{/doc/acs-content-repository/ {ACS Content Repository}} {Content Repository: Installation} Content Repository: Installation

    Installing the Content Repository

    Index: openacs-4/packages/acs-content-repository/www/doc/intermedia.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/doc/intermedia.adp,v diff -u -r1.4.2.1 -r1.4.2.2 --- openacs-4/packages/acs-content-repository/www/doc/intermedia.adp 5 Apr 2021 19:49:48 -0000 1.4.2.1 +++ openacs-4/packages/acs-content-repository/www/doc/intermedia.adp 3 Sep 2021 09:14:39 -0000 1.4.2.2 @@ -1,5 +1,5 @@ -{/doc/acs-content-repository {ACS Content Repository}} {Content Repository: Testing Intermedia} +{/doc/acs-content-repository/ {ACS Content Repository}} {Content Repository: Testing Intermedia} Content Repository: Testing Intermedia

    Testing Intermedia

    @@ -28,8 +28,7 @@ cause an error that you can ignore.

    Create an Intermedia index on the test table with INSO filtering:

    -
    -create index cr_test_documents_idx on cr_test_documents ( doc )
    +
    create index cr_test_documents_idx on cr_test_documents ( doc )
       indextype is ctxsys.context
       parameters ('FILTER content_filter_pref' );

    Load test documents

    @@ -47,14 +46,13 @@ ext_fname FILLER CHAR(80), doc LOBFILE(ext_fname) TERMINATED BY EOF)

    Copy any number of documents (Microsoft Word, PDF, text, HTML, -etc.) to the filesystem of your database server. Create a data -file with an entry for each document you would like to load. This -is simply a comma-separated text file:

    +etc.) to the filesystem of your database server. Create a data file +with an entry for each document you would like to load. This is +simply a comma-separated text file:

    word, Simple Story,sample-docs/simple.doc,
     excel, Simple Spreadsheet,sample-docs/simple.xls

    Load the documents from the command line:

    -
    -$ sqlldr userid=cms/cms control=cr-test-docs.ctl log=cr-test-docs.log
    +
    $ sqlldr userid=cms/cms control=cr-test-docs.ctl log=cr-test-docs.log
     
     SQL*Loader: Release 8.1.6.2.0 - Production on Thu Nov 9 13:36:56 2000
     
    @@ -77,5 +75,5 @@
     karlg\@arsdigita.com
     
    -Last revised: $‌Id: intermedia.html,v 1.2 2017/08/07 23:47:47 +Last revised: $‌Id: intermedia.html,v 1.2.2.1 2021/04/05 19:49:48 gustafn Exp $ Index: openacs-4/packages/acs-content-repository/www/doc/object-model.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/doc/object-model.adp,v diff -u -r1.5 -r1.5.2.1 --- openacs-4/packages/acs-content-repository/www/doc/object-model.adp 30 Apr 2018 08:15:07 -0000 1.5 +++ openacs-4/packages/acs-content-repository/www/doc/object-model.adp 3 Sep 2021 09:14:39 -0000 1.5.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-content-repository {ACS Content Repository}} {Content Repository: Object Model} +{/doc/acs-content-repository/ {ACS Content Repository}} {Content Repository: Object Model} Content Repository: Object Model

    Object Model

    Index: openacs-4/packages/acs-content-repository/www/doc/requirements.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/doc/requirements.adp,v diff -u -r1.4.2.1 -r1.4.2.2 --- openacs-4/packages/acs-content-repository/www/doc/requirements.adp 5 Apr 2021 19:49:48 -0000 1.4.2.1 +++ openacs-4/packages/acs-content-repository/www/doc/requirements.adp 3 Sep 2021 09:14:39 -0000 1.4.2.2 @@ -1,5 +1,5 @@ -{/doc/acs-content-repository {ACS Content Repository}} {Content Repository Requirements} +{/doc/acs-content-repository/ {ACS Content Repository}} {Content Repository Requirements} Content Repository Requirements

    Content Repository Requirements

    @@ -140,10 +140,10 @@ at the third level down from the root of the hierarchy.

    40.20.5 Content Folder.

    A folder is analogous to a folder or directory in a -filesystem. It represents a level in the content item hierarchy. -In the previous example, press-releases is a folder -under the repository root, and products is folder within -that. The description of a folder may include the following +filesystem. It represents a level in the content item hierarchy. In +the previous example, press-releases is a folder under +the repository root, and products is folder within that. +The description of a folder may include the following information:

    40.20.5.10. A URL-encoded name for building the @@ -398,5 +398,5 @@ karlg\@arsdigita.com
    -Last Modified: $‌Id: requirements.html,v 1.3 2017/08/07 23:47:47 +Last Modified: $‌Id: requirements.html,v 1.3.2.1 2021/04/05 19:49:48 gustafn Exp $ Index: openacs-4/packages/acs-content-repository/www/doc/todo.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/doc/todo.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-content-repository/www/doc/todo.adp 7 Aug 2017 23:47:47 -0000 1.3 +++ openacs-4/packages/acs-content-repository/www/doc/todo.adp 3 Sep 2021 09:14:40 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-content-repository {ACS Content Repository}} {} +{/doc/acs-content-repository/ {ACS Content Repository}} {}

    To Do List for Content Management System

    Index: openacs-4/packages/acs-content-repository/www/doc/tutorial.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/doc/tutorial.adp,v diff -u -r1.6.2.2 -r1.6.2.3 --- openacs-4/packages/acs-content-repository/www/doc/tutorial.adp 5 Apr 2021 19:49:48 -0000 1.6.2.2 +++ openacs-4/packages/acs-content-repository/www/doc/tutorial.adp 3 Sep 2021 09:14:40 -0000 1.6.2.3 @@ -1,10 +1,11 @@ -{/doc/acs-content-repository {ACS Content Repository}} {ACS Content Repository Tutorial} +{/doc/acs-content-repository/ {ACS Content Repository}} {ACS Content Repository Tutorial} ACS Content Repository Tutorial

    How to use the content repository

    -by Jade Rubick +by Jade +Rubick

    Why use the content repository?

    Let's say you're a developer making a package for OpenACS. You've heard statements like, "every package @@ -771,7 +772,8 @@ attributes.

    -
    Content Folder
    A folder is analogous to a folder or directory in a filesystem. It represents a level in the content item hierarchy. In the +
    Content Folder
    A folder is analogous to a folder or directory in a filesystem. +It represents a level in the content item hierarchy. In the previous example, press-releases is a folder under the repository root, and products is folder within that.
    Index: openacs-4/packages/acs-content-repository/www/doc/uninstall.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/doc/uninstall.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-content-repository/www/doc/uninstall.adp 30 Apr 2018 08:15:07 -0000 1.4 +++ openacs-4/packages/acs-content-repository/www/doc/uninstall.adp 3 Sep 2021 09:14:40 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-content-repository {ACS Content Repository}} {Content Repository: Uninstalling} +{/doc/acs-content-repository/ {ACS Content Repository}} {Content Repository: Uninstalling} Content Repository: Uninstalling

    Uninstalling the Content Repository

    Index: openacs-4/packages/acs-content-repository/www/doc/api/content.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/doc/api/content.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-content-repository/www/doc/api/content.adp 30 Apr 2018 08:15:07 -0000 1.4 +++ openacs-4/packages/acs-content-repository/www/doc/api/content.adp 3 Sep 2021 09:14:40 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-content-repository {ACS Content Repository}} {Package: content} +{/doc/acs-content-repository/ {ACS Content Repository}} {Package: content} Package: content

    content

    Index: openacs-4/packages/acs-content-repository/www/doc/api/extlink.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/doc/api/extlink.adp,v diff -u -r1.4.2.1 -r1.4.2.2 --- openacs-4/packages/acs-content-repository/www/doc/api/extlink.adp 5 Apr 2021 19:49:49 -0000 1.4.2.1 +++ openacs-4/packages/acs-content-repository/www/doc/api/extlink.adp 3 Sep 2021 09:14:40 -0000 1.4.2.2 @@ -1,5 +1,5 @@ -{/doc/acs-content-repository {ACS Content Repository}} {Package: content_extlink} +{/doc/acs-content-repository/ {ACS Content Repository}} {Package: content_extlink} Package: content_extlink

    content_extlink

    @@ -114,5 +114,5 @@ -Last Modified: $‌Id: extlink.html,v 1.2 2017/08/07 23:47:47 gustafn -Exp $ +Last Modified: $‌Id: extlink.html,v 1.2.2.1 2021/04/05 19:49:49 +gustafn Exp $ Index: openacs-4/packages/acs-content-repository/www/doc/api/folder.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/doc/api/folder.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-content-repository/www/doc/api/folder.adp 30 Apr 2018 08:15:07 -0000 1.4 +++ openacs-4/packages/acs-content-repository/www/doc/api/folder.adp 3 Sep 2021 09:14:40 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-content-repository {ACS Content Repository}} {Package: content_folder} +{/doc/acs-content-repository/ {ACS Content Repository}} {Package: content_folder} Package: content_folder

    content_folder

    Index: openacs-4/packages/acs-content-repository/www/doc/api/item.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/doc/api/item.adp,v diff -u -r1.6.2.1 -r1.6.2.2 --- openacs-4/packages/acs-content-repository/www/doc/api/item.adp 10 Aug 2019 18:09:52 -0000 1.6.2.1 +++ openacs-4/packages/acs-content-repository/www/doc/api/item.adp 3 Sep 2021 09:14:40 -0000 1.6.2.2 @@ -1,5 +1,5 @@ -{/doc/acs-content-repository {ACS Content Repository}} {Package: content_item} +{/doc/acs-content-repository/ {ACS Content Repository}} {Package: content_item} Package: content_item

    content_item

    @@ -741,5 +741,5 @@

     

    -Last Modified: $‌Id: item.html,v 1.6 2018/04/11 21:35:06 hectorr Exp -$ +Last Modified: $‌Id: item.html,v 1.6.2.1 2019/08/10 18:09:52 gustafn +Exp $ Index: openacs-4/packages/acs-content-repository/www/doc/api/keyword.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/doc/api/keyword.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-content-repository/www/doc/api/keyword.adp 30 Apr 2018 08:15:07 -0000 1.4 +++ openacs-4/packages/acs-content-repository/www/doc/api/keyword.adp 3 Sep 2021 09:14:40 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-content-repository {ACS Content Repository}} {Package: content_keyword} +{/doc/acs-content-repository/ {ACS Content Repository}} {Package: content_keyword} Package: content_keyword

    content_keyword

    Index: openacs-4/packages/acs-content-repository/www/doc/api/permission.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/doc/api/permission.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-content-repository/www/doc/api/permission.adp 30 Apr 2018 08:15:07 -0000 1.4 +++ openacs-4/packages/acs-content-repository/www/doc/api/permission.adp 3 Sep 2021 09:14:41 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-content-repository {ACS Content Repository}} {Package: content_permission} +{/doc/acs-content-repository/ {ACS Content Repository}} {Package: content_permission} Package: content_permission

    content_permission

    Index: openacs-4/packages/acs-content-repository/www/doc/api/revision.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/doc/api/revision.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-content-repository/www/doc/api/revision.adp 30 Apr 2018 08:15:07 -0000 1.4 +++ openacs-4/packages/acs-content-repository/www/doc/api/revision.adp 3 Sep 2021 09:14:41 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-content-repository {ACS Content Repository}} {Package: content_revision} +{/doc/acs-content-repository/ {ACS Content Repository}} {Package: content_revision} Package: content_revision

    content_revision

    Index: openacs-4/packages/acs-content-repository/www/doc/api/symlink.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/doc/api/symlink.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-content-repository/www/doc/api/symlink.adp 30 Apr 2018 08:15:07 -0000 1.4 +++ openacs-4/packages/acs-content-repository/www/doc/api/symlink.adp 3 Sep 2021 09:14:41 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-content-repository {ACS Content Repository}} {Package: content_symlink} +{/doc/acs-content-repository/ {ACS Content Repository}} {Package: content_symlink} Package: content_symlink

    content_symlink

    Index: openacs-4/packages/acs-content-repository/www/doc/api/template.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/doc/api/template.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-content-repository/www/doc/api/template.adp 30 Apr 2018 08:15:07 -0000 1.4 +++ openacs-4/packages/acs-content-repository/www/doc/api/template.adp 3 Sep 2021 09:14:41 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-content-repository {ACS Content Repository}} {Package: content_template} +{/doc/acs-content-repository/ {ACS Content Repository}} {Package: content_template} Package: content_template

    content_template

    Index: openacs-4/packages/acs-content-repository/www/doc/api/type.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/doc/api/type.adp,v diff -u -r1.5 -r1.5.2.1 --- openacs-4/packages/acs-content-repository/www/doc/api/type.adp 30 Apr 2018 08:15:07 -0000 1.5 +++ openacs-4/packages/acs-content-repository/www/doc/api/type.adp 3 Sep 2021 09:14:41 -0000 1.5.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-content-repository {ACS Content Repository}} {Package: content_type} +{/doc/acs-content-repository/ {ACS Content Repository}} {Package: content_type} Package: content_type

    content_type

    Index: openacs-4/packages/acs-content-repository/www/doc/guide/access-control.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/doc/guide/access-control.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-content-repository/www/doc/guide/access-control.adp 7 Aug 2017 23:47:47 -0000 1.3 +++ openacs-4/packages/acs-content-repository/www/doc/guide/access-control.adp 3 Sep 2021 09:14:41 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-content-repository {ACS Content Repository}} {} +{/doc/acs-content-repository/ {ACS Content Repository}} {}

    Last Modified: $‌Id: access-control.html,v 1.1.1.1 2001/03/13 Index: openacs-4/packages/acs-content-repository/www/doc/guide/convert.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/doc/guide/convert.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-content-repository/www/doc/guide/convert.adp 30 Apr 2018 08:15:07 -0000 1.4 +++ openacs-4/packages/acs-content-repository/www/doc/guide/convert.adp 3 Sep 2021 09:14:41 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-content-repository {ACS Content Repository}} {Content Repository Developer Guide: HTML Conversion} +{/doc/acs-content-repository/ {ACS Content Repository}} {Content Repository Developer Guide: HTML Conversion} Content Repository Developer Guide: HTML Conversion

    Converting Binary Documents to HTML

    Index: openacs-4/packages/acs-content-repository/www/doc/guide/file-system.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/doc/guide/file-system.adp,v diff -u -r1.5.2.1 -r1.5.2.2 --- openacs-4/packages/acs-content-repository/www/doc/guide/file-system.adp 5 Apr 2021 19:49:49 -0000 1.5.2.1 +++ openacs-4/packages/acs-content-repository/www/doc/guide/file-system.adp 3 Sep 2021 09:14:41 -0000 1.5.2.2 @@ -1,5 +1,5 @@ -{/doc/acs-content-repository {ACS Content Repository}} {Content Repository Developer Guide: Organizing Content +{/doc/acs-content-repository/ {ACS Content Repository}} {Content Repository Developer Guide: Organizing Content Items} Content Repository Developer Guide: Organizing Content Items @@ -116,5 +116,5 @@ karlg\@arsdigita.com
    -Last Modified: $‌Id: file-system.html,v 1.2 2017/08/07 23:47:47 +Last Modified: $‌Id: file-system.html,v 1.4.2.1 2021/04/05 19:49:49 gustafn Exp $ Index: openacs-4/packages/acs-content-repository/www/doc/guide/items.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/doc/guide/items.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-content-repository/www/doc/guide/items.adp 30 Apr 2018 08:15:07 -0000 1.4 +++ openacs-4/packages/acs-content-repository/www/doc/guide/items.adp 3 Sep 2021 09:14:41 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-content-repository {ACS Content Repository}} {Content Repository Developer Guide: Creating Content +{/doc/acs-content-repository/ {ACS Content Repository}} {Content Repository Developer Guide: Creating Content Items} Content Repository Developer Guide: Creating Content Items @@ -12,8 +12,7 @@

    Content items are initialized using the content_item.new function. A name is the only parameter required to create an item:

    -
    -item_id := content_item.new( name => 'my_item' );
    +
    item_id := content_item.new( name => 'my_item' );

    The name represents the tail of the URL for that content item. In most cases you will want to create items in a particular context with the repository hierarchy:

    @@ -45,8 +44,7 @@

    If a content item has at least one revision, then it can be published by calling the content_item.set_live_revision procedure, which takes as input a revision_id:

    -
    -content_item.set_live_revision( revision_id => :revision_id );
    +
    content_item.set_live_revision( revision_id => :revision_id );

    karlg\@arsdigita.com

    Last Modified: $‌Id: items.html,v 1.2 2017/08/07 23:47:47 gustafn Index: openacs-4/packages/acs-content-repository/www/doc/guide/keywords.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/doc/guide/keywords.adp,v diff -u -r1.4.2.1 -r1.4.2.2 --- openacs-4/packages/acs-content-repository/www/doc/guide/keywords.adp 5 Apr 2021 19:49:49 -0000 1.4.2.1 +++ openacs-4/packages/acs-content-repository/www/doc/guide/keywords.adp 3 Sep 2021 09:14:41 -0000 1.4.2.2 @@ -1,5 +1,5 @@ -{/doc/acs-content-repository {ACS Content Repository}} {Content Repository Developer Guide: Subject Keywords +{/doc/acs-content-repository/ {ACS Content Repository}} {Content Repository Developer Guide: Subject Keywords (Categories)} Content Repository Developer Guide: Subject Keywords (Categories) Index: openacs-4/packages/acs-content-repository/www/doc/guide/object-relationships.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/doc/guide/object-relationships.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-content-repository/www/doc/guide/object-relationships.adp 30 Apr 2018 08:15:07 -0000 1.4 +++ openacs-4/packages/acs-content-repository/www/doc/guide/object-relationships.adp 3 Sep 2021 09:14:42 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-content-repository {ACS Content Repository}} {Content Repository Developer Guide: Object +{/doc/acs-content-repository/ {ACS Content Repository}} {Content Repository Developer Guide: Object Relationships} Content Repository Developer Guide: Object Relationships Index: openacs-4/packages/acs-content-repository/www/doc/guide/publish.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/doc/guide/publish.adp,v diff -u -r1.4.2.1 -r1.4.2.2 --- openacs-4/packages/acs-content-repository/www/doc/guide/publish.adp 5 Apr 2021 19:49:49 -0000 1.4.2.1 +++ openacs-4/packages/acs-content-repository/www/doc/guide/publish.adp 3 Sep 2021 09:14:42 -0000 1.4.2.2 @@ -1,5 +1,5 @@ -{/doc/acs-content-repository {ACS Content Repository}} {Content Repository Developer Guide: Publishing +{/doc/acs-content-repository/ {ACS Content Repository}} {Content Repository Developer Guide: Publishing Content} Content Repository Developer Guide: Publishing Content @@ -122,5 +122,5 @@ karlg\@arsdigita.com
    -Last Modified: $‌Id: publish.html,v 1.5 2017/08/07 23:47:47 gustafn -Exp $ +Last Modified: $‌Id: publish.html,v 1.5.2.1 2021/04/05 19:49:49 +gustafn Exp $ Index: openacs-4/packages/acs-content-repository/www/doc/guide/revisions.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/doc/guide/revisions.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-content-repository/www/doc/guide/revisions.adp 30 Apr 2018 08:15:07 -0000 1.4 +++ openacs-4/packages/acs-content-repository/www/doc/guide/revisions.adp 3 Sep 2021 09:14:42 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-content-repository {ACS Content Repository}} {Content Repository Developer Guide: Creating Content +{/doc/acs-content-repository/ {ACS Content Repository}} {Content Repository Developer Guide: Creating Content Revisions} Content Repository Developer Guide: Creating Content Revisions Index: openacs-4/packages/acs-content-repository/www/doc/guide/search.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/doc/guide/search.adp,v diff -u -r1.5 -r1.5.2.1 --- openacs-4/packages/acs-content-repository/www/doc/guide/search.adp 3 Jul 2018 18:19:14 -0000 1.5 +++ openacs-4/packages/acs-content-repository/www/doc/guide/search.adp 3 Sep 2021 09:14:42 -0000 1.5.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-content-repository {ACS Content Repository}} {Content Repository Developer Guide: Search} +{/doc/acs-content-repository/ {ACS Content Repository}} {Content Repository Developer Guide: Search} Content Repository Developer Guide: Search

    Search

    @@ -113,5 +113,5 @@ karlg\@arsdigita.com
    -Last Modified: $‌Id: search.html,v 1.2 2017/08/07 23:47:47 gustafn +Last Modified: $‌Id: search.html,v 1.3 2018/07/03 18:19:14 hectorr Exp $ Index: openacs-4/packages/acs-content-repository/www/doc/guide/storage.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/doc/guide/storage.adp,v diff -u -r1.4.2.1 -r1.4.2.2 --- openacs-4/packages/acs-content-repository/www/doc/guide/storage.adp 5 Apr 2021 19:49:49 -0000 1.4.2.1 +++ openacs-4/packages/acs-content-repository/www/doc/guide/storage.adp 3 Sep 2021 09:14:42 -0000 1.4.2.2 @@ -1,5 +1,5 @@ -{/doc/acs-content-repository {ACS Content Repository}} {} +{/doc/acs-content-repository/ {ACS Content Repository}} {}

    Storing Data in the Content Repository

    @@ -110,5 +110,5 @@
      ns_ora write_blob ...

    karlg\@arsdigita.com -

    Last Modified: $‌Id: storage.html,v 1.2 2017/08/07 23:47:47 +

    Last Modified: $‌Id: storage.html,v 1.2.2.1 2021/04/05 19:49:49 gustafn Exp $

    Index: openacs-4/packages/acs-content-repository/www/doc/guide/template.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/doc/guide/template.adp,v diff -u -r1.4.2.1 -r1.4.2.2 --- openacs-4/packages/acs-content-repository/www/doc/guide/template.adp 5 Apr 2021 19:49:49 -0000 1.4.2.1 +++ openacs-4/packages/acs-content-repository/www/doc/guide/template.adp 3 Sep 2021 09:14:42 -0000 1.4.2.2 @@ -1,5 +1,5 @@ -{/doc/acs-content-repository {ACS Content Repository}} {Content Repository Developer Guide: Applying +{/doc/acs-content-repository/ {ACS Content Repository}} {Content Repository Developer Guide: Applying Templates} Content Repository Developer Guide: Applying Templates @@ -10,7 +10,8 @@ Guide

    The content repository allows you to associate templates with both content types and individual content items. A template -determines how a content item is rendered when exported to the filesystem or served directly to a client.

    +determines how a content item is rendered when exported to the +filesystem or served directly to a client.

    The content repository does not make any assumptions about the type of templating system used by the application server with which it is being used. Templates are simply made available to the @@ -125,5 +126,5 @@ );


    karlg\@arsdigita.com -

    Last Modified: $‌Id: template.html,v 1.2 2017/08/07 23:47:47 +

    Last Modified: $‌Id: template.html,v 1.2.2.1 2021/04/05 19:49:49 gustafn Exp $

    Index: openacs-4/packages/acs-content-repository/www/doc/guide/types.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/doc/guide/types.adp,v diff -u -r1.4.2.1 -r1.4.2.2 --- openacs-4/packages/acs-content-repository/www/doc/guide/types.adp 10 Aug 2019 18:09:52 -0000 1.4.2.1 +++ openacs-4/packages/acs-content-repository/www/doc/guide/types.adp 3 Sep 2021 09:14:43 -0000 1.4.2.2 @@ -1,5 +1,5 @@ -{/doc/acs-content-repository {ACS Content Repository}} {Content Repository Developer Guide: Defining Content +{/doc/acs-content-repository/ {ACS Content Repository}} {Content Repository Developer Guide: Defining Content Types} Content Repository Developer Guide: Defining Content Types @@ -110,5 +110,5 @@ details.


    templating\@arsdigita.com -

    Last Modified: $‌Id: types.html,v 1.2 2017/08/07 23:47:47 gustafn -Exp $

    +

    Last Modified: $‌Id: types.html,v 1.2.2.1 2019/08/10 18:09:52 +gustafn Exp $

    Index: openacs-4/packages/acs-content-repository/www/doc/guide/workflow.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-content-repository/www/doc/guide/workflow.adp,v diff -u -r1.5 -r1.5.2.1 --- openacs-4/packages/acs-content-repository/www/doc/guide/workflow.adp 30 Apr 2018 08:15:07 -0000 1.5 +++ openacs-4/packages/acs-content-repository/www/doc/guide/workflow.adp 3 Sep 2021 09:14:43 -0000 1.5.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-content-repository {ACS Content Repository}} {Content Repository Developer Guide: Workflow} +{/doc/acs-content-repository/ {ACS Content Repository}} {Content Repository Developer Guide: Workflow} Content Repository Developer Guide: Workflow

    Applying Workflow to Content Items

    Index: openacs-4/packages/acs-core-docs/www/acs-admin.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/acs-admin.adp,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/acs-core-docs/www/acs-admin.adp 26 Aug 2020 07:46:24 -0000 1.4.2.2 +++ openacs-4/packages/acs-core-docs/www/acs-admin.adp 3 Sep 2021 09:14:43 -0000 1.4.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Part II. Administrator's Guide} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Part II. Administrator's Guide} Part II. Administrator's Guide {/doc/acs-core-docs {ACS Core Documentation}} {Part III. For OpenACS Package Developers}
    +{/doc/acs-core-docs/ {ACS Core Documentation}} {Part III. For OpenACS Package Developers} Part III. For OpenACS Package Developers {/doc/acs-core-docs {ACS Core Documentation}} {Part IV. For OpenACS Platform Developers} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Part IV. For OpenACS Platform Developers} Part IV. For OpenACS Platform Developers {/doc/acs-core-docs {ACS Core Documentation}} {Install Analog web file analyzer} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Install Analog web file analyzer} Install Analog web file analyzer {/doc/acs-core-docs {ACS Core Documentation}} {Set up Log Analysis Reports} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Set up Log Analysis Reports} Set up Log Analysis Reports
  • -

    Run it.

    -[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ /usr/share/analog-5.32/analog -G -g/var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/analog.cfg
    +

    Run it.

    [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ /usr/share/analog-5.32/analog -G -g/var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/analog.cfg
     /usr/share/analog-5.32/analog: analog version 5.32/Unix
     /usr/share/analog-5.32/analog: Warning F: Failed to open DNS input file
       /home/$OPENACS_SERVICE_NAME/dnscache: ignoring it
    @@ -43,8 +42,7 @@
     [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$

    Verify that it works by browing to http://yourserver.test:8000/log/traffic.html

  • -

    Automate this by creating a file in /etc/cron.daily.

    -[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ exit
    +

    Automate this by creating a file in /etc/cron.daily.

    [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ exit
     logout
     
     [root root]# emacs /etc/cron.daily/analog
    Index: openacs-4/packages/acs-core-docs/www/aolserver.adp
    ===================================================================
    RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/aolserver.adp,v
    diff -u -r1.5.2.2 -r1.5.2.3
    --- openacs-4/packages/acs-core-docs/www/aolserver.adp	26 Aug 2020 07:46:24 -0000	1.5.2.2
    +++ openacs-4/packages/acs-core-docs/www/aolserver.adp	3 Sep 2021 09:14:43 -0000	1.5.2.3
    @@ -1,5 +1,5 @@
     
    -{/doc/acs-core-docs {ACS Core Documentation}} {Install AOLserver 3.3oacs1}
    +{/doc/acs-core-docs/ {ACS Core Documentation}} {Install AOLserver 3.3oacs1}
     Install AOLserver 3.3oacs1
     
     
    -

    Edit the file CONFIG and change this section:

    -# ----------------------------------------------------
    +

    Edit the file CONFIG and change this section:

    # ----------------------------------------------------
     # aolsrc="/usr/src/aolserver-3.4"
     # ../configure --enable-threads --disable-tdomalloc \
     #   --with-aolserver=$aolsrc \
    -#   --with-tcl=$aolsrc/tcl8.3.4/unix 

    to

    -# ----------------------------------------------------
    +#   --with-tcl=$aolsrc/tcl8.3.4/unix 

    to

    # ----------------------------------------------------
     aolsrc="/usr/local/src/aolserver/aolserver"
     ../configure --enable-threads --disable-tdomalloc \
       --with-aolserver=$aolsrc \
    Index: openacs-4/packages/acs-core-docs/www/aolserver4.adp
    ===================================================================
    RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/aolserver4.adp,v
    diff -u -r1.4.2.2 -r1.4.2.3
    --- openacs-4/packages/acs-core-docs/www/aolserver4.adp	26 Aug 2020 07:46:25 -0000	1.4.2.2
    +++ openacs-4/packages/acs-core-docs/www/aolserver4.adp	3 Sep 2021 09:14:45 -0000	1.4.2.3
    @@ -1,5 +1,5 @@
     
    -{/doc/acs-core-docs {ACS Core Documentation}} {Install AOLserver 4}
    +{/doc/acs-core-docs/ {ACS Core Documentation}} {Install AOLserver 4}
     Install AOLserver 4
     
     
    [root nscache]# cd ../nspostgres
     [root nspostgres]# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/pgsql/lib:/usr/local/aolserver/lib
     [root nspostgres]# make install POSTGRES=LSB ACS=1 INST=/usr/local/aolserver  AOLSERVER=/usr/local/aolserver
    -

    If you get errors like:

    -nspostgres.c: In function `Ns_PgTableList':
    +

    If you get errors like:

    nspostgres.c: In function `Ns_PgTableList':
     nspostgres.c:679: warning: passing arg 3 of `Tcl_DStringAppend' as signed due to prototype

    then PostGreSQL is probably not in the standard location. The location of PostGreSQL is very dependent on which method was used to install it. To correct the problem, replace LSB with the path to the path to your @@ -155,8 +154,7 @@ Install tDOM

    [root nssha1]# cd ../tDOM-0.8.0/unix
     

    Edit the CONFIG file. Uncomment the instructions meant for AOLserver 4, but edit it to -look like this:

    -../configure --enable-threads --disable-tdomalloc
    +look like this:

    ../configure --enable-threads --disable-tdomalloc
               --prefix=/usr/local/aolserver --with-tcl=/usr/local/lib

    Note that the location of the Tcl library may vary on different platforms (e.g. for Debian 3.0: --with-tcl=/usr/lib/tcl8.4)

    Now you can compile and configure tDOM

    [root unix]# sh CONFIG
     [root unix]# make install
    Index: openacs-4/packages/acs-core-docs/www/apm-design.adp
    ===================================================================
    RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/apm-design.adp,v
    diff -u -r1.4.2.3 -r1.4.2.4
    --- openacs-4/packages/acs-core-docs/www/apm-design.adp	5 Jan 2021 17:33:39 -0000	1.4.2.3
    +++ openacs-4/packages/acs-core-docs/www/apm-design.adp	3 Sep 2021 09:14:46 -0000	1.4.2.4
    @@ -1,5 +1,5 @@
     
    -{/doc/acs-core-docs {ACS Core Documentation}} {Package Manager Design}
    +{/doc/acs-core-docs/ {ACS Core Documentation}} {Package Manager Design}
     Package Manager Design
     
     
     

    -Introduction

    In general terms, a package is a unit of software that +Introduction

    In general, a package is a unit of software that serves a single well-defined purpose. That purpose may be to provide a service directly to one or more classes of end-user, (e.g., discussion forums and file storage for community members, 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.42.2.1 -r1.42.2.2 --- openacs-4/packages/acs-core-docs/www/apm-design.html 2 Mar 2019 19:30:04 -0000 1.42.2.1 +++ openacs-4/packages/acs-core-docs/www/apm-design.html 3 Sep 2021 09:14:47 -0000 1.42.2.2 @@ -7,7 +7,7 @@ apm-install-procs.tcl (Supports installation of packages)

  • 30-apm-load-procs.tcl (Bootstraps APM for server startup)

  • apm-admin-procs.tcl (Supports APM UI)

  • PL/SQL file

  • Introduction

    -In general terms, a package is a unit of software that +In general, a package is a unit of software that serves a single well-defined purpose. That purpose may be to provide a service directly to one or more classes of end-user, (e.g., discussion forums and file storage for community members, user profiling tools for the site @@ -509,7 +509,7 @@ This approach has certain advantages, such as centralization, but splitting this information into several files allows for flexible extensions to the APM architecture over time.

    APM packages currently lack provisions to verify security information. -There are plans to add MD5 time stamps and PGP signatures to packages to +There are plans to add MD5 timestamps and PGP signatures to packages to enable secure authentication of packages. These steps are necessary for APM to be usable as a scalable method to distribute packages on multiple repositories worldwide.

    Another anticipated change is to split the APM UI into separate systems Index: openacs-4/packages/acs-core-docs/www/apm-requirements.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/apm-requirements.adp,v diff -u -r1.4.2.3 -r1.4.2.4 --- openacs-4/packages/acs-core-docs/www/apm-requirements.adp 5 Jan 2021 17:33:39 -0000 1.4.2.3 +++ openacs-4/packages/acs-core-docs/www/apm-requirements.adp 3 Sep 2021 09:14:48 -0000 1.4.2.4 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Package Manager Requirements} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Package Manager Requirements} Package Manager Requirements

    In general terms, a package is a unit of software that serves a -single well-defined purpose. The OpenACS Package Manager (APM) -provides a mechanism for packaging, installing, and configuring -OpenACS software in a consistent, user-friendly, and subsite-aware +to other OpenACS sites.

    In general, a package is a unit of software that serves a single +well-defined purpose. The OpenACS Package Manager (APM) provides a +mechanism for packaging, installing, and configuring OpenACS +software in a consistent, user-friendly, and subsite-aware manner.

    @@ -71,7 +71,8 @@

  • A registry of installed -packages, database-backed and integrated with filesystem-based version control

  • +packages, database-backed and integrated with +filesystem-based version control

  • Web-based tools for package development:

    • Creating new packages locally

    • Releasing new versions of locally-created packages

    • Uploading packages to a global package repository on the web

    • Use of these tools should be safe, i.e. installing or removing a @@ -309,7 +310,9 @@ package

      20.1 The developer must be able to add files to the package. This is done by copying -the files into the package directory in the host OS's filesystem. Files can be added at any point after package creation.

      +the files into the package directory in the host OS's +filesystem. Files can be added at any point after package +creation.

      20.3 Once a package has been versioned and distributed, no new files should be added to the package without incrementing the version number.

      @@ -349,8 +352,8 @@ 40.0 Modify files in a package.

      40.1 The developer -should be able to modify files in the filesystem. The APM UI -should not interfere with this.

      +should be able to modify files in the filesystem. The APM UI should +not interfere with this.

      40.5 However, if the developer modifies files containing procedural definitions, APM UI should allow a means to watch those files and @@ -588,8 +591,8 @@

      150.0 Scan for new or modified packages

      150.1 The -administrator should be able to scan the filesystem for any -changes made in any of the installed package files.

      +administrator should be able to scan the filesystem for any changes +made in any of the installed package files.

      150.5 The administrator should be able to scan the filesystem for any newly installed packages.

      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.38.2.1 -r1.38.2.2 --- openacs-4/packages/acs-core-docs/www/apm-requirements.html 2 Mar 2019 19:30:04 -0000 1.38.2.1 +++ openacs-4/packages/acs-core-docs/www/apm-requirements.html 3 Sep 2021 09:14:48 -0000 1.38.2.2 @@ -23,15 +23,15 @@ disturbance to the rest of the system. This allows site owners to steadily offer users new and improved services, and also allows programmers to quickly and easily distribute their OpenACS components in a standardized manner to other -OpenACS sites.

      In general terms, a package is a unit of software that serves a single +OpenACS sites.

      In general, a package is a unit of software that serves a single well-defined purpose. The OpenACS Package Manager (APM) provides a mechanism for packaging, installing, and configuring OpenACS software in a consistent, user-friendly, and subsite-aware manner.

    System Overview

    The OpenACS Package Manager (APM) consists of:

    • A standard format for APM packages including:

      • Version numbering, independent of any other package and the OpenACS as a whole

      • Specification of the package interface

      • Specification of dependencies on other packages (if any)

      • Attribution (who wrote it) and ownership (who maintains it)

    • Web-based tools for package management:

      • Obtaining packages from a remote distribution point

      • Installing packages, if and only if:

        1. All prerequisite packages are installed

        2. No conflicts will be created by the installation

      • Configuring packages (obsoleting the monolithic OpenACS configuration file)

      • Upgrading packages, without clobbering local modifications

      • Uninstalling unwanted packages

    • A registry of installed packages, database-backed and -integrated with file system-based version control +integrated with filesystem-based version control

    • Web-based tools for package development:

      • Creating new packages locally

      • Releasing new versions of locally-created packages

      • Uploading packages to a global package repository on the web

      • Use of these tools should be safe, i.e. installing or removing a package @@ -126,7 +126,7 @@ returned by the system API.

    Requirements: Security

    Provisions will be made to assure that packages are securely identified.

    • 4.600.1 Each package will have a PGP signature and there -will be MD5 time stamps for each file within the package. +will be MD5 timestamps for each file within the package.

    • 4.600.5 The APM will provide a facility to validate both @@ -147,22 +147,22 @@ information for unique fields specified in the data model requirements, the package cannot be created.

    • 20.0 Add files to a package

      20.1 The developer must be able to add files to the package. This is done by copying the files into the package directory in the -host OS's file system. Files can be added at any point after package +host OS's filesystem. Files can be added at any point after package creation.

      20.3 Once a package has been versioned and distributed, no new files should be added to the package without incrementing the version number.

      20.5 The APM's UI should facilitate the process of -adding new files, by scanning the file system for new files automatically, +adding new files, by scanning the filesystem for new files automatically, and allowing the developer to confirm adding them.

      20.10 The developer cannot add files to a given package -via the UI that do not exist in the file system already.

      20.15 Package file structure must follow a specified +via the UI that do not exist in the filesystem already.

      20.15 Package file structure must follow a specified convention. Please see the design document for what we do currently.

    • 30.0 Remove files from a package

      The developer must be able to remove files from a package. This can be done in two ways.

      • 30.1 Access the APM UI, browse the file list, and remove files.

        30.1.1If a file is removed from the package list, but not -from the file system, an error should be generated at package load time.

      • 30.5 Remove the file from file system.

        30.5.1 The APM UI should take note of the fact that the +from the filesystem, an error should be generated at package load time.

      • 30.5 Remove the file from filesystem.

        30.5.1 The APM UI should take note of the fact that the file is gone and offer the developer an option to confirm the file's deletion.

    • 40.0 Modify files in a package.

      40.1 The developer should be able to modify files in the -file system. The APM UI should not interfere with this.

      40.5 However, if the developer modifies files containing +filesystem. The APM UI should not interfere with this.

      40.5 However, if the developer modifies files containing procedural definitions, APM UI should allow a means to watch those files and automatically reload them if changed. See requirement 50.0 for more detail.

      40.10 Also, although a change in files implies that the @@ -178,8 +178,7 @@

    • 60.0 Display an XML package specification

      60.1 The developer should be able to view the XML package specification that encodes all package information. -

    • 70.0 Write an XML package specification to the file -system

      70.1 The developer should be able to write an up-to-date +

    • 70.0 Write an XML package specification to the filesystem

      70.1 The developer should be able to write an up-to-date XML specification to disk.

      70.5 The developer should be able to request the current XML specification for all installed, locally generated packages.

    • 130.0 Distribution file generation

      130.1 The developer should be able to generate a .APM distribution file for the package with just one click.

      130.5 Generating a distribution file implies doing an @@ -246,7 +245,7 @@ is enabled.

  • 110.0 Package Deinstall

    110.1 The administrator must be able to deinstall a package that has already been installed. Deinstallation entails:

    1. 110.1.1 Running any data model scripts necessary to drop the package.

    2. 110.1.5 Moving all of the files into a separate location -in the file system from the installed packages.

    3. 4.110.1.10 If the package is a compound package, then +in the filesystem from the installed packages.

    4. 4.110.1.10 If the package is a compound package, then the administrator must confirm removing all sub-packages. Optionally, some sub-packages can be kept.

    110.5 Deinstalled packages can be re-installed at a later date.

    4.110.10 If deinstalling a package or any of its @@ -256,9 +255,7 @@ package, all related database tables and content.

    120.5 This option can only be used if all package instances are deleted or marked as disabled. This is purposefully cumbersome because deleting all instances of a package can have far-sweeping -consequences throughout a site and should almost never be done.

  • 150.0 Scan for new or modified packages

    150.1 The administrator should be able to scan the file -system for any changes made in any of the installed package files.

    150.5 The administrator should be able to scan the file -system for any newly installed packages. +consequences throughout a site and should almost never be done.

  • 150.0 Scan for new or modified packages

    150.1 The administrator should be able to scan the filesystem for any changes made in any of the installed package files.

    150.5 The administrator should be able to scan the filesystem for any newly installed packages.

  • Requirements: The Sub-Site Administrator's Interface

    If the developer is in charge of creating packages and the administrator for installing them, then the sub-site administrator is responsible for Index: openacs-4/packages/acs-core-docs/www/automated-backup.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/automated-backup.adp,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/acs-core-docs/www/automated-backup.adp 26 Aug 2020 07:46:25 -0000 1.4.2.2 +++ openacs-4/packages/acs-core-docs/www/automated-backup.adp 3 Sep 2021 09:14:48 -0000 1.4.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Automated Backup} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Automated Backup} Automated Backup

  • Set this file to run automatically by adding a line to root's crontab. (Typically, with export EDITOR=emacs; crontab -e.) This -example runs the backup script at 1:30 am every day.

    -30 1 * * *        sh /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/backup.sh
    +example runs the backup script at 1:30 am every day.

    30 1 * * *        sh /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/backup.sh
  • Index: openacs-4/packages/acs-core-docs/www/automated-testing-best-practices.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/automated-testing-best-practices.adp,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/acs-core-docs/www/automated-testing-best-practices.adp 26 Aug 2020 07:46:25 -0000 1.4.2.2 +++ openacs-4/packages/acs-core-docs/www/automated-testing-best-practices.adp 3 Sep 2021 09:14:48 -0000 1.4.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Automated Testing} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Automated Testing} Automated Testing <a href="..."> </a> which would not be clickable if whitespace was allowed as a valid input.

  • -Doubleclick.  Make sure that if you submit -a form, use the back button, and submit again that the behavior is -reasonable (correct behavior depends on what the form is for, but a -server error is not reasonable).

  • +Double-click.  Make sure that if you +submit a form, use the back button, and submit again that the +behavior is reasonable (correct behavior depends on what the form +is for, but a server error is not reasonable).

  • Duplicate names.  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.

  • -
    ($‌Id: auto-testing.xml,v 1.4 2017/08/07 -23:47:54 gustafn Exp $)
    +
    ($‌Id: auto-testing.xml,v 1.4.2.1 2019/08/09 +20:04:23 gustafn Exp $)
    <a href="..."> </a> which would not be clickable if whitespace was allowed as a valid input. -

  • Doubleclick.  +

  • Double-click.  Make sure that if you submit a form, use the back button, and submit again that the behavior is reasonable (correct behavior depends on what the form is for, but a server error is not reasonable). Index: openacs-4/packages/acs-core-docs/www/backup-recovery.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/backup-recovery.adp,v diff -u -r1.4.2.4 -r1.4.2.5 --- openacs-4/packages/acs-core-docs/www/backup-recovery.adp 26 Aug 2020 07:46:25 -0000 1.4.2.4 +++ openacs-4/packages/acs-core-docs/www/backup-recovery.adp 3 Sep 2021 09:14:49 -0000 1.4.2.5 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Chapter 8. Backup and Recovery} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Chapter 8. Backup and Recovery} Chapter 8. Backup and Recovery

    -
    ($‌Id: recovery.xml,v 1.18 2017/08/07 23:47:55 -gustafn Exp $)

    By Don Baccus with additions by Joel Aufrecht +

    ($‌Id: recovery.xml,v 1.18.2.1 2020/07/02 +08:39:25 gustafn Exp $)

    By Don Baccus with additions by Joel Aufrecht

    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).

    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).

    -

    Figure 8.1. Backup and Recovery +

    Figure 8.1. Backup and Recovery Strategy

    Backup and Recovery Strategy


    OpenACS docs are written by the named authors, and may be edited by 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.46.2.3 -r1.46.2.4 --- openacs-4/packages/acs-core-docs/www/backup-recovery.html 27 Jun 2019 18:22:21 -0000 1.46.2.3 +++ openacs-4/packages/acs-core-docs/www/backup-recovery.html 3 Sep 2021 09:14:50 -0000 1.46.2.4 @@ -6,7 +6,7 @@ oracle, while easy to set up, are far from the best solution).

    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).

    -

    Figure 8.1. Backup and Recovery Strategy

    Backup and Recovery Strategy


    +

    Figure 8.1. Backup and Recovery Strategy

    Backup and Recovery Strategy


    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.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/backups-with-cvs.adp,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/acs-core-docs/www/backups-with-cvs.adp 26 Aug 2020 07:46:25 -0000 1.4.2.2 +++ openacs-4/packages/acs-core-docs/www/backups-with-cvs.adp 3 Sep 2021 09:14:50 -0000 1.4.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Using CVS for backup-recovery} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Using CVS for backup-recovery} Using CVS for backup-recovery {/doc/acs-core-docs {ACS Core Documentation}} {Bootstrapping OpenACS} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Bootstrapping OpenACS} Bootstrapping OpenACS {/doc/acs-core-docs {ACS Core Documentation}} {Chapter 3. Complete Installation} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Chapter 3. Complete Installation} Chapter 3. Complete Installation {/doc/acs-core-docs {ACS Core Documentation}} {Configuring an OpenACS package} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Configuring an OpenACS package} Configuring an OpenACS package

    -Configuring an OpenACS package

    After you've installed and mounted your package, you can +Configuring an OpenACS package

    After you've installed and mounted your package, you can configure each instance to act as you would like.

    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-packages.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/configuring-configuring-packages.html,v diff -u -r1.13.2.3 -r1.13.2.4 --- openacs-4/packages/acs-core-docs/www/configuring-configuring-packages.html 27 Jun 2019 18:22:21 -0000 1.13.2.3 +++ openacs-4/packages/acs-core-docs/www/configuring-configuring-packages.html 3 Sep 2021 09:14:51 -0000 1.13.2.4 @@ -2,7 +2,7 @@ Configuring an OpenACS package

    Configuring an OpenACS package

    by Jade Rubick

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

    Configuring an OpenACS package

    After you've installed and mounted your package, you can +

    Configuring an OpenACS package

    After you've installed and mounted your package, you can configure each instance to act as you would like.

    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.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/configuring-configuring-permissions.adp,v diff -u -r1.4.2.4 -r1.4.2.5 --- openacs-4/packages/acs-core-docs/www/configuring-configuring-permissions.adp 26 Aug 2020 07:46:25 -0000 1.4.2.4 +++ openacs-4/packages/acs-core-docs/www/configuring-configuring-permissions.adp 3 Sep 2021 09:14:51 -0000 1.4.2.5 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Setting Permissions on an OpenACS package} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Setting Permissions on an OpenACS package} Setting Permissions on an OpenACS package

    -Setting Permission on an OpenACS +Setting Permission on an OpenACS package

    After you've installed and mounted your package, you can configure each instance to act as you would like.

    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 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.13.2.3 -r1.13.2.4 --- openacs-4/packages/acs-core-docs/www/configuring-configuring-permissions.html 27 Jun 2019 18:22:21 -0000 1.13.2.3 +++ openacs-4/packages/acs-core-docs/www/configuring-configuring-permissions.html 3 Sep 2021 09:14:51 -0000 1.13.2.4 @@ -2,7 +2,7 @@ Setting Permissions on an OpenACS package

    Setting Permissions on an OpenACS package

    by Jade Rubick

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

    Setting Permission on an OpenACS package

    After you've installed and mounted your package, you can +

    Setting Permission on an OpenACS package

    After you've installed and mounted your package, you can configure each instance to act as you would like.

    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.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/configuring-install-packages.adp,v diff -u -r1.4.2.4 -r1.4.2.5 --- openacs-4/packages/acs-core-docs/www/configuring-install-packages.adp 26 Aug 2020 07:46:25 -0000 1.4.2.4 +++ openacs-4/packages/acs-core-docs/www/configuring-install-packages.adp 3 Sep 2021 09:14:51 -0000 1.4.2.5 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Installing OpenACS packages} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Installing OpenACS packages} Installing OpenACS packages

    -Installing OpenACS packages

    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 +Installing OpenACS packages

    An OpenACS package extends your website and lets it do things it +was not able to do before. You can have a weblog, a forums, a calendar, or even do sophisticated project-management via your website.

    After you've installed OpenACS, you can congratulate yourself for a job well done. Then, you'll probably want to 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.13.2.3 -r1.13.2.4 --- openacs-4/packages/acs-core-docs/www/configuring-install-packages.html 27 Jun 2019 18:22:21 -0000 1.13.2.3 +++ openacs-4/packages/acs-core-docs/www/configuring-install-packages.html 3 Sep 2021 09:14:52 -0000 1.13.2.4 @@ -2,8 +2,8 @@ Installing OpenACS packages

    Installing OpenACS packages

    by Jade Rubick

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

    Installing OpenACS packages

    An OpenACS package extends your website and lets it do - things it wasn't able to do before. You can have a weblog, a +

    Installing OpenACS packages

    An OpenACS package extends your website and lets it do + things it was not able to do before. You can have a weblog, a forums, a calendar, or even do sophisticated project-management via your website.

    After you've installed OpenACS, you can congratulate yourself for a job well done. Then, you'll probably want to Index: openacs-4/packages/acs-core-docs/www/configuring-mounting-packages.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/configuring-mounting-packages.adp,v diff -u -r1.4.2.4 -r1.4.2.5 --- openacs-4/packages/acs-core-docs/www/configuring-mounting-packages.adp 26 Aug 2020 07:46:25 -0000 1.4.2.4 +++ openacs-4/packages/acs-core-docs/www/configuring-mounting-packages.adp 3 Sep 2021 09:14:52 -0000 1.4.2.5 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Mounting OpenACS packages} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Mounting OpenACS packages} Mounting OpenACS packages

    -Mounting OpenACS packages

    After you've installed your packages, you have to +Mounting OpenACS packages

    After you've installed your packages, you have to 'mount' them in order to make them appear on your website.

    Make sure you are logged in, and then click on the 'Admin' or 'Control Panel' link to get to the 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.13.2.3 -r1.13.2.4 --- openacs-4/packages/acs-core-docs/www/configuring-mounting-packages.html 27 Jun 2019 18:22:21 -0000 1.13.2.3 +++ openacs-4/packages/acs-core-docs/www/configuring-mounting-packages.html 3 Sep 2021 09:14:52 -0000 1.13.2.4 @@ -2,7 +2,7 @@ Mounting OpenACS packages

    Mounting OpenACS packages

    by Jade Rubick

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

    Mounting OpenACS packages

    After you've installed your packages, you have to 'mount' +

    Mounting OpenACS packages

    After you've installed your packages, you have to 'mount' them in order to make them appear on your website.

    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/configuring-new-site.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/configuring-new-site.adp,v diff -u -r1.4.2.3 -r1.4.2.4 --- openacs-4/packages/acs-core-docs/www/configuring-new-site.adp 5 Jan 2021 17:33:39 -0000 1.4.2.3 +++ openacs-4/packages/acs-core-docs/www/configuring-new-site.adp 3 Sep 2021 09:14:52 -0000 1.4.2.4 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Chapter 4. Configuring a new OpenACS Site} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Chapter 4. Configuring a new OpenACS Site} Chapter 4. Configuring a new OpenACS Site Chapter 4. Configuring a new OpenACS Site

    Chapter 4. Configuring a new OpenACS Site

    by Joel Aufrecht

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

    In this chapter, Configuring refers to making changes to a new OpenACS site through the web interface. In crude terms, these changes happen in the database, and are upgrade-safe. Customizing refers to changes that touch the file system, and require some planning if easy upgradability is to be maintained.

    +

    In this chapter, Configuring refers to making changes to a new OpenACS site through the web interface. In crude terms, these changes happen in the database, and are upgrade-safe. Customizing refers to changes that touch the filesystem, and require some planning if easy upgradability is to be maintained.

    Index: openacs-4/packages/acs-core-docs/www/credits.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/credits.adp,v diff -u -r1.5.2.3 -r1.5.2.4 --- openacs-4/packages/acs-core-docs/www/credits.adp 26 Aug 2020 07:46:25 -0000 1.5.2.3 +++ openacs-4/packages/acs-core-docs/www/credits.adp 3 Sep 2021 09:14:53 -0000 1.5.2.4 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Appendix C. Credits} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Appendix C. Credits} Appendix C. Credits {/doc/acs-core-docs {ACS Core Documentation}} {CVS Guidelines} +{/doc/acs-core-docs/ {ACS Core Documentation}} {CVS Guidelines} CVS Guidelines

    CVS Guidelines

    -
    ($‌Id: cvs.xml,v 1.9 2018/09/30 15:53:28 gustafn -Exp $)

    By Joel Aufrecht with input from Jeff Davis, Branimir Dolicki, +

    ($‌Id: cvs.xml,v 1.9.2.1 2019/08/09 20:04:23 +gustafn Exp $)

    By Joel Aufrecht with input from Jeff Davis, Branimir Dolicki, and Jade Rubick.

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

    Using CVS with OpenACS

    -Getting Started

    All OpenACS code is available anonymously. To get code +Getting Started

    All OpenACS code is available anonymously. To get code anonymously, use the parameter -d:pserver:anonymous\@cvs.openacs.org:/cvsroot immediately after cvs in a cvs command to check out or export code.

    If you are an OpenACS developer, you should check out code so @@ -77,7 +77,7 @@

    -Checkout for Package Development

    If you are actively developing a non-core package, you should +Checkout for Package Development

    If you are actively developing a non-core package, you should work from the latest core release branch. Currently this is oacs-5-9. This ensures that you are working on top of a stable OpenACS core, but still allows you to commit feature changes to @@ -94,7 +94,7 @@ packages and their current state.

    -Checkout for Core Development

    If you are actively developing packages in the OpenACS Core, +Checkout for Core Development

    If you are actively developing packages in the OpenACS Core, work from the HEAD branch. HEAD is used for active development of the next version of core OpenACS. It may be very buggy; it may not even install correctly. Do not use this branch for development of @@ -103,7 +103,7 @@ developer account:

    cvs -d:ext:cvs.openacs.org:/cvsroot checkout acs-core

    To check out HEAD anonymously:

    cvs -d:pserver:anonymous\@cvs.openacs.org:/cvsroot checkout acs-core

    -Checkout .LRN

    .LRN consists of a given version OpenACS core, plus a set of +Checkout .LRN

    .LRN consists of a given version OpenACS core, plus a set of packages. These are collectively packages together to form a distribution of .LRN. F .LRN 2.0.0 sits on top of OpenACS 5.0.0. .LRN also uses an OpenACS install.xml file during installation; @@ -128,7 +128,7 @@

    OpenACS CVS Concepts

    -Modules

    All OpenACS code resides within a single CVS module, +Modules

    All OpenACS code resides within a single CVS module, openacs-4. (The openacs-4 directory contains code for all versions of OpenACS 4 and later, and .LRN 1 and later.) Checking out this module retrieves all @@ -163,7 +163,7 @@ module of the same name.

    - Tags and Branches

    Tags and Branches look similar in commands, but behave + Tags and Branches

    Tags and Branches look similar in commands, but behave differently. A tag is a fixed point on a branch. Check out a tag to get a specific version of OpenACS. Check out a branch to get the most current code for that major-minor version (e.g., 5.0.x or @@ -286,8 +286,7 @@ un-necessary. If you are working on a contrib package, you should move it to /packages. This must be done by an OpenACS administrator. On cvs.openacs.org:

      -
    1. -cp -r /cvsroot/openacs-4/contrib/packages/package0 /cvsroot/openacs-4/packages
    2. Update the modules file as described above.

    3. Remove the directory from cvs in the old location using +

    4. cp -r /cvsroot/openacs-4/contrib/packages/package0 /cvsroot/openacs-4/packages
    5. Update the modules file as described above.

    6. Remove the directory from cvs in the old location using cvs rm. One approach for file in `find | grep -v CVS`; do rm $file; cvs remove $file; done @@ -404,7 +403,7 @@

    - Informal Guidelines

    Informal guidelines which may be obsolete in places and should + Informal Guidelines

    Informal guidelines which may be obsolete in places and should be reviewed:

    Using CVS with OpenACS

    Getting Started

    +

    Using CVS with OpenACS

    Getting Started

    All OpenACS code is available anonymously. To get code anonymously, use the parameter -d:pserver:anonymous@cvs.openacs.org:/cvsroot immediately after cvs in a cvs command to check out or export code. @@ -53,7 +53,7 @@ cd CVSROOT emacs avail

  • Add an avail line of the form:

    avail|username|openacs-4
    cvs commit -m "added commit on X for username" avail

    Checkout for Package Development

    If you are actively developing a non-core package, you + User yournamehere

    into your ~/.ssh/config file, then you can use -d :ext:cvs-server:/cvsroot instead of -d :ext:cvs.openacs.org:/cvsroot. You can then change the definition of cvs-server by changing one file instead of editing hundreds of CVSROOT/Repository files.

    Checkout for Package Development

    If you are actively developing a non-core package, you should work from the latest core release branch. Currently this is oacs-5-9. This ensures that you are working on top of a stable OpenACS core, but still allows you to commit feature @@ -68,13 +68,13 @@ Inventory and Package maintainers and status for a list of available packages and their current state. -

    Checkout for Core Development

    If you are actively developing packages in the OpenACS +

    Checkout for Core Development

    If you are actively developing packages in the OpenACS Core, work from the HEAD branch. HEAD is used for active development of the next version of core OpenACS. It may be very buggy; it may not even install correctly. Do not use this branch for development of non-core features unless your work depends on some of the HEAD core work. To check out HEAD, omit the - -r tag.

    To check out HEAD for development, which requires an OpenACS developer account:

    cvs -d:ext:cvs.openacs.org:/cvsroot checkout acs-core

    To check out HEAD anonymously:

    cvs -d:pserver:anonymous@cvs.openacs.org:/cvsroot checkout acs-core

    Checkout .LRN

    + -r tag.

    To check out HEAD for development, which requires an OpenACS developer account:

    cvs -d:ext:cvs.openacs.org:/cvsroot checkout acs-core

    To check out HEAD anonymously:

    cvs -d:pserver:anonymous@cvs.openacs.org:/cvsroot checkout acs-core

    Checkout .LRN

    .LRN consists of a given version OpenACS core, plus a set of packages. These are collectively packages together to form a distribution of .LRN. F .LRN 2.0.0 sits on top of OpenACS 5.0.0. @@ -89,7 +89,7 @@ mv dotlrn/install.xml ..

    Working with CVS

    Once you have a checkout you can use some commands to track what has changed since you checked out your copy. cvs -n update does not change any files, but reports which changes have been updated or locally modified, or are not present in CVS. -

    To update your files, use cvs update. This will merge changes from the repository with your local files. It has no effect on the cvs.openacs.org repository.

    OpenACS CVS Concepts

    Modules

    +

    To update your files, use cvs update. This will merge changes from the repository with your local files. It has no effect on the cvs.openacs.org repository.

    OpenACS CVS Concepts

    Modules

    All OpenACS code resides within a single CVS module, openacs-4. (The openacs-4 directory contains code for all versions of OpenACS 4 and later, and .LRN 1 and later.) Checking out this module retrieves all OpenACS code of any type. For convenience, subsets of openacs-4 are repackaged as smaller modules.

    acs-core contains only critical common packages. It does not have any user applications, such as forums, @@ -117,7 +117,7 @@ project-manager-all contains the packages required, in combination with acs-core, to run the project-manager package.

    Each OpenACS package (i.e., directory in openacs-4/packages/) is also aliased as a module of the same name. -

    +

    Tags and Branches

    Tags and Branches look similar in commands, but behave differently. A tag is a fixed point on a branch. Check out @@ -317,7 +317,7 @@ flag which defaults to no-effect wouldn't require a TIP. Added a new mandatory flag to an existing function would require a TIP. -

    +

    Informal Guidelines

    Informal guidelines which may be obsolete in places and should be reviewed: Index: openacs-4/packages/acs-core-docs/www/cvs-tips.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/cvs-tips.adp,v diff -u -r1.4.2.4 -r1.4.2.5 --- openacs-4/packages/acs-core-docs/www/cvs-tips.adp 26 Aug 2020 07:46:25 -0000 1.4.2.4 +++ openacs-4/packages/acs-core-docs/www/cvs-tips.adp 3 Sep 2021 09:14:54 -0000 1.4.2.5 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Appendix D. Using CVS with an OpenACS Site} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Appendix D. Using CVS with an OpenACS Site} Appendix D. Using CVS with an OpenACS Site

    Add the Service to CVS - -OPTIONAL. These steps take +OPTIONAL. These steps take an existing OpenACS directory and add it to a CVS repository.

    1. @@ -36,8 +36,7 @@ .bashrc.

      [root root]# su - $OPENACS_SERVICE_NAME
       
       [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ emacs .bashrc
      -

      Put this string into /home/$OPENACS_SERVICE_NAME/.bashrc:

      export CVSROOT=/cvsroot
      -[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ exit
      +

      Put this string into /home/$OPENACS_SERVICE_NAME/.bashrc:

      export CVSROOT=/cvsroot
      [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ exit
       logout
       
       [root root]#
      Index: openacs-4/packages/acs-core-docs/www/cvs-tips.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/cvs-tips.html,v diff -u -r1.37.2.3 -r1.37.2.4 --- openacs-4/packages/acs-core-docs/www/cvs-tips.html 27 Jun 2019 18:22:21 -0000 1.37.2.3 +++ openacs-4/packages/acs-core-docs/www/cvs-tips.html 3 Sep 2021 09:14:54 -0000 1.37.2.4 @@ -2,7 +2,7 @@ Appendix D. Using CVS with an OpenACS Site

      Appendix D. Using CVS with an OpenACS Site

      By Joel Aufrecht

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

      Add the Service to CVS - OPTIONAL. These steps take an existing OpenACS directory and add +

      Add the Service to CVS - OPTIONAL. These steps take an existing OpenACS directory and add it to a CVS repository.

      1. Create and set permissions on a subdirectory in the local cvs repository.

        [root root]# mkdir /cvsroot/$OPENACS_SERVICE_NAME
         [root root]# chown $OPENACS_SERVICE_NAME.$OPENACS_SERVICE_NAME /cvsroot/$OPENACS_SERVICE_NAME
        Index: openacs-4/packages/acs-core-docs/www/database-management.adp
        ===================================================================
        RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/database-management.adp,v
        diff -u -r1.4.2.2 -r1.4.2.3
        --- openacs-4/packages/acs-core-docs/www/database-management.adp	26 Aug 2020 07:46:25 -0000	1.4.2.2
        +++ openacs-4/packages/acs-core-docs/www/database-management.adp	3 Sep 2021 09:14:54 -0000	1.4.2.3
        @@ -1,5 +1,5 @@
         
        -{/doc/acs-core-docs {ACS Core Documentation}} {Chapter 7. Database Management}
        +{/doc/acs-core-docs/ {ACS Core Documentation}} {Chapter 7. Database Management}
         Chapter 7. Database Management
         
         {/doc/acs-core-docs {ACS Core Documentation}} {Database Access API}
        +{/doc/acs-core-docs/ {ACS Core Documentation}} {Database Access API}
         Database Access API
         
         
        db_1row
        -db_1row statement-name sql [ -bind bind_set_id | -bind bind_value_list ] \
        +db_1row statement-name sql [ -bind bind_set_id | -bind bind_value_list ] \
             [ -column_array array_name | -column_set set_name ]
         

        Performs the SQL query sql, setting variables to column values. Raises an error if the query does not return exactly @@ -421,15 +421,16 @@

        db_0or1row
        -db_0or1row statement-name sql [ -bind bind_set_id | -bind bind_value_list ] \
        +db_0or1row statement-name
        +sql [ -bind bind_set_id | -bind bind_value_list ] \
             [ -column_array array_name | -column_set set_name ]
         

        Performs the SQL query sql. 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.

        db_string
        -db_string statement-name sql [ -default default ] [ -bind bind_set_id | -bind bind_value_list ]
        +db_string statement-name sql [ -default default ] [ -bind bind_set_id | -bind bind_value_list ]
         

        Returns the first column of the result of SQL query sql. If sql doesn't return a row, returns default (or throws an error if @@ -446,30 +447,32 @@

        db_list
        -db_list statement-name sql [ -bind bind_set_id | -bind bind_value_list ]
        +db_list statement-name sql [ -bind bind_set_id | -bind bind_value_list ]
         

        Returns a Tcl list of the values in the first column of the result of SQL query sql. If sql doesn't return any rows, returns an empty list. Analogous to database_to_tcl_list.

        db_list_of_lists
        -db_list_of_lists statement-name sql [ -bind bind_set_id | -bind bind_value_list ]
        +db_list_of_lists
        +statement-name sql [ -bind bind_set_id | -bind bind_value_list ]
         

        Returns a Tcl list, each element of which is a list of all column values in a row of the result of SQL query sql. If sql doesn't return any rows, returns an empty list. (Analogous to database_to_tcl_list_list.)

        db_list_of_ns_sets
        -db_list_of_ns_sets statement-name sql [ -bind bind_set_id | -bind bind_value_list ]
        +db_list_of_ns_sets
        +statement-name sql [ -bind bind_set_id | -bind bind_value_list ]
         

        Returns a list of ns_sets with the values of each column of each row returned by the sql query specified.

        db_dml
        -db_dml statement-name sql \
        +db_dml statement-name sql \
             [ -bind bind_set_id | -bind bind_value_list ] \
             [ -blobs blob_list | -clobs clob_list |
               -blob_files blob_file_list | -clob_files clob_file_list ]
        @@ -501,11 +504,14 @@
         db_blob_get_file
         
        -db_write_clob statement-name sql [ -bind bind_set_id | -bind bind_value_list ]
        +db_write_clob
        +statement-name sql [ -bind bind_set_id | -bind bind_value_list ]
         
        -db_write_blob statement-name sql [ -bind bind_set_id | -bind bind_value_list ]
        +db_write_blob
        +statement-name sql [ -bind bind_set_id | -bind bind_value_list ]
         
        -db_blob_get_file statement-name sql [ -bind bind_set_id | -bind bind_value_list ]
        +db_blob_get_file
        +statement-name sql [ -bind bind_set_id | -bind bind_value_list ]
         

        Analogous to ns_ora write_clob/write_blob/blob_get_file.

        @@ -564,7 +570,7 @@ db_multirow
         db_multirow [ -local ] [ -append ] [ -extend column_list ] \
        -    var-namestatement-namesql \
        +    var-name statement-name sql \
             [ -bind bind_set_id | -bind bind_value_list ] \
             code_block [ if_no_rows if_no_rows_block ]
         

        Performs the SQL query sql, @@ -614,7 +620,7 @@

        db_with_handle
        -db_with_handle var code_block
        +db_with_handle var code_block
         

        Places a database handle into the variable var and executes code_block. This is useful when you don't want to have to use the new API (db_foreach, db_1row, etc.), but need to use database @@ -683,7 +689,7 @@ script and should never be referenced directly by user code. Returns the current rdbms type and version.

        -
      ($‌Id: db-api.xml,v 1.12.2.2 2019/03/10 21:44:57 +
      ($‌Id: db-api.xml,v 1.12.2.4 2021/05/02 20:18:15 gustafn Exp $)
    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.52.2.6 -r1.52.2.7 --- openacs-4/packages/acs-core-docs/www/db-api-detailed.html 2 May 2021 20:18:15 -0000 1.52.2.6 +++ openacs-4/packages/acs-core-docs/www/db-api-detailed.html 3 Sep 2021 09:14:54 -0000 1.52.2.7 @@ -371,8 +371,7 @@ above.

    db_foreach
    -db_foreach  statement-name sql [ -bind bind_set_id | -bind bind_value_list ] \
    +db_foreach  statement-name sql [ -bind bind_set_id | -bind bind_value_list ] \
         [ -column_array array_name | -column_set set_name ] \
         code_block [ if_no_rows if_no_rows_block ]
     

    Performs the SQL query sql, executing @@ -391,9 +390,7 @@ The code block may contain break statements (which terminate the loop and flush the database handle) and continue statements (which continue to the next row of the loop).

    db_1row
    -db_1row  statement-name  sql [ -bind bind_set_id | -bind bind_value_list ] \
    +db_1row  statement-name sql [ -bind bind_set_id | -bind bind_value_list ] \
         [ -column_array array_name | -column_set set_name ]
     

    Performs the SQL query sql, setting variables to column values. Raises an error if the query does not return exactly 1 row.

    Example:

    @@ -403,16 +400,13 @@
     # Now $foo and $bar are set.
     
     
    db_0or1row
    -db_0or1row  statement-name  sql [ -bind bind_set_id | -bind bind_value_list ] \
    +db_0or1row  statement-name
    +sql [ -bind bind_set_id | -bind bind_value_list ] \
         [ -column_array array_name | -column_set set_name ]
     

    Performs the SQL query sql. 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.

    db_string
    -db_string  statement-name  sql [ -default default ] [ -bind bind_set_id | -bind bind_value_list ]
    +db_string  statement-name sql [ -default default ] [ -bind bind_set_id | -bind bind_value_list ]
     

    Returns the first column of the result of SQL query sql. If sql doesn't return a row, returns default (or throws an error if @@ -421,42 +415,35 @@ database_to_tcl_string_or_null.

    db_nextval
    -db_nextval  sequence-name
    +db_nextval  sequence-name
     

    Returns the next value for the sequence sequence-name (using a SQL statement like SELECT sequence-name.nextval FROM DUAL). 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.

    db_list
    -db_list  statement-name  sql [ -bind bind_set_id | -bind bind_value_list ]
    +db_list  statement-name sql [ -bind bind_set_id | -bind bind_value_list ]
     

    Returns a Tcl list of the values in the first column of the result of SQL query sql. If sql doesn't return any rows, returns an empty list. Analogous to database_to_tcl_list.

    db_list_of_lists
    -db_list_of_lists  statement-name  sql [ -bind bind_set_id | -bind bind_value_list ]
    +db_list_of_lists 
    +statement-name sql [ -bind bind_set_id | -bind bind_value_list ]
     

    Returns a Tcl list, each element of which is a list of all column values in a row of the result of SQL query sql. If sql doesn't return any rows, returns an empty list. (Analogous to database_to_tcl_list_list.)

    db_list_of_ns_sets
    -db_list_of_ns_sets  statement-name  sql [ -bind bind_set_id | -bind bind_value_list ]
    +db_list_of_ns_sets 
    +statement-name sql [ -bind bind_set_id | -bind bind_value_list ]
     

    Returns a list of ns_sets with the values of each column of each row returned by the sql query specified.

    db_dml
    -db_dml  statement-name  sql \
    +db_dml  statement-name sql \
         [ -bind bind_set_id | -bind bind_value_list ] \
         [ -blobs blob_list | -clobs clob_list |
           -blob_files blob_file_list | -clob_files clob_file_list ]
    @@ -488,25 +475,21 @@
     db_write_blob,
     db_blob_get_file
     
    -db_write_clob  statement-name  sql [ -bind bind_set_id | -bind bind_value_list ]
    +db_write_clob 
    +statement-name sql [ -bind bind_set_id | -bind bind_value_list ]
     
    -db_write_blob  statement-name  sql [ -bind bind_set_id | -bind bind_value_list ]
    +db_write_blob 
    +statement-name sql [ -bind bind_set_id | -bind bind_value_list ]
     
    -db_blob_get_file  statement-name  sql [ -bind bind_set_id | -bind bind_value_list ]
    +db_blob_get_file 
    +statement-name sql [ -bind bind_set_id | -bind bind_value_list ]
     

    Analogous to ns_ora write_clob/write_blob/blob_get_file.

    db_release_unused_handles
     db_release_unused_handles
     

    Releases any allocated, unused database handles.

    db_transaction
    -db_transaction  code_block [ on_error { code_block } ]
    +db_transaction  code_block [ on_error { code_block } ]
     

    Executes code_block transactionally. Nested transactions are supported (end transaction is transparently ns_db dml'ed when the outermost transaction completes). The @@ -553,7 +536,7 @@

    db_multirow
     db_multirow [ -local ] [ -append ] [ -extend column_list ] \
    -    var-name statement-name sql \
    +    var-name  statement-name sql \
         [ -bind bind_set_id | -bind bind_value_list ] \
         code_block [ if_no_rows if_no_rows_block ]
     

    @@ -616,10 +599,9 @@

    db_with_handle
    -db_with_handle var code_block
    -

    Places a database handle into the variable var and -executes code_block. This is useful when you don't +db_with_handle var code_block +

    Places a database handle into the variable var and +executes code_block. This is useful when you don't want to have to use the new API (db_foreach, db_1row, etc.), but need to use database handles explicitly.

    Example:

     
    Index: openacs-4/packages/acs-core-docs/www/db-api.adp
    ===================================================================
    RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/db-api.adp,v
    diff -u -r1.5.2.4 -r1.5.2.5
    --- openacs-4/packages/acs-core-docs/www/db-api.adp	26 Aug 2020 07:46:25 -0000	1.5.2.4
    +++ openacs-4/packages/acs-core-docs/www/db-api.adp	3 Sep 2021 09:14:54 -0000	1.5.2.5
    @@ -1,5 +1,5 @@
     
    -{/doc/acs-core-docs {ACS Core Documentation}} {The OpenACS Database Access API}
    +{/doc/acs-core-docs/ {ACS Core Documentation}} {The OpenACS Database Access API}
     The OpenACS Database Access API
     
     

    The database API parses the query and pulls out all the bind variable specifications and replaces them with generic placeholders. It then automatically pulls the values of the named -Tcl vars out of the runtime environment of the script, and passes +Tcl vars out of the run time environment of the script, and passes them to the database.

    Note that while this looks like a simple syntactic change, it really is very different from how interpolated text queries work. You use bind variables to replace what would otherwise be a literal @@ -526,7 +526,7 @@

    -
    ($‌Id: db-api.xml,v 1.17.2.1 2019/02/14 16:15:00 +
    ($‌Id: db-api.xml,v 1.17.2.3 2020/07/02 08:39:25 gustafn Exp $)

    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.53.2.5 -r1.53.2.6 --- openacs-4/packages/acs-core-docs/www/db-api.html 1 Nov 2019 13:16:18 -0000 1.53.2.5 +++ openacs-4/packages/acs-core-docs/www/db-api.html 3 Sep 2021 09:14:55 -0000 1.53.2.6 @@ -115,13 +115,13 @@ cannot change the actual text of the query, only the literal values in the placeholders. The database API makes bind variables easy to use by hooking them smoothly into the Tcl - runtime so you simply provide :tclvar and the value of $tclvar + run time so you simply provide :tclvar and the value of $tclvar is sent to the backend to actually execute the query.

    The database API parses the query and pulls out all the bind variable specifications and replaces them with generic placeholders. It then automatically pulls the values of the named Tcl vars out of the - runtime environment of the script, and passes them to the database. + run time environment of the script, and passes them to the database.

    Note that while this looks like a simple syntactic change, it really is very different from how interpolated text queries work. You use Index: openacs-4/packages/acs-core-docs/www/dev-guide.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/dev-guide.adp,v diff -u -r1.3.2.2 -r1.3.2.3 --- openacs-4/packages/acs-core-docs/www/dev-guide.adp 26 Aug 2020 07:46:25 -0000 1.3.2.2 +++ openacs-4/packages/acs-core-docs/www/dev-guide.adp 3 Sep 2021 09:14:55 -0000 1.3.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Chapter 11. Development Reference} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Chapter 11. Development Reference} Chapter 11. Development Reference {/doc/acs-core-docs {ACS Core Documentation}} {Chapter 13. Documentation Standards} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Chapter 13. Documentation Standards} Chapter 13. Documentation Standards {/doc/acs-core-docs {ACS Core Documentation}} {OpenACS Documentation Guide} +{/doc/acs-core-docs/ {ACS Core Documentation}} {OpenACS Documentation Guide} OpenACS Documentation Guide DocBook XML DTD. The remaining discussion is about publishing using Docbook.

    - is a publishing standard based on XML + is a publishing standard based on XML with similar goals to the OpenACS Documentation project. Some specific reasons why we are using DocBook:

    • It is open-source.

    • The DocBook community mailing lists @@ -449,7 +449,7 @@ of elements 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 as long as -you remember to: +you remember to:

      • Always close your tags with corresponding end-tags and to not use other tag @@ -490,7 +490,7 @@

        Document Structure

        The documentation for each package will make up a little "book" that is structured like this - examples are -emphasized: +emphasized:

             book                        : Docs for one package - templating
              |
        @@ -515,19 +515,19 @@
         

      Headlines, Sections

      - Given that your job starts at the + Given that your job starts at the sect1-level, all your documents should open with a <sect1>-tag and end with the corresponding </sect1>.

      - You need to feed every <sect1> two attributes. The first + You need to feed every <sect1> two attributes. The first attribute, id, 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 the section called “Links”). The value of id has to be unique throughout the book you're making since the id's in your sect1's will turn into filenames when the book is parsed into HTML.

      - The other attribute is xreflabel. The value of this is the text + The other attribute is xreflabel. The value of this is the text that will appear as the link when referring to this sect1.

      Right after the opening tag you put the title of the document - this is usually the same as xreflabel-attribute. E.g. the top level of the document you're reading right now looks like this:

      @@ -538,7 +538,7 @@
       
       </sect1>
       

      - Inside this container your document will + Inside this container your document will be split up into <sect2>'s, each with the same requirements - id and xreflabel attributes, and a <title>-tag inside. Actually, the xreflabel is never required in @@ -548,7 +548,7 @@

      Code

      - For displaying a snippet of code, 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 <computeroutput> and <code> tags. These replace the HTML-tag <code> tag, @@ -562,15 +562,15 @@

      Links

      - Linking falls into two different + Linking falls into two different categories: inside the book you're making and outside:

      1. Inside linking, cross-referencing other parts of your book

      By having unique id's you can cross-reference any part of your book with a simple tag, regardless of where that part is.

      -Check out how I link to a subsection of +Check out how I link to a subsection of the Developer's Guide:

      Put this in your XML:

       - Find information about creating a package in
       <xref linkend="packages-making-a-package"></xref>.
      @@ -594,10 +594,9 @@
       
      2. Linking outside the documentation

      - If you're hyper-linking out of the + If you're hyper-linking out of the documentation, it works almost the same way as HTML - the tag is -just a little different (<ulink>):

      -<ulink url="http://www.oracle.com/">Oracle Corporation</ulink>

      ....will create a hyper-link to Oracle in the HTML-version of +just a little different (<ulink>):

      <ulink url="http://www.oracle.com/">Oracle Corporation</ulink>

      ....will create a hyper-link to Oracle in the HTML-version of the documentation.

      NOTE: Do NOT use ampersands in your hyperlinks. These are reserved for referencing @@ -612,7 +611,7 @@ Note: The graphics guidelines are not written in stone. Use another valid approach if it works better for you.

      - To insert a graphic we use the elements + To insert a graphic we use the elements <mediaobject>, <imageobject>, <imagedata>, @@ -637,7 +636,7 @@

      Lists

      - Here's how you make the DocBook + Here's how you make the DocBook equivalent of the three usual HTML-lists:

      1. How to make an <ul>
      @@ -690,7 +689,7 @@

      Tables

      - DocBook supports several types of tables, + DocBook supports several types of tables, but in most cases, the <informaltable> is enough:

       <informaltable frame="all">
         <tgroup cols="3">
      @@ -736,7 +735,7 @@
       

      Emphasis

      - Our documentation uses two flavors of + Our documentation uses two flavors of emphasis - italics and bold type. DocBook uses one - <emphasis>.

      The <emphasis> tag defaults to italics when parsed. If you're looking for emphasizing with bold type, use <emphasis 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.56.2.4 -r1.56.2.5 --- openacs-4/packages/acs-core-docs/www/docbook-primer.html 10 Aug 2019 18:05:33 -0000 1.56.2.4 +++ openacs-4/packages/acs-core-docs/www/docbook-primer.html 3 Sep 2021 09:14:55 -0000 1.56.2.5 @@ -578,7 +578,7 @@ DTD. The remaining discussion is about publishing using Docbook.

      - + is a publishing standard based on XML with similar goals to the OpenACS Documentation project. Some specific reasons why we are using DocBook:

      • @@ -640,7 +640,7 @@ list of elements 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 as long as you remember to: - +

        • Always close your tags with corresponding end-tags and to not use other tag minimization @@ -689,7 +689,7 @@ The documentation for each package will make up a little "book" that is structured like this - examples are emphasized: - +

               book                        : Docs for one package - templating
          @@ -713,20 +713,20 @@
                 sources of these DocBook documents
                 to get an idea of how they are tied together.
               

        Headlines, Sections

        - + Given that your job starts at the sect1-level, all your documents should open with a <sect1>-tag and end with the corresponding </sect1>.

        - + You need to feed every <sect1> two attributes. The first attribute, id, 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 the section called “Links”). The value of id has to be unique throughout the book you're making since the id's in your sect1's will turn into filenames when the book is parsed into HTML.

        - + The other attribute is xreflabel. The value of this is the text that will appear as the link when referring to this sect1.

        @@ -741,7 +741,7 @@ </sect1>

        - + Inside this container your document will be split up into <sect2>'s, each with the same requirements - id and xreflabel @@ -750,7 +750,7 @@ When it comes to naming your sect2's and below, prefix them with some abbreviation of the id in the sect1 such as requirements-overview.

        Code

        - + For displaying a snippet of code, a filename or anything else you just want to appear as a part of a sentence, we use <computeroutput> @@ -768,12 +768,12 @@ tag around text that has been wrapped by combinations of <computeroutput> and <userinput>

        Links

        - + Linking falls into two different categories: inside the book you're making and outside:

        1. Inside linking, cross-referencing other parts of your book

        By having unique id's you can cross-reference any part of your book with a simple tag, regardless of where that part is. -

        Check out how I link to a subsection of the Developer's Guide:

        Put this in your XML:

        +      

        Check out how I link to a subsection of the Developer's Guide:

        Put this in your XML:

         - Find information about creating a package in
         <xref linkend="packages-making-a-package"></xref>.
         

        And the output is:

        @@ -797,7 +797,7 @@
                 packages-looks, the
                 parser will try its best to explain where the link takes you.
               

        2. Linking outside the documentation

        - + If you're hyper-linking out of the documentation, it works almost the same way as HTML - the tag is just a little different @@ -818,7 +818,7 @@ for you.

        - + To insert a graphic we use the elements <mediaobject>, <imageobject>, @@ -844,7 +844,7 @@ Put your graphics in a separate directory ("images") and link to them only with relative paths.

        Lists

        - + Here's how you make the DocBook equivalent of the three usual HTML-lists:

        1. How to make an <ul>

        Making an unordered list is pretty much like doing the same thing in HTML - if you close your <li>, that is. The only differences are that each list item has to be wrapped in something more, such as @@ -889,7 +889,7 @@ </variablelist>

        Tables

        - + DocBook supports several types of tables, but in most cases, the <informaltable> is enough: @@ -926,7 +926,7 @@ <table> for an example.

        Emphasis

        - + Our documentation uses two flavors of emphasis - italics and bold type. DocBook uses one - <emphasis>.

        Index: openacs-4/packages/acs-core-docs/www/eng-standards-constraint-naming.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/eng-standards-constraint-naming.adp,v diff -u -r1.6.2.3 -r1.6.2.4 --- openacs-4/packages/acs-core-docs/www/eng-standards-constraint-naming.adp 26 Aug 2020 07:46:25 -0000 1.6.2.3 +++ openacs-4/packages/acs-core-docs/www/eng-standards-constraint-naming.adp 3 Sep 2021 09:14:56 -0000 1.6.2.4 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Constraint naming standard} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Constraint naming standard} Constraint naming standard

        Isn't it nice to see "EXAMPLE_TOPICS_TOPIC_ID_PK" in the trace and know exactly which table oracle is using at each step?

        @@ -126,8 +125,8 @@ immediately in error debugging (e.g. the error will say something like "Cannot insert null value into column"), we recommend naming not null constraints to be consistent in our -naming of all constraints.

        ($‌Id: constraint-naming.xml,v 1.10 2018/03/24 -00:14:57 hectorr Exp $)
        +naming of all constraints.

        ($‌Id: constraint-naming.xml,v 1.10.2.1 +2019/08/09 20:04:23 gustafn Exp $)

        Isn't it nice to see "EXAMPLE_TOPICS_TOPIC_ID_PK" in the trace and know exactly which table oracle is using at each step? Index: openacs-4/packages/acs-core-docs/www/eng-standards-filenaming.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/eng-standards-filenaming.adp,v diff -u -r1.4.2.3 -r1.4.2.4 --- openacs-4/packages/acs-core-docs/www/eng-standards-filenaming.adp 26 Aug 2020 07:46:25 -0000 1.4.2.3 +++ openacs-4/packages/acs-core-docs/www/eng-standards-filenaming.adp 3 Sep 2021 09:14:56 -0000 1.4.2.4 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {ACS File Naming and Formatting Standards} +{/doc/acs-core-docs/ {ACS Core Documentation}} {ACS File Naming and Formatting Standards} ACS File Naming and Formatting Standards

        File -Nomenclature

        Usually we organize our files so that they mainly serve one of +Nomenclature

    Usually, we organize our files so that they mainly serve one of the following three purposes:

    • displaying objects and their properties

    • manipulating or acting on objects in some way (by creating, editing, linking, etc)

    • housing procedures, packages, data models and other prerequisite @@ -216,8 +216,8 @@

    Tcl Library Files

    Further standards for Tcl library files are under discussion; we -plan to include naming conventions for procs.

    ($‌Id: filenaming.xml,v 1.8 2017/08/07 23:47:54 -gustafn Exp $)
    +plan to include naming conventions for procs.

    ($‌Id: filenaming.xml,v 1.8.2.2 2021/09/02 +16:56:02 gustafn Exp $)

    File Nomenclature

    -Usually we organize our files so that they mainly serve one of the following three purposes: +Usually, we organize our files so that they mainly serve one of the following three purposes:

    • displaying objects and their properties

    • manipulating or acting on objects in some way (by creating, editing, linking, etc)

    • housing procedures, packages, data models and other prerequisite code Essentially, we want our files named in a fashion that reflects their purpose.

    @@ -200,7 +200,7 @@ doc_return 200 text/html $page_content

    -The old convention was to call ReturnHeaders and +The old convention was to call util_return_headers and then ns_write for each distinct chunk of the page. This approach has the disadvantage of tying up a scarce and valuable resource (namely, a database handle) for an unpredictable amount of Index: openacs-4/packages/acs-core-docs/www/eng-standards-plsql.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/eng-standards-plsql.adp,v diff -u -r1.5.2.2 -r1.5.2.3 --- openacs-4/packages/acs-core-docs/www/eng-standards-plsql.adp 26 Aug 2020 07:46:25 -0000 1.5.2.2 +++ openacs-4/packages/acs-core-docs/www/eng-standards-plsql.adp 3 Sep 2021 09:14:57 -0000 1.5.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {PL/SQL Standards} +{/doc/acs-core-docs/ {ACS Core Documentation}} {PL/SQL Standards} PL/SQL Standards {/doc/acs-core-docs {ACS Core Documentation}} {Release Version Numbering} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Release Version Numbering} Release Version Numbering

    Release Version Numbering

    -
    ($‌Id: eng-standards-versioning.xml,v 1.11 -2017/08/07 23:47:54 gustafn Exp $)

    By Ron Henderson, Revised by Joel Aufrecht

    +
    ($‌Id: eng-standards-versioning.xml,v 1.11.2.1 +2020/08/06 13:23:35 gustafn Exp $)

    By Ron Henderson, Revised by Joel Aufrecht

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

    OpenACS version numbers help identify at a high-level what is in a particular release and what has changed since the last 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.54.2.3 -r1.54.2.4 --- openacs-4/packages/acs-core-docs/www/eng-standards-versioning.html 27 Jun 2019 18:22:21 -0000 1.54.2.3 +++ openacs-4/packages/acs-core-docs/www/eng-standards-versioning.html 3 Sep 2021 09:14:58 -0000 1.54.2.4 @@ -91,7 +91,7 @@ coding standards; is fully internationalized; available on both supported databases.

  • Level 4: Deprecated. The package was in some earlier version - is use, but was probably replaced by a another package. The + is use, but was probably replaced by another package. The package description should point to a preferred version.

  • Naming Database Upgrade Scripts

    Database upgrade scripts must be named very precisely in order for the Package Manager to run the correct script at the correct time.

    1. Upgrade scripts should be named /packages/myfirstpackage/sql/postgresql/upgrade/upgrade-OLDVERSION-NEWVERSION.sql

    2. If the version you are working on is a later version than the current released version, OLDVERSION should be the current version. The current version is package version in the APM and in /packages/myfirstpackage/myfirstpackage.info. So if forums is at 2.0.1, OLDVERSION should be 2.0.1d1. Note that this means that new version development that includes an upgrade must start at d2, not d1.

    3. 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 upgrade-2.0.1d3-2.0.1d4.sql.

    4. Database upgrades should be confined to development releases, not alpha or beta releases.

    5. Index: openacs-4/packages/acs-core-docs/www/eng-standards.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/eng-standards.adp,v diff -u -r1.3.2.2 -r1.3.2.3 --- openacs-4/packages/acs-core-docs/www/eng-standards.adp 26 Aug 2020 07:46:25 -0000 1.3.2.2 +++ openacs-4/packages/acs-core-docs/www/eng-standards.adp 3 Sep 2021 09:14:59 -0000 1.3.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Chapter 12. Engineering Standards} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Chapter 12. Engineering Standards} Chapter 12. Engineering Standards {/doc/acs-core-docs {ACS Core Documentation}} {External Authentication Requirements} +{/doc/acs-core-docs/ {ACS Core Documentation}} {External Authentication Requirements} External Authentication Requirements External Authentication Requirements

    -Vision

    People have plenty of usernames and passwords already, we +Vision

    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.

    Besides, administrators have better things to do than create @@ -74,7 +74,7 @@

    Requirements

    -New API

    +New API
    @@ -108,9 +108,9 @@ -
    FeatureStatusDescription
    New API
    EXT-AUTH-28AUsername is email switch

    Users will log in using a username, an authority, and a password. -The authority is the source for user/password verification. OpenACS -can be an authority itself.

    Each user in OpenACS will belong to exactly one authority, which +

    Users will log in using a username, an authority, and a +password. The authority is the source for user/password +verification. OpenACS can be an authority itself.

    Each user in OpenACS will belong to exactly one authority, which can either be the "local" OpenACS users table, in which case the password column is used, or it can be some external authority, which will be communicated with using some protocol, as @@ -506,7 +506,7 @@ in the sort order.

    The relevant code in user-login.tcl would look like this:

     if { ![auth::split_username -username_var username -authority_var authority] } {
    -    # bounce back to the form with a message saying that the login wasn't valid.
    +    # bounce back to the form with a message saying that the login was not valid. 
         ad_script_abort
     }
     
    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.45.2.3 -r1.45.2.4
    --- openacs-4/packages/acs-core-docs/www/ext-auth-requirements.html	27 Jun 2019 18:22:21 -0000	1.45.2.3
    +++ openacs-4/packages/acs-core-docs/www/ext-auth-requirements.html	3 Sep 2021 09:14:59 -0000	1.45.2.4
    @@ -1,5 +1,5 @@
     
    -External Authentication Requirements

    External Authentication Requirements

    Vision

    People have plenty of usernames and passwords already, we +External Authentication Requirements

    External Authentication Requirements

    Vision

    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.

    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.

  • Authentication Driver API: The service contract which authentication drivers implement.

  • Conceptual Pictures

    Authentication:

    -

    Account Management (NO PICTURE YET)

    Batch Synchronization (NO PICTURE YET)

    Requirements

    New API

    FeatureStatusDescription
    New API
    EXT-AUTH-01AExtend Authentication/Acct Status API
    EXT-AUTH-03AAccount Creation API
    EXT-AUTH-05APassword Management API
    EXT-AUTH-30AAuthority Management API

    Login

    FeatureStatusDescription
    Login
    EXT-AUTH-04ARewrite login, register, and admin pages to use APIs
    EXT-AUTH-38Aad_form complain feature
    EXT-AUTH-19ARewrite password recovery to use API
    EXT-AUTH-21ARewrite email verification with API
    EXT-AUTH-28AUsername is email switch

    Users will log in using a username, a authority, and a +

    Account Management (NO PICTURE YET)

    Batch Synchronization (NO PICTURE YET)

    Requirements

    New API

    FeatureStatusDescription
    New API
    EXT-AUTH-01AExtend Authentication/Acct Status API
    EXT-AUTH-03AAccount Creation API
    EXT-AUTH-05APassword Management API
    EXT-AUTH-30AAuthority Management API

    Login

    FeatureStatusDescription
    Login
    EXT-AUTH-04ARewrite login, register, and admin pages to use APIs
    EXT-AUTH-38Aad_form complain feature
    EXT-AUTH-19ARewrite password recovery to use API
    EXT-AUTH-21ARewrite email verification with API
    EXT-AUTH-28AUsername is email switch

    Users will log in using a username, an authority, and a password. The authority is the source for user/password verification. OpenACS can be an authority itself.

    Each user in OpenACS will belong to exactly one authority, which can either be the "local" OpenACS users table, in which case the @@ -86,8 +86,7 @@ One driver handles authentication, one account creation, and one changing passwords.

    FeatureStatusDescription
    create service contract
    EXT-AUTH-16ACreate service contract for Authentication
    EXT-AUTH-17ACreate service contract for Acct. Creation
    EXT-AUTH-29ACreate service contract for Passwd Management
    FeatureStatusDescription
    EXT-AUTH-18AAuthority configuration data model

    Each authority is defined like this:

    • Authority pretty-name, e.g. "URZ"

    • Authentication Driver, e.g. "RADIUS". In practice, this would be a reference to a service contract - implementation.

    • Authentication Driver configuration settings, e.g. host - name, port, etc., as required by the particular driver. Note that + implementation.

    • Authentication Driver configuration settings, e.g. hostname, port, etc., as required by the particular driver. Note that this is per authority, not per driver, i.e., you can have multiple authorities with the same driver but different configuration options.

    • AuthenticationAllowed - true/false, so you can disable @@ -100,8 +99,7 @@ would be a reference to a service contract implementation. The reason we have separate drivers for authentication and account creation is that organizations are likely to have a home-grown - account registration process.

    • Account Creation Driver configuration settings, e.g. host - name, port, etc., as required by the particular driver. Note that + account registration process.

    • Account Creation Driver configuration settings, e.g. hostname, port, etc., as required by the particular driver. Note that this is per authority, not per driver, i.e., you can have multiple authorities with the same driver but different configuration options.

    • RegistrationUrl - instead of registering using OpenACS, @@ -160,7 +158,7 @@ Registration

    If a user doesn't have an account, the site-wide configuration can allow the user to register for one, as defined in the configuration discussed above. This section is about normal -account registration through a authority driver.

    The account creation service contract implementation will +account registration through an authority driver.

    The account creation service contract implementation will need to tell us which information to ask the user for:

    • Required Fields: A list of fields which are required.

    • Optional Fields: A list of fields which are optional.

    The fields to choose from are these:

    • Username

    • First names

    • Last name

    • Email

    • URL

    • Password

    • Secret question

    • Secret answer

    It should return the following:

    • Creation status (OK, Try-Again, Fail)

    • Creation message: What went wrong, or a welcome @@ -299,7 +297,7 @@ in the sort order.

    The relevant code in user-login.tcl would look like this:

     if { ![auth::split_username -username_var username -authority_var authority] } {
    -    # bounce back to the form with a message saying that the login wasn't valid.
    +    # bounce back to the form with a message saying that the login was not valid. 
         ad_script_abort
     }
     
    Index: openacs-4/packages/acs-core-docs/www/filename.adp
    ===================================================================
    RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/filename.adp,v
    diff -u -r1.4.2.2 -r1.4.2.3
    --- openacs-4/packages/acs-core-docs/www/filename.adp	26 Aug 2020 07:46:25 -0000	1.4.2.2
    +++ openacs-4/packages/acs-core-docs/www/filename.adp	3 Sep 2021 09:14:59 -0000	1.4.2.3
    @@ -1,5 +1,5 @@
     
    -{/doc/acs-core-docs {ACS Core Documentation}} {Detailed Design Documentation Template}
    +{/doc/acs-core-docs/ {ACS Core Documentation}} {Detailed Design Documentation Template}
     Detailed Design Documentation Template
     
     {/doc/acs-core-docs {ACS Core Documentation}} {Part I. OpenACS For Everyone}
    +{/doc/acs-core-docs/ {ACS Core Documentation}} {Part I. OpenACS For Everyone}
     Part I. OpenACS For Everyone
     
     {/doc/acs-core-docs {ACS Core Documentation}} {Using Form Builder: building html forms dynamically}
    +{/doc/acs-core-docs/ {ACS Core Documentation}} {Using Form Builder: building html forms dynamically}
     Using Form Builder: building html forms dynamically
     
     Multi-part Elements

    Some elements have more than one choice, or can submit more than one value.

    -SELECT elements

    1. +SELECT elements
    1. Creating the form element. Populate a list -of lists with values for the option list.

      -set foo_options [db_list_of_lists foo_option_list "
      +of lists with values for the option list.

      set foo_options [db_list_of_lists foo_option_list "
           select foo,
                  foo_id
             from foos
      @@ -54,8 +53,7 @@
       refreshes to pull additional information from the database

    A situation you may run into often is where you want to pull in form items from a sub-category when the first category is selected. Ad_form makes this fairly easy to do. In the definition of your -form element, include an HTML section

    -{pm_task_id:integer(select),optional
    +form element, include an HTML section

        {pm_task_id:integer(select),optional
             {label "Subject"}
             {options {$task_options}}
             {html {onChange "document.form_name.__refreshing_p.value='1';submit()"}}
    @@ -64,8 +62,7 @@
         

    What this will do is set the value for pm_task_id and all the other form elements, and resubmit the form. If you then include a block that extends the form, you'll have the opportunity to add -in subcategories:

    -if {[info exists pm_task_id] && $pm_task_id ne ""} {
    +in subcategories:

        if {[info exists pm_task_id] && $pm_task_id ne ""} {
         db_1row get_task_values { }
         ad_form -extend -name form_name -form { ... }
         

    Note that you will get strange results when you try to set the @@ -99,7 +96,7 @@ Errors

    Here are some common errors and what to do when you encounter them:

    -Error when selecting values

    This generally happens when there is an error in your query.

    +Error when selecting values

    This generally happens when there is an error in your query.

    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.33.2.3 -r1.33.2.4 --- openacs-4/packages/acs-core-docs/www/form-builder.html 27 Jun 2019 18:22:21 -0000 1.33.2.3 +++ openacs-4/packages/acs-core-docs/www/form-builder.html 3 Sep 2021 09:15:00 -0000 1.33.2.4 @@ -6,7 +6,7 @@ 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 api - documentation is helpful.

    Multi-part Elements

    Some elements have more than one choice, or can submit more than one value.

    SELECT elements

    1. Creating the form element. Populate a list of lists with values for the option list.

      set foo_options [db_list_of_lists foo_option_list "
      + documentation is helpful.

    Multi-part Elements

    Some elements have more than one choice, or can submit more than one value.

    SELECT elements

    1. Creating the form element. Populate a list of lists with values for the option list.

      set foo_options [db_list_of_lists foo_option_list "
           select foo,
                  foo_id
             from foos
      @@ -51,5 +51,5 @@
           ns_set print $mypage
       }
           

    Tips for form widgets

    Here are some tips for dealing with some of the form widgets:

    Current widget

    Common Errors

    Here are some common errors and what to do when you - encounter them:

    Error when selecting values

    This generally happens when there is an error in your + encounter them:

    Error when selecting values

    This generally happens when there is an error in your query.

    Index: openacs-4/packages/acs-core-docs/www/general-documents.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/general-documents.adp,v diff -u -r1.3.2.2 -r1.3.2.3 --- openacs-4/packages/acs-core-docs/www/general-documents.adp 26 Aug 2020 07:46:25 -0000 1.3.2.2 +++ openacs-4/packages/acs-core-docs/www/general-documents.adp 3 Sep 2021 09:15:00 -0000 1.3.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Chapter 1. High level information: What is +{/doc/acs-core-docs/ {ACS Core Documentation}} {Chapter 1. High level information: What is OpenACS?} Chapter 1. High level information: What is OpenACS? Index: openacs-4/packages/acs-core-docs/www/groups-design.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/groups-design.adp,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/acs-core-docs/www/groups-design.adp 26 Aug 2020 07:46:25 -0000 1.4.2.2 +++ openacs-4/packages/acs-core-docs/www/groups-design.adp 3 Sep 2021 09:15:00 -0000 1.4.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Groups Design} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Groups Design} Groups Design {/doc/acs-core-docs {ACS Core Documentation}} {Groups Requirements} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Groups Requirements} Groups Requirements
    40.0 Users

    A user is a person who has registered with an OpenACS site. A - user may have additional attributes, such as a screen name.

    The data model should enforce these constraints:

    40.10 A user must have a non-empty email address.

    40.20 Two different users may not have the same email + user may have additional attributes, such as a screen name.

    The data model should enforce these constraints:

    40.10 A user must have a nonempty email address.

    40.20 Two different users may not have the same email address on a single OpenACS installation; i.e., an email address identifies a single user on the system.

    40.30 A user may have multiple email addresses; for example, two or more email addresses may identify a single user.

    40.40 A user must have password field which can be Index: openacs-4/packages/acs-core-docs/www/high-avail.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/high-avail.adp,v diff -u -r1.4.2.4 -r1.4.2.5 --- openacs-4/packages/acs-core-docs/www/high-avail.adp 26 Aug 2020 07:46:25 -0000 1.4.2.4 +++ openacs-4/packages/acs-core-docs/www/high-avail.adp 3 Sep 2021 09:15:01 -0000 1.4.2.5 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {High Availability/High Performance Configurations} +{/doc/acs-core-docs/ {ACS Core Documentation}} {High Availability/High Performance Configurations} High Availability/High Performance Configurations High Availability/High Performance Configurations

    See also the section called “Running a PostgreSQL database on another server”.

    -

    Figure 6.1. Multiple-server +

    Figure 6.1. Multiple-server configuration

    Multiple-server configuration

    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.27.2.3 -r1.27.2.4 --- openacs-4/packages/acs-core-docs/www/high-avail.html 27 Jun 2019 18:22:21 -0000 1.27.2.3 +++ openacs-4/packages/acs-core-docs/www/high-avail.html 3 Sep 2021 09:15:01 -0000 1.27.2.4 @@ -1,2 +1,2 @@ -High Availability/High Performance Configurations

    High Availability/High Performance Configurations

    See also the section called “Running a PostgreSQL database on another server”.

    Figure 6.1. Multiple-server configuration

    Multiple-server configuration

    +High Availability/High Performance Configurations

    High Availability/High Performance Configurations

    See also the section called “Running a PostgreSQL database on another server”.

    Figure 6.1. Multiple-server configuration

    Multiple-server configuration

    Index: openacs-4/packages/acs-core-docs/www/how-do-I.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/how-do-I.adp,v diff -u -r1.5.2.4 -r1.5.2.5 --- openacs-4/packages/acs-core-docs/www/how-do-I.adp 26 Aug 2020 07:46:25 -0000 1.5.2.4 +++ openacs-4/packages/acs-core-docs/www/how-do-I.adp 3 Sep 2021 09:15:01 -0000 1.5.2.5 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {How Do I?} +{/doc/acs-core-docs/ {ACS Core Documentation}} {How Do I?} How Do I?

    How Do I?

    -How do I edit the front page of a new site +How do I edit the front page of a new site through a web interface?

    The easiest way is to install the Edit-This-Page package.

    1. Log in to the web site as an administrator.

    2. Click on Admin > Install Software > Install from OpenACS Repository / Install new application

    3. Choose Edit This Page and install

    4. Follow the instructions within Edit This Page (the link will only work after Edit This Page is installed).

    -How do I let anybody who registers post to +How do I let anybody who registers post to a weblog?

    Go to /admin/permissions and grant Create to Registered Users

    -How do I replace the front page of a new +How do I replace the front page of a new site with the front page of an application on that site

    Suppose you install a new site and install Weblogger, and you want all visitors to see weblogger automatically.

    1. On the front page, click the Admin button.

    2. On the administration page, click Parameters link.

    3. Change the parameter IndexRedirectUrl to be the URI of the @@ -34,7 +34,7 @@

    -How do I put custom functionality on front +How do I put custom functionality on front page of a new site?

    Every page within an OpenACS site is part of a subsiteMore information). The home page of the entire site is the front page is a special, default instance of a subsite, served from /var/lib/aolserver/$OPENACS_SERVICE_NAME/www. If an @@ -49,7 +49,7 @@

    -How do I change the site-wide style?

    Almost all pages on an OpenACS site use ACS Templating, and so +How do I change the site-wide style?

    Almost all pages on an OpenACS site use ACS Templating, and so their appearance is driven by a layer of different files. Let's examine how this works:

    • @@ -71,12 +71,12 @@ navigation "meta" elements such as Translator widgets and Admin widgets.

    -

    Figure 4.1. Site +

    Figure 4.1. Site Templates

    Site Templates

    -How do I diagnose a permissions +How do I diagnose a permissions problem?

    • @@ -98,13 +98,11 @@ Finding the problem. We start with the page that has the error. In the URL it's http://myserver.net/events/event-info.tcl, so open the file /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/events/www/event-info.tcl. -It contains this line:

      -set can_register_p [events::security::can_register_for_event_p -event_id $event_id]

      We need to know what that procedure does, so go to /api-doc, paste +It contains this line:

      set can_register_p [events::security::can_register_for_event_p -event_id $event_id]

      We need to know what that procedure does, so go to /api-doc, 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

      -return [permission::permission_p -party_id $user_id -object_id $event_id -privilege write]

      This means that a given user must have the write privilege on +body of the proc is simply

      return [permission::permission_p -party_id $user_id -object_id $event_id -privilege write]

      This means that a given user must have the write privilege on the event in order to register. Let's assume that the privileges inherit, so that if a user has the write privilege on the whole package, they will have the write privilege on the @@ -119,12 +117,12 @@

    • To grant permissions on a package, start at the site map. Find the event package and click "Set permissions".

    • Click "Grant Permission"

    • Grant the write permission to Registered Users.

      -

      Figure 4.2. Granting +

      Figure 4.2. Granting Permissions

      Granting Permissions

    OpenACS 5.0 offers a prettier version at /admin/applications.

    -

    Figure 4.3. Granting Permissions +

    Figure 4.3. Granting Permissions in 5.0

    Granting Permissions in 5.0

    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.31.2.3 -r1.31.2.4 --- openacs-4/packages/acs-core-docs/www/how-do-I.html 27 Jun 2019 18:22:21 -0000 1.31.2.3 +++ openacs-4/packages/acs-core-docs/www/how-do-I.html 3 Sep 2021 09:15:01 -0000 1.31.2.4 @@ -1,7 +1,7 @@ -How Do I?

    How Do I?

    How do I edit the front page of a new site through a web interface?

    The easiest way is to install the Edit-This-Page package.

    1. Log in to the web site as an administrator.

    2. Click on Admin > Install Software > Install from OpenACS Repository / Install new application

    3. Choose Edit This Page and install

    4. Follow the instructions within Edit This Page (the link will only work after Edit This Page is installed).

    How do I let anybody who registers post to a weblog?

    Go to /admin/permissions and grant Create to Registered Users

    How do I replace the front page of a new site with the front page of an application on that site

    Suppose you install a new site and install Weblogger, and you want all visitors to see weblogger automatically.

    1. On the front page, click the Admin button.

    2. On the administration page, click Parameters link.

    3. Change the parameter IndexRedirectUrl to be the URI of the desired application. For a default weblogger installation, this would be weblogger/. Note the trailing slash.

    How do I put custom functionality on front page of a new site?

    Every page within an OpenACS site is part of a subsite More information). The home page of the entire site is the front page is a special, default instance of a subsite, served from /var/lib/aolserver/$OPENACS_SERVICE_NAME/www. 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:

    1. cp /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-subsite/www/index* /var/lib/aolserver/$OPENACS_SERVICE_NAME/www
    2. Edit the new index.adp to change the text; you shouldn't need to edit index.tcl unless you are adding new functionality.

    How do I change the site-wide style?

    Almost all pages on an OpenACS site use ACS Templating, and so their appearance is driven by a layer of different files. Let's examine how this works:

    • +How Do I?

      How Do I?

      How do I edit the front page of a new site through a web interface?

      The easiest way is to install the Edit-This-Page package.

      1. Log in to the web site as an administrator.

      2. Click on Admin > Install Software > Install from OpenACS Repository / Install new application

      3. Choose Edit This Page and install

      4. Follow the instructions within Edit This Page (the link will only work after Edit This Page is installed).

      How do I let anybody who registers post to a weblog?

      Go to /admin/permissions and grant Create to Registered Users

      How do I replace the front page of a new site with the front page of an application on that site

      Suppose you install a new site and install Weblogger, and you want all visitors to see weblogger automatically.

      1. On the front page, click the Admin button.

      2. On the administration page, click Parameters link.

      3. Change the parameter IndexRedirectUrl to be the URI of the desired application. For a default weblogger installation, this would be weblogger/. Note the trailing slash.

      How do I put custom functionality on front page of a new site?

      Every page within an OpenACS site is part of a subsite More information). The home page of the entire site is the front page is a special, default instance of a subsite, served from /var/lib/aolserver/$OPENACS_SERVICE_NAME/www. 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:

      1. cp /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-subsite/www/index* /var/lib/aolserver/$OPENACS_SERVICE_NAME/www
      2. Edit the new index.adp to change the text; you shouldn't need to edit index.tcl unless you are adding new functionality.

      How do I change the site-wide style?

      Almost all pages on an OpenACS site use ACS Templating, and so their appearance is driven by a layer of different files. Let's examine how this works:

      • A templated page uses an ADP/Tcl pair. The first line in the ADP file is usually:

        <master>

        If it appears exactly like this, without any arguments, the template processor uses default-master for that subsite. For pages in /var/lib/aolserver/$OPENACS_SERVICE_NAME/www, this is /var/lib/aolserver/$OPENACS_SERVICE_NAME/www/default-master.adp and the associated .tcl file. -

      • The default-master is itself a normal ADP page. It draws the subsite navigation elements and invokes site-master (/var/lib/aolserver/$OPENACS_SERVICE_NAME/www/site-master.adp and .tcl)

      • The site-master draws site-wide navigation elements and invokes blank-master (/var/lib/aolserver/$OPENACS_SERVICE_NAME/www/blank-master.adp and .tcl).

      • Blank-master does HTML housekeeping and provides a framework for special sitewide navigation "meta" elements such as Translator widgets and Admin widgets.

      Figure 4.1. Site Templates

      Site Templates

      How do I diagnose a permissions problem?

      • Steps to Reproduce. The events package does not allow users to register for new events.

        1. 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.

        2. Select an available event

        3. A link such as Registration: Deadline is 03/15/2004 10:00am. +

        4. The default-master is itself a normal ADP page. It draws the subsite navigation elements and invokes site-master (/var/lib/aolserver/$OPENACS_SERVICE_NAME/www/site-master.adp and .tcl)

        5. The site-master draws site-wide navigation elements and invokes blank-master (/var/lib/aolserver/$OPENACS_SERVICE_NAME/www/blank-master.adp and .tcl).

        6. Blank-master does HTML housekeeping and provides a framework for special sitewide navigation "meta" elements such as Translator widgets and Admin widgets.

      Figure 4.1. Site Templates

      Site Templates

      How do I diagnose a permissions problem?

      • Steps to Reproduce. The events package does not allow users to register for new events.

        1. 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.

        2. Select an available event

        3. A link such as Registration: Deadline is 03/15/2004 10:00am. » Login or sign up to register for this event. is visible. Click on "Login or sign up" -

        4. Complete a new registration. Afterwards, you should be redirected back to the same page.

        Actual Results: The page says "You do not have permission to register for this event."

        Expected results: A link or form to sign up for the event is shown.

      • Finding the problem. We start with the page that has the error. In the URL it's http://myserver.net/events/event-info.tcl, so open the file /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/events/www/event-info.tcl. It contains this line:

        set can_register_p [events::security::can_register_for_event_p -event_id $event_id]

        We need to know what that procedure does, so go to /api-doc, 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

        return [permission::permission_p -party_id $user_id -object_id $event_id -privilege write]

        This means that a given user must have the write privilege on the event in order to register. Let's assume that the privileges inherit, so that if a user has the write privilege on the whole package, they will have the write privilege on the event.

      • Setting Permissions. A permission has three parts: the privilege, the object of the privilege, and the subject being granted the privilege. In this case the privilege is "write," the object is the Events package, and the subject is all Registered Users.

        1. To grant permissions on a package, start at the site map. Find the event package and click "Set permissions".

        2. Click "Grant Permission"

        3. Grant the write permission to Registered Users.

          Figure 4.2. Granting Permissions

          Granting Permissions

        OpenACS 5.0 offers a prettier version at /admin/applications.

        Figure 4.3. Granting Permissions in 5.0

        Granting Permissions in 5.0

      +

    • Complete a new registration. Afterwards, you should be redirected back to the same page.

    Actual Results: The page says "You do not have permission to register for this event."

    Expected results: A link or form to sign up for the event is shown.

  • Finding the problem. We start with the page that has the error. In the URL it's http://myserver.net/events/event-info.tcl, so open the file /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/events/www/event-info.tcl. It contains this line:

    set can_register_p [events::security::can_register_for_event_p -event_id $event_id]

    We need to know what that procedure does, so go to /api-doc, 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

    return [permission::permission_p -party_id $user_id -object_id $event_id -privilege write]

    This means that a given user must have the write privilege on the event in order to register. Let's assume that the privileges inherit, so that if a user has the write privilege on the whole package, they will have the write privilege on the event.

  • Setting Permissions. A permission has three parts: the privilege, the object of the privilege, and the subject being granted the privilege. In this case the privilege is "write," the object is the Events package, and the subject is all Registered Users.

    1. To grant permissions on a package, start at the site map. Find the event package and click "Set permissions".

    2. Click "Grant Permission"

    3. Grant the write permission to Registered Users.

      Figure 4.2. Granting Permissions

      Granting Permissions

    OpenACS 5.0 offers a prettier version at /admin/applications.

    Figure 4.3. Granting Permissions in 5.0

    Granting Permissions in 5.0

  • Index: openacs-4/packages/acs-core-docs/www/i18n-convert.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n-convert.adp,v diff -u -r1.4.2.4 -r1.4.2.5 --- openacs-4/packages/acs-core-docs/www/i18n-convert.adp 26 Aug 2020 07:46:25 -0000 1.4.2.4 +++ openacs-4/packages/acs-core-docs/www/i18n-convert.adp 3 Sep 2021 09:15:02 -0000 1.4.2.5 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {How to Internationalize a Package} +{/doc/acs-core-docs/ {ACS Core Documentation}} {How to Internationalize a Package} How to Internationalize a Package YYYY-MM-DD HH24:MI:SS and change the field name to *_ansi so that it cannot be confused with previous, improperly formatting fields. For -example,

    -to_char(timestamp,'MM/DD/YYYY HH:MI:SS') as foo_date_pretty

    becomes

    -to_char(timestamp,'YYYY-MM-DD HH24:MI:SS') as foo_date_ansi
    +example,

    to_char(timestamp,'MM/DD/YYYY HH:MI:SS') as foo_date_pretty

    becomes

    to_char(timestamp,'YYYY-MM-DD HH24:MI:SS') as foo_date_ansi
  • In Tcl files where the date fields are used, convert the datetime from local server timezone, which is how it's stored @@ -112,8 +110,7 @@ localization; they are placeholders that format dates with the appropriate codes for the user's locale. These codes are: %x, %X, %q, %Q, and %c. -

    -set foo_date_pretty [lc_time_fmt $foo_date_ansi "%x %X"]

    Use the _pretty version in +

    set foo_date_pretty [lc_time_fmt $foo_date_ansi "%x %X"]

    Use the _pretty version in your ADP page.

    • %c: Long date and time (Mon November 18, 2002 12:00 AM)

    • %x: Short date (11/18/02)

    • %X: Time (12:00 AM)

    • %q: Long date without weekday (November 18, 2002)

    • %Q: Long date with weekday (Monday November 18, 2002)

    The "q" format strings are OpenACS additions; the rest @@ -147,7 +144,7 @@

  • -Avoiding common i18n mistakes

      +Avoiding common i18n mistakes
    • Replace complicated keys with longer, simpler @@ -164,24 +161,20 @@ 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 class="form-help-text"><b>Invitations</b> are sent,
      +directly. For example, this code:

        <p class="form-help-text"><b>Invitations</b> are sent,
                 when this wizard is completed and casting begins.</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:

      Instead, we cancel those keys, edit the file manually, and put -in a single temporary message tag:

      -<p class="form-help-text"> <#Invitations_are_sent <b>Invitations</b> are sent, 
      +in a single temporary message tag:

        <p class="form-help-text"> <#Invitations_are_sent <b>Invitations</b> are sent, 
       when this wizard is completed and casting begins.#>
         </p>

      Complex if statements may produce convoluted message keys that are very hard to localize. Rewrite these if statements. For -example:

      -Select which case <if \@simulation.casting_type\@ eq "open">and
      +example:

      Select which case <if \@simulation.casting_type\@ eq "open">and
       role</if> to join, or create a new case for yourself.  If you do not
       select a case <if \@simulation.casting_type\@ eq "open">and role</if>
       to join, you will be automatically assigned to a case <if
       \@simulation.casting_type\@ eq "open">and role</if> when the
      -simulation begins.

      ... can be rewritten:

      -<if \@simulation.casting_type\@ eq "open">
      +simulation begins.

      ... can be rewritten:

      <if \@simulation.casting_type\@ eq "open">
       
       Select which case and role to join, or create a new case for
       yourself.  If you do not select a case and role to join, you will
      @@ -196,8 +189,7 @@
       be automatically assigned to a case when the simulation
       begins.
       
      -</else>

      Another example, where bugs are concatenated with a number:

      -<if \@components.view_bugs_url\@ not nil>
      +</else>

      Another example, where bugs are concatenated with a number:

      <if \@components.view_bugs_url\@ not nil>
         <a href="\@components.view_bugs_url\@" title="View the \@pretty_names.bugs\@ for this component">
         </if>
         \@components.num_bugs\@ 
      @@ -224,8 +216,7 @@
       <if \@components.view_bugs_url\@ not nil>
       </a>
       </if>
      -

      It would probably be better to do this as something like:

      -<if \@components.view_bugs_url\@ not nil>
      +

      It would probably be better to do this as something like:

      <if \@components.view_bugs_url\@ not nil>
         <if \@components.num_bugs\@ eq 1>
           <a href="\@components.view_bugs_url\@" title="#­bug-tracker.View_the_bug_fo_component#">#­bug-tracker.one_bug#</a>
         </if><else>
      @@ -241,14 +232,11 @@
       resulting word order will not be correct for every language.
       Different languages may use expressions or idioms that don't
       match the phrase key-for-key. Create complete, distinct keys
      -instead of building text from several keys. For example:

      Original code:

      -multirow append links "New [bug_tracker::conn Bug]" 

      Problematic conversion:

      -multirow append links "[_ bug-tracker.New] [bug_tracker::conn Bug]"

      Better conversion:

      set bug_label [bug_tracker::conn Bug]
      +instead of building text from several keys. For example:

      Original code:

      multirow append links "New [bug_tracker::conn Bug]" 

      Problematic conversion:

      multirow append links "[_ bug-tracker.New] [bug_tracker::conn Bug]"

      Better conversion:

      set bug_label [bug_tracker::conn Bug]
       multirow append links "[_ bug-tracker.New_Bug]" "${url_prefix}bug-add"

      ... and include the variable in the key: "New %bug_label%". This gives translators more control over the phrase.

      In this example of bad i18n, full name is created by concatenating first and last name (admittedly this is pervasive in -the toolkit):

      -<a href="\@past_version.maintainer_url\@" title="#­bug-tracker.Email# \@past_version.maintainer_email\@">
      +the toolkit):

      <a href="\@past_version.maintainer_url\@" title="#­bug-tracker.Email# \@past_version.maintainer_email\@">
       \@past_version.maintainer_first_names\@ \@past_version.maintainer_last_name\@</a>
    • @@ -269,8 +257,7 @@ words. Many packages use code words or key words, such as "open" and "closed", which will never be shown to the user. They may match key values in the database, or -be used in a switch or if statement. Don't change these.

      For example, the original code is

      -workflow::case::add_log_data \           
      +be used in a switch or if statement. Don't change these.

      For example, the original code is

      workflow::case::add_log_data \           
              -entry_id $entry_id \        
              -key "resolution" \          
              -value [db_string select_resolution_code {}]

      This is incorrectly internationalized to

        workflow::case::add_log_data \       
      @@ -279,9 +266,7 @@
              -value [db_string select_resolution_code {}]

      But resolution is a keyword in a table and in the code, so this breaks the code. It should not have been internationalized at all. Here's another example of -text that should not have been internationalized:

      -{show_patch_status "open"}

      It is broken if changed to

      -{show_patch_status "[_ bug-tracker.open]"}
      +text that should not have been internationalized:

      {show_patch_status "open"}

      It is broken if changed to

      {show_patch_status "[_ bug-tracker.open]"}
    • Fix automatic truncated message keys. The @@ -301,8 +286,7 @@ phrase. Ask yourself, if I was a translator and didn't know how this application worked, would this key and text make translation easy for me?

      Sometimes the automatic converter creates keys that don't -semantically match their text. Fix these:

      -<msg key="Fix">for version</msg>
      +semantically match their text. Fix these:

      <msg key="Fix">for version</msg>
       <msg key="Fix_1">for</msg>
       <msg key="Fix_2">for Bugs</msg>

      Another example: Bug-tracker component maintainer was converted to [_ bug-tracker.Bug-tracker]. Instead, it @@ -321,11 +305,8 @@

      Quoting in the message catalog for tcl. Watch out for quoting and escaping when editing -text that is also code. For example, the original string

      -set title "Patch \"$patch_summary\" is nice."

      breaks if the message text retains all of the escaping that was -in the Tcl command:

      -<msg>Patch \"$patch_summary\" is nice.</msg>

      When it becomes a key, it should be:

      -<msg>Patch "$patch_summary" is nice.</msg>

      Also, some keys had %var;noquote%, which is not needed since +text that is also code. For example, the original string

      set title "Patch \"$patch_summary\" is nice."

      breaks if the message text retains all of the escaping that was +in the Tcl command:

      <msg>Patch \"$patch_summary\" is nice.</msg>

      When it becomes a key, it should be:

      <msg>Patch "$patch_summary" is nice.</msg>

      Also, some keys had %var;noquote%, which is not needed since those variables are not quoted (and in fact the variable won't even be recognized so you get the literal %var;noquote% in the output).

      @@ -335,11 +316,8 @@ within curly brackets isn't evaluated. Tcl uses curly brackets as an alternative way to build lists. But Tcl also uses curly brackets as an alternative to quotation marks for quoting text. So -this original code

      -array set names { key "Pretty" ...} 

      ... if converted to

      -array set names { key "[_bug-tracker.Pretty]" ...} 

      ... won't work since the _ func will not be called. Instead, -it should be

      -array set names [list key [_bug-tracker.Pretty] ...]
      +this original code

      array set names { key "Pretty" ...} 

      ... if converted to

      array set names { key "[_bug-tracker.Pretty]" ...} 

      ... won't work since the _ func will not be called. Instead, +it should be

      array set names [list key [_bug-tracker.Pretty] ...]
    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.29.2.3 -r1.29.2.4 --- openacs-4/packages/acs-core-docs/www/i18n-convert.html 27 Jun 2019 18:22:21 -0000 1.29.2.3 +++ openacs-4/packages/acs-core-docs/www/i18n-convert.html 3 Sep 2021 09:15:02 -0000 1.29.2.4 @@ -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. -

    Avoiding common i18n mistakes

    • Replace complicated keys with longer, simpler keys. When writing in one language, it is possible to create clever code to make correct text. In English, for example, you can put an if 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.

      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 class="form-help-text"><b>Invitations</b> are sent,
      +      

    Avoiding common i18n mistakes

    • Replace complicated keys with longer, simpler keys. When writing in one language, it is possible to create clever code to make correct text. In English, for example, you can put an if 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.

      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 class="form-help-text"><b>Invitations</b> are sent,
                 when this wizard is completed and casting begins.</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:

      Instead, we cancel those keys, edit the file manually, and put in a single temporary message tag:

        <p class="form-help-text"> <#Invitations_are_sent <b>Invitations</b> are sent, 
       when this wizard is completed and casting begins.#>
         </p>

      Complex if statements may produce convoluted message keys that are very hard to localize. Rewrite these if statements. For example:

      Select which case <if @simulation.casting_type@ eq "open">and
      Index: openacs-4/packages/acs-core-docs/www/i18n-design.adp
      ===================================================================
      RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n-design.adp,v
      diff -u -r1.3.2.2 -r1.3.2.3
      --- openacs-4/packages/acs-core-docs/www/i18n-design.adp	26 Aug 2020 07:46:25 -0000	1.3.2.2
      +++ openacs-4/packages/acs-core-docs/www/i18n-design.adp	3 Sep 2021 09:15:02 -0000	1.3.2.3
      @@ -1,5 +1,5 @@
       
      -{/doc/acs-core-docs {ACS Core Documentation}} {Design Notes}
      +{/doc/acs-core-docs/ {ACS Core Documentation}} {Design Notes}
       Design Notes
       
       {/doc/acs-core-docs {ACS Core Documentation}} {How Internationalization/Localization works in
      +{/doc/acs-core-docs/ {ACS Core Documentation}} {How Internationalization/Localization works in
       OpenACS}
       How Internationalization/Localization works in
       OpenACS
      @@ -48,7 +48,7 @@
       interface.

    -Separate Templates for each Locale

    If the request processor finds a file named filename.locale.adp, where locale matches +Separate Templates for each Locale

    If the request processor finds a filenamed filename.locale.adp, where locale matches the user's locale, it will process that file instead of filename.adp. For example, for a user with locale tl_PH, the 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.20.2.1 -r1.20.2.2 --- openacs-4/packages/acs-core-docs/www/i18n-introduction.html 2 Mar 2019 19:30:04 -0000 1.20.2.1 +++ openacs-4/packages/acs-core-docs/www/i18n-introduction.html 3 Sep 2021 09:15:02 -0000 1.20.2.2 @@ -29,11 +29,11 @@ keys and localized ADP files. For ADP pages which are mostly code, replacing the message text with message key placeholders is simpler. This approach also allows new translation in the - database, without affecting the file system. For ADP pages + database, without affecting the filesystem. For ADP pages which are static and mostly text, it may be easier to create a new ADP page for each language. In this case, the pages are distinguished by a file naming convention. -

    User Content

    OpenACS does not have a general system for supporting multiple, localized versions of user-input content. This document currently refers only to internationalizing the text in the package user interface.

    Separate Templates for each Locale

    If the request processor finds a file named filename.locale.adp, where locale matches the user's locale, it will process that file instead of filename.adp. For example, for a user with locale tl_PH, the file index.tl_PH.adp, if found, will be used instead of index.adp. The locale-specific file should thus contain text in the language appropriate for that locale. The code in the page, however, should still be in English. Message keys are processed normally.

    Message Catalogs

    Message Keys in Template Files (ADP Files)

    +

    User Content

    OpenACS does not have a general system for supporting multiple, localized versions of user-input content. This document currently refers only to internationalizing the text in the package user interface.

    Separate Templates for each Locale

    If the request processor finds a filenamed filename.locale.adp, where locale matches the user's locale, it will process that file instead of filename.adp. For example, for a user with locale tl_PH, the file index.tl_PH.adp, if found, will be used instead of index.adp. The locale-specific file should thus contain text in the language appropriate for that locale. The code in the page, however, should still be in English. Message keys are processed normally.

    Message Catalogs

    Message Keys in Template Files (ADP Files)

    Internationalizing templates is about replacing human readable text in a certain language with internal message keys, which can then be dynamically replaced with real human language in @@ -89,7 +89,7 @@ files all message lookups *must* be on either of the following formats:

    • Typical static key lookup: [_ package_key.message_key] - The message key and package key used here must be string literals, they can't result from variable evaluation.

    • - Static key lookup with non-default locale: [lang::message::lookup $locale package_key.message_key] - The message key and package key used here must be string literals, they can't result from variable evaluation.

    • + Static key lookup with nondefault locale: [lang::message::lookup $locale package_key.message_key] - The message key and package key used here must be string literals, they can't result from variable evaluation.

    • Dynamic key lookup: [lang::util::localize $var_with_embedded_message_keys] - In this case the message keys in the variable var_with_embedded_message_keys must appear as string literals \#package_key.message_key\# somewhere in the code. Here is an example of a dynamic lookup: set message_key_array { dynamic_key_1 \#package_key.message_key1\# Index: openacs-4/packages/acs-core-docs/www/i18n-overview.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n-overview.adp,v diff -u -r1.3.2.2 -r1.3.2.3 --- openacs-4/packages/acs-core-docs/www/i18n-overview.adp 26 Aug 2020 07:46:25 -0000 1.3.2.2 +++ openacs-4/packages/acs-core-docs/www/i18n-overview.adp 3 Sep 2021 09:15:03 -0000 1.3.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Internationalization and Localization Overview} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Internationalization and Localization Overview} Internationalization and Localization Overview {/doc/acs-core-docs {ACS Core Documentation}} {OpenACS Internationalization Requirements} +{/doc/acs-core-docs/ {ACS Core Documentation}} {OpenACS Internationalization Requirements} OpenACS Internationalization Requirements

      90.60 The default if we -can't determine a timezone is to display all dates and times -in some universal timezone such as GMT.

      +can't determine a timezone is to display all dates and times in +some universal timezone such as GMT.

    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.30.2.2 -r1.30.2.3 --- openacs-4/packages/acs-core-docs/www/i18n-requirements.html 10 Mar 2019 21:47:14 -0000 1.30.2.2 +++ openacs-4/packages/acs-core-docs/www/i18n-requirements.html 3 Sep 2021 09:15:03 -0000 1.30.2.3 @@ -194,7 +194,7 @@ filename.

    50.20 Tcl page script files can be authored in any character set. The system must have a way to determine the character set before loading the files, probably from - the filename.

    Submitted Form Data Character Set

    50.30 Data which is submitted with a + the filename.

    Submitted Form Data Character Set

    50.30 Data which is submitted with an HTTP request using a GET or POST method may be in any character set. The system must be able to determine the encoding of the form data and convert it to Unicode on demand.

    50.35 The developer must be able to @@ -251,17 +251,15 @@ given locale with ORDER BY clauses in queries.

    80.40 The system must handle full-text search in any supported language.

    Time Zones

    90.10 Provide API support for specifying -a time zone

    90.20 Provide an API for computing time +a timezone

    90.20 Provide an API for computing time and date operations which are aware of timezones. So for example a calendar module can properly synchronize items inserted into a -calendar from users in different time zones using their own local +calendar from users in different timezones using their own local times.

    90.30 Store all dates and times in -universal time zone, UTC.

    90.40 For a registered users, a time -zone preference should be stored.

    90.50 For a non-registered user a time -zone preference should be attached via a session or else UTC should +universal timezone, UTC.

    90.40 For a registered users, a timezone preference should be stored.

    90.50 For a non-registered user a timezone preference should be attached via a session or else UTC should be used to display every date and time.

    90.60 The default if we can't -determine a time zone is to display all dates and times in some -universal time zone such as GMT.

    Database

    100.10 Since UTF8 strings can use up to +determine a timezone is to display all dates and times in some +universal timezone such as GMT.

    Database

    100.10 Since UTF8 strings can use up to three (UCS2) or six (UCS4) bytes per character, make sure that column size declarations in the schema are large enough to accommodate required data (such as email addresses in Index: openacs-4/packages/acs-core-docs/www/i18n-translators.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n-translators.adp,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/acs-core-docs/www/i18n-translators.adp 26 Aug 2020 07:46:25 -0000 1.4.2.2 +++ openacs-4/packages/acs-core-docs/www/i18n-translators.adp 3 Sep 2021 09:15:03 -0000 1.4.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Translator's Guide} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Translator's Guide} Translator's Guide {/doc/acs-core-docs {ACS Core Documentation}} {Chapter 14. Internationalization} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Chapter 14. Internationalization} Chapter 14. Internationalization {/doc/acs-core-docs {ACS Core Documentation}} {OpenACS Core Documentation} +{/doc/acs-core-docs/ {ACS Core Documentation}} {OpenACS Core Documentation} OpenACS Core Documentation

    -OpenACS Core Documentation


    +OpenACS Core Documentation

    Table of Contents

    I. OpenACS For 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.56.2.3 -r1.56.2.4 --- openacs-4/packages/acs-core-docs/www/index.html 27 Jun 2019 18:22:21 -0000 1.56.2.3 +++ openacs-4/packages/acs-core-docs/www/index.html 3 Sep 2021 09:15:03 -0000 1.56.2.4 @@ -1,4 +1,4 @@ -OpenACS Core Documentation

    OpenACS Core Documentation


    Table of Contents

    I. OpenACS For Everyone
    1. High level information: What is OpenACS?
    Overview
    OpenACS Release Notes
    II. Administrator's Guide
    2. Installation Overview
    Basic Steps
    Prerequisite Software
    3. Complete Installation
    Install a Unix-like system and supporting software
    Install Oracle 8.1.7
    Install PostgreSQL
    Install AOLserver 4
    Install OpenACS 5.9.0
    OpenACS Installation Guide for Windows
    OpenACS Installation Guide for macOS
    4. Configuring a new OpenACS Site
    Installing OpenACS packages
    Mounting OpenACS packages
    Configuring an OpenACS package
    Setting Permissions on an OpenACS package
    How Do I?
    5. Upgrading
    Overview
    Upgrading 4.5 or higher to 4.6.3
    Upgrading OpenACS 4.6.3 to 5.0
    Upgrading an OpenACS 5.0.0 or greater installation
    Upgrading the OpenACS files
    Upgrading Platform components
    6. Production Environments
    Starting and Stopping an OpenACS instance.
    AOLserver keepalive with inittab
    Running multiple services on one machine
    High Availability/High Performance Configurations
    Staged Deployment for Production Networks
    Installing SSL Support for an OpenACS service
    Set up Log Analysis Reports
    External uptime validation
    Diagnosing Performance Problems
    7. Database Management
    Running a PostgreSQL database on another server
    Deleting a tablespace
    Vacuum Postgres nightly
    8. Backup and Recovery
    Backup Strategy
    Manual backup and recovery
    Automated Backup
    Using CVS for backup-recovery
    A. Install Red Hat 8/9
    B. Install additional supporting software
    Unpack the OpenACS tarball
    Initialize CVS (OPTIONAL)
    Add PSGML commands to emacs init file (OPTIONAL)
    Install Daemontools (OPTIONAL)
    Install qmail (OPTIONAL)
    Install Analog web file analyzer
    Install nspam
    Install Full Text Search using Tsearch2
    Install nsopenssl
    Install tclwebtest.
    Install PHP for use in AOLserver
    Install Squirrelmail for use as a webmail system for OpenACS
    Install PAM Radius for use as external authentication
    Install LDAP for use as external authentication
    Install AOLserver 3.3oacs1
    C. Credits
    Where did this document come from?
    Linux Install Guides
    Security Information
    Resources
    III. For OpenACS Package Developers
    9. Development Tutorial
    Creating an Application Package
    Setting Up Database Objects
    Creating Web Pages
    Debugging and Automated Testing
    10. Advanced Topics
    Write the Requirements and Design Specs
    Add the new package to CVS
    OpenACS Edit This Page Templates
    Adding Comments
    Admin Pages
    Categories
    Profile your code
    Prepare the package for distribution.
    Distributing upgrades of your package
    Notifications
    Hierarchical data
    Using .vuh files for pretty URLs
    Laying out a page with CSS instead of tables
    Sending HTML email from your application
    Basic Caching
    Scheduled Procedures
    Enabling WYSIWYG
    Adding in parameters for your package
    Writing upgrade scripts
    Connect to a second database
    Future Topics
    11. Development Reference
    OpenACS Packages
    OpenACS Data Models and the Object System
    The Request Processor
    The OpenACS Database Access API
    Using Templates in OpenACS
    Groups, Context, Permissions
    Writing OpenACS Application Pages
    Parties in OpenACS
    OpenACS Permissions Tediously Explained
    Object Identity
    Programming with AOLserver
    Using Form Builder: building html forms dynamically
    12. Engineering Standards
    OpenACS Style Guide
    +OpenACS Core Documentation

    OpenACS Core Documentation


    Table of Contents

    I. OpenACS For Everyone
    1. High level information: What is OpenACS?
    Overview
    OpenACS Release Notes
    II. Administrator's Guide
    2. Installation Overview
    Basic Steps
    Prerequisite Software
    3. Complete Installation
    Install a Unix-like system and supporting software
    Install Oracle 8.1.7
    Install PostgreSQL
    Install AOLserver 4
    Install OpenACS 5.9.0
    OpenACS Installation Guide for Windows
    OpenACS Installation Guide for macOS
    4. Configuring a new OpenACS Site
    Installing OpenACS packages
    Mounting OpenACS packages
    Configuring an OpenACS package
    Setting Permissions on an OpenACS package
    How Do I?
    5. Upgrading
    Overview
    Upgrading 4.5 or higher to 4.6.3
    Upgrading OpenACS 4.6.3 to 5.0
    Upgrading an OpenACS 5.0.0 or greater installation
    Upgrading the OpenACS files
    Upgrading Platform components
    6. Production Environments
    Starting and Stopping an OpenACS instance.
    AOLserver keepalive with inittab
    Running multiple services on one machine
    High Availability/High Performance Configurations
    Staged Deployment for Production Networks
    Installing SSL Support for an OpenACS service
    Set up Log Analysis Reports
    External uptime validation
    Diagnosing Performance Problems
    7. Database Management
    Running a PostgreSQL database on another server
    Deleting a tablespace
    Vacuum Postgres nightly
    8. Backup and Recovery
    Backup Strategy
    Manual backup and recovery
    Automated Backup
    Using CVS for backup-recovery
    A. Install Red Hat 8/9
    B. Install additional supporting software
    Unpack the OpenACS tarball
    Initialize CVS (OPTIONAL)
    Add PSGML commands to emacs init file (OPTIONAL)
    Install Daemontools (OPTIONAL)
    Install qmail (OPTIONAL)
    Install Analog web file analyzer
    Install nspam
    Install Full Text Search using Tsearch2
    Install nsopenssl
    Install tclwebtest.
    Install PHP for use in AOLserver
    Install Squirrelmail for use as a webmail system for OpenACS
    Install PAM Radius for use as external authentication
    Install LDAP for use as external authentication
    Install AOLserver 3.3oacs1
    C. Credits
    Where did this document come from?
    Linux Install Guides
    Security Information
    Resources
    III. For OpenACS Package Developers
    9. Development Tutorial
    Creating an Application Package
    Setting Up Database Objects
    Creating Web Pages
    Debugging and Automated Testing
    10. Advanced Topics
    Write the Requirements and Design Specs
    Add the new package to CVS
    OpenACS Edit This Page Templates
    Adding Comments
    Admin Pages
    Categories
    Profile your code
    Prepare the package for distribution.
    Distributing upgrades of your package
    Notifications
    Hierarchical data
    Using .vuh files for pretty URLs
    Laying out a page with CSS instead of tables
    Sending HTML email from your application
    Basic Caching
    Scheduled Procedures
    Enabling WYSIWYG
    Adding in parameters for your package
    Writing upgrade scripts
    Connect to a second database
    Future Topics
    11. Development Reference
    OpenACS Packages
    OpenACS Data Models and the Object System
    The Request Processor
    The OpenACS Database Access API
    Using Templates in OpenACS
    Groups, Context, Permissions
    Writing OpenACS Application Pages
    Parties in OpenACS
    OpenACS Permissions Tediously Explained
    Object Identity
    Programming with AOLserver
    Using Form Builder: building html forms dynamically
    12. Engineering Standards
    OpenACS Style Guide
    CVS Guidelines -
    Release Version Numbering
    Constraint naming standard
    ACS File Naming and Formatting Standards
    PL/SQL Standards
    Variables
    Automated Testing
    13. Documentation Standards
    OpenACS Documentation Guide
    Using PSGML mode in Emacs
    Using nXML mode in Emacs
    Detailed Design Documentation Template
    System/Application Requirements Template
    14. Internationalization
    Internationalization and Localization Overview
    How Internationalization/Localization works in OpenACS
    How to Internationalize a Package
    Design Notes
    Translator's Guide
    D. Using CVS with an OpenACS Site
    IV. For OpenACS Platform Developers
    15. Kernel Documentation
    Overview
    Object Model Requirements
    Object Model Design
    Permissions Requirements
    Permissions Design
    Groups Requirements
    Groups Design
    Subsites Requirements
    Subsites Design Document
    Package Manager Requirements
    Package Manager Design
    Database Access API
    OpenACS Internationalization Requirements
    Security Requirements
    Security Design
    Security Notes
    Request Processor Requirements
    Request Processor Design
    Documenting Tcl Files: Page Contracts and Libraries
    Bootstrapping OpenACS
    External Authentication Requirements
    16. Releasing OpenACS
    OpenACS Core and .LRN
    How to Update the OpenACS.org repository
    How to package and release an OpenACS Package
    How to Update the translations
    Index
    +
    Release Version Numbering
    Constraint naming standard
    ACS File Naming and Formatting Standards
    PL/SQL Standards
    Variables
    Automated Testing
    13. Documentation Standards
    OpenACS Documentation Guide
    Using PSGML mode in Emacs
    Using nXML mode in Emacs
    Detailed Design Documentation Template
    System/Application Requirements Template
    14. Internationalization
    Internationalization and Localization Overview
    How Internationalization/Localization works in OpenACS
    How to Internationalize a Package
    Design Notes
    Translator's Guide
    D. Using CVS with an OpenACS Site
    IV. For OpenACS Platform Developers
    15. Kernel Documentation
    Overview
    Object Model Requirements
    Object Model Design
    Permissions Requirements
    Permissions Design
    Groups Requirements
    Groups Design
    Subsites Requirements
    Subsites Design Document
    Package Manager Requirements
    Package Manager Design
    Database Access API
    OpenACS Internationalization Requirements
    Security Requirements
    Security Design
    Security Notes
    Request Processor Requirements
    Request Processor Design
    Documenting Tcl Files: Page Contracts and Libraries
    Bootstrapping OpenACS
    External Authentication Requirements
    16. Releasing OpenACS
    OpenACS Core and .LRN
    How to Update the OpenACS.org repository
    How to package and release an OpenACS Package
    How to Update the translations
    Index
    Index: openacs-4/packages/acs-core-docs/www/individual-programs.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/individual-programs.adp,v diff -u -r1.5.2.3 -r1.5.2.4 --- openacs-4/packages/acs-core-docs/www/individual-programs.adp 5 Jan 2021 17:33:39 -0000 1.5.2.3 +++ openacs-4/packages/acs-core-docs/www/individual-programs.adp 3 Sep 2021 09:15:04 -0000 1.5.2.4 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Prerequisite Software} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Prerequisite Software} Prerequisite Software
  • Web Server. The web server handles -incoming HTTP requests, provides a runtime environment for +incoming HTTP requests, provides a run time environment for OpenACS's Tcl code, connects to the database, sends out HTTP responses, and logs requests and errors. OpenACS uses AOLserver; some people have had success running Apache with @@ -308,8 +308,8 @@ development to production, or get or contribute development code from openacs.org.

  • -
    +
  • tclwebtest, OPTIONAL. tclwebtest is a tool for testing web interfaces via Tcl scripts.

  • Web Server. The web server handles incoming HTTP requests, provides - a runtime environment for OpenACS's Tcl code, connects to the + a run time environment for OpenACS's Tcl code, connects to the database, sends out HTTP responses, and logs requests and errors. OpenACS uses AOLserver; some people have had success running Apache with mod_nsd.

    • AOLserver 4.x, REQUIRED. Provides the base HTTP server

    @@ -96,7 +96,7 @@ higher, full text search is also available via tsearch2.

  • Analog 5.32 or newer, OPTIONAL. This program examines web server request logs, looks up DNS values, and produces a report. You need this if you - want to see how much traffic your site is getting.

  • Balance 3.11 or newer, OPTIONAL. "Balance is a simple but powerful generic tcp proxy with round robin load balancing and failover mechanisms." You need this or something equivalent if you are running a high-availability production site and do not have an external load balancing system.

  • Database. The data on your site (for example, user names and passwords, + want to see how much traffic your site is getting.

  • Balance 3.11 or newer, OPTIONAL. "Balance is a simple but powerful generic tcp proxy with round robin load balancing and failover mechanisms." You need this or something equivalent if you are running a high-availability production site and do not have an external load balancing system.

  • Database. The data on your site (for example, usernames and passwords, calendar entries, and notes) is stored in the database. OpenACS separates the database with an abstraction layer, which means that several different databases all function Index: openacs-4/packages/acs-core-docs/www/install-cvs.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-cvs.adp,v diff -u -r1.4.2.4 -r1.4.2.5 --- openacs-4/packages/acs-core-docs/www/install-cvs.adp 26 Aug 2020 07:46:25 -0000 1.4.2.4 +++ openacs-4/packages/acs-core-docs/www/install-cvs.adp 3 Sep 2021 09:15:04 -0000 1.4.2.5 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Initialize CVS (OPTIONAL)} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Initialize CVS (OPTIONAL)} Initialize CVS (OPTIONAL)

    -Initialize CVS (OPTIONAL)

    CVS is a source control system. Create and initialize a +Initialize CVS (OPTIONAL)

    CVS is a source control system. Create and initialize a directory for a local cvs repository.

    [root tmp]# mkdir /cvsroot
     [root tmp]# cvs -d /cvsroot init
     [root tmp]#
    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.43.2.3 -r1.43.2.4
    --- openacs-4/packages/acs-core-docs/www/install-cvs.html	27 Jun 2019 18:22:21 -0000	1.43.2.3
    +++ openacs-4/packages/acs-core-docs/www/install-cvs.html	3 Sep 2021 09:15:04 -0000	1.43.2.4
    @@ -1,5 +1,5 @@
     
    -Initialize CVS (OPTIONAL)

    Initialize CVS (OPTIONAL)

    CVS is a source control system. Create and initialize a +Initialize CVS (OPTIONAL)

    Initialize CVS (OPTIONAL)

    CVS is a source control system. Create and initialize a directory for a local cvs repository.

    [root tmp]# mkdir /cvsroot
     [root tmp]# cvs -d /cvsroot init
     [root tmp]#
    Index: openacs-4/packages/acs-core-docs/www/install-daemontools.adp
    ===================================================================
    RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-daemontools.adp,v
    diff -u -r1.4.2.4 -r1.4.2.5
    --- openacs-4/packages/acs-core-docs/www/install-daemontools.adp	26 Aug 2020 07:46:25 -0000	1.4.2.4
    +++ openacs-4/packages/acs-core-docs/www/install-daemontools.adp	3 Sep 2021 09:15:04 -0000	1.4.2.5
    @@ -1,5 +1,5 @@
     
    -{/doc/acs-core-docs {ACS Core Documentation}} {Install Daemontools (OPTIONAL)}
    +{/doc/acs-core-docs/ {ACS Core Documentation}} {Install Daemontools (OPTIONAL)}
     Install Daemontools (OPTIONAL)
     
     
    1. -

      Install Daemontools

      +

      Install Daemontools

      download daemontools and install it.

      • 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.44.2.3 -r1.44.2.4 --- openacs-4/packages/acs-core-docs/www/install-daemontools.html 27 Jun 2019 18:22:21 -0000 1.44.2.3 +++ openacs-4/packages/acs-core-docs/www/install-daemontools.html 3 Sep 2021 09:15:05 -0000 1.44.2.4 @@ -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.

        1. Install Daemontools

          download daemontools and install it.

          • Red Hat 8

            [root root]# mkdir -p /package
            +      services.

            1. Install Daemontools

              download daemontools and install it.

              • Red Hat 8

                [root root]# mkdir -p /package
                 [root root]# chmod 1755 /package/
                 [root root]# cd /package/
                 [root package]# tar xzf /tmp/daemontools-0.76.tar.gz
                Index: openacs-4/packages/acs-core-docs/www/install-full-text-search-tsearch2.adp
                ===================================================================
                RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-full-text-search-tsearch2.adp,v
                diff -u -r1.5.2.4 -r1.5.2.5
                --- openacs-4/packages/acs-core-docs/www/install-full-text-search-tsearch2.adp	26 Aug 2020 07:46:25 -0000	1.5.2.4
                +++ openacs-4/packages/acs-core-docs/www/install-full-text-search-tsearch2.adp	3 Sep 2021 09:15:05 -0000	1.5.2.5
                @@ -1,5 +1,5 @@
                 
                -{/doc/acs-core-docs {ACS Core Documentation}} {Install Full Text Search using Tsearch2}
                +{/doc/acs-core-docs/ {ACS Core Documentation}} {Install Full Text Search using Tsearch2}
                 Install Full Text Search using Tsearch2
                 
                 

                -Install Tsearch2 module

                In earlier versions of PostgreSQL (7.4), tsearch2 was a contrib +Install Tsearch2 module

            In earlier versions of PostgreSQL (7.4), tsearch2 was a contrib module. With PostgreSQL 9.*, it was included in the standard PostgreSQL package with minor naming changes (e.g. the function "rank" became "ts_rank"). PostgreSQL 9 included 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.15.2.3 -r1.15.2.4 --- openacs-4/packages/acs-core-docs/www/install-full-text-search-tsearch2.html 27 Jun 2019 18:22:21 -0000 1.15.2.3 +++ openacs-4/packages/acs-core-docs/www/install-full-text-search-tsearch2.html 3 Sep 2021 09:15:05 -0000 1.15.2.4 @@ -6,7 +6,7 @@ V2 Introduction by Andrew J. Kopciuch

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

          Install Tsearch2 module

          In earlier versions of PostgreSQL (7.4), tsearch2 was a contrib +

          Install Tsearch2 module

          In earlier versions of PostgreSQL (7.4), tsearch2 was a contrib module. With PostgreSQL 9.*, it was included in the standard PostgreSQL package with minor naming changes (e.g. the function "rank" became "ts_rank"). PostgreSQL 9 included a backward Index: openacs-4/packages/acs-core-docs/www/install-ldap-radius.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-ldap-radius.adp,v diff -u -r1.5.2.3 -r1.5.2.4 --- openacs-4/packages/acs-core-docs/www/install-ldap-radius.adp 5 Jan 2021 17:33:39 -0000 1.5.2.3 +++ openacs-4/packages/acs-core-docs/www/install-ldap-radius.adp 3 Sep 2021 09:15:05 -0000 1.5.2.4 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Install LDAP for use as external authentication} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Install LDAP for use as external authentication} Install LDAP for use as external authentication -

  • Configure ns_ldap for traditional use. Traditionally OpenACS has supported ns_ldap for authentication by storing the OpenACS password in an encrypted field within the LDAP server called "userPassword". Furthermore a CN field was used for searching for the username, usually userID or something similar. This field is identical to the usernamestored in OpenACS. Therefore the login will only work if you change login method to make use of the username instead.

    • +

  • Configure ns_ldap for traditional use. Traditionally OpenACS has supported ns_ldap for authentication by storing the OpenACS password in an encrypted field within the LDAP server called "userPassword". Furthermore, a CN field was used for searching for the username, usually userID or something similar. This field is identical to the usernamestored in OpenACS. Therefore, the login will only work if you change login method to make use of the username instead.

    • Change config.tcl. Remove the # in front of ns_param nsldap ${bindir}/nsldap.so to enable the loading of the ns_ldap module. -

  • Configure ns_ldap for use with LDAP bind. LDAP authentication usually is done by trying to bind (a.k.a. login) a user with the LDAP server. The password of the user is not stored in any field of the LDAP server, but kept internally. The latest version of ns_ldap supports this method with the ns_ldap bind command. All you have to do to enable this is to configure auth_ldap to make use of the BIND authentication instead. Alternatively you can write a small script on how to calculate the username out of the given input (e.g. if the OpenACS username is malte.fb03.tu, the LDAP request can be translated into "ou=malte,ou=fb03,o=tu" (this example is encoded in auth_ldap and you just have to comment it out to make use of it).

  • +

  • Configure ns_ldap for use with LDAP bind. LDAP authentication usually is done by trying to bind (aka login) a user with the LDAP server. The password of the user is not stored in any field of the LDAP server, but kept internally. The latest version of ns_ldap supports this method with the ns_ldap bind command. All you have to do to enable this is to configure auth_ldap to make use of the BIND authentication instead. Alternatively you can write a small script on how to calculate the username out of the given input (e.g. if the OpenACS username is malte.fb03.tu, the LDAP request can be translated into "ou=malte,ou=fb03,o=tu" (this example is encoded in auth_ldap and you just have to comment it out to make use of it).

  • Index: openacs-4/packages/acs-core-docs/www/install-more-software.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-more-software.adp,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/acs-core-docs/www/install-more-software.adp 26 Aug 2020 07:46:25 -0000 1.4.2.2 +++ openacs-4/packages/acs-core-docs/www/install-more-software.adp 3 Sep 2021 09:15:05 -0000 1.4.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Appendix B. Install additional supporting +{/doc/acs-core-docs/ {ACS Core Documentation}} {Appendix B. Install additional supporting software} Appendix B. Install additional supporting software Index: openacs-4/packages/acs-core-docs/www/install-next-add-server.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-next-add-server.adp,v diff -u -r1.4.2.3 -r1.4.2.4 --- openacs-4/packages/acs-core-docs/www/install-next-add-server.adp 5 Jan 2021 17:33:39 -0000 1.4.2.3 +++ openacs-4/packages/acs-core-docs/www/install-next-add-server.adp 3 Sep 2021 09:15:06 -0000 1.4.2.4 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Running multiple services on one machine} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Running multiple services on one machine} Running multiple services on one machine

    to different values.

    Services on different hostnames. For example, suppose you want to support http://service0.com and http://bar.com on the same machine. The -easiest way is to assign each one a different IP address. Then you +easiest way is to assign each one a different ip address. Then you can install two services as above, but with different values -for

    -set hostname               [ns_info hostname]
    +for

    set hostname               [ns_info hostname]
     set address                127.0.0.1 

    If you want to install two services with different hostnames sharing the same ip, you'll need nsvhr to redirect requests based on the contents of the tcp headers. See AOLserver Virtual Hosting with TCP by markd.

    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.19.2.1 -r1.19.2.2 --- openacs-4/packages/acs-core-docs/www/install-next-add-server.html 2 Mar 2019 19:30:05 -0000 1.19.2.1 +++ openacs-4/packages/acs-core-docs/www/install-next-add-server.html 3 Sep 2021 09:15:06 -0000 1.19.2.2 @@ -4,16 +4,15 @@ $OPENACS_SERVICE_NAME, and change the

    set httpport              8000
     set httpsport             8443 

    - to different values.

    Services on different host names. For example, suppose you want to support + to different values.

    Services on different hostnames. For example, suppose you want to support http://service0.com and http://bar.com on the same machine. The easiest way is to assign each one a different ip address. Then you can install two services as above, but with different values for

    set hostname               [ns_info hostname]
     set address                127.0.0.1 

    -

    If you want to install two services with different host - names sharing the same ip, you'll need nsvhr to redirect requests +

    If you want to install two services with different hostnames sharing the same ip, you'll need nsvhr to redirect requests based on the contents of the tcp headers. See AOLserver Virtual Hosting with TCP by markd.

    Index: openacs-4/packages/acs-core-docs/www/install-next-backups.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-next-backups.adp,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/acs-core-docs/www/install-next-backups.adp 26 Aug 2020 07:46:25 -0000 1.4.2.2 +++ openacs-4/packages/acs-core-docs/www/install-next-backups.adp 3 Sep 2021 09:15:06 -0000 1.4.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Backup Strategy} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Backup Strategy} Backup Strategy {/doc/acs-core-docs {ACS Core Documentation}} {Vacuum Postgres nightly} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Vacuum Postgres nightly} Vacuum Postgres nightly {/doc/acs-core-docs {ACS Core Documentation}} {Install nsopenssl} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Install nsopenssl} Install nsopenssl {/doc/acs-core-docs {ACS Core Documentation}} {Install nspam} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Install nspam} Install nspam {/doc/acs-core-docs {ACS Core Documentation}} {Deleting a tablespace} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Deleting a tablespace} Deleting a tablespace {/doc/acs-core-docs {ACS Core Documentation}} {AOLserver keepalive with inittab} +{/doc/acs-core-docs/ {ACS Core Documentation}} {AOLserver keepalive with inittab} AOLserver keepalive with inittab web
    group to ensure that the users updating the web page can use the script, but that general system users cannot run the script. You also need to Index: openacs-4/packages/acs-core-docs/www/install-openacs-keepalive.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-openacs-keepalive.adp,v diff -u -r1.4.2.4 -r1.4.2.5 --- openacs-4/packages/acs-core-docs/www/install-openacs-keepalive.adp 26 Aug 2020 07:46:25 -0000 1.4.2.4 +++ openacs-4/packages/acs-core-docs/www/install-openacs-keepalive.adp 3 Sep 2021 09:15:07 -0000 1.4.2.5 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Starting and Stopping an OpenACS instance.} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Starting and Stopping an OpenACS instance.} Starting and Stopping an OpenACS instance.

    More information can be found on the AOLserver Daemontools page.

    -

    Table 6.1. How it +

    Table 6.1. How it Works

    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.27.2.3 -r1.27.2.4 --- openacs-4/packages/acs-core-docs/www/install-openacs-keepalive.html 27 Jun 2019 18:22:21 -0000 1.27.2.3 +++ openacs-4/packages/acs-core-docs/www/install-openacs-keepalive.html 3 Sep 2021 09:15:07 -0000 1.27.2.4 @@ -64,6 +64,6 @@ More information can be found on the AOLserver Daemontools page. -

    Table 6.1. How it Works

    ProgramInvoked by this program ...... using this fileWhere to find errorsLog goes toUse these commands to control it
    svscanboot +

    Table 6.1. How it Works

    ProgramInvoked by this program ...... using this fileWhere to find errorsLog goes toUse these commands to control it
    svscanboot init/etc/inittabps -auxw | grep readproctitlen/a 
    aolserversupervise (a child of svscanboot)/service/$OPENACS_SERVICE_NAME/run/var/lib/aolserver/$OPENACS_SERVICE_NAME/log/error.log/var/lib/aolserver/$OPENACS_SERVICE_NAME/log/$OPENACS_SERVICE_NAME.logsvc -k /service/$OPENACS_SERVICE_NAME
    postgresqlRedhat init scripts during boot/etc/init.d/postgresql/usr/local/pgsql/data/server.log service postgresql start (Red Hat), /etc/init.d/postgresql start (Debian)

    Index: openacs-4/packages/acs-core-docs/www/install-origins.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-origins.adp,v diff -u -r1.3.2.2 -r1.3.2.3 --- openacs-4/packages/acs-core-docs/www/install-origins.adp 26 Aug 2020 07:46:25 -0000 1.3.2.2 +++ openacs-4/packages/acs-core-docs/www/install-origins.adp 3 Sep 2021 09:15:07 -0000 1.3.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Where did this document come from?} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Where did this document come from?} Where did this document come from? {/doc/acs-core-docs {ACS Core Documentation}} {Chapter 2. Installation Overview} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Chapter 2. Installation Overview} Chapter 2. Installation Overview {/doc/acs-core-docs {ACS Core Documentation}} {Install PAM Radius for use as external +{/doc/acs-core-docs/ {ACS Core Documentation}} {Install PAM Radius for use as external authentication} Install PAM Radius for use as external authentication Index: openacs-4/packages/acs-core-docs/www/install-php.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-php.adp,v diff -u -r1.4.2.3 -r1.4.2.4 --- openacs-4/packages/acs-core-docs/www/install-php.adp 5 Jan 2021 17:33:39 -0000 1.4.2.3 +++ openacs-4/packages/acs-core-docs/www/install-php.adp 3 Sep 2021 09:15:08 -0000 1.4.2.4 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Install PHP for use in AOLserver} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Install PHP for use in AOLserver} Install PHP for use in AOLserver cd php-4.3.4 [root php-4.3.4]# ./configure --with-aolserver=/usr/local/aolserver/ --with-pgsql=/usr/local/pgsql --without-mysql [root php-4.3.4]# make install -

    Once installed you can enable this by configuring your config file. Make sure your config file supports php (it should have a php section with it). Furthermore add index.php as the last element to your directoryfile directive.

    +

    Once installed you can enable this by configuring your config file. Make sure your config file supports php (it should have a php section with it). Furthermore, add index.php as the last element to your directoryfile directive.

    Index: openacs-4/packages/acs-core-docs/www/install-qmail.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-qmail.adp,v diff -u -r1.5.2.5 -r1.5.2.6 --- openacs-4/packages/acs-core-docs/www/install-qmail.adp 5 Jan 2021 17:33:39 -0000 1.5.2.5 +++ openacs-4/packages/acs-core-docs/www/install-qmail.adp 3 Sep 2021 09:15:09 -0000 1.5.2.6 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Install qmail (OPTIONAL)} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Install qmail (OPTIONAL)} Install qmail (OPTIONAL) QMail wiki page

  • -

    Replace sendmail with qmail's wrapper.

    [root qmail-1.03]# rm -f /usr/bin/sendmail /usr/sbin/sendmail
    +

    Replace sendmail with qmail's wrapper.

    [root qmail-1.03]# rm -f /usr/bin/sendmail /usr/sbin/sendmail
     [root qmail-1.03]# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
     [root qmail-1.03]#
     rm -f /usr/bin/sendmail /usr/sbin/sendmail
    @@ -55,7 +55,7 @@
     chmod 644 ~alias/.qmail* 
     /var/qmail/bin/maildirmake ~alias/Maildir/ 
     chown -R alias.nofiles /var/qmail/alias/Maildir
    -

    Configure qmail to use the Maildir delivery format (instead of +

    Configure qmail to use the Maildir delivery format (instead of mbox), and install a version of the qmail startup script modified to use Maildir.

    [root alias]# echo "./Maildir" > /var/qmail/bin/.qmail
     [root alias]# cp /tmp/openacs-5.9.0/packages/acs-core-docs/www/files/qmail.rc.txt /var/qmail/rc
    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.45.2.3 -r1.45.2.4
    --- openacs-4/packages/acs-core-docs/www/install-qmail.html	27 Jun 2019 18:22:22 -0000	1.45.2.3
    +++ openacs-4/packages/acs-core-docs/www/install-qmail.html	3 Sep 2021 09:15:10 -0000	1.45.2.4
    @@ -4,12 +4,12 @@
           send and receive mail, and you don't want to use an alternate
           MTA.

    1. Install qmail. QMail is available as standard Debian/Ubuntu package, rpms for Fedora/Redhat/CenTOS are available from QMail wiki - page

    2. Replace sendmail with qmail's wrapper.

      [root qmail-1.03]# rm -f /usr/bin/sendmail /usr/sbin/sendmail
      +	     page

    3. Replace sendmail with qmail's wrapper.

      [root qmail-1.03]# rm -f /usr/bin/sendmail /usr/sbin/sendmail
       [root qmail-1.03]# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
       [root qmail-1.03]#
       rm -f /usr/bin/sendmail /usr/sbin/sendmail
       ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail

      Configure qmail - specifically, run the config script to set up files in /var/qmail/control specifying the computer's identity and which addresses it should accept mail for. This command will automatically set up qmail correctly if you have correctly set a valid host nome. If not, you'll want to read /var/qmail/doc/INSTALL.ctl to find out how to configure qmail.

      [root qmail-1.03]# ./config-fast yourserver.test
      -Your fully qualified host name is yourserver.test.
      +Your fully qualified hostname is yourserver.test.
       Putting yourserver.test into control/me...
       Putting yourserver.test into control/defaultdomain...
       Putting yourserver.test into control/plusdomain...
      @@ -26,7 +26,7 @@
       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

      Configure qmail to use the Maildir delivery format +chown -R alias.nofiles /var/qmail/alias/Maildir

    Configure qmail to use the Maildir delivery format (instead of mbox), and install a version of the qmail startup script modified to use Maildir.

    [root alias]# echo "./Maildir" > /var/qmail/bin/.qmail
     [root alias]# cp /tmp/openacs-5.9.0/packages/acs-core-docs/www/files/qmail.rc.txt /var/qmail/rc
     [root alias]# chmod 755 /var/qmail/rc
    Index: openacs-4/packages/acs-core-docs/www/install-redhat.adp
    ===================================================================
    RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-redhat.adp,v
    diff -u -r1.5.2.6 -r1.5.2.7
    --- openacs-4/packages/acs-core-docs/www/install-redhat.adp	5 Jan 2021 17:33:39 -0000	1.5.2.6
    +++ openacs-4/packages/acs-core-docs/www/install-redhat.adp	3 Sep 2021 09:15:10 -0000	1.5.2.7
    @@ -1,5 +1,5 @@
     
    -{/doc/acs-core-docs {ACS Core Documentation}} {Appendix A. Install Red Hat 8/9}
    +{/doc/acs-core-docs/ {ACS Core Documentation}} {Appendix A. Install Red Hat 8/9}
     Appendix A. Install Red Hat 8/9
     
     Unplug
     the network cable from your computer. We don't want to connect
     to the network until we're sure the computer is secure.
    - (Wherever you see the word secure, you
    + (Wherever you see the word secure, you
     should always read it as, "secure enough for our purposes,
     given the amount of work we're willing to exert and the
     estimated risk and consequences.")

  • Insert Red Hat 8.0 or 9.0 Disk 1 into the CD-ROM and reboot the @@ -73,7 +73,7 @@ screen

  • -

    Configure Networking. Again, if you +

    Configure Networking. 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 @@ -102,7 +102,7 @@ development server we'll be setting up.

  • -Select any additional languages you want +Select any additional languages you want the computer to support and then click Next

  • Choose your timezone and click @@ -118,11 +118,11 @@ web server, because that would conflict with the database and web server we'll install later.

    check Editors -(this installs emacs),
    click Details next +(this installs emacs),
    click Details next to Text-based Internet, check lynx, and click OK;
    check Authoring and -Publishing (this installs +Publishing (this installs docbook),
    uncheck Server Configuration Tools,
    uncheck Web Server,
    uncheck Windows File @@ -147,7 +147,7 @@ will appear.

    uncheck apmd (monitors power, not very useful for servers),
    check ImageMagick -(required for the photo-album packages,
    uncheckisdn4k-utils +(required for the photo-album packages,
    uncheckisdn4k-utils (unless you are using isdn, this installs a useless daemon),
    check mutt (a mail program that reads Maildir),
    uncheck nfs-utils (nfs is a major security risk),
    uncheck pam-devel (I @@ -192,7 +192,7 @@

    Lock down SSH

    1. - SSH is the protocol we use to connect + 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 ssh connections. As a security precaution, we are now going to tell ssh not to allow 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.44.2.4 -r1.44.2.5 --- openacs-4/packages/acs-core-docs/www/install-redhat.html 10 Aug 2019 18:05:33 -0000 1.44.2.4 +++ openacs-4/packages/acs-core-docs/www/install-redhat.html 3 Sep 2021 09:15:11 -0000 1.44.2.5 @@ -27,7 +27,7 @@

      1. Unplug the network cable from your computer. We don't want to connect to the network until we're sure the computer is secure. - + (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 @@ Review (and modify if needed) the partitions created and click Next

      2. On the pop-up window asking "Are you sure you want to do this?" click Yes - IF YOU ARE WIPING YOUR HARD DRIVE.

      3. Click Next on the boot loader screen

    2. Configure Networking. + IF YOU ARE WIPING YOUR HARD DRIVE.

    3. Click Next on the boot loader screen

  • Configure Networking. 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.

    1. DHCP is a system by which a computer that @@ -65,8 +65,7 @@ service from the outside world), we're going to set up that address. If you don't know your netmask, 255.255.255.0 is usually a pretty safe guess. Click Edit, uncheck Configure using DHCP -and type in your IP and netmask. Click Ok.

    2. Type in your host -name, gateway, and DNS server(s). Then click Next.

    3. We're going to use the firewall template for high +and type in your IP and netmask. Click Ok.

    4. Type in your hostname, gateway, and DNS server(s). Then click Next.

    5. We're going to use the firewall template for high security, meaning that we'll block almost all incoming traffic. Then we'll add a few holes to the firewall for services which we need and know are secure. Choose High @@ -76,9 +75,9 @@ Mail (SMTP). In the Other ports box, enter 443, 8000, 8443. Click Next. -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.

  • 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.

  • Select any additional languages you want the computer to support and then click - Next

  • Choose your time zone and click Next.

  • Type in a root + Next

  • Choose your timezone and click Next.

  • Type in a root password, twice.

  • On the Package selection page, we're going to uncheck a lot of packages that install software we don't need, and add packages that have stuff we do need. You should install everything @@ -88,13 +87,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. -

    check Editors (this installs emacs),
    click Details next to Text-based Internet, check lynx, and click OK;
    check Authoring and Publishing (this installs docbook),
    uncheck Server Configuration Tools,
    uncheck Web Server,
    uncheck Windows File Server,
    check SQL Database Server (this installs PostgreSQL),
    check Development Tools (this installs gmake and other build tools),
    uncheck Administration Tools, and
    uncheck Printing Support.

    At the bottom, check Select Individual Packages and click Next

  • We need to fine-tune the exact list of packages. +

    check Editors (this installs emacs),
    click Details next to Text-based Internet, check lynx, and click OK;
    check Authoring and Publishing (this installs docbook),
    uncheck Server Configuration Tools,
    uncheck Web Server,
    uncheck Windows File Server,
    check SQL Database Server (this installs PostgreSQL),
    check Development Tools (this installs gmake and other build tools),
    uncheck Administration Tools, and
    uncheck Printing Support.

    At the bottom, check Select Individual Packages and click Next

  • 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 Flat View and wait. In a minute, a -list of packages will appear.

    uncheck apmd (monitors power, not very useful for servers),
    check ImageMagick (required for the photo-album packages,
    uncheckisdn4k-utils (unless you are using isdn, this installs a useless daemon),
    check mutt (a mail program that reads Maildir),
    uncheck nfs-utils (nfs is a major security risk),
    uncheck pam-devel (I don't remember why, but we don't want this),
    uncheck portmap,
    uncheck postfix (this is an MTA, but we're going to install qmail later),
    check postgresql-devel,
    uncheck rsh (rsh is a security hole),
    uncheck sendmail (sendmail is an insecure MTA; we're going to install qmail instead later),
    check tcl (we need tcl), and
    uncheck xinetd (xinetd handles incoming tcp connections. We'll install a different, more secure program, ucspi-tcp).
    Click Next
  • Red Hat isn't completely happy with the combination +list of packages will appear.

    uncheck apmd (monitors power, not very useful for servers),
    check ImageMagick (required for the photo-album packages,
    uncheckisdn4k-utils (unless you are using isdn, this installs a useless daemon),
    check mutt (a mail program that reads Maildir),
    uncheck nfs-utils (nfs is a major security risk),
    uncheck pam-devel (I don't remember why, but we don't want this),
    uncheck portmap,
    uncheck postfix (this is an MTA, but we're going to install qmail later),
    check postgresql-devel,
    uncheck rsh (rsh is a security hole),
    uncheck sendmail (sendmail is an insecure MTA; we're going to install qmail instead later),
    check tcl (we need tcl), and
    uncheck xinetd (xinetd handles incoming tcp connections. We'll install a different, more secure program, ucspi-tcp).
    Click Next
  • 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 Ignore Package @@ -120,7 +119,7 @@ upgrading all of that. Since you are upgrading the kernel, reboot after this step.

  • Lock down SSH

    1. - + 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 Index: openacs-4/packages/acs-core-docs/www/install-resources.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-resources.adp,v diff -u -r1.3.2.3 -r1.3.2.4 --- openacs-4/packages/acs-core-docs/www/install-resources.adp 26 Aug 2020 07:46:25 -0000 1.3.2.3 +++ openacs-4/packages/acs-core-docs/www/install-resources.adp 3 Sep 2021 09:15:11 -0000 1.3.2.4 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Resources} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Resources} Resources {/doc/acs-core-docs {ACS Core Documentation}} {Install Squirrelmail for use as a webmail system for +{/doc/acs-core-docs/ {ACS Core Documentation}} {Install Squirrelmail for use as a webmail system for OpenACS} Install Squirrelmail for use as a webmail system for OpenACS @@ -19,8 +19,7 @@ OpenACS documentation staff.

    This section is work in progress. It will detail how you can install Squirrelmail as a webmail frontend for OpenACS, thereby neglecting the need to have a separate webmail package within -OpenACS

    -[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]# cd www
    +OpenACS

    [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]# cd www
     [$OPENACS_SERVICE_NAME www]# wget http://cesnet.dl.sourceforge.net/sourceforge/squirrelmail/squirrelmail-1.4.4.tar.gz
     [$OPENACS_SERVICE_NAME www]# tar xfz squirrelmail-1.4.4.tar.gz
     [$OPENACS_SERVICE_NAME www]# mv squirrelmail-1.4.4 mail
    Index: openacs-4/packages/acs-core-docs/www/install-ssl.adp
    ===================================================================
    RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-ssl.adp,v
    diff -u -r1.4.2.2 -r1.4.2.3
    --- openacs-4/packages/acs-core-docs/www/install-ssl.adp	26 Aug 2020 07:46:25 -0000	1.4.2.2
    +++ openacs-4/packages/acs-core-docs/www/install-ssl.adp	3 Sep 2021 09:15:11 -0000	1.4.2.3
    @@ -1,5 +1,5 @@
     
    -{/doc/acs-core-docs {ACS Core Documentation}} {Installing SSL Support for an OpenACS service}
    +{/doc/acs-core-docs/ {ACS Core Documentation}} {Installing SSL Support for an OpenACS service}
     Installing SSL Support for an OpenACS service
     
      before proceeding.

    1. Make sure nsopenssl.so is installed for AOLserver.

    2. -

      Uncomment this line from config.tcl.

      -#ns_param   nsopenssl       ${bindir}/nsopenssl.so
      +

      Uncomment this line from config.tcl.

      #ns_param   nsopenssl       ${bindir}/nsopenssl.so
       
    3. @@ -41,8 +40,7 @@ in most browsers, albeit with pop-up messages.

      Use an OpenSSL perl script to generate a certificate and key.

      Debian users: use /usr/lib/ssl/misc/CA.pl instead of /usr/share/ssl/CA

      macOS users: use perl /System/Library/OpenSSL/misc/CA.pl --newcert instead of /usr/share/ssl/CA

      -[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/certs
      +-newcert instead of /usr/share/ssl/CA

      [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/certs
       [$OPENACS_SERVICE_NAME certs]$ perl /usr/share/ssl/misc/CA -newcert
       Using configuration from /usr/share/ssl/openssl.cnf
       Generating a 1024 bit RSA private key
      Index: openacs-4/packages/acs-core-docs/www/install-steps.adp
      ===================================================================
      RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-steps.adp,v
      diff -u -r1.4.2.4 -r1.4.2.5
      --- openacs-4/packages/acs-core-docs/www/install-steps.adp	26 Aug 2020 07:46:25 -0000	1.4.2.4
      +++ openacs-4/packages/acs-core-docs/www/install-steps.adp	3 Sep 2021 09:15:12 -0000	1.4.2.5
      @@ -1,5 +1,5 @@
       
      -{/doc/acs-core-docs {ACS Core Documentation}} {Basic Steps}
      +{/doc/acs-core-docs/ {ACS Core Documentation}} {Basic Steps}
       Basic Steps
       
       /etc/profile (
       /etc/share/skel/dot.profile for
      -FreeBSD) and add this line:

      -export OPENACS_SERVICE_NAME=service0
      +FreeBSD) and add this line:

      export OPENACS_SERVICE_NAME=service0
       

    -Paths and Users

    -

    Table 2.1. Default directories +Paths and Users

    +

    Table 2.1. Default directories for a standard install

    @@ -112,7 +111,7 @@ 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.38.2.3 -r1.38.2.4 --- openacs-4/packages/acs-core-docs/www/install-steps.html 27 Jun 2019 18:22:22 -0000 1.38.2.3 +++ openacs-4/packages/acs-core-docs/www/install-steps.html 3 Sep 2021 09:15:12 -0000 1.38.2.4 @@ -44,7 +44,7 @@ su - $OPENACS_SERVICE_NAME svc -d /service/$OPENACS_SERVICE_NAME dropdb $OPENACS_SERVICE_NAME -createdb $OPENACS_SERVICE_NAME

    Setting a global shell variable for cut and paste. 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 /etc/profile ( /etc/share/skel/dot.profile for FreeBSD) and add this line:

    export OPENACS_SERVICE_NAME=service0

    Paths and Users

    Table 2.1. Default directories for a standard install

    name of administrative access accountremadmin
    OpenACS service -$OPENACS_SERVICE_NAME (set to service0 +$OPENACS_SERVICE_NAME (set to service0 in default install)
    OpenACS service account$OPENACS_SERVICE_NAME
    -
    Fully qualified domain name of your serveryourserver.test
    name of administrative access accountremadmin
    OpenACS service +createdb $OPENACS_SERVICE_NAME

    Setting a global shell variable for cut and paste. 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 /etc/profile ( /etc/share/skel/dot.profile for FreeBSD) and add this line:

    export OPENACS_SERVICE_NAME=service0

    Paths and Users

    Table 2.1. Default directories for a standard install

    Fully qualified domain name of your serveryourserver.test
    name of administrative access accountremadmin
    OpenACS service $OPENACS_SERVICE_NAME (set to service0 in default install)
    OpenACS service account$OPENACS_SERVICE_NAME
    OpenACS database name$OPENACS_SERVICE_NAME
    Root of OpenACS service file tree (SERVERROOT)/var/lib/aolserver/$OPENACS_SERVICE_NAME
    Location of source code tarballs for new software/var/tmp
    The OpenACS tarball contains some files which are useful while setting up other software. Those files are located at:/var/tmp/openacs-5.9.0/packages/acs-core-docs/www/files
    Database backup directory/var/lib/aolserver/$OPENACS_SERVICE_NAME/database-backup
    Service config files/var/lib/aolserver/$OPENACS_SERVICE_NAME/etc
    Service log files/var/lib/aolserver/$OPENACS_SERVICE_NAME/log
    Compile directory/usr/local/src
    PostgreSQL directory/usr/local/pgsql
    AOLserver directory/usr/local/aolserver

    Index: openacs-4/packages/acs-core-docs/www/install-tclwebtest.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-tclwebtest.adp,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/acs-core-docs/www/install-tclwebtest.adp 26 Aug 2020 07:46:25 -0000 1.4.2.2 +++ openacs-4/packages/acs-core-docs/www/install-tclwebtest.adp 3 Sep 2021 09:15:12 -0000 1.4.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Install tclwebtest.} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Install tclwebtest.} Install tclwebtest. {/doc/acs-core-docs {ACS Core Documentation}} {Index} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Index} Index

    -Index

    +Index

    C

    -
    computeroutput
    code, Code -
    cvs
    +
    computeroutput
    code, Code +
    cvs
    initializing, Initialize CVS (OPTIONAL)
    setup, Using CVS with an OpenACS Site @@ -33,98 +33,98 @@

    D

    -
    daemontools
    installation, Install Daemontools (OPTIONAL) -
    docbook
    installation, Install Red Hat 8/9 -
    DocBook
    +
    daemontools
    installation, Install Daemontools (OPTIONAL) +
    docbook
    installation, Install Red Hat 8/9 +
    DocBook
    DTD, OpenACS Documentation Strategy: Why DocBook?
    emacs configuration for, Add PSGML commands to emacs init file (OPTIONAL)
    -
    Document structure, Document +
    Document structure, Document Structure

    E

    -
    emacs
    installation, Install Red Hat 8/9 -
    emphasis
    bold, italics, Emphasis +
    emacs
    installation, Install Red Hat 8/9 +
    emphasis
    bold, italics, Emphasis

    G

    -
    Graphics
    Images, Graphics +
    Graphics
    Images, Graphics

    I

    -
    informaltable
    table, Tables +
    informaltable
    table, Tables

    L

    -
    language
    installation, Install Red Hat 8/9 -
    Linking, Links -
    lists, Lists +
    language
    installation, Install Red Hat 8/9 +
    Linking, Links +
    lists, Lists
    -

    T

    The publish point for new +

    T

    The publish point for new packages should be fixed., Prepare the package for distribution.

    U

    -
    ulink, Links -
    upgrade
    +
    ulink, Links +
    upgrade
    OpenACS 4.5 to 4.6.x
    Linux/Unix, Upgrading 4.5 or higher to 4.6.3

    X

    -
    XML guidelines, OpenACS +
    XML guidelines, OpenACS Documentation Strategy: Why DocBook? -
    xref
    linkend, Links -
    xreflabel, Headlines, +
    xref
    linkend, Links +
    xreflabel, Headlines, Sections
    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.32.2.3 -r1.32.2.4 --- openacs-4/packages/acs-core-docs/www/ix01.html 27 Jun 2019 18:22:22 -0000 1.32.2.3 +++ openacs-4/packages/acs-core-docs/www/ix01.html 3 Sep 2021 09:15:15 -0000 1.32.2.4 @@ -1,3 +1,3 @@ -Index

    Index

    Symbols

    $OPENACS_SERVICE_NAME, Paths and Users

    C

    computeroutput
    code, Code
    cvs
    initializing, Initialize CVS (OPTIONAL)
    setup, Using CVS with an OpenACS Site

    E

    emacs
    installation, Install Red Hat 8/9
    emphasis
    bold, italics, Emphasis

    F

    full text search
    installation, Install Tsearch2 module

    G

    Graphics
    Images, Graphics

    I

    informaltable
    table, Tables

    L

    language
    installation, Install Red Hat 8/9
    Linking, Links
    lists, Lists

    O

    OpenACS Package, What a Package Looks Like

    P

    photo-album
    installation (see ImageMagick)
    Postgres
    Vacuuming, Installation Option 2: Install from tarball

    T

    The publish point for new packages should be - fixed., Prepare the package for distribution.

    U

    ulink, Links
    upgrade
    OpenACS 4.5 to 4.6.x
    Linux/Unix, Upgrading 4.5 or higher to 4.6.3
    +Index

    Index

    Symbols

    $OPENACS_SERVICE_NAME, Paths and Users

    C

    computeroutput
    code, Code
    cvs
    initializing, Initialize CVS (OPTIONAL)
    setup, Using CVS with an OpenACS Site

    E

    emacs
    installation, Install Red Hat 8/9
    emphasis
    bold, italics, Emphasis

    F

    full text search
    installation, Install Tsearch2 module

    G

    Graphics
    Images, Graphics

    I

    informaltable
    table, Tables

    L

    language
    installation, Install Red Hat 8/9
    Linking, Links
    lists, Lists

    O

    OpenACS Package, What a Package Looks Like

    P

    photo-album
    installation (see ImageMagick)
    Postgres
    Vacuuming, Installation Option 2: Install from tarball

    T

    The publish point for new packages should be + fixed., Prepare the package for distribution.

    U

    ulink, Links
    upgrade
    OpenACS 4.5 to 4.6.x
    Linux/Unix, Upgrading 4.5 or higher to 4.6.3
    Index: openacs-4/packages/acs-core-docs/www/kernel-doc.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/kernel-doc.adp,v diff -u -r1.3.2.2 -r1.3.2.3 --- openacs-4/packages/acs-core-docs/www/kernel-doc.adp 26 Aug 2020 07:46:25 -0000 1.3.2.2 +++ openacs-4/packages/acs-core-docs/www/kernel-doc.adp 3 Sep 2021 09:15:16 -0000 1.3.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Chapter 15. Kernel Documentation} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Chapter 15. Kernel Documentation} Chapter 15. Kernel Documentation {/doc/acs-core-docs {ACS Core Documentation}} {Overview} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Overview} Overview {/doc/acs-core-docs {ACS Core Documentation}} {OpenACS Installation Guide for macOS} +{/doc/acs-core-docs/ {ACS Core Documentation}} {OpenACS Installation Guide for macOS} OpenACS Installation Guide for macOS {/doc/acs-core-docs {ACS Core Documentation}} {Diagnosing Performance Problems} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Diagnosing Performance Problems} Diagnosing Performance Problems 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.

    -

    Figure 6.8. Query Analysis +

    Figure 6.8. Query Analysis example

    Query Analysis example

    @@ -63,8 +63,7 @@ where sql.address = s.sql_address and sql.hash_value = s.sql_hash_value --and upper(s.username) like 'USERNAME%' - order by s.username ,s.sid ,s.serial# ,sql.piece ;

    To kill a troubled process:

    -alter system kill session 'SID,SERIAL#';  --substitute values for SID and SERIAL#

    (See Andrew + order by s.username ,s.sid ,s.serial# ,sql.piece ;

    To kill a troubled process:

    alter system kill session 'SID,SERIAL#';  --substitute values for SID and SERIAL#

    (See Andrew Piskorski's Oracle notes)

  • Identify a runaway Postgres query. First, logging must be @@ -110,7 +109,7 @@ query, install "autotrace". I usually follow the instructions here http://asktom.oracle.com/~tkyte/article1/autotrace.html.

    -Make sure that the Oracle CBO works with +Make sure that the Oracle CBO works with adequate statistics

    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 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.32.2.3 -r1.32.2.4 --- openacs-4/packages/acs-core-docs/www/maint-performance.html 27 Jun 2019 18:22:22 -0000 1.32.2.3 +++ openacs-4/packages/acs-core-docs/www/maint-performance.html 3 Sep 2021 09:15:16 -0000 1.32.2.4 @@ -1,8 +1,8 @@ Diagnosing Performance Problems

    Diagnosing Performance Problems

    • 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)

    • Is the file system out of space? Is the machine swapping to disk constantly?

    • Isolating and solving database problems.

      • Without daily internal maintenance, most databases slowly degrade in performance. For PostGreSQL, see the section called “Vacuum Postgres nightly”. For Oracle, use exec dbms_stats.gather_schema_stats('SCHEMA_NAME') (Andrew Piskorski's Oracle notes).

      • You can track the exact amount of time each database query on a page takes:

        1. Go to Main Site : Site-Wide Administration : Install Software

        2. Click on "Install New Application" in "Install from OpenACS Repository"

        3. Choose "ACS Developer Support">

        4. After install is complete, restart the server.

        5. Browse to Developer Support, which is automatically mounted at /ds. -

        6. Turn on Database statistics

        7. Browse directly to a slow page and click "Request Information" at the bottom of the page.

        8. 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.

          Figure 6.8. Query Analysis example

          Query Analysis example

      • Identify a runaway Oracle query: first, use ps aux or top to get the UNIX process ID of a runaway Oracle process.

        Log in to SQL*Plus as the admin:

        [$OPENACS_SERVICE_NAME ~]$ svrmgrl
        +    users into .LRN)

      • Is the filesystem out of space? Is the machine swapping to disk constantly?

      • Isolating and solving database problems.

        • Without daily internal maintenance, most databases slowly degrade in performance. For PostGreSQL, see the section called “Vacuum Postgres nightly”. For Oracle, use exec dbms_stats.gather_schema_stats('SCHEMA_NAME') (Andrew Piskorski's Oracle notes).

        • You can track the exact amount of time each database query on a page takes:

          1. Go to Main Site : Site-Wide Administration : Install Software

          2. Click on "Install New Application" in "Install from OpenACS Repository"

          3. Choose "ACS Developer Support">

          4. After install is complete, restart the server.

          5. Browse to Developer Support, which is automatically mounted at /ds. +

          6. Turn on Database statistics

          7. Browse directly to a slow page and click "Request Information" at the bottom of the page.

          8. 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.

            Figure 6.8. Query Analysis example

            Query Analysis example

        • Identify a runaway Oracle query: first, use ps aux or top to get the UNIX process ID of a runaway Oracle process.

          Log in to SQL*Plus as the admin:

          [$OPENACS_SERVICE_NAME ~]$ svrmgrl
           
           Oracle Server Manager Release 3.1.7.0.0 - Production
           
          @@ -59,7 +59,7 @@
               

          To be able to get a overview of how Oracle executes a particular query, install "autotrace". I usually follow the instructions here http://asktom.oracle.com/~tkyte/article1/autotrace.html. -

          Make sure that the Oracle CBO works with adequate statistics

          +

          Make sure that the Oracle CBO works with adequate statistics

          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.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/maintenance-deploy.adp,v diff -u -r1.5.2.5 -r1.5.2.6 --- openacs-4/packages/acs-core-docs/www/maintenance-deploy.adp 5 Jan 2021 17:33:39 -0000 1.5.2.5 +++ openacs-4/packages/acs-core-docs/www/maintenance-deploy.adp 3 Sep 2021 09:15:17 -0000 1.5.2.6 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Staged Deployment for Production Networks} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Staged Deployment for Production Networks} Staged Deployment for Production Networks

          Staged Deployment for Production Networks

          -
          ($‌Id: maintenance.xml,v 1.35 2018/11/03 -19:57:22 gustafn Exp $)

          By Joel Aufrecht +

          ($‌Id: maintenance.xml,v 1.35.2.2 2020/07/02 +08:39:25 gustafn Exp $)

          By Joel Aufrecht

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

          This section describes two minimal-risk methods for deploying @@ -24,7 +24,7 @@ working configuration safely and quickly.

        -Method 1: Deployment with CVS

        With this method, we control the files on a site via CVS. This +Method 1: Deployment with CVS

    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 live. The @@ -102,7 +102,7 @@ tags to follow ...

    -Method 2: A/B Deployment

    The approach taken in this section is to always create a new +Method 2: A/B Deployment

  • 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 @@ -113,32 +113,33 @@ 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.

    This approach can has limitations. If the database or filesystem 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.

    +touched; it is merely set aside.

    This approach can has limitations. If the database or filesystem +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.

    -Simple A/B Deployment: Database is not +Simple A/B Deployment: Database is not changed

    -

    Figure 6.2. Simple A/B +

    Figure 6.2. Simple A/B Deployment - Step 1

    Simple A/B Deployment - Step 1

    -

    Figure 6.3. Simple A/B +

    Figure 6.3. Simple A/B Deployment - Step 2

    Simple A/B Deployment - Step 2

    -

    Figure 6.4. Simple A/B +

    Figure 6.4. Simple A/B Deployment - Step 3

    Simple A/B Deployment - Step 3

    -Complex A/B Deployment: Database is +Complex A/B Deployment: Database is changed

    -

    Figure 6.5. Complex A/B +

    Figure 6.5. Complex A/B Deployment - Step 1

    Complex A/B Deployment - Step 1

    -

    Figure 6.6. Complex A/B +

    Figure 6.6. Complex A/B Deployment - Step 2

    Complex A/B Deployment - Step 2

    -

    Figure 6.7. Complex A/B +

    Figure 6.7. Complex A/B Deployment - Step 3

    Complex A/B Deployment - Step 3

    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.28.2.3 -r1.28.2.4 --- openacs-4/packages/acs-core-docs/www/maintenance-deploy.html 27 Jun 2019 18:22:22 -0000 1.28.2.3 +++ openacs-4/packages/acs-core-docs/www/maintenance-deploy.html 3 Sep 2021 09:15:17 -0000 1.28.2.4 @@ -2,7 +2,7 @@ Staged Deployment for Production Networks

    Staged Deployment for Production Networks

    ($Id$)

    By Joel Aufrecht

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

    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)

    • 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.

    • Rollback: If anything goes wrong, you can return to the previous working configuration safely and quickly.

    Method 1: Deployment with CVS

    With this method, we control the files on a site via +

    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)

    • 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.

    • Rollback: If anything goes wrong, you can return to the previous working configuration safely and quickly.

    Method 1: Deployment with CVS

    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

    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.

    The production site can run "HEAD" from cvs.

    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 ...

    Method 2: A/B Deployment

    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.

    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.

    Simple A/B Deployment: Database is not changed

    Figure 6.2. Simple A/B Deployment - Step 1

    Simple A/B Deployment - Step 1

    Figure 6.3. Simple A/B Deployment - Step 2

    Simple A/B Deployment - Step 2

    Figure 6.4. Simple A/B Deployment - Step 3

    Simple A/B Deployment - Step 3

    Complex A/B Deployment: Database is changed

    Figure 6.5. Complex A/B Deployment - Step 1

    Complex A/B Deployment - Step 1

    Figure 6.6. Complex A/B Deployment - Step 2

    Complex A/B Deployment - Step 2

    Figure 6.7. Complex A/B Deployment - Step 3

    Complex A/B Deployment - Step 3

    + run the upgrade scripts from the package manager.

    The production site can run "HEAD" from cvs.

    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 ...

    Method 2: A/B Deployment

    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.

    This approach can has limitations. If the database or filesystem 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.

    Simple A/B Deployment: Database is not changed

    Figure 6.2. Simple A/B Deployment - Step 1

    Simple A/B Deployment - Step 1

    Figure 6.3. Simple A/B Deployment - Step 2

    Simple A/B Deployment - Step 2

    Figure 6.4. Simple A/B Deployment - Step 3

    Simple A/B Deployment - Step 3

    Complex A/B Deployment: Database is changed

    Figure 6.5. Complex A/B Deployment - Step 1

    Complex A/B Deployment - Step 1

    Figure 6.6. Complex A/B Deployment - Step 2

    Complex A/B Deployment - Step 2

    Figure 6.7. Complex A/B Deployment - Step 3

    Complex A/B Deployment - Step 3

    Index: openacs-4/packages/acs-core-docs/www/maintenance-web.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/maintenance-web.adp,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/acs-core-docs/www/maintenance-web.adp 26 Aug 2020 07:46:25 -0000 1.4.2.2 +++ openacs-4/packages/acs-core-docs/www/maintenance-web.adp 3 Sep 2021 09:15:17 -0000 1.4.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Chapter 6. Production Environments} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Chapter 6. Production Environments} Chapter 6. Production Environments {/doc/acs-core-docs {ACS Core Documentation}} {Using nXML mode in Emacs} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Using nXML mode in Emacs} Using nXML mode in Emacs {/doc/acs-core-docs {ACS Core Documentation}} {Object Identity} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Object Identity} Object Identity {/doc/acs-core-docs {ACS Core Documentation}} {Object Model Design} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Object Model Design} Object Model Design +table). Therefore, applications use this mechanism without worrying +about this bookkeeping themselves, and we avoid having applications +pollute the core data model with their specific information.

    Object Attributes, Skinny @@ -260,20 +259,21 @@ users_preferences table (exactly the kind of data model change that has historically complicated the process of upgrading to a more recent OpenACS -version).

    The Object Model generalizes the scheme used in the old OpenACS -3.x user/groups system. It defines a table called acs_attributes that record what attributes -belong to which object types, and how the attributes are stored. As -before, attributes can either be stored in helper tables, or in a -single central skinny table. The developer makes this choice on a -case by case basis. For the most part, attribute data is stored in -helper tables so that they can take full advantage of relational -data modeling and because they will generally be more efficient. -Occasionally, a data model will use skinny tables because doing so -allows developers and users to dynamically update the set of -attributes stored on an object without updating the data model at -the code level. The bottom line: Helper tables are more functional -and more efficient, skinny tables are more flexible but -limited.

    +version).

    The ACS Object Model generalizes the scheme used in the old +OpenACS 3.x user/groups system. It defines a table called +acs_attributes that record what +attributes belong to which object types, and how the attributes are +stored. As before, attributes can either be stored in helper +tables, or in a single central skinny table. The developer makes +this choice on a case by case basis. For the most part, attribute +data is stored in helper tables so that they can take full +advantage of relational data modeling and because they will +generally be more efficient. Occasionally, a data model will use +skinny tables because doing so allows developers and users to +dynamically update the set of attributes stored on an object +without updating the data model at the code level. The bottom line: +Helper tables are more functional and more efficient, skinny tables +are more flexible but limited.

    Relation Types

    Many OpenACS 3.x modules use mapping @@ -345,13 +345,13 @@ existing SQL or SQL-like database engine. Examples of systems like this include the new Informix, PostgreSQL 7, and Oracle has something like this too. The main problem with these systems: each -one implements their own nonportable extensions to SQL to -implement subtyping. Thus, making OpenACS data models portable -would become even more difficult. In addition, each of these object -systems have strange limitations that make using inheritance -difficult in practice. Finally, object databases are not as widely -used as traditional relational systems. They have not been tested -as extensively and their scalability to very large databases is not +one implements their own nonportable extensions to SQL to implement +subtyping. Thus, making OpenACS data models portable would become +even more difficult. In addition, each of these object systems have +strange limitations that make using inheritance difficult in +practice. Finally, object databases are not as widely used as +traditional relational systems. They have not been tested as +extensively and their scalability to very large databases is not proven (though some will disagree with this statement).

    @@ -367,7 +367,7 @@ limited domain of the metadata model, this is acceptable since the type hierarchy is fairly small. But the object system data model is not designed to support, for example, a huge type tree like the -Java runtime libraries might define.

    This last point cannot be over-stressed: the object model is not meant to be used for large +Java run time libraries might define.

    This last point cannot be over-stressed: the object model is not meant to be used for large scale application data storage. It is meant to represent and store metadata, not application data.

    @@ -1001,4 +1001,4 @@ rightLink="permissions-requirements" rightLabel="Next" rightTitle="Permissions Requirements" homeLink="index" homeLabel="Home" upLink="kernel-doc" upLabel="Up"> - + \ No newline at end of file Index: openacs-4/packages/acs-core-docs/www/object-system-design.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/object-system-design.html,v diff -u -r1.37.2.2 -r1.37.2.3 --- openacs-4/packages/acs-core-docs/www/object-system-design.html 21 Aug 2019 06:47:07 -0000 1.37.2.2 +++ openacs-4/packages/acs-core-docs/www/object-system-design.html 3 Sep 2021 09:15:18 -0000 1.37.2.3 @@ -140,7 +140,7 @@ the data.

    Object subtypes provide a way to factor the data model while still keeping track of the fact that each member of a subtype (i.e. for each row in the subtype's table), is also a member of the parent type (i.e. there is a -corresponding row in the parent type table). Therefore, applications an use +corresponding row in the parent type table). Therefore, applications use this mechanism without worrying about this bookkeeping themselves, and we avoid having applications pollute the core data model with their specific information.

    Object Attributes, Skinny Tables

    As we described above, the OpenACS 3.x user/groups system stored object @@ -163,7 +163,7 @@ "standard" way for an OpenACS 3.x-based application to add to the list of user preferences is to add a column to the users_preferences table (exactly the kind of data model change that has historically -complicated the process of upgrading to a more recent OpenACS version).

    The Object Model generalizes the scheme used in the old OpenACS 3.x user/groups +complicated the process of upgrading to a more recent OpenACS version).

    The ACS Object Model generalizes the scheme used in the old OpenACS 3.x user/groups system. It defines a table called acs_attributes that record what attributes belong to which object types, and how the attributes are stored. As before, attributes can either be stored in helper tables, or in a @@ -224,7 +224,7 @@ alternative. Here, some notion of subtyping is embedded into an existing SQL or SQL-like database engine. Examples of systems like this include the new Informix, PostgreSQL 7, and Oracle has something like this too. The main -problem with these systems: each one implements their own non-portable +problem with these systems: each one implements their own nonportable extensions to SQL to implement subtyping. Thus, making OpenACS data models portable would become even more difficult. In addition, each of these object systems have strange limitations that make using inheritance difficult in @@ -241,7 +241,7 @@ that the data model is not designed to scale too large type hierarchies. In the more limited domain of the metadata model, this is acceptable since the type hierarchy is fairly small. But the object system data model is not -designed to support, for example, a huge type tree like the Java runtime +designed to support, for example, a huge type tree like the Java run time libraries might define.

    This last point cannot be over-stressed: the object model is not meant to be used for large scale application data storage. It is meant to represent and store metadata, not application data.

    Data Model

    Like most data models, the OpenACS Core data model has two levels:

    1. The knowledge level (i.e. the metadata model)

    2. The operational level (i.e. the concrete data model)

    Index: openacs-4/packages/acs-core-docs/www/object-system-requirements.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/object-system-requirements.adp,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/acs-core-docs/www/object-system-requirements.adp 26 Aug 2020 07:46:25 -0000 1.4.2.2 +++ openacs-4/packages/acs-core-docs/www/object-system-requirements.adp 3 Sep 2021 09:15:18 -0000 1.4.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Object Model Requirements} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Object Model Requirements} Object Model Requirements

      +changes are difficult or dangerous to make at run time, and can +make updating the system difficult. Some example applications in +OpenACS 3.x with modifiable data models include:

      • User/groups: developers and users can attach custom data to group types, groups, and members of groups.

      • In the Ecommerce data model, the ec_custom_product_fields table defines attributes for catalog products, and the ec_custom_product_field_values table stores 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.37.2.1 -r1.37.2.2 --- openacs-4/packages/acs-core-docs/www/object-system-requirements.html 2 Mar 2019 19:30:05 -0000 1.37.2.1 +++ openacs-4/packages/acs-core-docs/www/object-system-requirements.html 3 Sep 2021 09:15:18 -0000 1.37.2.2 @@ -89,7 +89,7 @@ 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 -extensions, since such changes are difficult or dangerous to make at runtime, +extensions, since such changes are difficult or dangerous to make at run time, and can make updating the system difficult. Some example applications in OpenACS 3.x with modifiable data models include:

        • User/groups: developers and users can attach custom data to group types, groups, and members of groups.

        • In the Ecommerce data model, the ec_custom_product_fields Index: openacs-4/packages/acs-core-docs/www/objects.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/objects.adp,v diff -u -r1.4.2.4 -r1.4.2.5 --- openacs-4/packages/acs-core-docs/www/objects.adp 26 Aug 2020 07:46:25 -0000 1.4.2.4 +++ openacs-4/packages/acs-core-docs/www/objects.adp 3 Sep 2021 09:15:19 -0000 1.4.2.5 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {OpenACS Data Models and the Object System} +{/doc/acs-core-docs/ {ACS Core Documentation}} {OpenACS Data Models and the Object System} OpenACS Data Models and the Object System created the package. Then, do the following:

          -Describe the new type to the type +Describe the new type to the type system

          First, add an entry to the acs_object_types table with the following PL/SQL call:

           begin  
          @@ -142,7 +142,7 @@
           attributes, so there is no need for us to define them.

          -Define a table in which to store your +Define a table in which to store your objects

          The next thing we do is make a small modification to the data model to reflect the fact that each row in the notes table represents something that is not only an object of type note, but also an acs_object. The new table definition looks @@ -166,7 +166,7 @@ acs_objects.

          -Define a package for type specific +Define a package for type specific procedures

          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:

          @@ -213,7 +213,7 @@
           only" by default. We'll talk about this more later.

          -Define a package body for type specific +Define a package body for type specific procedures

          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 acs_object.new 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.55.2.3 -r1.55.2.4 --- openacs-4/packages/acs-core-docs/www/objects.html 27 Jun 2019 18:22:22 -0000 1.55.2.3 +++ openacs-4/packages/acs-core-docs/www/objects.html 3 Sep 2021 09:15:19 -0000 1.55.2.4 @@ -79,7 +79,7 @@ Fire up your text editor and open the ROOT/packages/notes/sql/oracle/notes-create.sql (ROOT/packages/notes/sql/postgresql/notes-create.sql for the PG version) file created when we created the package. Then, do the following: -

          Describe the new type to the type system

          +

          Describe the new type to the type system

          First, add an entry to the acs_object_types table with the following PL/SQL call:

           begin  
          @@ -139,7 +139,7 @@
           because the new type note is a subtype of
           acs_object, it will inherit these attributes, so there is
           no need for us to define them.
          -

          Define a table in which to store your objects

          +

          Define a table in which to store your objects

          The next thing we do is make a small modification to the data model to reflect the fact that each row in the notes table represents something that is not only an object of type @@ -164,7 +164,7 @@ use the acs_objects table to find objects will transparently find any objects that are instances of any subtype of acs_objects. -

          Define a package for type specific procedures

          +

          Define a package for type specific procedures

          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. -

          Define a package body for type specific procedures

          +

          Define a package body for type specific procedures

          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 acs_object.new to insert a row into Index: openacs-4/packages/acs-core-docs/www/openacs-overview.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/openacs-overview.adp,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/acs-core-docs/www/openacs-overview.adp 26 Aug 2020 07:46:25 -0000 1.4.2.2 +++ openacs-4/packages/acs-core-docs/www/openacs-overview.adp 3 Sep 2021 09:15:19 -0000 1.4.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Overview} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Overview} Overview {/doc/acs-core-docs {ACS Core Documentation}} {Unpack the OpenACS tarball} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Unpack the OpenACS tarball} Unpack the OpenACS tarball {/doc/acs-core-docs {ACS Core Documentation}} {Install OpenACS 5.9.0} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Install OpenACS 5.9.0} Install OpenACS 5.9.0

          Run the install script install.sh as root:

          -[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ exit 
          +OpenACS site at 127.0.0.1:8000.

          Run the install script install.sh as root:

          [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ exit 
           [root root]# sh /home/$OPENACS_SERVICE_NAME/install/install.sh
           /home/$OPENACS_SERVICE_NAME/install/install.sh: Starting installation with config_file 
           /home/$OPENACS_SERVICE_NAME/install/install.tcl. Using serverroot=/var/lib/aolserver/
          @@ -178,8 +177,7 @@
           dba group.

          1. Verify membership by typing groups when you login:

            [$OPENACS_SERVICE_NAME ~]$ groups
            -dba web

            If you do not see these groups, take the following action:

            -[$OPENACS_SERVICE_NAME ~]$ su -
            +dba web

            If you do not see these groups, take the following action:

            [$OPENACS_SERVICE_NAME ~]$ su -
             Password: ************
             [root ~]# adduser $OPENACS_SERVICE_NAME dba
             

            If you get an error about an undefined group, then add that @@ -189,14 +187,12 @@ when you are finished with this step and log back in as your regular user.

          2. -

            Connect to Oracle using svrmgrl and login:

            -[$OPENACS_SERVICE_NAME ~]$ svrmgrl
            +

            Connect to Oracle using svrmgrl and login:

            [$OPENACS_SERVICE_NAME ~]$ svrmgrl
             SVRMGR> connect internal
             Connected.
          3. Determine where the system tablespaces are stored:

            SVRMGR> select file_name from dba_data_files;
            -

            Example results:

            -/ora8/m01/app/oracle/oradata/ora8/system01.dbf
            +

            Example results:

            /ora8/m01/app/oracle/oradata/ora8/system01.dbf
             /ora8/m01/app/oracle/oradata/ora8/tools01.dbf
             /ora8/m01/app/oracle/oradata/ora8/rbs01.dbf
             /ora8/m01/app/oracle/oradata/ora8/temp01.dbf
            @@ -231,8 +227,7 @@
             the data grows. We set the pctincrease to be a very low value so
             that our extents won't grow geometrically. We do not set it to
             0 at the tablespace level because this would affect Oracle's
            -ability to automatically coalesce free space in the tablespace.

            -[$OPENACS_SERVICE_NAME ~]$ svrmgrl
            +ability to automatically coalesce free space in the tablespace.

            [$OPENACS_SERVICE_NAME ~]$ svrmgrl
             SVRMGR> connect internal;
             SVRMGR> create tablespace $OPENACS_SERVICE_NAME
                   datafile '/ora8/m02/oradata/ora8/$OPENACS_SERVICE_NAME01.dbf' 
            @@ -262,8 +257,7 @@
             the section called “Deleting a
             tablespace” below.

          4. -

            Make sure that you can login to Oracle using your service_name account:

            -[$OPENACS_SERVICE_NAME ~]$ sqlplus $OPENACS_SERVICE_NAME/$OPENACS_SERVICE_NAMEpassword
            +

            Make sure that you can login to Oracle using your service_name account:

            [$OPENACS_SERVICE_NAME ~]$ sqlplus $OPENACS_SERVICE_NAME/$OPENACS_SERVICE_NAMEpassword
             
             SQL> select sysdate from dual;
             SYSDATE
            @@ -320,16 +314,14 @@
             automate vacuuming is to edit the cron file for the database user.
             Recommended: VACUUM ANALYZE
             every hour and VACUUM FULL
            -ANALYZE every day.

            -[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ export EDITOR=emacs;crontab -e
            +ANALYZE every day.

            [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ export EDITOR=emacs;crontab -e
             

            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 man 5 crontab for more information.

            -0 1-23 * * * /usr/local/pgsql/bin/vacuumdb --analyze $OPENACS_SERVICE_NAME
            +(*) day of month, month, and day of week. Type man 5 crontab for more information.

            0 1-23 * * * /usr/local/pgsql/bin/vacuumdb --analyze $OPENACS_SERVICE_NAME
             0 0 * * * /usr/local/pgsql/bin/vacuumdb --full --analyze $OPENACS_SERVICE_NAME
             

            Depending on your distribution, you may receive email when the crontab items are executed. If you don't want to receive email @@ -354,12 +346,13 @@ specific port, e.g. port 80. In order for OpenACS to work, you need to configure a virtual server. The Reference Platform uses a configuration file included in the OpenACS tarball, /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/config.tcl. -Open it in an editor to adjust the parameters.

            [root root]# su - $OPENACS_SERVICE_NAME
            +Open it in an editor to adjust the parameters.

            [root root]# su - $OPENACS_SERVICE_NAME
             
             [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc
             [$OPENACS_SERVICE_NAME etc]$ emacs config.tcl
             

            You can continue without changing any values in the file. -However, if you don't change address to match the computer's IP address, you won't be able to browse to your server from other +However, if you don't change address to match the computer's IP +address, you won't be able to browse to your server from other machines.

            • httpport - If you want @@ -489,8 +482,7 @@ being restarted; note that unless you already set up a way for AOLserver to restart itself (i.e. inittab or daemontools), you'll need to manually restart your -service.

              -[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ /usr/local/aolserver/bin/nsd-postgres -t /var/lib/aolserver/$OPENACS_SERVICE_NAME/config.tcl
              +service.

              [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ /usr/local/aolserver/bin/nsd-postgres -t /var/lib/aolserver/$OPENACS_SERVICE_NAME/config.tcl
               
            • 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 @@ -537,8 +529,7 @@

            Put in the appropriate lines for the database you are running. If you will use both databases, put in both sets of lines.

            • -

              PostgreSQL:

              -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/pgsql/lib
              +

              PostgreSQL:

              export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/pgsql/lib
               export PATH=$PATH:/usr/local/pgsql/bin
            • Oracle. These environment variables are specific for a local @@ -554,8 +545,7 @@ export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

        Test this by logging out and back in as $OPENACS_SERVICE_NAME and -checking the paths.

        -[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ exit
        +checking the paths.

        [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ exit
         logout
         [root src]# su - $OPENACS_SERVICE_NAME
         
        @@ -580,8 +570,8 @@
         
      • Test your backup and recovery procedure.

      • Set up the section called “External uptime validation”.

      • -
      ($‌Id: openacs.xml,v 1.33 2018/09/30 15:53:28 -gustafn Exp $)
      +
    ($‌Id: openacs.xml,v 1.33.2.2 2021/09/02 +16:56:02 gustafn Exp $)
    mkdir -p /home/$OPENACS_SERVICE_NAME pw useradd -n $OPENACS_SERVICE_NAME -g web -d /home/$OPENACS_SERVICE_NAME -s /bin/bash -

    Set up the file system for one or more OpenACS Sites

    For Linux Standard Base compliance and ease of backup, +

    Set up the filesystem for one or more OpenACS Sites

    For Linux Standard Base compliance and ease of backup, all of the files in each OpenACS site are stored in a subdirectory of /var/lib/aolserver, one @@ -237,7 +237,7 @@ CREATE DATABASE [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ su - $OPENACS_SERVICE_NAME -/usr/local/pgsql/bin/createdb -E UNICODE $OPENACS_SERVICE_NAME

  • 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: VACUUM ANALYZE every hour and VACUUM FULL ANALYZE every day.

    [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ export EDITOR=emacs;crontab -e

    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 man 5 crontab for more information.

    0 1-23 * * * /usr/local/pgsql/bin/vacuumdb --analyze $OPENACS_SERVICE_NAME
    +/usr/local/pgsql/bin/createdb -E UNICODE $OPENACS_SERVICE_NAME
  • 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: VACUUM ANALYZE every hour and VACUUM FULL ANALYZE every day.

    [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ export EDITOR=emacs;crontab -e

    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 man 5 crontab for more information.

    0 1-23 * * * /usr/local/pgsql/bin/vacuumdb --analyze $OPENACS_SERVICE_NAME
     0 0 * * * /usr/local/pgsql/bin/vacuumdb --full --analyze $OPENACS_SERVICE_NAME

    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, @@ -250,11 +250,11 @@ need to configure a virtual server. The Reference Platform uses a configuration file included in the OpenACS tarball, /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/config.tcl. - Open it in an editor to adjust the parameters.

    [root root]# su - $OPENACS_SERVICE_NAME
    +	   Open it in an editor to adjust the parameters.

    [root root]# su - $OPENACS_SERVICE_NAME
     [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc
     [$OPENACS_SERVICE_NAME etc]$ emacs config.tcl
     

    - You can continue without changing any values in the file. However, if you don't change address to match the computer's ip address, you won't be able to browse to your server from other machines. + You can continue without changing any values in the file. However, if you don't change address to match the computer's IP address, you won't be able to browse to your server from other machines.

    • httpport - If you want your server on a different port, enter it here. The Reference Platform port is 8000, which is suitable for development use. Port 80 is the standard http port - it's the port used by your browser when you enter http://yourserver.test. So you should use port 80 for your production site.

    • httpsport - This is the port for https requests. The Reference Platform https port is Index: openacs-4/packages/acs-core-docs/www/oracle.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/oracle.adp,v diff -u -r1.4.2.3 -r1.4.2.4 --- openacs-4/packages/acs-core-docs/www/oracle.adp 5 Jan 2021 17:33:39 -0000 1.4.2.3 +++ openacs-4/packages/acs-core-docs/www/oracle.adp 3 Sep 2021 09:15:20 -0000 1.4.2.4 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Install Oracle 8.1.7} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Install Oracle 8.1.7} Install Oracle 8.1.7

  • ($‌Id: oracle.xml,v 1.22 2017/08/07 23:47:55 +
  • ($‌Id: oracle.xml,v 1.22.2.1 2020/07/02 08:39:25 gustafn Exp $)
    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.52.2.3 -r1.52.2.4 --- openacs-4/packages/acs-core-docs/www/oracle.html 27 Jun 2019 18:22:22 -0000 1.52.2.3 +++ openacs-4/packages/acs-core-docs/www/oracle.html 3 Sep 2021 09:15:20 -0000 1.52.2.4 @@ -136,7 +136,7 @@

  • Setup the installation location for Oracle. While Oracle can - reside in a variety of places in the file system, OpenACS has + reside in a variety of places in the filesystem, OpenACS has adopted /ora8 as the base directory. @@ -646,7 +646,7 @@

  • Congratulations, you have just installed Oracle 8.1.7 Server! However, you still need to create a database which can take about an - hour of non-interactive time, so don't quit yet. + hour of noninteractive time, so don't quit yet.

    Creating the First Database

    This step will take you through the steps of creating a customized database. Be warned that this process takes about an hour on a @@ -738,7 +738,7 @@

  • Click the "Save" button. Oracle will automatically save it to the correct - directory and with the correct file name. This will likely be + directory and with the correct filename. This will likely be /ora8/m01/app/oracle/product/8.1.7/assistants/dbca/jlib/sqlora8.sh

  • It will alert you that the script has been saved Index: openacs-4/packages/acs-core-docs/www/os-install.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/os-install.adp,v diff -u -r1.3.2.2 -r1.3.2.3 --- openacs-4/packages/acs-core-docs/www/os-install.adp 26 Aug 2020 07:46:25 -0000 1.3.2.2 +++ openacs-4/packages/acs-core-docs/www/os-install.adp 3 Sep 2021 09:15:21 -0000 1.3.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Linux Install Guides} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Linux Install Guides} Linux Install Guides {/doc/acs-core-docs {ACS Core Documentation}} {Security Information} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Security Information} Security Information {/doc/acs-core-docs {ACS Core Documentation}} {OpenACS Packages} +{/doc/acs-core-docs/ {ACS Core Documentation}} {OpenACS Packages} OpenACS Packages

    Server file layout

  • Here is how an OpenACS 5 server is laid out starting from the Server root (ROOT):

    -

    Figure 11.1. Server file layout +

    Figure 11.1. Server file layout diagram

     ROOT/
         bin/
    @@ -64,7 +64,7 @@
      To illustrate
     the general structure of a package, let's see what the package
     for the "notes" application should look like.

    -

    Figure 11.2. Package file layout +

    Figure 11.2. Package file layout diagram

     ROOT/
       +-- packages/    APM Root
    @@ -134,7 +134,7 @@
     files are not sourced in these directories. This makes it suitable
     for storing icons, css files, javascript, and other static content
     which can be treated this way.

    -

    Table 11.1. Package +

    Table 11.1. Package files

    @@ -255,7 +255,7 @@ can create as many instances of the package as she likes, and map these instances to any URL in the site that she wants. If packages are analogous to executable programs in an operating system, then -package instances are analgous to multiple running copies of a +package instances are analogous to multiple running copies of a single program. Each instance can be independently administered and each instance maintains its own set of application parameters and options.

    The following sections will show you how to make a package for @@ -309,8 +309,10 @@ click the link called "notes" to go to the management page for the new package. Now click the link called "Manage file information", then the "Scan the packages/notes directory for additional -files in this package" link on that page to scan the filesystem for new files. This will bring you to a page that lists all -the files you just added and lets you add them to the notes package.

    Note that while the .sql +files in this package" link on that page to scan the +filesystem for new files. This will bring you to a page that lists +all the files you just added and lets you add them to the +notes package.

    Note that while the .sql files have been added to the package, they have not been loaded into the database. For the purposes of development, you have to load the data model by hand, because while OpenACS has automatic mechanisms for loading @@ -349,7 +351,8 @@ What we have to do is mount the application into the site map. That is, we have to define the URL from which the application will serve its pages.

    In OpenACS 5, administrators can define an arbitrary mapping -between the URLs the user types and the actual file in the filesystem that is served. This mapping is called the site map and entries in the site map are +between the URLs the user types and the actual file in the +filesystem that is served. This mapping is called the site map and entries in the site map are called site nodes. Each site node maps a URL to an OpenACS object. Since package instances are objects, the site map allows us to easily map package instances to @@ -395,8 +398,8 @@ Additional Reading

    ($‌Id: packages.xml,v 1.13 2018/04/22 19:24:37 -gustafn Exp $)
    +
    ($‌Id: packages.xml,v 1.13.2.3 2021/09/02 +16:56:01 gustafn Exp $)
    - + \ No newline at end of file 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.57.2.4 -r1.57.2.5 --- openacs-4/packages/acs-core-docs/www/packages.html 5 Jan 2021 17:33:40 -0000 1.57.2.4 +++ openacs-4/packages/acs-core-docs/www/packages.html 3 Sep 2021 09:15:21 -0000 1.57.2.5 @@ -7,13 +7,13 @@ OpenACS. OpenACS packages are installed and maintained with the OpenACS Package Manager (APM) which is part of the acs-admin package. This document presents reasons for packaging software, - conventions for the file system and naming that must be + conventions for the filesystem and naming that must be followed, and step by step instructions for creating a new package for the "Notes" example package.

    Server file layout

    Here is how an OpenACS 5 server is laid out starting from the Server root (ROOT): -

    Figure 11.1. Server file layout diagram

    +    

    Figure 11.1. Server file layout diagram

     ROOT/
         bin/
             Various executables and scripts for server maintenance.
    @@ -36,7 +36,7 @@
           logic, administration pages and user pages in a single part of
           the file tree.  This means developers can track down
           everything that is related to a particular
    -      package without hunting all over the file system.  Encapsulating
    +      package without hunting all over the filesystem.  Encapsulating
           everything about a package in one place also makes it much
           easier to distribute packages independently from the OpenACS Core.
         

    @@ -51,7 +51,7 @@ To illustrate the general structure of a package, let's see what the package for the "notes" application should look like. -

    Figure 11.2. Package file layout diagram

    +    

    Figure 11.2. Package file layout diagram

     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.
    -    

    Table 11.1. Package files

    -
    File TypeIts UseNaming Convention
    Package Specification FileThe package specification file is an XML file generated and +

    Table 11.1. Package files

    File TypeIts UseNaming Convention
    Package Specification FileThe 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.notes.info
    Data Model Creation Script @@ -239,7 +239,7 @@ administrator can create as many instances of the package as she likes, and map these instances to any URL in the site that she wants. If packages are analogous to executable programs in an - operating system, then package instances are analgous to multiple + operating system, then package instances are analogous to multiple running copies of a single program. Each instance can be independently administered and each instance maintains its own set of application parameters and options. @@ -266,8 +266,7 @@

    This is a short text string that should uniquely name your package to distinguish it from all the others. It is used as a database key to - keep track of the package and as the name of the directory in the file - system where all the files related to your package will live. Example + keep track of the package and as the name of the directory in the filesystem where all the files related to your package will live. Example package keys in the current system include: forums, acs-kernel and so on. For the example application, we will use the package key notes. @@ -331,7 +330,7 @@ file information", then the "Scan the packages/notes directory for additional files in this package" link on that page to scan - the file system for new files. This will bring you to a page + the filesystem for new files. This will bring you to a page that lists all the files you just added and lets you add them to the notes package.

    @@ -375,7 +374,7 @@ will serve its pages.

    In OpenACS 5, administrators can define an arbitrary mapping between the - URLs the user types and the actual file in the file system that is + URLs the user types and the actual file in the filesystem that is served. This mapping is called the site map and entries in the site map are called site nodes. Each site node maps a URL to an OpenACS object. Since package instances are objects, the site map allows Index: openacs-4/packages/acs-core-docs/www/parties.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/parties.adp,v diff -u -r1.4.2.3 -r1.4.2.4 --- openacs-4/packages/acs-core-docs/www/parties.adp 5 Jan 2021 17:33:40 -0000 1.4.2.3 +++ openacs-4/packages/acs-core-docs/www/parties.adp 3 Sep 2021 09:15:21 -0000 1.4.2.4 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Parties in OpenACS} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Parties in OpenACS} Parties in OpenACS parties. However, someone is not a member of Greenpeace just because they are a member of a group that is a member of Greenpeace. Now, consider a multinational -corporation (MC) that has a U.S. division and an Eurasian division. +corporation (MC) that has a U.S. division and a Eurasian division. A member of either the U.S. or Eurasian division is automatically a member of the MC. In this situation the U.S. and Eurasian divisions are "components" of the MC, i.e., membership is transitive with respect to -composition. Furthermore, a member of an European (or other) office +composition. Furthermore, a member of a European (or other) office of the MC is automatically a member of the MC.

    Group Membership

    Group memberships can be created and manipulated using the membership_rel package. Only one membership object can be created @@ -323,8 +323,8 @@ a membership relation is an ordinary acs object with object identity, 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.

    ($‌Id: parties.xml,v 1.10 2018/09/30 15:53:28 -gustafn Exp $)
    +groups table.

    ($‌Id: parties.xml,v 1.10.2.1 2019/11/22 +16:30:46 gustafn Exp $)
     
     
    -# sql code
    +# SQL code
     create or replace package membership_rel
     as
     
    @@ -219,7 +219,7 @@
     would result in a circular reference.

     
     
    -# sql code
    +# SQL code
     create or replace package composition_rel
     as
     
    Index: openacs-4/packages/acs-core-docs/www/permissions-design.adp
    ===================================================================
    RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/permissions-design.adp,v
    diff -u -r1.4.2.3 -r1.4.2.4
    --- openacs-4/packages/acs-core-docs/www/permissions-design.adp	5 Jan 2021 17:33:40 -0000	1.4.2.3
    +++ openacs-4/packages/acs-core-docs/www/permissions-design.adp	3 Sep 2021 09:15:22 -0000	1.4.2.4
    @@ -1,5 +1,5 @@
     
    -{/doc/acs-core-docs {ACS Core Documentation}} {Permissions Design}
    +{/doc/acs-core-docs/ {ACS Core Documentation}} {Permissions Design}
     Permissions Design
     
     

    To receive a true or false value, Tcl code should call:

     permission::permission_p -object_id $object_id -party_id $user_id -privilege $method
    -

    If the user_id argument is left out, then the currently logged in -user is checked. To create an error page, Tcl code should call:

    +

    If the user_id argument is left out, then the currently logged-in user is checked. To create an error page, Tcl code should call:

     permission::require_permission -object_id $object_id -privilege $method
     

    These procedures are defined in acs-permissions-procs.tcl.

    User Interface

    All users of the permissions system are the same at the user-interface level. If you have the administer_privileges method permission on an Index: openacs-4/packages/acs-core-docs/www/permissions-requirements.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/permissions-requirements.adp,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/acs-core-docs/www/permissions-requirements.adp 26 Aug 2020 07:46:25 -0000 1.4.2.2 +++ openacs-4/packages/acs-core-docs/www/permissions-requirements.adp 3 Sep 2021 09:15:22 -0000 1.4.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Permissions Requirements} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Permissions Requirements} Permissions Requirements {/doc/acs-core-docs {ACS Core Documentation}} {OpenACS Permissions Tediously Explained} +{/doc/acs-core-docs/ {ACS Core Documentation}} {OpenACS Permissions Tediously Explained} OpenACS Permissions Tediously Explained Context Hierarchy

    Suppose objects A, B, ..., and F form the following hierarchy.

    -

    Table 11.2. Context Hierarchy +

    Table 11.2. Context Hierarchy Example

    @@ -153,7 +153,7 @@

    This can be represented in the acs_objects table by the following entries:

    -

    Table 11.3. acs_objects example +

    Table 11.3. acs_objects example data

    @@ -487,7 +487,7 @@

    Read acs_rels: right-side is -a subset of left-side, ie object2 is a part of object1.

    Another way of building up groups is by adding subgroups. +a subset of left-side, i.e. object2 is a part of object1.

    Another way of building up groups is by adding subgroups. Suppose we define Merry Pranksters and Sad Pranksters as subgroups of Pranksters. We say that the Pranksters group is composed of groups Merry Pranksters and Sad Pranksters. This information is 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.49.2.3 -r1.49.2.4 --- openacs-4/packages/acs-core-docs/www/permissions-tediously-explained.html 27 Jun 2019 18:22:22 -0000 1.49.2.3 +++ openacs-4/packages/acs-core-docs/www/permissions-tediously-explained.html 3 Sep 2021 09:15:22 -0000 1.49.2.4 @@ -105,7 +105,7 @@

    Context Hierarchy

    Suppose objects A, B, ..., and F form the following hierarchy. -

    Table 11.2. Context Hierarchy Example

    -
    +

    Table 11.2. Context Hierarchy Example

    A

    object_id=10 @@ -139,7 +139,7 @@ This can be represented in the acs_objects table by the following entries: -

    Table 11.3. acs_objects example data

    object_idcontext_id
    2010
    3010
    4020
    5020
    6030

    +

    Table 11.3. acs_objects example data

    object_idcontext_id
    2010
    3010
    4020
    5020
    6030

    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 CONNECT BY query, @@ -443,7 +443,7 @@

    Penelope

    Read acs_rels: right-side is a - subset of left-side, ie + subset of left-side, i.e. object2 is a part of object1.

    Index: openacs-4/packages/acs-core-docs/www/permissions.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/permissions.adp,v diff -u -r1.4.2.3 -r1.4.2.4 --- openacs-4/packages/acs-core-docs/www/permissions.adp 5 Jan 2021 17:33:40 -0000 1.4.2.3 +++ openacs-4/packages/acs-core-docs/www/permissions.adp 3 Sep 2021 09:15:23 -0000 1.4.2.4 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Groups, Context, Permissions} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Groups, Context, Permissions} Groups, Context, Permissions

  • The Context hierarchy allows you to define organize default permissions in a hierarchical fashion.

  • A PL/SQL or Tcl API is then used to check permissions in -application pages.

    ($‌Id: permissions.xml,v 1.18 2017/08/07 -23:47:54 gustafn Exp $)
    +application pages.

    ($‌Id: permissions.xml,v 1.18.2.3 2021/01/05 +17:33:40 gustafn Exp $)
    - + \ No newline at end of file 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.53.2.4 -r1.53.2.5 --- openacs-4/packages/acs-core-docs/www/permissions.html 5 Jan 2021 17:33:40 -0000 1.53.2.4 +++ openacs-4/packages/acs-core-docs/www/permissions.html 3 Sep 2021 09:15:23 -0000 1.53.2.5 @@ -120,7 +120,7 @@ acs_permission.grant_permission like this:

    -# sql code
    +# SQL code
         acs_permission.grant_permission (
           object_id => some_object_id,
           grantee_id => some_party_id,
    Index: openacs-4/packages/acs-core-docs/www/postgres.adp
    ===================================================================
    RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/postgres.adp,v
    diff -u -r1.4.2.2 -r1.4.2.3
    --- openacs-4/packages/acs-core-docs/www/postgres.adp	26 Aug 2020 07:46:25 -0000	1.4.2.2
    +++ openacs-4/packages/acs-core-docs/www/postgres.adp	3 Sep 2021 09:15:23 -0000	1.4.2.3
    @@ -1,5 +1,5 @@
     
    -{/doc/acs-core-docs {ACS Core Documentation}} {Install PostgreSQL}
    +{/doc/acs-core-docs/ {ACS Core Documentation}} {Install PostgreSQL}
     Install PostgreSQL
     
     {/doc/acs-core-docs {ACS Core Documentation}} {Profile your code}
    +{/doc/acs-core-docs/ {ACS Core Documentation}} {Profile your code}
     Profile your code
     
     {/doc/acs-core-docs {ACS Core Documentation}} {Programming with AOLserver}
    +{/doc/acs-core-docs/ {ACS Core Documentation}} {Programming with AOLserver}
     Programming with AOLserver
     
     ns_set get
     to perform lookup by name, they perform a linear lookup, whereas
     arrays use a hash table, so ns_sets are slower than arrays when the
    -number of entries is large.

    ($‌Id: programming-with-aolserver.xml,v 1.10 -2018/09/30 15:53:28 gustafn Exp $)
    +number of entries is large.

    ($‌Id: programming-with-aolserver.xml,v 1.10.2.1 +2019/08/09 20:04:23 gustafn Exp $)
    {/doc/acs-core-docs {ACS Core Documentation}} {Add PSGML commands to emacs init file (OPTIONAL)} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Add PSGML commands to emacs init file (OPTIONAL)} Add PSGML commands to emacs init file (OPTIONAL)

    Add PSGML commands to emacs init file (OPTIONAL)

    - If you plan to write or edit any + 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 -> 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.44.2.3 -r1.44.2.4 --- openacs-4/packages/acs-core-docs/www/psgml-for-emacs.html 27 Jun 2019 18:22:22 -0000 1.44.2.3 +++ openacs-4/packages/acs-core-docs/www/psgml-for-emacs.html 3 Sep 2021 09:15:24 -0000 1.44.2.4 @@ -1,5 +1,5 @@ -Add PSGML commands to emacs init file (OPTIONAL)

    Add PSGML commands to emacs init file (OPTIONAL)

    +Add PSGML commands to emacs init file (OPTIONAL)

    Add PSGML commands to emacs init file (OPTIONAL)

    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 Index: openacs-4/packages/acs-core-docs/www/psgml-mode.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/psgml-mode.adp,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/acs-core-docs/www/psgml-mode.adp 26 Aug 2020 07:46:25 -0000 1.4.2.2 +++ openacs-4/packages/acs-core-docs/www/psgml-mode.adp 3 Sep 2021 09:15:25 -0000 1.4.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Using PSGML mode in Emacs} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Using PSGML mode in Emacs} Using PSGML mode in Emacs

    What is a DOCTYPE ?

    All SGML and XML documents that should conform to a DTD have to -declare a doctype. For the docbook XML, all your .xml files whould start with the line

    +declare a doctype. For the docbook XML, all your .xml files would start with the line

           <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "docbookx.dtd">
        
     

    If your document is only part of a larger XML document, you can @@ -144,8 +144,8 @@

    Further reading

    Start with the the section called “OpenACS Documentation Guide” -

    ($‌Id: psgml-mode.xml,v 1.9 2017/08/07 23:47:54 -gustafn Exp $)
    +

    ($‌Id: psgml-mode.xml,v 1.9.2.1 2021/09/02 +16:56:02 gustafn Exp $)

    What is a DOCTYPE ?

    All SGML and XML documents that should conform to a DTD have to declare a -doctype. For the docbook XML, all your .xml files whould start with +doctype. For the docbook XML, all your .xml files would start with the line

           <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "docbookx.dtd">
        
    Index: openacs-4/packages/acs-core-docs/www/release-notes.adp
    ===================================================================
    RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/release-notes.adp,v
    diff -u -r1.8.2.7 -r1.8.2.8
    --- openacs-4/packages/acs-core-docs/www/release-notes.adp	5 Jan 2021 17:33:40 -0000	1.8.2.7
    +++ openacs-4/packages/acs-core-docs/www/release-notes.adp	3 Sep 2021 09:15:25 -0000	1.8.2.8
    @@ -1,5 +1,5 @@
     
    -{/doc/acs-core-docs {ACS Core Documentation}} {OpenACS Release Notes}
    +{/doc/acs-core-docs/ {ACS Core Documentation}} {OpenACS Release Notes}
     OpenACS Release Notes
     
     

    OpenACS Release Notes

    -Release 5.9.2

      +Release 5.10.0
    • ... to be completed ....

    Altogether, OpenACS 5.10.0 differs from OpenACS 5.9.1 by the +following statistics

    +      xxx files changed, xxx insertions(+), xxx deletions(-)
    +    

    contributed by xxxx committers (...) and xxxx patch/bugfix +providers (...). All packages of the release were tested with +PostgreSQL 10.* and Tcl 8.6.*.

    For more details, consult the raw ChangeLog.

    +
    +

    +Release 5.9.1

    • The release of OpenACS 5.9.1 contains the 88 packages of the oacs-5-9 branch. These packages include the OpenACS core packages, the major application packages (e.g. most the ones used on @@ -391,7 +399,7 @@

  • xotcl-request-monitor

      -
    • Added class "BanUser" (use. e.g. IP address to +

    • Added class "BanUser" (use. e.g. ip address to disallow requests from a user via request monitor)

    • Added support for optional user tracking in database

    • Added support for monitoring response-time for certain URLs via munin

    • Increased usage of XOTcl 2.0 variable resolver (potentially speed improvement 4x)

    • Performed some refactoring of response-time handling to allow @@ -556,7 +564,7 @@ "outdated" package in the 5.9 or 6.0 release)

    • General overhaul of package management

    • Install-from-local and install-from-repository can be used to install the provided packages based on a acs-core installation. This means that also DotLRN can be installed from repository or -from local into an existing OpenACS instance.

    • Install-from-repository offers filtering functions, allows one to +from local into an existing OpenACS instance.

    • Install-from-repository offers filtering functions, allows to install optionally from head-channel (for packages not in the base channel of the installed instance). Install-from-repository works more like an app-store, showing as well vendor information

    • Packages can be equipped with xml-based configuration files @@ -815,20 +823,20 @@ 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/* *~")

    • -
    ($‌Id: release-notes.xml,v 1.39.2.1 2019/03/10 -21:36:25 gustafn Exp $)
    +
  • ($‌Id: release-notes.xml,v 1.39.2.4 2021/09/02 +18:42:46 gustafn Exp $)

    -Release 4.6.3

    Release Notes for 4.6.3

    +Release 4.6.3

    Release Notes for 4.6.3

    -Release 4.6.2

    Release Notes for 4.6.2

    +Release 4.6.2

    Release Notes for 4.6.2

    -Release 4.6

    Release Notes for 4.6

    +Release 4.6

    Release Notes for 4.6

    -Release 4.5

    Release Notes for 4.5

    +Release 4.5

    Release Notes for 4.5

    -OpenACS Release Notes

    OpenACS Release Notes

    Release 5.9.2

    • +OpenACS Release Notes

      OpenACS Release Notes

      Release 5.10.0

      • + ... to be completed .... +

      Altogether, OpenACS 5.10.0 differs from OpenACS 5.9.1 by the + following statistics +

      +      xxx files changed, xxx insertions(+), xxx deletions(-)
      +    

      + contributed by xxxx committers (...) and xxxx patch/bugfix providers + (...). All packages of + the release were tested with PostgreSQL 10.* and Tcl 8.6.*. +

      + For more details, consult the + raw ChangeLog. +

      Release 5.9.1

      • The release of OpenACS 5.9.1 contains the 88 packages of the oacs-5-9 branch. These packages include the OpenACS core packages, the major application packages (e.g. most the ones used on OpenACS.org), and @@ -88,7 +101,7 @@ Stripped misleading SQL statements

    • - Marked redundant / uncalled sql functions as deprecated + Marked redundant / uncalled SQL functions as deprecated

    • Replaced usages of obsolete view "all_object_party_privilege_map" by @@ -104,7 +117,7 @@ acs_object_types.object_type as foreign key

  • - Simplified core sql functions by using defaults: + Simplified core SQL functions by using defaults:

    • Number of functions reduced by a factor of 2 compared to OpenACS 5.9.0 (while providing compatibility for clients using old @@ -484,7 +497,7 @@ "ns/server/${server}/>acs"

      • NsShutdownWithNonZeroExitCode: tell NaviServer to return with a - non-zero return code to cause restart (important under windows) + nonzero return code to cause restart (important under windows)

      • LogIncludeUserId: include user_id in access log

      @@ -740,7 +753,7 @@ ignored due .xql files

    • Removed bug where same query-name was used in different branches of an if-statement for - different sql statements, but the query-name lead to the + different SQL statements, but the query-name lead to the wrong result.

    • Removed multiple entries of same query name from .xql files (e.g. the entry @@ -788,8 +801,7 @@ "ad_include_contract" (similar to ad_page_contract).

    • Improved them-ability for display_templates. One can now - provide a display_template_name (similar to the sql - statement name) to refer to display templates. This + provide a display_template_name (similar to the SQL statement name) to refer to display templates. This enables reusability and is theme-able.

    • Dimensional slider reform (ad_dimensional): Removed hard-coded table layout from dimensional slider. Add @@ -819,7 +831,7 @@ in the acs-tcl package parameters)

    • Added ability to save data sent by - ns_return in files on the file system. This can be used to + ns_return in files on the filesystem. This can be used to validate HTML content also for password protected pages (controlled via package parameter "TclTraceSaveNsReturn" in the acs-tcl package parameters) @@ -975,7 +987,7 @@ committers.

    Release 5.7.0

    • Made changes that extend acs-kernel's create_type and create_attribute procs, - so they're optionally able to create sql tables and columns. Optional metadata + so they're optionally able to create SQL tables and columns. Optional metadata params allow for the automatic generation of foreign key references, check exprs, etc.

    Release 5.6.0

    • @@ -1169,4 +1181,4 @@

    • 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/* *~") -

    ($Id$)
  • +

    ($Id$)
    Index: openacs-4/packages/acs-core-docs/www/releasing-openacs-core.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/releasing-openacs-core.adp,v diff -u -r1.6.2.5 -r1.6.2.6 --- openacs-4/packages/acs-core-docs/www/releasing-openacs-core.adp 26 Aug 2020 07:46:25 -0000 1.6.2.5 +++ openacs-4/packages/acs-core-docs/www/releasing-openacs-core.adp 3 Sep 2021 09:15:25 -0000 1.6.2.6 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {OpenACS Core and .LRN} +{/doc/acs-core-docs/ {ACS Core Documentation}} {OpenACS Core and .LRN} OpenACS Core and .LRN
  • Add new section in /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-core-docs/www/xml/for-everyone/release-notes.xml

  • -

    Regenerate all HTML docs

    -cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-core-docs/www/xml
    +

    Regenerate all HTML docs

    cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-core-docs/www/xml
     make
  • Update /var/lib/aolserver/$OPENACS_SERVICE_NAME/readme.txt with the new version number

  • Update version number and release date in all of the core packages. Use /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-core-docs/www/files/update-info.sh with the new version number and the release date as arguments. Run -it from /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages:

    -cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages
    +it from /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages:

    cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages
            ./acs-core-docs/www/files/update-info 5.2.12006-01-16
     
  • Install a new site using the modified code and verify that the @@ -184,7 +182,7 @@ TAG=1 # What release version are we building; version format should be -# dashes rather than dots e.g. OACS_VERSION=5-0-0b4 +# dashes rather than dots eg. OACS_VERSION=5-0-0b4 OACS_VERSION=5-0-0b4 DOTLRN_VERSION=2-0-0b4 @@ -239,7 +237,7 @@ mkdir tarball cd tarball cvs -d $OACS_CVSROOT export -r openacs-$OACS_VERSION acs-core -mv openacs-4 openacs-${OACS_VERSION//-/.} +mv opeancs-4 openacs-${OACS_VERSION//-/.} tar -czf ../openacs-${OACS_VERSION//-/.}.tar.gz openacs-${OACS_VERSION//-/.} cd .. @@ -259,8 +257,8 @@ # Clean up after ourselves... cd $BASE && rm -rf dotlrn-tarball tarball openacs-4 dotlrn-packages -

  • ($‌Id: releasing-openacs.xml,v 1.24 2017/12/24 -13:15:07 gustafn Exp $)
    +
    ($‌Id: releasing-openacs.xml,v 1.24.2.1 +2020/07/02 08:39:25 gustafn Exp $)
    {/doc/acs-core-docs {ACS Core Documentation}} {Chapter 16. Releasing OpenACS} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Chapter 16. Releasing OpenACS} Chapter 16. Releasing OpenACS {/doc/acs-core-docs {ACS Core Documentation}} {How to package and release an OpenACS Package} +{/doc/acs-core-docs/ {ACS Core Documentation}} {How to package and release an OpenACS Package} How to package and release an OpenACS Package {/doc/acs-core-docs {ACS Core Documentation}} {Running a PostgreSQL database on another server} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Running a PostgreSQL database on another server} Running a PostgreSQL database on another server {/doc/acs-core-docs {ACS Core Documentation}} {The Request Processor} +{/doc/acs-core-docs/ {ACS Core Documentation}} {The Request Processor} The Request Processor
    [ad_conn path_info]

    In a .vuh file, path_info is the trailing part of the URL not matched by the .vuh file.

    -
    ($‌Id: rp.xml,v 1.13 2017/08/07 23:47:54 gustafn -Exp $)
    +
    ($‌Id: rp.xml,v 1.13.2.2 2019/08/09 20:04:23 +gustafn Exp $)
    {/doc/acs-core-docs {ACS Core Documentation}} {System/Application Requirements Template} +{/doc/acs-core-docs/ {ACS Core Documentation}} {System/Application Requirements Template} System/Application Requirements Template Optional: Implementation Notes

    Although in theory coding comes after design, which comes after requirements, we do not, and perhaps -should not, always follow such a rigid process (aka the -waterfall lifecycle). Often, there is a pre-existing system or -prototype first, and thus you may want to write some thoughts on +should not, always follow such a rigid process (aka the waterfall +lifecycle). Often, there is a 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.

    @@ -127,8 +127,8 @@
    0.1Created8/21/2000Josh Finkler, Audrey McLoghlin
    ($‌Id: requirements-template.xml,v 1.7 -2017/08/07 23:47:54 gustafn Exp $)
    +
    ($‌Id: requirements-template.xml,v 1.7.2.2 +2020/07/02 08:39:25 gustafn Exp $)

    Optional: Implementation Notes

    Although in theory coding comes after design, which comes after requirements, we do not, and perhaps should not, always follow such a - rigid process (a.k.a. the waterfall lifecycle). Often, there is a + rigid process (aka the waterfall lifecycle). Often, there is a 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. Index: openacs-4/packages/acs-core-docs/www/rp-design.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/rp-design.adp,v diff -u -r1.4.2.3 -r1.4.2.4 --- openacs-4/packages/acs-core-docs/www/rp-design.adp 5 Jan 2021 17:33:40 -0000 1.4.2.3 +++ openacs-4/packages/acs-core-docs/www/rp-design.adp 3 Sep 2021 09:15:27 -0000 1.4.2.4 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Request Processor Design} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Request Processor Design} Request Processor Design

  • abstract URL -- A URL with no extension that doesn't directly correspond to a file in the filesystem.

  • abstract file or abstract path -- A URL -that has been translated into a file system path (probably by prepending the +that has been translated into a filesystem path (probably by prepending the appropriate pageroot), but still doesn't have any extension and so does not directly correspond to a file in the filesystem.

  • concrete file or concrete path -- A file or path that actually references something in the filesystem.

  • System Overview

    Package Lookup

    One of the first things the request processor must do is to determine @@ -43,7 +43,7 @@ able to figure out which package_id is associated with a given package_url, and package mountings must be persistent across server restarts and users must be able to manipulate the mountings on a live site, -therefore this mapping is stored in the database.

    Authentication and Authorization

    Once the request processor has located both the package_id and concrete +therefore, this mapping is stored in the database.

    Authentication and Authorization

    Once the request processor has located both the package_id and concrete file associated with the request, authentication is performed by the session security system. After authentication has been performed the user is authorized to have read access for the given package by the OpenACS 4 Permissions Design. Index: openacs-4/packages/acs-core-docs/www/rp-requirements.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/rp-requirements.adp,v diff -u -r1.5.2.2 -r1.5.2.3 --- openacs-4/packages/acs-core-docs/www/rp-requirements.adp 26 Aug 2020 07:46:25 -0000 1.5.2.2 +++ openacs-4/packages/acs-core-docs/www/rp-requirements.adp 3 Sep 2021 09:15:27 -0000 1.5.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Request Processor Requirements} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Request Processor Requirements} Request Processor Requirements {/doc/acs-core-docs {ACS Core Documentation}} {Security Design} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Security Design} Security Design ad_parameter in sec_handler. The impact of this approach is -that these parameters cannot be dynamically changed at runtime and +that these parameters cannot be dynamically changed at run time and require a server restart.

    @@ -518,7 +518,7 @@

    Cookieless Sessions

    Two trends drive the requirement for removing cookie dependence. -WAP browsers that do not have cookies, and publc perceptions of +WAP browsers that do not have cookies, and public perceptions of cookies as an invasion of privacy. The rely on the cookies mechanism in HTTP to distinguish one request from the next, and we trust it to force requests from the same client to carry the same 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.37.2.1 -r1.37.2.2 --- openacs-4/packages/acs-core-docs/www/security-design.html 2 Mar 2019 19:30:06 -0000 1.37.2.1 +++ openacs-4/packages/acs-core-docs/www/security-design.html 3 Sep 2021 09:15:27 -0000 1.37.2.2 @@ -34,7 +34,7 @@ automatically issued to users who authenticate themselves over insecure connections. This means that users will need to reauthenticate themselves over SSL when performing some action that requires secure authentication.

    Although this makes the site less user friendly, this design significantly -increases the security of the system because this insures that the +increases the security of the system because this ensures that the authentication tokens presented to a secure section of the web site were not sniffed. The system is not entirely secure, since the actual authentication password can be sniffed from the system, after which the sniffer can apply @@ -101,7 +101,7 @@ sec_setup_session, which is called either to create a new session from sec_handler or from ad_user_login when there is a change in -authorization level. The session management code must do two things: insure that +authorization level. The session management code must do two things: ensure that session-level data does not float between users, and update the users table which has columns for n_sessions, last_visit, and @@ -112,8 +112,8 @@ is continued, simply with a higher authorization state. This allows for data associated with a session to be carried over when a user logs in.

    The users table is updated by sec_update_user_session_info which is called -when an existing session is assigned a non-zero user_id, or when a session is -created with a non-zero user_id.

    Passwords

    ad_user_login assumes a password check has already been +when an existing session is assigned a nonzero user_id, or when a session is +created with a nonzero user_id.

    Passwords

    ad_user_login assumes a password check has already been performed (this will change in the future). The actual check is done by ad_check_password. The database stores a salt and a hash of the password concatenated with the salt. Updating the password @@ -141,7 +141,7 @@ these values are used to dynamically generate a procedure that returns a constant. This approach avoids (relatively) expensive calls to ad_parameter in sec_handler. The impact of this -approach is that these parameters cannot be dynamically changed at runtime +approach is that these parameters cannot be dynamically changed at run time and require a server restart.

    Session Properties

    Session properties are stored in a single table that maps session IDs to named session properties and values. This table is periodically purged. For @@ -295,7 +295,7 @@ life, properties have a maximum life. It would be nice to expand the interface to allow for more persistent properties. In the past, there was a sec_browser_properties table that held permanent properties about each unique -visitor (for logged in users, these are just user properties). This was +visitor (for logged-in users, these are just user properties). This was unscalable because there was no way to delete these properties, and the table tended to grow to millions of rows. It would be nice to view browser and session properties as two types of client properties, but with different @@ -313,7 +313,7 @@ it into the database at all is probably too big a hammer. Certainly putting it into the database on every hit is too big a hammer.

    Cookieless Sessions

    Two trends drive the requirement for removing cookie dependence. WAP -browsers that do not have cookies, and publc perceptions of cookies as an +browsers that do not have cookies, and public perceptions of cookies as an invasion of privacy. The rely on the cookies mechanism in HTTP to distinguish one request from the next, and we trust it to force requests from the same client to carry the same cookie headers. The same thing can be accomplished by Index: openacs-4/packages/acs-core-docs/www/security-notes.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/security-notes.adp,v diff -u -r1.4.2.3 -r1.4.2.4 --- openacs-4/packages/acs-core-docs/www/security-notes.adp 5 Jan 2021 17:33:40 -0000 1.4.2.3 +++ openacs-4/packages/acs-core-docs/www/security-notes.adp 3 Sep 2021 09:15:27 -0000 1.4.2.4 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Security Notes} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Security Notes} Security Notes

    The set of string match expressions in the procedure above should be extended appropriately for other registration pages. This procedure does not use ad_parameter or regular expressions for -performance reasons, as it is called by the request processor.

    ($‌Id: security-notes.xml,v 1.7 2014/10/27 -16:39:32 victorg Exp $)
    +performance reasons, as it is called by the request processor.

    ($‌Id: security-notes.xml,v 1.7.4.1 2021/09/02 +16:56:03 gustafn Exp $)

    HTTPS and the sessions system

    If a user switches to HTTPS after logging into the system via HTTP, the user -must obtain a secure token. To insure security, the only way to +must obtain a secure token. To ensure security, the only way to obtain a secure token in the security system is to authenticate yourself via password over an HTTPS connection. Thus, users may need to log on again to a system when switching from HTTP to HTTPS. Note that logging on to a system Index: openacs-4/packages/acs-core-docs/www/security-requirements.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/security-requirements.adp,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/acs-core-docs/www/security-requirements.adp 26 Aug 2020 07:46:25 -0000 1.4.2.2 +++ openacs-4/packages/acs-core-docs/www/security-requirements.adp 3 Sep 2021 09:15:28 -0000 1.4.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Security Requirements} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Security Requirements} Security Requirements {/doc/acs-core-docs {ACS Core Documentation}} {Manual backup and recovery} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Manual backup and recovery} Manual backup and recovery

  • -Back up the filesystem. Back up all of -the files in the service, including the database backup file but +Back up the filesystem. Back up all of the +files in the service, including the database backup file but excluding the auto-generated supervise directory, which is unnecessary and has complicated permissions.

    In the tar command,

    • @@ -188,8 +188,8 @@ 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 precreated from -the OpenACS initialization script, which can be ignored.

      [root root]# su - $OPENACS_SERVICE_NAME
      +messages at the beginning for objects that were precreated from the
      +OpenACS initialization script, which can be ignored.

      [root root]# su - $OPENACS_SERVICE_NAME
       
       [$OPENACS_SERVICE_NAME ~]$ createdb $OPENACS_SERVICE_NAME
       
      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.15.2.1 -r1.15.2.2
      --- openacs-4/packages/acs-core-docs/www/snapshot-backup.html	2 Mar 2019 19:30:06 -0000	1.15.2.1
      +++ openacs-4/packages/acs-core-docs/www/snapshot-backup.html	3 Sep 2021 09:15:28 -0000	1.15.2.2
      @@ -6,7 +6,7 @@
           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.

      1. Back up the database to a file. 

        • Oracle. 

          • + filesystem backup.

            1. Back up the database to a file. 

              • Oracle. 

                • Download the backup script. Save the file export-oracle.txt as /var/tmp/export-oracle.txt

                • @@ -73,7 +73,7 @@ su - $OPENACS_SERVICE_NAME pg_dump -f /var/lib/aolserver/$OPENACS_SERVICE_NAME/database-backup/before_upgrade_to_4.6.dmp openacs-dev ls -al /var/lib/aolserver/$OPENACS_SERVICE_NAME/database-backup/before_upgrade_to_4.6.dmp -exit

  • Back up the file system. Back up all of the files in the service, including the +exit

  • Back up the filesystem. Back up all of the files in the service, including the database backup file but excluding the auto-generated supervise directory, which is unnecessary and has complicated permissions.

    In the tar command,

    • c create a @@ -119,7 +119,7 @@ Shall the new user be allowed to create more new users? (y/n) y CREATE USER [postgres ~]$ exit -

      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.

      [root root]# su - $OPENACS_SERVICE_NAME
      +

      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 precreated from the OpenACS initialization script, which can be ignored.

      [root root]# su - $OPENACS_SERVICE_NAME
       [$OPENACS_SERVICE_NAME ~]$ createdb $OPENACS_SERVICE_NAME
       CREATE DATABASE
       [$OPENACS_SERVICE_NAME ~]$ psql -f /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-kernel/sql/postgresql/postgresql.sql $OPENACS_SERVICE_NAME
      Index: openacs-4/packages/acs-core-docs/www/style-guide.adp
      ===================================================================
      RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/style-guide.adp,v
      diff -u -r1.4.2.3 -r1.4.2.4
      --- openacs-4/packages/acs-core-docs/www/style-guide.adp	5 Jan 2021 17:33:40 -0000	1.4.2.3
      +++ openacs-4/packages/acs-core-docs/www/style-guide.adp	3 Sep 2021 09:15:28 -0000	1.4.2.4
      @@ -1,5 +1,5 @@
       
      -{/doc/acs-core-docs {ACS Core Documentation}} {OpenACS Style Guide}
      +{/doc/acs-core-docs/ {ACS Core Documentation}} {OpenACS Style Guide}
       OpenACS Style Guide
       
       
  • 0.1Creation12/2003Jeff Davis
    ($‌Id: style-guide.xml,v 1.4 2017/08/07 23:47:54 -gustafn Exp $)
    +
    ($‌Id: style-guide.xml,v 1.4.2.1 2019/11/22 +16:30:46 gustafn Exp $)

    Well, first lets consider the OpenACS code base (all this as of December 2003 and including dotLRN). There are about 390,000 - lines of Tcl code, about 460,000 lines of sql (in datamodel + lines of Tcl code, about 460,000 lines of SQL (in datamodel scripts and .xql files), about 80,000 lines of markup in .adp files, and about 100,000 lines of documentation. All told, just about a million lines of "stuff". In terms of logical units Index: openacs-4/packages/acs-core-docs/www/subsites-design.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/subsites-design.adp,v diff -u -r1.5.2.3 -r1.5.2.4 --- openacs-4/packages/acs-core-docs/www/subsites-design.adp 26 Aug 2020 07:46:25 -0000 1.5.2.3 +++ openacs-4/packages/acs-core-docs/www/subsites-design.adp 3 Sep 2021 09:15:28 -0000 1.5.2.4 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Subsites Design Document} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Subsites Design Document} Subsites Design Document {/doc/acs-core-docs {ACS Core Documentation}} {Subsites Requirements} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Subsites Requirements} Subsites Requirements {/doc/acs-core-docs {ACS Core Documentation}} {Writing OpenACS Application Pages} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Writing OpenACS Application Pages} Writing OpenACS Application Pages

    We also saw how to use the templating system's forms API in a simple way, to create forms based pages with minimal duplication -of code.

    ($‌Id: subsites.xml,v 1.10.2.1 2019/06/27 -18:15:11 gustafn Exp $)
    +of code.

    ($‌Id: subsites.xml,v 1.10.2.2 2020/07/02 +08:39:25 gustafn Exp $)
    notes
    application.

  • -The RP asks the package manager where in the file system the Notes +The RP asks the package manager where in the filesystem the Notes package lives. In the standard case, this would be ROOT/packages/notes.

  • Index: openacs-4/packages/acs-core-docs/www/tcl-doc.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tcl-doc.adp,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/acs-core-docs/www/tcl-doc.adp 26 Aug 2020 07:46:25 -0000 1.4.2.2 +++ openacs-4/packages/acs-core-docs/www/tcl-doc.adp 3 Sep 2021 09:15:29 -0000 1.4.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Documenting Tcl Files: Page Contracts and Libraries} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Documenting Tcl Files: Page Contracts and Libraries} Documenting Tcl Files: Page Contracts and Libraries {/doc/acs-core-docs {ACS Core Documentation}} {Using Templates in OpenACS} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Using Templates in OpenACS} Using Templates in OpenACS {/doc/acs-core-docs {ACS Core Documentation}} {Admin Pages} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Admin Pages} Admin Pages /admin every time they need to reach it. You -could put a static link to the toplevel +could put a static link to the top-level index.adp but that might be distracting for people who are not admins. Besides, some people consider it impolite to first offer a link and then display a nasty "You don't have permission to access this Index: openacs-4/packages/acs-core-docs/www/tutorial-advanced.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-advanced.adp,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/acs-core-docs/www/tutorial-advanced.adp 26 Aug 2020 07:46:25 -0000 1.4.2.2 +++ openacs-4/packages/acs-core-docs/www/tutorial-advanced.adp 3 Sep 2021 09:15:30 -0000 1.4.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Chapter 10. Advanced Topics} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Chapter 10. Advanced Topics} Chapter 10. Advanced Topics {/doc/acs-core-docs {ACS Core Documentation}} {Basic Caching} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Basic Caching} Basic Caching {/doc/acs-core-docs {ACS Core Documentation}} {Categories} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Categories} Categories

    The database commands:

    -[$OPENACS_SERVICE_NAME\@yourserver www]$ emacs note-delete.xql
    +script execution.

    The database commands:

    [$OPENACS_SERVICE_NAME\@yourserver www]$ emacs note-delete.xql
     
    <?xml version="1.0"?>
     <queryset>
       <fullquery name="do_delete">
    @@ -106,8 +105,7 @@
           select samplenote__name(:note_id)
         </querytext>
       </fullquery>
    -</queryset>

    And the adp page:

    -[$OPENACS_SERVICE_NAME\@yourserver www]$ emacs note-delete.adp
    +</queryset>

    And the adp page:

    [$OPENACS_SERVICE_NAME\@yourserver www]$ emacs note-delete.adp
     
     <master>
     <property name="title">\@title\@</property>
    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.17.2.3 -r1.17.2.4
    --- openacs-4/packages/acs-core-docs/www/tutorial-categories.html	8 Apr 2021 15:44:06 -0000	1.17.2.3
    +++ openacs-4/packages/acs-core-docs/www/tutorial-categories.html	3 Sep 2021 09:15:31 -0000	1.17.2.4
    @@ -192,7 +192,7 @@
     		if { $use_categories_p == 1 && $category_id ne "" } {
     
     			set from_clause "category_object_map com"
    -			set_where_clause "com.object_id = qa.entry_id and category_id = :category_id"
    +			set_where_clause "com.object_id = qa.entry_id and com.category_id = :category_id"
     			
     			...
     								
    @@ -248,7 +248,7 @@
                		</group>
              	</multiple>
     		<a href="@package_url@view?@YOURPARAMS@">All Items</if>
    - 	  

    Finally you need a an index.vuh in your +

    Finally you need an index.vuh in your www folder to rewrite the URLs correctly, the section called “Using .vuh files for pretty URLs”:

      	  set url /[ad_conn extra_url]
     
    Index: openacs-4/packages/acs-core-docs/www/tutorial-comments.adp
    ===================================================================
    RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-comments.adp,v
    diff -u -r1.3.2.2 -r1.3.2.3
    --- openacs-4/packages/acs-core-docs/www/tutorial-comments.adp	26 Aug 2020 07:46:25 -0000	1.3.2.2
    +++ openacs-4/packages/acs-core-docs/www/tutorial-comments.adp	3 Sep 2021 09:15:31 -0000	1.3.2.3
    @@ -1,5 +1,5 @@
     
    -{/doc/acs-core-docs {ACS Core Documentation}} {Adding Comments}
    +{/doc/acs-core-docs/ {ACS Core Documentation}} {Adding Comments}
     Adding Comments
     
     

    We need to create html that shows any existing comments. We do -this with another general_comments function:

    -set comments_html [general_comments_get_comments
    +this with another general_comments function:

    set comments_html [general_comments_get_comments
          -print_content_p 1 $note_id]

    First, we pass in an optional parameter that says to actually show the contents of the comments, instead of just the fact that there are comments. Then you pass the note id, which is also the -acs_object id.

    We put our two new variables in the note-edit.adp page.

    -<a href="\@comment_add_url\@">Add a comment</a>
    +acs_object id.

    We put our two new variables in the note-edit.adp page.

    <a href="\@comment_add_url\@">Add a comment</a>
      \@comments_html\@
    {/doc/acs-core-docs {ACS Core Documentation}} {Laying out a page with CSS instead of tables} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Laying out a page with CSS instead of tables} Laying out a page with CSS instead of tables Laying out a page with CSS instead of tables

    -.LRN home page with table-based -layout

    A sample of the HTML code (full source)

    -<table border="0" width="100%">
    +.LRN home page with table-based
    +layout

    A sample of the HTML code (full source)

    <table border="0" width="100%">
       <tr>
         <td valign="top" width="50%">
           <table class="element" border="0" cellpadding="0" cellspacing="0" width="100%">
    @@ -39,7 +38,7 @@
                             MBA 101

    -.LRN Home with CSS-based layout

    A sample of the HTML code (full source)

    <div class="left">
    +.LRN Home with CSS-based layout

    A sample of the HTML code (full source)

    <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-css-layout.html
    ===================================================================
    RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-css-layout.html,v
    diff -u -r1.15.2.3 -r1.15.2.4
    --- openacs-4/packages/acs-core-docs/www/tutorial-css-layout.html	27 Jun 2019 18:22:22 -0000	1.15.2.3
    +++ openacs-4/packages/acs-core-docs/www/tutorial-css-layout.html	3 Sep 2021 09:15:31 -0000	1.15.2.4
    @@ -1,5 +1,5 @@
     
    -Laying out a page with CSS instead of tables

    Laying out a page with CSS instead of tables

    .LRN home page with table-based layout

    A sample of the HTML code (full source)

    <table border="0" width="100%">
    +Laying out a page with CSS instead of tables

    Laying out a page with CSS instead of tables

    .LRN home page with table-based layout

    A sample of the HTML code (full source)

    <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

    .LRN Home with CSS-based layout

    A sample of the HTML code (full source)

    <div class="left">
    +                        MBA 101

    .LRN Home with CSS-based layout

    A sample of the HTML code (full source)

    <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.adp
    ===================================================================
    RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-cvs.adp,v
    diff -u -r1.4.2.4 -r1.4.2.5
    --- openacs-4/packages/acs-core-docs/www/tutorial-cvs.adp	26 Aug 2020 07:46:25 -0000	1.4.2.4
    +++ openacs-4/packages/acs-core-docs/www/tutorial-cvs.adp	3 Sep 2021 09:15:31 -0000	1.4.2.5
    @@ -1,5 +1,5 @@
     
    -{/doc/acs-core-docs {ACS Core Documentation}} {Add the new package to CVS}
    +{/doc/acs-core-docs/ {ACS Core Documentation}} {Add the new package to CVS}
     Add the new package to CVS
     
     (many lines omitted)
     [$OPENACS_SERVICE_NAME myfirstpackage]$
    -

    Figure 10.1. Upgrading a local +

    Figure 10.1. Upgrading a local CVS repository

    Upgrading a local CVS repository

    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.29.2.3 -r1.29.2.4 --- openacs-4/packages/acs-core-docs/www/tutorial-cvs.html 27 Jun 2019 18:22:22 -0000 1.29.2.3 +++ openacs-4/packages/acs-core-docs/www/tutorial-cvs.html 3 Sep 2021 09:15:31 -0000 1.29.2.4 @@ -59,4 +59,4 @@ initial revision: 1.1 done (many lines omitted) -[$OPENACS_SERVICE_NAME myfirstpackage]$

    Figure 10.1. Upgrading a local CVS repository

    Upgrading a local CVS repository

    +[$OPENACS_SERVICE_NAME myfirstpackage]$

    Figure 10.1. Upgrading a local CVS repository

    Upgrading a local CVS repository

    Index: openacs-4/packages/acs-core-docs/www/tutorial-database.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-database.adp,v diff -u -r1.4.2.5 -r1.4.2.6 --- openacs-4/packages/acs-core-docs/www/tutorial-database.adp 5 Jan 2021 17:33:40 -0000 1.4.2.5 +++ openacs-4/packages/acs-core-docs/www/tutorial-database.adp 3 Sep 2021 09:15:31 -0000 1.4.2.6 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Setting Up Database Objects} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Setting Up Database Objects} Setting Up Database Objects

    -Code the data model

    We create all database objects with scripts in the myfirstpackage/sql/ directory. All database +Code the data model

    We create all database objects with scripts in the myfirstpackage/sql/ directory. All database scripts are database-specific and are thus in either the myfirstpackage/sql/oracle or myfirstpackage/sql/postgresql @@ -42,15 +42,15 @@ simplify our database creation. (More information about ACS Objects. More information about the Content Repository.)

    -

    Figure 9.2. Tutorial Data +

    Figure 9.2. Tutorial Data Model

    Tutorial Data Model

    The top of each SQL file has some standard comments, including doc tags such as \@author which will be picked up by the API browser. The string $‌Id:$ will automatically be expanded when the file is checked in to cvs.

    [$OPENACS_SERVICE_NAME ~]$ cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackage/sql/postgresql
     [$OPENACS_SERVICE_NAME postgresql]$ emacs myfirstpackage-create.sql
     

    Paste the text below into the file, save, and close.

    -

    Figure 9.3. The Database +

    Figure 9.3. The Database Creation Script

    -- creation script
     --
     -- \@author joel\@aufrecht.org
    @@ -79,7 +79,7 @@
     uninstalled.

     [$OPENACS_SERVICE_NAME postgresql]$ emacs myfirstpackage-drop.sql
     
    -

    Figure 9.4. Database Deletion +

    Figure 9.4. Database Deletion Script

    -- drop script
     --
     -- \@author joel\@aufrecht.org
    @@ -96,8 +96,7 @@
     

    (like the creation script the drop script calls a PL/pgSQL function: content_type__drop_type

    Run the create script manually to add your tables and -functions.

    -[$OPENACS_SERVICE_NAME postgresql]$ psql service0 -f myfirstpackage-create.sql
    +functions.

    [$OPENACS_SERVICE_NAME postgresql]$ psql service0 -f myfirstpackage-create.sql
     psql:myfirstpackage-create.sql:15: NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index 'mfp_notes_pkey' for table 'mfp_notes'
     psql:myfirstpackage-create.sql:15: NOTICE:  CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
      content_type__create_type
    @@ -111,17 +110,15 @@
     recreate it. The drop script will probably have errors since some
     of the things it's trying to drop may be missing. They can be
     ignored.

    Once you get the same output as shown above, test the drop -script:

    -[$OPENACS_SERVICE_NAME postgresql]$ psql service0 -f myfirstpackage-drop.sql
    +script:

    [$OPENACS_SERVICE_NAME postgresql]$ psql service0 -f myfirstpackage-drop.sql
     
      content_type__drop_type
     -------------------------
                            0
     (1 row)
     
     [$OPENACS_SERVICE_NAME postgresql]$

    Once both scripts are working without errors, run the create script one last time and -proceed.

    -[$OPENACS_SERVICE_NAME postgresql]$ psql service0 -f myfirstpackage-create.sql
    +proceed.

    [$OPENACS_SERVICE_NAME postgresql]$ psql service0 -f myfirstpackage-create.sql
     
    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.47.2.3 -r1.47.2.4 --- openacs-4/packages/acs-core-docs/www/tutorial-database.html 27 Jun 2019 18:22:22 -0000 1.47.2.3 +++ openacs-4/packages/acs-core-docs/www/tutorial-database.html 3 Sep 2021 09:15:32 -0000 1.47.2.4 @@ -2,7 +2,7 @@ Setting Up Database Objects

    Setting Up Database Objects

    by Joel Aufrecht

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

    Code the data model

    We create all database objects with scripts in the +

    Code the data model

    We create all database objects with scripts in the myfirstpackage/sql/ directory. All database scripts are database-specific and are thus in either the myfirstpackage/sql/oracle or @@ -32,13 +32,13 @@ repository functions to simplify our database creation. (More information about ACS Objects. More information about the Content Repository.) -

    Figure 9.2. Tutorial Data Model

    Tutorial Data Model

    The top of each sql file has some +

    Figure 9.2. Tutorial Data Model

    Tutorial Data Model

    The top of each SQL file has some standard comments, including doc tags such as @author which will be picked up by the API browser. The string $Id$ will automatically be expanded when the file is checked in to cvs.

    [$OPENACS_SERVICE_NAME ~]$ cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackage/sql/postgresql
    -[$OPENACS_SERVICE_NAME postgresql]$ emacs myfirstpackage-create.sql

    Paste the text below into the file, save, and close.

    Figure 9.3. The Database Creation Script

    -- creation script
    +[$OPENACS_SERVICE_NAME postgresql]$ emacs myfirstpackage-create.sql

    Paste the text below into the file, save, and close.

    Figure 9.3. The Database Creation Script

    -- 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.

    Create a database file to drop everything if the package is uninstalled.

    -[$OPENACS_SERVICE_NAME postgresql]$ emacs myfirstpackage-drop.sql

    Figure 9.4. Database Deletion Script

    -- drop script
    +[$OPENACS_SERVICE_NAME postgresql]$ emacs myfirstpackage-drop.sql

    Figure 9.4. Database Deletion Script

    -- drop script
     --
     -- @author joel@aufrecht.org
     -- @cvs-id &Id:$
    @@ -82,7 +82,7 @@
                              0
     (1 row)
     
    -[$OPENACS_SERVICE_NAME postgresql]$

    If there are errors, use them to debug the sql file and try again. If there are errors in the database table creation, you may need to run the drop script to drop the table so that you can recreate it. The drop script will probably have errors since some of the things it's trying to drop may be missing. They can be ignored.

    Once you get the same output as shown above, test the drop script:

    [$OPENACS_SERVICE_NAME postgresql]$ psql service0 -f myfirstpackage-drop.sql
    +[$OPENACS_SERVICE_NAME postgresql]$

    If there are errors, use them to debug the SQL file and try again. If there are errors in the database table creation, you may need to run the drop script to drop the table so that you can recreate it. The drop script will probably have errors since some of the things it's trying to drop may be missing. They can be ignored.

    Once you get the same output as shown above, test the drop script:

    [$OPENACS_SERVICE_NAME postgresql]$ psql service0 -f myfirstpackage-drop.sql
     
      content_type__drop_type
     -------------------------
    Index: openacs-4/packages/acs-core-docs/www/tutorial-debug.adp
    ===================================================================
    RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-debug.adp,v
    diff -u -r1.4.2.5 -r1.4.2.6
    --- openacs-4/packages/acs-core-docs/www/tutorial-debug.adp	5 Jan 2021 17:33:40 -0000	1.4.2.5
    +++ openacs-4/packages/acs-core-docs/www/tutorial-debug.adp	3 Sep 2021 09:15:32 -0000	1.4.2.6
    @@ -1,5 +1,5 @@
     
    -{/doc/acs-core-docs {ACS Core Documentation}} {Debugging and Automated Testing}
    +{/doc/acs-core-docs/ {ACS Core Documentation}} {Debugging and Automated Testing}
     Debugging and Automated Testing
     
     

    -Debugging

    +Debugging

    Developer Support. 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 @@ -41,7 +41,7 @@           

    -Manual testing

    Make a list of basic tests to make sure it works

    +Manual testing

    Make a list of basic tests to make sure it works

    @@ -69,11 +69,11 @@ to delete your own note. Edit your own note. Search for a note.

    -Write automated tests

    +Write automated tests

    by Simon Carstensen and Joel Aufrecht

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

    - It seems to me that a lot of people have + 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 @@ -139,7 +139,7 @@ myfirstpackage. You should see your test case. Run it and examine the results.

    -TCLWebtest tests

    API testing can only test part of our package - it doesn't +TCLWebtest tests

    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 installed for this test to work. This provides a library of functions that make it easy to call a page @@ -149,7 +149,7 @@ integrating them.

    -Example

    Now we can add the rest of the API tests, including a test with +Example

    Now we can add the rest of the API tests, including a test with deliberately bad data. The complete test looks like:

    ad_library {
         Test cases for my first package.
     }
    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.46.2.3 -r1.46.2.4
    --- openacs-4/packages/acs-core-docs/www/tutorial-debug.html	27 Jun 2019 18:22:22 -0000	1.46.2.3
    +++ openacs-4/packages/acs-core-docs/www/tutorial-debug.html	3 Sep 2021 09:15:32 -0000	1.46.2.4
    @@ -2,7 +2,7 @@
     Debugging and Automated Testing
    Test NumActionExpected Result
    Prev Chapter 9. Development Tutorial Next

    Debugging and Automated Testing

    by Joel Aufrecht

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

    Debugging

    Developer Support. The Developer Support package adds several goodies: debug +

    Debugging

    Developer Support. 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,18 +23,18 @@ ? searches backward 
    / searches forward. 
              

    -

    Manual testing

    Make a list of basic tests to make sure it works

    Test NumActionExpected Result
    001Browse to the index page while not logged in and +

    Manual testing

    Make a list of basic tests to make sure it works

    Test NumActionExpected Result
    001Browse to the index page while not logged in and while one or more notes exist.No edit or delete or add links should appear.
    002Browse to the index page while logged in. An Edit link should appear. Click on it. Fill out the form and click Submit.The text added in the form should be visible on the index page.
    API-001Invoke mfp::note::create with a specific word as the title.Proc should return an object id.
    API-002Given an object id from API-001, invoke mfp::note::get.Proc should return the specific word in the title.
    API-003Given the object id from API-001, invoke mfp::note::delete.Proc should return 0 for success.

    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.

    Write automated tests

    by Simon Carstensen and Joel Aufrecht

    + Search for a note.

    Write automated tests

    by Simon Carstensen and Joel Aufrecht

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

    +

    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.

    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:

    [$OPENACS_SERVICE_NAME www]$ mkdir /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackage/tcl/test
    +    script and edit the script file.  The directory location and filename are standards which are recognized by the automated testing package:

    [$OPENACS_SERVICE_NAME www]$ mkdir /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackage/tcl/test
     [$OPENACS_SERVICE_NAME www]$ cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackage/tcl/test
     [$OPENACS_SERVICE_NAME test]$ emacs myfirstpackages-procs.tcl

    Write the tests. This is obviously the big step :) The script should first call ad_library like any normal -procs.tcl file:

    ad_library {
         ...
    @@ -68,7 +68,7 @@
     goes inside -test_code {}.  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."

           set name [ad_generate_random_string]
           set new_id [mfp::note::add -title $name]
    -      aa_true "Note add succeeded" {$new_id ne ""}

    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 APM 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 -procs 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 -cats flag, setting categories, makes it easier to control which tests to run. The smoke test setting means that this is a basic test case that can and should be run any time you are doing any test. (a definition of "smoke test")

    Once the file is loaded, go to ACS Automated Testing and click on myfirstpackage. You should see your test case. Run it and examine the results.

    TCLWebtest tests

    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 installed for this test to work. This provides a library of functions 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.

    Example

    Now we can add the rest of the API tests, including a test with deliberately bad data. The complete test looks like:

    ad_library {
    +      aa_true "Note add succeeded" {$new_id ne ""}

    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 APM 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 -procs 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 -cats flag, setting categories, makes it easier to control which tests to run. The smoke test setting means that this is a basic test case that can and should be run any time you are doing any test. (a definition of "smoke test")

    Once the file is loaded, go to ACS Automated Testing and click on myfirstpackage. You should see your test case. Run it and examine the results.

    TCLWebtest tests

    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 installed for this test to work. This provides a library of functions 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.

    Example

    Now we can add the rest of the API tests, including a test with deliberately bad data. The complete test looks like:

    ad_library {
         Test cases for my first package.
     }
     
    Index: openacs-4/packages/acs-core-docs/www/tutorial-distribute.adp
    ===================================================================
    RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-distribute.adp,v
    diff -u -r1.4.2.4 -r1.4.2.5
    --- openacs-4/packages/acs-core-docs/www/tutorial-distribute.adp	26 Aug 2020 07:46:25 -0000	1.4.2.4
    +++ openacs-4/packages/acs-core-docs/www/tutorial-distribute.adp	3 Sep 2021 09:15:32 -0000	1.4.2.5
    @@ -1,5 +1,5 @@
     
    -{/doc/acs-core-docs {ACS Core Documentation}} {Prepare the package for distribution.}
    +{/doc/acs-core-docs/ {ACS Core Documentation}} {Prepare the package for distribution.}
     Prepare the package for distribution.
     
     

    Browse to the package manager. Click on tutorialapp.

    Click on Generate a distribution file for this package from the filesystem.

    Click on the file size (37.1KB) after the label Distribution File: and save the -file to /var/tmp.

    Package development guidelines

    +file to /var/tmp.

    Package development guidelines

    37.1KB) after the label Distribution File: and save the file to - /var/tmp.

    + /var/tmp.

    Package development guidelines

    Index: openacs-4/packages/acs-core-docs/www/tutorial-etp-templates.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-etp-templates.adp,v diff -u -r1.4.2.4 -r1.4.2.5 --- openacs-4/packages/acs-core-docs/www/tutorial-etp-templates.adp 26 Aug 2020 07:46:25 -0000 1.4.2.4 +++ openacs-4/packages/acs-core-docs/www/tutorial-etp-templates.adp 3 Sep 2021 09:15:32 -0000 1.4.2.5 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {OpenACS Edit This Page Templates} +{/doc/acs-core-docs/ {ACS Core Documentation}} {OpenACS Edit This Page Templates} OpenACS Edit This Page Templates Exercise 4: Create a New ETP Template
    • -

      Browse the files for each of the above ETP templates at:

      -cd ~/openacs/packages/edit-this-page/templates
      +

      Browse the files for each of the above ETP templates at:

      cd ~/openacs/packages/edit-this-page/templates
    • Use the article template as the basis of our new col2 template.

      cp article-content.adp col2-content.adp
      @@ -81,7 +80,7 @@
       
    • The template should provide us with the following ETP layout:

      -

      Table 10.1. table showing ETP +

      Table 10.1. table showing ETP layout

      @@ -126,8 +125,8 @@ Who Wrote This and When

      This problem set was originally written by Nick Carroll in August 2004 for the University of Sydney Course EBUS5002.

      This material is copyright 2004 by Nick Carroll. It may be copied, reused, and modified, provided credit is given to the -original author.

      ($‌Id: tutorial-advanced.xml,v 1.60.2.3 -2019/04/30 18:53:46 gustafn Exp $)
      +original author.

      ($‌Id: tutorial-advanced.xml,v 1.60.2.9 +2021/09/02 16:56:01 gustafn Exp $)
    • Go to the package manager at http://yoursite/acs-admin/apm. And install the new package: edit-this-page.

    • Or use the "Add Application" form available on the Main site.

    • Change ETP Application

      • Work out how to change the ETP application.

      • Investigate each of the available ETP templates:

        • Default

        • News

        • FAQ

      Exercise 4: Create a New ETP Template

      • Browse the files for each of the above ETP templates at:

        cd ~/openacs/packages/edit-this-page/templates
      • Use the article template as the basis of our new col2 template.

        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
      • The template should provide us with the following ETP layout:

        Table 10.1. table showing ETP layout

      Header
      SidebarMain Content Pane

    • The "Main Content" pane should contain the editable content that ETP provides.

    • The "Header" should display the title of the page that you set in ETP.

    • The "Sidebar" should display the extlinks that you add as a content item in ETP.

    Exercise 5: Register the col2 Template with ETP

    • Need to register your template with ETP so that it appears in the drop-down menu that you would have seen in Exercise 3.

      cd ~/openacs/packages/edit-this-page/tcl
      +            cp article-index.tcl col2-index.tcl
    • The template should provide us with the following ETP layout:

      Table 10.1. table showing ETP layout

      Header
      SidebarMain Content Pane

    • The "Main Content" pane should contain the editable content that ETP provides.

    • The "Header" should display the title of the page that you set in ETP.

    • The "Sidebar" should display the extlinks that you add as a content item in ETP.

    Exercise 5: Register the col2 Template with ETP

    • Need to register your template with ETP so that it appears in the drop-down menu that you would have seen in Exercise 3.

      cd ~/openacs/packages/edit-this-page/tcl
                   emacs etp-custom-init.tcl
    • Use the function etp::define_application to register your template with ETP

      • Uncomment the "asc" definition

      • Set allow_extlinks to true, the rest should be false.

    • Restart your server for the changes to take effect.

    Exercise 6: Configure ETP to use the col2 Template

    • Configure your ETP instance at /lab4/index to use the col2 template.

    • Create external links to link to other mounted ETP instances.

    • Check that your external links show up in the sidebar when you view your ETP application using the col2 template.

    Who Wrote This and When

    This problem set was originally written by Nick Carroll in August 2004 for the University of Sydney Course EBUS5002.

    This material is copyright 2004 by Nick Carroll. It may be copied, reused, and modified, provided credit is given to the original author.

    ($Id$)
    Index: openacs-4/packages/acs-core-docs/www/tutorial-future-topics.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-future-topics.adp,v diff -u -r1.3.2.2 -r1.3.2.3 --- openacs-4/packages/acs-core-docs/www/tutorial-future-topics.adp 26 Aug 2020 07:46:25 -0000 1.3.2.2 +++ openacs-4/packages/acs-core-docs/www/tutorial-future-topics.adp 3 Sep 2021 09:15:33 -0000 1.3.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Future Topics} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Future Topics} Future Topics {/doc/acs-core-docs {ACS Core Documentation}} {Hierarchical data} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Hierarchical data} Hierarchical data {/doc/acs-core-docs {ACS Core Documentation}} {Sending HTML email from your application} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Sending HTML email from your application} Sending HTML email from your application {/doc/acs-core-docs {ACS Core Documentation}} {Creating an Application Package} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Creating an Application Package} Creating an Application Package The intended page map

    -Overview

    To start developing new code in OpenACS, we build a new package. +Overview

    To start developing new code in OpenACS, we build a new package. A package is a discrete collection of web pages, Tcl code, and database tables and procedures. A package with user interface is called an application; @@ -36,14 +36,14 @@ displaying a list of text notes.

    -Before you begin

    You will need:

      +Before you begin

    You will need:

    • A computer with a working installation of OpenACS. If you don't have this, see Chapter 2, Installation Overview .

    • Example files, which are included in the standard OpenACS 5.9.0 distribution.

    -

    Figure 9.1. Assumptions in this +

    Figure 9.1. Assumptions in this section

    @@ -62,7 +62,7 @@

    -Use the APM to initialize a new +Use the APM to initialize a new package

    We use the ACS Package Manager (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 @@ -102,7 +102,7 @@ packages).

    -Add an Application Instance to the +Add an Application Instance to the Server

    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 @@ -121,7 +121,7 @@ to be satisfied from the files at /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackage/www.

    -Quick start

    The remainder of the tutorial walks you through each file one at +Quick start

    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:

    cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-core-docs/www/files/tutorial
     psql $OPENACS_SERVICE_NAME -f myfirstpackage-create.sql
    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.46.2.3 -r1.46.2.4
    --- openacs-4/packages/acs-core-docs/www/tutorial-newpackage.html	27 Jun 2019 18:22:22 -0000	1.46.2.3
    +++ openacs-4/packages/acs-core-docs/www/tutorial-newpackage.html	3 Sep 2021 09:15:33 -0000	1.46.2.4
    @@ -2,7 +2,7 @@
     Creating an Application Package
    Prev Chapter 9. Development Tutorial Next

    Creating an Application Package

    by Joel Aufrecht

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

    The intended page map

    Overview

    To start developing new code in OpenACS, we build a new package. A package +

    The intended page map

    Overview

    To start developing new code in OpenACS, we build a new package. A package is a discrete collection of web pages, Tcl code, and database tables and procedures. A package with user interface is called an application; a package which provides functions to other packages and has no direct interface, a @@ -18,11 +18,11 @@ right now. Code that is temporary hackage is clearly marked.

    In this tutorial, we will make an application package for displaying a list of text notes. -

    Before you begin

    You will need:

    • A computer with a working installation of +

    Before you begin

    You will need:

    • A computer with a working installation of OpenACS. If you don't have this, see Chapter 2, Installation Overview.

    • Example files, which are included in the standard OpenACS 5.9.0 distribution. -

    Figure 9.1. Assumptions in this section

    Fully qualified domain name of your serveryourserver.test
    URL of your serverhttp://yourserver.test:8000
    Name of development account$OPENACS_SERVICE_NAME
    New Package keymyfirstpackage

    Use the APM to initialize a new package

    We use the ACS Package Manager (APM) to add, remove, and +

    Figure 9.1. Assumptions in this section

    Fully qualified domain name of your serveryourserver.test
    URL of your serverhttp://yourserver.test:8000
    Name of development account$OPENACS_SERVICE_NAME
    New Package keymyfirstpackage

    Use the APM to initialize a new package

    We use the ACS Package Manager (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 @@ -55,7 +55,7 @@ /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackage. This is the "home directory" of our new package, and all files in the package will be within this directory. More on the structure of - packages).

    Add an Application Instance to the Server

    In order to see your work in progress, you must create a + packages).

    Add an Application Instance to the Server

    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 @@ -66,7 +66,7 @@ in this tutorial.

    1. Browse to http://yourserver.test:8000/admin/applications/application-add/.

    2. Choose "My First Package" from the list and click OK (the other fields are optional).

    By mounting the package, we've caused all requests to http://yourserver.test:8000/myfirstpackage - to be satisfied from the files at /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackage/www.

    Quick start

    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:

    cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-core-docs/www/files/tutorial
    +      to be satisfied from the files at /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackage/www.

    Quick start

    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:

    cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-core-docs/www/files/tutorial
     psql $OPENACS_SERVICE_NAME -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.adp
    ===================================================================
    RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-notifications.adp,v
    diff -u -r1.4.2.3 -r1.4.2.4
    --- openacs-4/packages/acs-core-docs/www/tutorial-notifications.adp	5 Jan 2021 17:33:40 -0000	1.4.2.3
    +++ openacs-4/packages/acs-core-docs/www/tutorial-notifications.adp	3 Sep 2021 09:15:34 -0000	1.4.2.4
    @@ -1,5 +1,5 @@
     
    -{/doc/acs-core-docs {ACS Core Documentation}} {Notifications}
    +{/doc/acs-core-docs/ {ACS Core Documentation}} {Notifications}
     Notifications
     
     

    First step is to create the notification types. To do this a script similar to the one below needs to be loaded into Postgresql. I create this script in a package-name/sql/postgresql/package-name-notifications-init.sql file. I then load - this file from my create sql file. The following code snippet is taken from + this file from my create SQL file. The following code snippet is taken from Weblogger. It creates a lars_blogger_notif notification type (which was created above).

         create function inline_0() returns integer as $$
    Index: openacs-4/packages/acs-core-docs/www/tutorial-pages.adp
    ===================================================================
    RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-pages.adp,v
    diff -u -r1.6.2.4 -r1.6.2.5
    --- openacs-4/packages/acs-core-docs/www/tutorial-pages.adp	26 Aug 2020 07:46:25 -0000	1.6.2.4
    +++ openacs-4/packages/acs-core-docs/www/tutorial-pages.adp	3 Sep 2021 09:15:34 -0000	1.6.2.5
    @@ -1,5 +1,5 @@
     
    -{/doc/acs-core-docs {ACS Core Documentation}} {Creating Web Pages}
    +{/doc/acs-core-docs/ {ACS Core Documentation}} {Creating Web Pages}
     Creating Web Pages
     
     

    -Install some API

    As a workaround for missing content-repository functionality, +Install some API

    As a workaround for missing content-repository functionality, copy a provided file into the directory for Tcl files:

    cp /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-core-docs/www/files/tutorial/note-procs.tcl /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackage/tcl/

    To make this file take effect, go to the APM and choose "Reload changed" for "MyFirstPackage".

    -Page Map

    Our package will have two visible pages. The first shows a list +Page Map

    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 separate file and include it on the index page.

    -

    Figure 9.5. Page +

    Figure 9.5. Page Map

    Page Map

    -Build the "Index" page

    Each user-visible page in your package has, typically, three +Build the "Index" page

    Each user-visible page in your package has, typically, three parts. The tcl file holds the procedural logic for the page, including Tcl and database-independent SQL code, and does things like check @@ -40,8 +40,7 @@ -postgres.xql and -oracle.xql files contains database-specific SQL. The default page in any directory is index, so we'll build that -first, starting with the Tcl file:

    -[$OPENACS_SERVICE_NAME postgresql]$ cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackages/www
    +first, starting with the Tcl file:

    [$OPENACS_SERVICE_NAME postgresql]$ cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackages/www
     [$OPENACS_SERVICE_NAME www]$ emacs index.tcl
     

    Paste this into the file.

    ad_page_contract {
         This is the main page for the package.  It displays all of the Notes and provides links to edit them and to create new Notes.
    @@ -109,8 +108,7 @@
     #    indent-tabs-mode: nil
     # End:
     
    [$OPENACS_SERVICE_NAME lib]$ emacs note-list.adp
    -
    -<listtemplate name="notes"></listtemplate>

    You can test your work by viewing the page /myfirstpackage on +

    <listtemplate name="notes"></listtemplate>

    You can test your work by viewing the page /myfirstpackage on your installation.

    Create the add/edit page. If note_id is passed in, it display that note, and can change to edit mode if appropriate. Otherwise, it presents a form for adding notes.

    [$OPENACS_SERVICE_NAME lib]$ cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackage/www
    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.49.2.3 -r1.49.2.4
    --- openacs-4/packages/acs-core-docs/www/tutorial-pages.html	27 Jun 2019 18:22:22 -0000	1.49.2.3
    +++ openacs-4/packages/acs-core-docs/www/tutorial-pages.html	3 Sep 2021 09:15:34 -0000	1.49.2.4
    @@ -2,8 +2,8 @@
     Creating Web Pages

    Creating Web Pages

    by Joel Aufrecht

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

    Install some API

    As a workaround for missing content-repository functionality, copy a provided file into the directory for Tcl files:

    -    cp /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-core-docs/www/files/tutorial/note-procs.tcl /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackage/tcl/

    To make this file take effect, go to the APM and choose "Reload changed" for "MyFirstPackage".

    Page Map

    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 separate file and include it on the index page.

    Figure 9.5. Page Map

    Page Map

    Build the "Index" page

    Each user-visible page in your package has, typically, +

    Install some API

    As a workaround for missing content-repository functionality, copy a provided file into the directory for Tcl files:

    +    cp /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-core-docs/www/files/tutorial/note-procs.tcl /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackage/tcl/

    To make this file take effect, go to the APM and choose "Reload changed" for "MyFirstPackage".

    Page Map

    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 separate file and include it on the index page.

    Figure 9.5. Page Map

    Page Map

    Build the "Index" page

    Each user-visible page in your package has, typically, three parts. The tcl 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.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-parameters.adp,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/acs-core-docs/www/tutorial-parameters.adp 26 Aug 2020 07:46:25 -0000 1.4.2.2 +++ openacs-4/packages/acs-core-docs/www/tutorial-parameters.adp 3 Sep 2021 09:15:34 -0000 1.4.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Adding in parameters for your package} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Adding in parameters for your package} Adding in parameters for your package {/doc/acs-core-docs {ACS Core Documentation}} {Scheduled Procedures} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Scheduled Procedures} Scheduled Procedures

    Scheduled Procedures

    Put this proc in a file /packages/myfirstpackage/tcl/scheduled-init.tcl. Files in /tcl with the -init.tcl ending are sourced on server -startup. This one executes my_proc every 60 seconds:

    -ad_schedule_proc 60 myfirstpackage::my_proc
    +startup. This one executes my_proc every 60 seconds:

    ad_schedule_proc 60 myfirstpackage::my_proc
     

    This executes once a day, at midnight:

    ad_schedule_proc \
         -schedule_proc ns_schedule_daily \
         [list 0 0] \
    Index: openacs-4/packages/acs-core-docs/www/tutorial-second-database.adp
    ===================================================================
    RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-second-database.adp,v
    diff -u -r1.3.2.2 -r1.3.2.3
    --- openacs-4/packages/acs-core-docs/www/tutorial-second-database.adp	26 Aug 2020 07:46:25 -0000	1.3.2.2
    +++ openacs-4/packages/acs-core-docs/www/tutorial-second-database.adp	3 Sep 2021 09:15:35 -0000	1.3.2.3
    @@ -1,5 +1,5 @@
     
    -{/doc/acs-core-docs {ACS Core Documentation}} {Connect to a second database}
    +{/doc/acs-core-docs/ {ACS Core Documentation}} {Connect to a second database}
     Connect to a second database
     
     {/doc/acs-core-docs {ACS Core Documentation}} {Write the Requirements and Design Specs}
    +{/doc/acs-core-docs/ {ACS Core Documentation}} {Write the Requirements and Design Specs}
     Write the Requirements and Design Specs
     
     www/doc/xml directory, and
     store png or jpg versions of supporting files in the www/doc directory.

    For this tutorial, you should instead install the pre-written documentation files for the tutorial app. Log in as $OPENACS_SERVICE_NAME, create the -standard directories, and copy the prepared documentation:

    -[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackage/
    +standard directories, and copy the prepared documentation:

    [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackage/
     [$OPENACS_SERVICE_NAME myfirstpackage]$ mkdir -p www/doc/xml
     [$OPENACS_SERVICE_NAME myfirstpackage]$ cd www/doc/xml
     [$OPENACS_SERVICE_NAME xml]$ cp /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-core-docs/www/files/myfirstpackage/* .
    Index: openacs-4/packages/acs-core-docs/www/tutorial-upgrade-scripts.adp
    ===================================================================
    RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-upgrade-scripts.adp,v
    diff -u -r1.4.2.2 -r1.4.2.3
    --- openacs-4/packages/acs-core-docs/www/tutorial-upgrade-scripts.adp	26 Aug 2020 07:46:25 -0000	1.4.2.2
    +++ openacs-4/packages/acs-core-docs/www/tutorial-upgrade-scripts.adp	3 Sep 2021 09:15:35 -0000	1.4.2.3
    @@ -1,5 +1,5 @@
     
    -{/doc/acs-core-docs {ACS Core Documentation}} {Writing upgrade scripts}
    +{/doc/acs-core-docs/ {ACS Core Documentation}} {Writing upgrade scripts}
     Writing upgrade scripts
     
     

    If your package changes its data model, you have to write an - upgrade script. This is very easy in OpenACS.

    First, you want to make sure you change the original .sql - file so that new installation will have the new data model.

    Next, check what version your package is currently at. For + upgrade script. This is very easy in OpenACS.

    First, you want to make sure you change the original .sql file so that new installation will have the new data model.

    Next, check what version your package is currently at. For example, it may be at version 1.0b1. Create a file in yourpackage/sql/postgres/upgrade called packagename-1.0b1-1.0b2.sql and put the SQL code that will update the data model. For example, if you Index: openacs-4/packages/acs-core-docs/www/tutorial-upgrades.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-upgrades.adp,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/acs-core-docs/www/tutorial-upgrades.adp 26 Aug 2020 07:46:25 -0000 1.4.2.2 +++ openacs-4/packages/acs-core-docs/www/tutorial-upgrades.adp 3 Sep 2021 09:15:35 -0000 1.4.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Distributing upgrades of your package} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Distributing upgrades of your package} Distributing upgrades of your package {/doc/acs-core-docs {ACS Core Documentation}} {Using .vuh files for pretty URLs} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Using .vuh files for pretty URLs} Using .vuh files for pretty URLs note-edit?item_id=495, we can use note/495. 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:

    -[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackage/www
    +referring links in note-list. First, add the vuh:

    [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackage/www
     [$OPENACS_SERVICE_NAME www]$ emacs note.vuh
     

    Paste this into the file:

    # Transform requests of type: a/b
     # into this internal request: A?c=b
    Index: openacs-4/packages/acs-core-docs/www/tutorial-wysiwyg-editor.adp
    ===================================================================
    RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-wysiwyg-editor.adp,v
    diff -u -r1.4.2.2 -r1.4.2.3
    --- openacs-4/packages/acs-core-docs/www/tutorial-wysiwyg-editor.adp	26 Aug 2020 07:46:25 -0000	1.4.2.2
    +++ openacs-4/packages/acs-core-docs/www/tutorial-wysiwyg-editor.adp	3 Sep 2021 09:15:35 -0000	1.4.2.3
    @@ -1,5 +1,5 @@
     
    -{/doc/acs-core-docs {ACS Core Documentation}} {Enabling WYSIWYG}
    +{/doc/acs-core-docs/ {ACS Core Documentation}} {Enabling WYSIWYG}
     Enabling WYSIWYG
     
     {/doc/acs-core-docs {ACS Core Documentation}} {Chapter 9. Development Tutorial}
    +{/doc/acs-core-docs/ {ACS Core Documentation}} {Chapter 9. Development Tutorial}
     Chapter 9. Development Tutorial
     
     {/doc/acs-core-docs {ACS Core Documentation}} {Install a Unix-like system and supporting software}
    +{/doc/acs-core-docs/ {ACS Core Documentation}} {Install a Unix-like system and supporting software}
     Install a Unix-like system and supporting software
     
     {/doc/acs-core-docs {ACS Core Documentation}} {How to Update the OpenACS.org repository}
    +{/doc/acs-core-docs/ {ACS Core Documentation}} {How to Update the OpenACS.org repository}
     How to Update the OpenACS.org repository
     
     {/doc/acs-core-docs {ACS Core Documentation}} {How to Update the translations}
    +{/doc/acs-core-docs/ {ACS Core Documentation}} {How to Update the translations}
     How to Update the translations
     
     How to Update the translations

    How to Update the translations

    1. Identify any new locales that have been created. For each new locale, check the parameters, especially that the locale is in the format [two-letter code for - language, lower-case]_[TWO-LETTER CODE FOR COUNTRY, + language, lowercase]_[TWO-LETTER CODE FOR COUNTRY, UPPER-CASE], and create a sql command. A example sql command for creating a locale is:

      insert into ad_locales 
              (locale, label, language, country, nls_language, nls_territory, 
               nls_charset, mime_charset, default_p, enabled_p)
              values ('fa_IR', 'Farsi (IR)', 'fa', 'IR', 'FARSI', 'IRAN', 'AL24UTFFSS', 
               'windows-1256', 't', 'f');

      Put this command into the following four files. For the - upgrade files, the correct file name will depend on the + upgrade files, the correct filename will depend on the exact version.

      • /packages/acs-lang/sql/postgresql/ad-locales.sql

      • /packages/acs-lang/sql/postgresql/upgrade/upgrade-current-version.sql

      • /packages/acs-lang/sql/oracle/ad-locales.sql

      • /packages/acs-lang/sql/oracle/upgrade/upgrade-current-version.sql

    2. Make a backup of the production database. Restore it as a new database. For example, if upgrading from OpenACS 5.1.1, and the site name/database name is translate-511, create translate-512b1.

    3. Check out the latest code on the release branch (e.g., oacs-5-1) as a new site, using the new site name (e.g., /var/lib/aolserver/translate-512b1. Copy over any local settings - usually, /etc/config.tcl and /etc/daemontools/run and modify appropriately. Also, copy over several translation-server-only files:

      ...TBD
                 

      Index: openacs-4/packages/acs-core-docs/www/upgrade-4.5-to-4.6.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/upgrade-4.5-to-4.6.adp,v diff -u -r1.4.2.5 -r1.4.2.6 --- openacs-4/packages/acs-core-docs/www/upgrade-4.5-to-4.6.adp 5 Jan 2021 17:33:40 -0000 1.4.2.5 +++ openacs-4/packages/acs-core-docs/www/upgrade-4.5-to-4.6.adp 3 Sep 2021 09:15:36 -0000 1.4.2.6 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Upgrading 4.5 or higher to 4.6.3} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Upgrading 4.5 or higher to 4.6.3} Upgrading 4.5 or higher to 4.6.3

      -Upgrading 4.5 or higher to 4.6.3

      The required platform for OpenACS 4.6 is the same as 4.5, with +Upgrading 4.5 or higher to 4.6.3

    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.

    If upgrading from 4.4, you need to manually run 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.30.2.3 -r1.30.2.4 --- openacs-4/packages/acs-core-docs/www/upgrade-4.5-to-4.6.html 27 Jun 2019 18:22:22 -0000 1.30.2.3 +++ openacs-4/packages/acs-core-docs/www/upgrade-4.5-to-4.6.html 3 Sep 2021 09:15:36 -0000 1.30.2.4 @@ -1,8 +1,8 @@ -Upgrading 4.5 or higher to 4.6.3

    Upgrading 4.5 or higher to 4.6.3

    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.

    If upgrading from 4.4, you need to manually run acs-kernel/sql/postgres/upgrade-4.4-4.5.sql. See Bug #632

    1. Make a Backup. Back up the database and file system (see the section called “Manual backup and recovery”).

    2. OPTIONAL: Upgrade OpenFTS. the section called “Upgrading OpenFTS from 0.2 to 0.3.2”

    3. +Upgrading 4.5 or higher to 4.6.3

      Upgrading 4.5 or higher to 4.6.3

      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.

      If upgrading from 4.4, you need to manually run acs-kernel/sql/postgres/upgrade-4.4-4.5.sql. See Bug #632

      1. Make a Backup. Back up the database and filesystem (see the section called “Manual backup and recovery”).

      2. OPTIONAL: Upgrade OpenFTS. the section called “Upgrading OpenFTS from 0.2 to 0.3.2”

      3. Stop the server -

        [root root]# svc -d /service/$OPENACS_SERVICE_NAME
      4. Upgrade the file system. the section called “Upgrading the OpenACS files”

      5. +

        [root root]# svc -d /service/$OPENACS_SERVICE_NAME
      6. Upgrade the filesystem. the section called “Upgrading the OpenACS files”

      7. Start the server

        [root root]# svc -u /service/$OPENACS_SERVICE_NAME
      8. Use APM to upgrade the database. 

        1. Browse to the package manager, http://yourserver/acs-admin/apm.

        2. Click Install packages.

        3. Select the packages you want to install. This should be everything that says Index: openacs-4/packages/acs-core-docs/www/upgrade-4.6.3-to-5.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/upgrade-4.6.3-to-5.adp,v diff -u -r1.4.2.3 -r1.4.2.4 --- openacs-4/packages/acs-core-docs/www/upgrade-4.6.3-to-5.adp 5 Jan 2021 17:33:40 -0000 1.4.2.3 +++ openacs-4/packages/acs-core-docs/www/upgrade-4.6.3-to-5.adp 3 Sep 2021 09:15:36 -0000 1.4.2.4 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Upgrading OpenACS 4.6.3 to 5.0} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Upgrading OpenACS 4.6.3 to 5.0} Upgrading OpenACS 4.6.3 to 5.0 ; Table 2.2, “Version Compatibility Matrix”

            -
          1. Back up the database and filesystem.

          2. +

          3. Back up the database and +filesystem.

          4. Upgrade the filesystem for packages/acs-kernel. the section called “Upgrading the OpenACS files” @@ -36,8 +37,7 @@ -f upgrade-4.6.3-4.6.4.sql $OPENACS_SERVICE_NAME . Run the scripts in this order (order is tentative, not -verified):

            -psql -f upgrade-4.6.3-4.6.4.sql $OPENACS_SERVICE_NAME
            +verified):

            psql -f upgrade-4.6.3-4.6.4.sql $OPENACS_SERVICE_NAME
             psql -f upgrade-4.6.4-4.6.5.sql $OPENACS_SERVICE_NAME
             psql -f upgrade-4.6.5-4.6.6.sql $OPENACS_SERVICE_NAME
             psql -f upgrade-4.7d-4.7.2d.sql $OPENACS_SERVICE_NAME
            @@ -53,8 +53,7 @@
             psql -f upgrade-5.0.0b3-5.0.0b4.sql $OPENACS_SERVICE_NAME
             
          5. -

            Upgrade ACS Service Contracts manually:

            -[$OPENACS_SERVICE_NAME aolserver]$ cd /var/lib/aolserver/ $OPENACS_SERVICE_NAME/packages/acs-service-contracts/sql/postgresql/upgrade
            +

            Upgrade ACS Service Contracts manually:

            [$OPENACS_SERVICE_NAME aolserver]$ cd /var/lib/aolserver/ $OPENACS_SERVICE_NAME/packages/acs-service-contracts/sql/postgresql/upgrade
             psql -f upgrade-4.7d2-4.7d3.sql $OPENACS_SERVICE_NAME
             
          6. @@ -68,8 +67,7 @@ it's harmless?) Create a file which will be executed on startup which takes care of a few issues with authentication and internationalization: create $OPENACS_SERVICE_NAME/tcl/zzz-postload.tcl -containing:

            -if {![apm_package_installed_p acs-lang]} {
            +containing:

            if {![apm_package_installed_p acs-lang]} {
             apm_package_install -enable -mount_path acs-lang $::acs::rootdir/packages/acs-lang/acs-lang.info
             lang::catalog::import -locales [list "en_US"]
             }
            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.19.2.1 -r1.19.2.2
            --- openacs-4/packages/acs-core-docs/www/upgrade-4.6.3-to-5.html	2 Mar 2019 19:30:06 -0000	1.19.2.1
            +++ openacs-4/packages/acs-core-docs/www/upgrade-4.6.3-to-5.html	3 Sep 2021 09:15:36 -0000	1.19.2.2
            @@ -4,7 +4,7 @@
                         how to upgrade an Oracle installation from OpenACS 4.6.3 to 5
                         .
                         

          7. PostGreSQL. You must use PostGreSQL 7.3.x or newer to upgrade OpenACS beyond 4.6.3. See Upgrade PostGreSQL to 7.3; Table 2.2, “Version Compatibility Matrix” -

            1. Back up the database and file system.

            2. Upgrade the file system for packages/acs-kernel. the section called “Upgrading the OpenACS files”

            3. Upgrade the kernel manually. (There is a script to do most of the rest: /contrib/misc/upgrade_4.6_to_5.0.sh on HEAD). You'll still have to do a lot of stuff manually, but automated trial and error is much more fun.)

              [root root]# su - $OPENACS_SERVICE_NAME
              +            

              1. Back up the database and filesystem.

              2. Upgrade the filesystem for packages/acs-kernel. the section called “Upgrading the OpenACS files”

              3. Upgrade the kernel manually. (There is a script to do most of the rest: /contrib/misc/upgrade_4.6_to_5.0.sh on HEAD). You'll still have to do a lot of stuff manually, but automated trial and error is much more fun.)

                [root root]# su - $OPENACS_SERVICE_NAME
                 [$OPENACS_SERVICE_NAME aolserver]$ cd /var/lib/aolserver/ $OPENACS_SERVICE_NAME/packages/acs-kernel/sql/postgresql/upgrade

                Manually execute each of the upgrade scripts in sequence, either from within psql or from the command line with commands such as psql -f upgrade-4.6.3-4.6.4.sql $OPENACS_SERVICE_NAME. Run the scripts in this order (order is tentative, not verified):

                psql -f upgrade-4.6.3-4.6.4.sql $OPENACS_SERVICE_NAME
                Index: openacs-4/packages/acs-core-docs/www/upgrade-5-0-dot.adp
                ===================================================================
                RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/upgrade-5-0-dot.adp,v
                diff -u -r1.4.2.3 -r1.4.2.4
                --- openacs-4/packages/acs-core-docs/www/upgrade-5-0-dot.adp	5 Jan 2021 17:33:40 -0000	1.4.2.3
                +++ openacs-4/packages/acs-core-docs/www/upgrade-5-0-dot.adp	3 Sep 2021 09:15:37 -0000	1.4.2.4
                @@ -1,5 +1,5 @@
                 
                -{/doc/acs-core-docs {ACS Core Documentation}} {Upgrading an OpenACS 5.0.0 or greater installation}
                +{/doc/acs-core-docs/ {ACS Core Documentation}} {Upgrading an OpenACS 5.0.0 or greater installation}
                 Upgrading an OpenACS 5.0.0 or greater installation
                 
                 
                -Upgrading an OpenACS 5.0.0 or greater installation

                Upgrading an OpenACS 5.0.0 or greater installation

                • Upgrading a stock site. If you have no custom code, and your site is not in a CVS repository, upgrade with these steps:

                  1. Go to /acs-admin/install/ and click "Upgrade Your System" in "Install from OpenACS Repository"

                  2. Select all of the packages you want to upgrade and proceed

                  3. After upgrade is complete, restart the server as indicated.

                  4. If you are using locales other than en_US, go to acs-lang/admin and "Import all Messages" to load the new translated messages. Your local translations, if any, will take precedence over imported translations.

                • Upgrading a Custom or CVS site. If you have custom code, and your site is in a CVS repository, upgrade with these steps:

                  1. Upgrade the file system for all packages in use. the section called “Upgrading the OpenACS files”

                  2. Go to /acs-admin/install/ and click "Upgrade Your System" in "Install from local file system"

                  3. Select all of the packages you want to upgrade and proceed

                  4. After upgrade is complete, restart the server as indicated.

                  5. If you are using locales other than en_US, go to acs-lang/admin and "Import all Messages" to load the new translated messages. Your local translations, if any, will take precedence over imported translations.

                +Upgrading an OpenACS 5.0.0 or greater installation

                Upgrading an OpenACS 5.0.0 or greater installation

                • Upgrading a stock site. If you have no custom code, and your site is not in a CVS repository, upgrade with these steps:

                  1. Go to /acs-admin/install/ and click "Upgrade Your System" in "Install from OpenACS Repository"

                  2. Select all of the packages you want to upgrade and proceed

                  3. After upgrade is complete, restart the server as indicated.

                  4. If you are using locales other than en_US, go to acs-lang/admin and "Import all Messages" to load the new translated messages. Your local translations, if any, will take precedence over imported translations.

                • Upgrading a Custom or CVS site. If you have custom code, and your site is in a CVS repository, upgrade with these steps:

                  1. Upgrade the filesystem for all packages in use. the section called “Upgrading the OpenACS files”

                  2. Go to /acs-admin/install/ and click "Upgrade Your System" in "Install from local filesystem"

                  3. Select all of the packages you want to upgrade and proceed

                  4. After upgrade is complete, restart the server as indicated.

                  5. If you are using locales other than en_US, go to acs-lang/admin and "Import all Messages" to load the new translated messages. Your local translations, if any, will take precedence over imported translations.

                Index: openacs-4/packages/acs-core-docs/www/upgrade-openacs-files.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/upgrade-openacs-files.adp,v diff -u -r1.5.2.5 -r1.5.2.6 --- openacs-4/packages/acs-core-docs/www/upgrade-openacs-files.adp 5 Jan 2021 17:33:40 -0000 1.5.2.5 +++ openacs-4/packages/acs-core-docs/www/upgrade-openacs-files.adp 3 Sep 2021 09:15:37 -0000 1.5.2.6 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Upgrading the OpenACS files} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Upgrading the OpenACS files} Upgrading the OpenACS files Upgrading the OpenACS files

          -Choosing a Method to Upgrade your +Choosing a Method to Upgrade your Files

          OpenACS is distributed in many different ways:

          • as a collection of files

          • as one big tarball

          • via CVS

          • via automatic download from within the APM (package manager)

          Upgrades work by first changing the filesystem (via any of the previous methods), and then using the APM to scan the filesystem, find upgrade scripts, and execute them. Starting with OpenACS 5.0, -the last method was added, which automatically changes the filesystem for you. If you are using the last method, you can skip this -page. This page describes whether or not you need to be upgrading -using this page or not: the -section called “Upgrading an OpenACS 5.0.0 or greater -installation” +the last method was added, which automatically changes the +filesystem for you. If you are using the last method, you can skip +this page. This page describes whether or not you need to be +upgrading using this page or not: the section +called “Upgrading an OpenACS 5.0.0 or greater installation”

          -Methods of upgrading OpenACS files

            +Methods of upgrading OpenACS files
        • Upgrading files for a site which is not in a CVS @@ -53,7 +53,7 @@ version, without overriding your own local customizations.

          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.

          -

          Figure 5.2. Upgrading a local +

          Figure 5.2. Upgrading a local CVS repository

          Upgrading a local CVS repository

          • @@ -123,8 +123,7 @@ you have a local copy of the new OpenACS code, you need to import it into your local CVS repository and resolve any conflicts that occur.

            Import the new files into your cvs repository; where they match -existing files, they will become the new version of the file.

            -[$OPENACS_SERVICE_NAME openacs-5-1]$  cd /var/lib/aolserver/openacs-5-1
            +existing files, they will become the new version of the file.

            [$OPENACS_SERVICE_NAME openacs-5-1]$  cd /var/lib/aolserver/openacs-5-1
             
             [$OPENACS_SERVICE_NAME openacs-5-1]$  cvs -d /var/lib/cvs import -m "upgrade to OpenACS 5.1" $OPENACS_SERVICE_NAME OpenACS openacs-5-1
             
            @@ -143,8 +142,7 @@
             uses the cvs keyword yesterday, making the assumption that you
             haven't checked in new code to your local tree in the last day.
             This section should be improved to use tags instead of the keyword
            -yesterday!

            -[$OPENACS_SERVICE_NAME openacs-5.1]$  cd /var/lib/aolserver
            +yesterday!

            [$OPENACS_SERVICE_NAME openacs-5.1]$  cd /var/lib/aolserver
             [$OPENACS_SERVICE_NAME tmp]$ rm -rf $OPENACS_SERVICE_NAME-upgrade
             [$OPENACS_SERVICE_NAME tmp]$ mkdir $OPENACS_SERVICE_NAME-upgrade
             [$OPENACS_SERVICE_NAME tmp]$ cvs checkout -d $OPENACS_SERVICE_NAME-upgrade -jOpenACS:yesterday -jOpenACS -kk $OPENACS_SERVICE_NAME > cvs.txt 2>&1
            @@ -182,7 +180,7 @@
             [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$

      -Upgrading a Production Site Safely

      If you are upgrading a production OpenACS site which is on a +Upgrading a Production Site Safely

    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:

    1. Declare a freeze on new cvs updates - ie, you cannot run cvs 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.31.2.3 -r1.31.2.4 --- openacs-4/packages/acs-core-docs/www/upgrade-openacs-files.html 27 Jun 2019 18:22:22 -0000 1.31.2.3 +++ openacs-4/packages/acs-core-docs/www/upgrade-openacs-files.html 3 Sep 2021 09:15:37 -0000 1.31.2.4 @@ -1,17 +1,17 @@ -Upgrading the OpenACS files

      Upgrading the OpenACS files

      Choosing a Method to Upgrade your Files

      OpenACS is distributed in many different ways: +Upgrading the OpenACS files

      Upgrading the OpenACS files

      Choosing a Method to Upgrade your Files

      OpenACS is distributed in many different ways:

      • as a collection of files

      • as one big tarball

      • via CVS

      • via automatic download from within the APM (package manager)

      -

      Upgrades work by first changing the file system (via any +

      Upgrades work by first changing the filesystem (via any of the previous methods), and then using the APM to scan the - file system, find upgrade scripts, and execute them. Starting + filesystem, find upgrade scripts, and execute them. Starting with OpenACS 5.0, the last method was added, which - automatically changes the file system for you. If you are + automatically changes the filesystem for you. If you are using the last method, you can skip this page. This page describes whether or not you need to be upgrading using this page or not: the section called “Upgrading an OpenACS 5.0.0 or greater installation” -

      Methods of upgrading OpenACS files

      • Upgrading files for a site which is not in a CVS repository. Unpack the tarball into a new directory and copy its +

      Methods of upgrading OpenACS files

      • Upgrading files for a site which is not in a CVS repository. 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.

        [root root]# su - $OPENACS_SERVICE_NAME
        @@ -32,7 +32,7 @@
                 with the latest OpenACS version, without overriding your own
                 local customizations. 

        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.

        Figure 5.2. Upgrading a local CVS repository

        Upgrading a local CVS repository

        • Step 0: Set up a working CVS checkout. To get your OpenACS code into your local CVS + 1(b) should be labelled Step 1.

          Figure 5.2. Upgrading a local CVS repository

          Upgrading a local CVS repository

          • Step 0: Set up a working CVS checkout. 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 @@

            1. [$OPENACS_SERVICE_NAME ~]$ cd /var/lib/aolserver/$OPENACS_SERVICE_NAME
               [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cvs up -Pd
               (CVS feedback)
              -[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$

          Upgrading a Production Site Safely

          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:

          1. Declare a freeze on new cvs updates - ie, you cannot run cvs update +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$

    Upgrading a Production Site Safely

    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:

    1. Declare a freeze on new cvs updates - ie, you cannot run cvs update on the production site

    2. Make a manual backup of the production site in addition to the automated backups

    3. 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.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/upgrade-overview.adp,v diff -u -r1.4.2.4 -r1.4.2.5 --- openacs-4/packages/acs-core-docs/www/upgrade-overview.adp 26 Aug 2020 07:46:26 -0000 1.4.2.4 +++ openacs-4/packages/acs-core-docs/www/upgrade-overview.adp 3 Sep 2021 09:15:37 -0000 1.4.2.5 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Overview} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Overview} Overview

    -

    Figure 5.1. Upgrading with the +

    Figure 5.1. Upgrading with the APM

    Upgrading with the APM

    It's always a good idea to precede an upgrade attempt with a snapshot backup.

    -

    Table 5.1. Assumptions in this +

    Table 5.1. Assumptions in this section

    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.30.2.3 -r1.30.2.4 --- openacs-4/packages/acs-core-docs/www/upgrade-overview.html 27 Jun 2019 18:22:22 -0000 1.30.2.3 +++ openacs-4/packages/acs-core-docs/www/upgrade-overview.html 3 Sep 2021 09:15:38 -0000 1.30.2.4 @@ -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.

    If all of these conditions are true:

    • Your OpenACS Core is 5.0.0 or later

    • You do not keep your OpenACS site in a local CVS repository

    • You do not have any custom code

    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:

    1. Browse to the Installer.

    2. Click install or upgrade under "Install from OpenACS Repository" and select the packages to install or upgrade.

    3. 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.

    Figure 5.1. Upgrading with the APM

    Upgrading with the APM

    It's always a good idea to precede an upgrade attempt with a snapshot backup.

    Table 5.1. Assumptions in this section

    name of OpenACS user$OPENACS_SERVICE_NAME
    OpenACS server name$OPENACS_SERVICE_NAME
    Root of OpenACS file tree/var/lib/aolserver/$OPENACS_SERVICE_NAME
    Database backup directory/var/lib/aolserver/$OPENACS_SERVICE_NAME/database-backup

    + OpenACS prior to 4.5, upgrading will require manual effort.

    If all of these conditions are true:

    • Your OpenACS Core is 5.0.0 or later

    • You do not keep your OpenACS site in a local CVS repository

    • You do not have any custom code

    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:

    1. Browse to the Installer.

    2. Click install or upgrade under "Install from OpenACS Repository" and select the packages to install or upgrade.

    3. 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.

    Figure 5.1. Upgrading with the APM

    Upgrading with the APM

    It's always a good idea to precede an upgrade attempt with a snapshot backup.

    Table 5.1. Assumptions in this section

    name of OpenACS user$OPENACS_SERVICE_NAME
    OpenACS server name$OPENACS_SERVICE_NAME
    Root of OpenACS file tree/var/lib/aolserver/$OPENACS_SERVICE_NAME
    Database backup directory/var/lib/aolserver/$OPENACS_SERVICE_NAME/database-backup

    Index: openacs-4/packages/acs-core-docs/www/upgrade-supporting.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/upgrade-supporting.adp,v diff -u -r1.5.2.2 -r1.5.2.3 --- openacs-4/packages/acs-core-docs/www/upgrade-supporting.adp 26 Aug 2020 07:46:26 -0000 1.5.2.2 +++ openacs-4/packages/acs-core-docs/www/upgrade-supporting.adp 3 Sep 2021 09:15:38 -0000 1.5.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {Upgrading Platform components} +{/doc/acs-core-docs/ {ACS Core Documentation}} {Upgrading Platform components} Upgrading Platform components

    Back up the old fts driver as a precaution and install the newly -compiled one

    -mv /usr/local/aolserver/bin/nsfts.so /usr/local/aolserver/bin/nsfts-0.2.so 
    +compiled one

    mv /usr/local/aolserver/bin/nsfts.so /usr/local/aolserver/bin/nsfts-0.2.so 
               cp nsfts.so /usr/local/aolserver/bin
               

    Build and install the OpenFTS code for PostgreSQL

    cd /usr/local/src/Search-OpenFTS-tcl-0.3.2/
               cp -r pgsql_contrib_openfts /usr/local/src/postgresql-7.2.3/contrib /usr/local/src/postgresql-7.2.3/contrib/pgsql_contrib_openfts
    Index: openacs-4/packages/acs-core-docs/www/upgrade.adp
    ===================================================================
    RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/upgrade.adp,v
    diff -u -r1.4.2.2 -r1.4.2.3
    --- openacs-4/packages/acs-core-docs/www/upgrade.adp	26 Aug 2020 07:46:26 -0000	1.4.2.2
    +++ openacs-4/packages/acs-core-docs/www/upgrade.adp	3 Sep 2021 09:15:38 -0000	1.4.2.3
    @@ -1,5 +1,5 @@
     
    -{/doc/acs-core-docs {ACS Core Documentation}} {Chapter 5. Upgrading}
    +{/doc/acs-core-docs/ {ACS Core Documentation}} {Chapter 5. Upgrading}
     Chapter 5. Upgrading
     
     {/doc/acs-core-docs {ACS Core Documentation}} {External uptime validation}
    +{/doc/acs-core-docs/ {ACS Core Documentation}} {External uptime validation}
     External uptime validation
     
     {/doc/acs-core-docs {ACS Core Documentation}} {Variables}
    +{/doc/acs-core-docs/ {ACS Core Documentation}} {Variables}
     Variables
     
     

    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 lc_time_fmt to format it for display.

    -

    Example 12.1. Getting datetime +

    Example 12.1. Getting datetime from the database ANSI-style

    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/variables.html
    ===================================================================
    RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/variables.html,v
    diff -u -r1.33.2.3 -r1.33.2.4
    --- openacs-4/packages/acs-core-docs/www/variables.html	27 Jun 2019 18:22:22 -0000	1.33.2.3
    +++ openacs-4/packages/acs-core-docs/www/variables.html	3 Sep 2021 09:15:38 -0000	1.33.2.4
    @@ -4,7 +4,7 @@
               by OpenACS documentation staff.
             

    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 lc_time_fmt to format it for display.

    Example 12.1. Getting datetime from the database ANSI-style

    db_multirow -extend { mydate_pretty } {
    +    ANSI format and then using lc_time_fmt to format it for display.

    Example 12.1. Getting datetime from the database ANSI-style

    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.adp
    ===================================================================
    RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/win2k-installation.adp,v
    diff -u -r1.3.2.2 -r1.3.2.3
    --- openacs-4/packages/acs-core-docs/www/win2k-installation.adp	26 Aug 2020 07:46:26 -0000	1.3.2.2
    +++ openacs-4/packages/acs-core-docs/www/win2k-installation.adp	3 Sep 2021 09:15:38 -0000	1.3.2.3
    @@ -1,5 +1,5 @@
     
    -{/doc/acs-core-docs {ACS Core Documentation}} {OpenACS Installation Guide for Windows}
    +{/doc/acs-core-docs/ {ACS Core Documentation}} {OpenACS Installation Guide for Windows}
     OpenACS Installation Guide for Windows
     
     {/doc/acs-core-docs {ACS Core Documentation}} {ACS Installation: Welcome}
    +{/doc/acs-core-docs/ {ACS Core Documentation}} {ACS Installation: Welcome}
     ACS Installation: Welcome
     
     

    ACS Installation: Welcome

    Index: openacs-4/packages/acs-core-docs/www/files/dotlrn-style-2.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/files/dotlrn-style-2.adp,v diff -u -r1.2.2.2 -r1.2.2.3 --- openacs-4/packages/acs-core-docs/www/files/dotlrn-style-2.adp 26 Aug 2020 07:46:26 -0000 1.2.2.2 +++ openacs-4/packages/acs-core-docs/www/files/dotlrn-style-2.adp 3 Sep 2021 09:15:39 -0000 1.2.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-core-docs {ACS Core Documentation}} {My Space - SloanSpace} +{/doc/acs-core-docs/ {ACS Core Documentation}} {My Space - SloanSpace} My Space - SloanSpace
      13 ms  1row nsdb2 (main pool) -
    -select count(*) from user_group_map where user_id =1472 and group_id = 2
    +
    select count(*) from user_group_map where user_id =1472 and group_id = 2
    @@ -141,14 +140,12 @@
      12 ms  1row nsdb2 (main pool) -
    -select multi_role_p from user_groups where group_id = 1
    +
    select multi_role_p from user_groups where group_id = 1
      17 ms  1row nsdb2 (main pool) -
    -select decode(count(*), 0, 0, 1) from user_group_map where user_id = 1472 and group_id = 1 and role in ('administrator', 'all')
    +
    select decode(count(*), 0, 0, 1) from user_group_map where user_id = 1472 and group_id = 1 and role in ('administrator', 'all')
    @@ -235,8 +232,7 @@
      4 ms  select nsdb2 (main pool) -
    -select newsgroup_id from newsgroups where scope = 'all_users' or scope = 'registered_users' or (scope = 'group' and group_id = 6)
    +
    select newsgroup_id from newsgroups where scope = 'all_users' or scope = 'registered_users' or (scope = 'group' and group_id = 6)
    @@ -474,8 +470,7 @@
      33 ms  0or1row nsdb2 (main pool) -
    -select u.first_names || ' ' || u.last_name as name, u.bio, u.skills, 
    +
    select u.first_names || ' ' || u.last_name as name, u.bio, u.skills, 
                         ug.group_name as office, ug.group_id as office_id
                    from im_employees_active u, user_groups ug, user_group_map ugm
                   where u.user_id = ugm.user_id(+)
    @@ -507,8 +502,7 @@
     
      11 ms  1row nsdb3 (log pool) -
    -select ad_group_member_p(1472, system_administrator_group_id) from dual
    +
    select ad_group_member_p(1472, system_administrator_group_id) from dual
    Index: openacs-4/packages/acs-developer-support/www/doc/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-developer-support/www/doc/index.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-developer-support/www/doc/index.adp 30 Apr 2018 08:17:33 -0000 1.4 +++ openacs-4/packages/acs-developer-support/www/doc/index.adp 3 Sep 2021 09:15:43 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-developer-support {ACS Developer Support}} {ACS Developer Support} +{/doc/acs-developer-support/ {ACS Developer Support}} {ACS Developer Support} ACS Developer Support

    ACS Developer Support

    Index: openacs-4/packages/acs-events/www/doc/design.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-events/www/doc/design.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-events/www/doc/design.adp 7 Aug 2017 23:47:56 -0000 1.3 +++ openacs-4/packages/acs-events/www/doc/design.adp 3 Sep 2021 09:15:43 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-events {ACS Events}} {ACS Events Design Documentation} +{/doc/acs-events/ {ACS Events}} {ACS Events Design Documentation} ACS Events Design Documentation

    ACS Events Design Documentation

    Index: openacs-4/packages/acs-events/www/doc/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-events/www/doc/index.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-events/www/doc/index.adp 7 Aug 2017 23:47:56 -0000 1.3 +++ openacs-4/packages/acs-events/www/doc/index.adp 3 Sep 2021 09:15:43 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-events {ACS Events}} {ACS Events Documentation} +{/doc/acs-events/ {ACS Events}} {ACS Events Documentation} ACS Events Documentation

    ACS Events Documentation

    Index: openacs-4/packages/acs-events/www/doc/requirements.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-events/www/doc/requirements.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-events/www/doc/requirements.adp 7 Aug 2017 23:47:56 -0000 1.3 +++ openacs-4/packages/acs-events/www/doc/requirements.adp 3 Sep 2021 09:15:43 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-events {ACS Events}} {ACS Events Service Requirements} +{/doc/acs-events/ {ACS Events}} {ACS Events Service Requirements} ACS Events Service Requirements

    ACS Events Service Requirements

    Index: openacs-4/packages/acs-lang/www/doc/i18n-design.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-lang/www/doc/i18n-design.adp,v diff -u -r1.7.2.3 -r1.7.2.4 --- openacs-4/packages/acs-lang/www/doc/i18n-design.adp 3 Jul 2020 07:53:44 -0000 1.7.2.3 +++ openacs-4/packages/acs-lang/www/doc/i18n-design.adp 3 Sep 2021 09:15:44 -0000 1.7.2.4 @@ -1,5 +1,5 @@ -{/doc/acs-lang {ACS Localization}} {ACS 4 Globalization Detailed Design} +{/doc/acs-lang/ {ACS Localization}} {ACS 4 Globalization Detailed Design} ACS 4 Globalization Detailed Design

    ACS 4 Globalization Detailed Design

    @@ -432,8 +432,8 @@ In the example above, if the catalog file was loaded from the -bboard package, all of the keys would be prefixed automatically with -"bboard. +bboard package, all of the keys would be prefixed automatically +with "bboard. ".

    Loading A Message Catalog At Package Init Time

    Index: openacs-4/packages/acs-lang/www/doc/i18n-requirements.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-lang/www/doc/i18n-requirements.adp,v diff -u -r1.5.2.2 -r1.5.2.3 --- openacs-4/packages/acs-lang/www/doc/i18n-requirements.adp 7 Aug 2020 10:30:57 -0000 1.5.2.2 +++ openacs-4/packages/acs-lang/www/doc/i18n-requirements.adp 3 Sep 2021 09:15:44 -0000 1.5.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-lang {ACS Localization}} {ACS 4 Globalization Requirements} +{/doc/acs-lang/ {ACS Localization}} {ACS 4 Globalization Requirements} ACS 4 Globalization Requirements

    ACS 4 Globalization Requirements

    @@ -378,7 +378,8 @@ preference should be attached via a session or else UTC should be used to display every date and time.

    90.60 The default if we can't determine a -timezone is to display all dates and times in some universal timezone such as GMT.

    +timezone is to display all dates and times in some universal +timezone such as GMT.

    VI.H Database

    Index: openacs-4/packages/acs-lang/www/doc/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-lang/www/doc/index.adp,v diff -u -r1.2 -r1.2.2.1 --- openacs-4/packages/acs-lang/www/doc/index.adp 7 Aug 2017 23:47:57 -0000 1.2 +++ openacs-4/packages/acs-lang/www/doc/index.adp 3 Sep 2021 09:15:44 -0000 1.2.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-lang {ACS Localization}} {ACS Localization Documentation} +{/doc/acs-lang/ {ACS Localization}} {ACS Localization Documentation} ACS Localization Documentation

    ACS Localization Documentation

    Index: openacs-4/packages/acs-messaging/www/doc/design.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-messaging/www/doc/design.adp,v diff -u -r1.5 -r1.5.2.1 --- openacs-4/packages/acs-messaging/www/doc/design.adp 1 May 2018 08:34:42 -0000 1.5 +++ openacs-4/packages/acs-messaging/www/doc/design.adp 3 Sep 2021 09:15:45 -0000 1.5.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-messaging {ACS Messaging}} {ACS Messaging Design} +{/doc/acs-messaging/ {ACS Messaging}} {ACS Messaging Design} ACS Messaging Design

    ACS Messaging Design

    Index: openacs-4/packages/acs-messaging/www/doc/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-messaging/www/doc/index.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-messaging/www/doc/index.adp 7 Aug 2017 23:47:57 -0000 1.3 +++ openacs-4/packages/acs-messaging/www/doc/index.adp 3 Sep 2021 09:15:45 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-messaging {ACS Messaging}} {ACS Messaging Documentation} +{/doc/acs-messaging/ {ACS Messaging}} {ACS Messaging Documentation} ACS Messaging Documentation

    ACS Messaging Documentation

    Index: openacs-4/packages/acs-messaging/www/doc/requirements.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-messaging/www/doc/requirements.adp,v diff -u -r1.7 -r1.7.2.1 --- openacs-4/packages/acs-messaging/www/doc/requirements.adp 28 Jun 2018 08:08:52 -0000 1.7 +++ openacs-4/packages/acs-messaging/www/doc/requirements.adp 3 Sep 2021 09:15:45 -0000 1.7.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-messaging {ACS Messaging}} {ACS Messaging Requirements} +{/doc/acs-messaging/ {ACS Messaging}} {ACS Messaging Requirements} ACS Messaging Requirements

    ACS Messaging Requirements

    @@ -59,7 +59,7 @@
  • BBoard
  • Webmail
  • General Comments
  • Spam
  • Various parts of the ticket tracker.
  • Each of these applications requires a message store and each -defines its own high level organization for messages within that +defines its own high-level organization for messages within that store.

    • Bboard organizes messages into forums and categories and @@ -156,5 +156,5 @@
      -Last modified: $‌Id: requirements.html,v 1.3 2018/04/11 21:35:07 -hectorr Exp $ +Last modified: $‌Id: requirements.html,v 1.3.2.1 2019/08/15 10:20:04 +gustafn Exp $ Index: openacs-4/packages/acs-reference/www/doc/design.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-reference/www/doc/design.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-reference/www/doc/design.adp 7 Aug 2017 23:47:57 -0000 1.3 +++ openacs-4/packages/acs-reference/www/doc/design.adp 3 Sep 2021 09:15:46 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-reference {ACS Reference Data}} {acs-reference Design Documentation} +{/doc/acs-reference/ {ACS Reference Data}} {acs-reference Design Documentation} acs-reference Design Documentation

      acs-reference Design Documentation

      Index: openacs-4/packages/acs-reference/www/doc/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-reference/www/doc/index.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-reference/www/doc/index.adp 7 Aug 2017 23:47:57 -0000 1.3 +++ openacs-4/packages/acs-reference/www/doc/index.adp 3 Sep 2021 09:15:48 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-reference {ACS Reference Data}} {ACS Reference Documentation} +{/doc/acs-reference/ {ACS Reference Data}} {ACS Reference Documentation} ACS Reference Documentation

      ACS Reference Documentation

      Index: openacs-4/packages/acs-reference/www/doc/requirements.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-reference/www/doc/requirements.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-reference/www/doc/requirements.adp 7 Aug 2017 23:47:57 -0000 1.3 +++ openacs-4/packages/acs-reference/www/doc/requirements.adp 3 Sep 2021 09:15:49 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-reference {ACS Reference Data}} {ACS Reference Requirements} +{/doc/acs-reference/ {ACS Reference Data}} {ACS Reference Requirements} ACS Reference Requirements

      ACS Reference Requirements

      Index: openacs-4/packages/acs-service-contract/www/doc/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-service-contract/www/doc/index.adp,v diff -u -r1.7 -r1.7.2.1 --- openacs-4/packages/acs-service-contract/www/doc/index.adp 18 May 2018 07:56:07 -0000 1.7 +++ openacs-4/packages/acs-service-contract/www/doc/index.adp 3 Sep 2021 09:15:49 -0000 1.7.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-service-contract {ACS Service Contracts}} {ACS Service Contract Documentation} +{/doc/acs-service-contract/ {ACS Service Contracts}} {ACS Service Contract Documentation} ACS Service Contract Documentation

      ACS Service Contract Documentation

      @@ -74,15 +74,13 @@

    Creating Interfaces

    • (sql): -
      -acs_sc_contract__new (contract_name, contract_desc):
      +
                       acs_sc_contract__new (contract_name, contract_desc):

    creates a new contract to serve as a logical container for operations. contract_desc is a text description of the contract.

    • (sql): -
      -acs_sc_operation__new (contract_name, operation_name,
      +
                       acs_sc_operation__new (contract_name, operation_name,
                                              operation_desc, operation_iscachable_p,
                                              operation_inputtype, operation_outputtype
                                             ):
      Index: openacs-4/packages/acs-service-contract/www/doc/notes.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-service-contract/www/doc/notes.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-service-contract/www/doc/notes.adp 7 Aug 2017 23:47:57 -0000 1.3 +++ openacs-4/packages/acs-service-contract/www/doc/notes.adp 3 Sep 2021 09:15:49 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-service-contract {ACS Service Contracts}} {} +{/doc/acs-service-contract/ {ACS Service Contracts}} {} Index: openacs-4/packages/acs-subsite/www/doc/group-admin-pages-acceptance-test.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/www/doc/group-admin-pages-acceptance-test.adp,v diff -u -r1.4.2.1 -r1.4.2.2 --- openacs-4/packages/acs-subsite/www/doc/group-admin-pages-acceptance-test.adp 5 Oct 2019 13:01:38 -0000 1.4.2.1 +++ openacs-4/packages/acs-subsite/www/doc/group-admin-pages-acceptance-test.adp 3 Sep 2021 09:15:50 -0000 1.4.2.2 @@ -1,5 +1,5 @@ -{/doc/acs-subsite {ACS Subsite}} {Group Admin Pages - Acceptance test} +{/doc/acs-subsite/ {ACS Subsite}} {Group Admin Pages - Acceptance test} Group Admin Pages - Acceptance test

      Group Admin Pages - Acceptance @@ -229,6 +229,6 @@
      Michael Bryzek
      -
      $‌Id: group-admin-pages-acceptance-test.html,v 1.4 -2017/08/07 23:47:59 gustafn Exp $ +
      $‌Id: group-admin-pages-acceptance-test.html,v +1.4.2.1 2019/10/05 13:01:38 gustafn Exp $
      Index: openacs-4/packages/acs-subsite/www/doc/group-admin-pages-design.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/www/doc/group-admin-pages-design.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-subsite/www/doc/group-admin-pages-design.adp 7 Aug 2017 23:47:59 -0000 1.3 +++ openacs-4/packages/acs-subsite/www/doc/group-admin-pages-design.adp 3 Sep 2021 09:15:50 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-subsite {ACS Subsite}} {Group Admin Pages - Design} +{/doc/acs-subsite/ {ACS Subsite}} {Group Admin Pages - Design} Group Admin Pages - Design

      Group Admin Pages - Design

      Index: openacs-4/packages/acs-subsite/www/doc/group-admin-pages-requirements.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/www/doc/group-admin-pages-requirements.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-subsite/www/doc/group-admin-pages-requirements.adp 25 Apr 2018 08:40:23 -0000 1.4 +++ openacs-4/packages/acs-subsite/www/doc/group-admin-pages-requirements.adp 3 Sep 2021 09:15:51 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-subsite {ACS Subsite}} {Group Admin Pages - Requirements} +{/doc/acs-subsite/ {ACS Subsite}} {Group Admin Pages - Requirements} Group Admin Pages - Requirements

      Group Admin Pages - Requirements

      Index: openacs-4/packages/acs-subsite/www/doc/images.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/www/doc/images.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-subsite/www/doc/images.adp 7 Aug 2017 23:47:59 -0000 1.3 +++ openacs-4/packages/acs-subsite/www/doc/images.adp 3 Sep 2021 09:15:51 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-subsite {ACS Subsite}} {ACS Subsite Documentation} +{/doc/acs-subsite/ {ACS Subsite}} {ACS Subsite Documentation} ACS Subsite Documentation

      Images available from the acs-subsite package

      Index: openacs-4/packages/acs-subsite/www/doc/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/www/doc/index.adp,v diff -u -r1.4.2.1 -r1.4.2.2 --- openacs-4/packages/acs-subsite/www/doc/index.adp 9 Aug 2019 20:12:32 -0000 1.4.2.1 +++ openacs-4/packages/acs-subsite/www/doc/index.adp 3 Sep 2021 09:15:52 -0000 1.4.2.2 @@ -1,5 +1,5 @@ -{/doc/acs-subsite {ACS Subsite}} {ACS Subsite Documentation} +{/doc/acs-subsite/ {ACS Subsite}} {ACS Subsite Documentation} ACS Subsite Documentation

      ACS Subsite Documentation

      @@ -33,6 +33,6 @@
      Michael Bryzek

      -$‌Id: index.html,v 1.4 2017/08/07 23:47:59 gustafn -Exp $ +$‌Id: index.html,v 1.4.2.1 2019/08/09 20:12:32 +gustafn Exp $ \ No newline at end of file Index: openacs-4/packages/acs-templating/www/doc/design.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/design.adp,v diff -u -r1.9.2.2 -r1.9.2.3 --- openacs-4/packages/acs-templating/www/doc/design.adp 15 Aug 2019 10:18:49 -0000 1.9.2.2 +++ openacs-4/packages/acs-templating/www/doc/design.adp 3 Sep 2021 09:15:52 -0000 1.9.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Template System} +{/doc/acs-templating/ {ACS Templating}} {Template System} Template System

      The Template System -- Design Document

      @@ -325,5 +325,5 @@
      Christian Brechbuehler
      -Last modified: $‌Id: design.html,v 1.9 2018/04/11 20:52:01 hectorr -Exp $ +Last modified: $‌Id: design.html,v 1.10.2.2 2019/08/15 10:18:49 +gustafn Exp $ Index: openacs-4/packages/acs-templating/www/doc/designer-guide.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/designer-guide.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-templating/www/doc/designer-guide.adp 7 Aug 2017 23:48:02 -0000 1.3 +++ openacs-4/packages/acs-templating/www/doc/designer-guide.adp 3 Sep 2021 09:15:53 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Template Designer Guide} +{/doc/acs-templating/ {ACS Templating}} {Template Designer Guide} Template Designer Guide

      Designer Guide

      Index: openacs-4/packages/acs-templating/www/doc/developer-guide.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/developer-guide.adp,v diff -u -r1.4.2.1 -r1.4.2.2 --- openacs-4/packages/acs-templating/www/doc/developer-guide.adp 5 Jan 2021 17:10:17 -0000 1.4.2.1 +++ openacs-4/packages/acs-templating/www/doc/developer-guide.adp 3 Sep 2021 09:15:54 -0000 1.4.2.2 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Template System Guide} +{/doc/acs-templating/ {ACS Templating}} {Template System Guide} Template System Guide

      Programmer / Developer Guide

      @@ -15,7 +15,7 @@ promised in the contract, and not write to the connection. At the end of your Tcl page, call ad_return_template . The -template system will look for an adp page with the filename stub +template system will look for an adp page with the file name stub you indicate (defaulting to the same stub as the Tcl page), process that, and deliver it to the client. The adp page can use the datasources defined in the Tcl page. Index: openacs-4/packages/acs-templating/www/doc/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/index.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-templating/www/doc/index.adp 25 Apr 2018 08:42:17 -0000 1.4 +++ openacs-4/packages/acs-templating/www/doc/index.adp 3 Sep 2021 09:15:55 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templates} +{/doc/acs-templating/ {ACS Templating}} {Templates} Templates

      Templating System

      Index: openacs-4/packages/acs-templating/www/doc/install.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/install.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-templating/www/doc/install.adp 25 Apr 2018 08:42:17 -0000 1.4 +++ openacs-4/packages/acs-templating/www/doc/install.adp 3 Sep 2021 09:15:55 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System: Installation} +{/doc/acs-templating/ {ACS Templating}} {Templating System: Installation} Templating System: Installation

      Installation

      Index: openacs-4/packages/acs-templating/www/doc/introduction.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/introduction.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-templating/www/doc/introduction.adp 29 Dec 2017 09:59:11 -0000 1.4 +++ openacs-4/packages/acs-templating/www/doc/introduction.adp 3 Sep 2021 09:15:56 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System: Goals} +{/doc/acs-templating/ {ACS Templating}} {Templating System: Goals} Templating System: Goals

      Goals

      Index: openacs-4/packages/acs-templating/www/doc/migration.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/migration.adp,v diff -u -r1.5.2.1 -r1.5.2.2 --- openacs-4/packages/acs-templating/www/doc/migration.adp 5 Oct 2019 13:29:58 -0000 1.5.2.1 +++ openacs-4/packages/acs-templating/www/doc/migration.adp 3 Sep 2021 09:15:56 -0000 1.5.2.2 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating an Existing Tcl Page} +{/doc/acs-templating/ {ACS Templating}} {Templating an Existing Tcl Page} Templating an Existing Tcl Page

      Templating an Existing Tcl Page

      @@ -354,11 +354,11 @@

    packages/acs-core-ui/www/pvt/alerts.tclpackages/acs-core-ui/www/pvt/alerts.adp
    ad_page_contract {
    -    \@cvs-id $‌Id: migration.html,v 1.4 2017/08/07 23:48:02 gustafn Exp $
    +    \@cvs-id $‌Id: migration.html,v 1.4.2.1 2019/10/05 13:29:58 gustafn Exp $
     } {
     }
     ad_page_contract {
    -    \@cvs-id $‌Id: migration.html,v 1.4 2017/08/07 23:48:02 gustafn Exp $
    +    \@cvs-id $‌Id: migration.html,v 1.4.2.1 2019/10/05 13:29:58 gustafn Exp $
     } {
     } -properties {
         header:onevalue
    @@ -560,5 +560,5 @@
     Iwashima
     
     
    -Last modified: $‌Id: migration.html,v 1.4 2017/08/07 23:48:02
    +Last modified: $‌Id: migration.html,v 1.4.2.1 2019/10/05 13:29:58
     gustafn Exp $
    Index: openacs-4/packages/acs-templating/www/doc/no-quote-upgrade.adp
    ===================================================================
    RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/no-quote-upgrade.adp,v
    diff -u -r1.6.2.4 -r1.6.2.5
    --- openacs-4/packages/acs-templating/www/doc/no-quote-upgrade.adp	10 Aug 2021 13:26:58 -0000	1.6.2.4
    +++ openacs-4/packages/acs-templating/www/doc/no-quote-upgrade.adp	3 Sep 2021 09:15:57 -0000	1.6.2.5
    @@ -1,5 +1,5 @@
     
    -{/doc/acs-templating {ACS Templating}} {Upgrading existing ADPs to noquote templating}
    +{/doc/acs-templating/ {ACS Templating}} {Upgrading existing ADPs to noquote templating}
     Upgrading existing ADPs to noquote templating
     
     

    Upgrading existing ADPs to noquote templating

    @@ -104,7 +104,7 @@ </form>

    -Snippets of HTML produced by Tcl code, aka +Snippets of HTML produced by Tcl code, a.k.a. widgets .
    Normally we try to fit all HTML code into the ADP template and have @@ -311,5 +311,5 @@


    Hrvoje Niksic
    -Last modified: Thu Aug 20 18:38:05 CEST 2015 - +Last modified: Fri Nov 1 14:11:00 CET 2019 + \ No newline at end of file Index: openacs-4/packages/acs-templating/www/doc/noquote.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/noquote.adp,v diff -u -r1.5.2.1 -r1.5.2.2 --- openacs-4/packages/acs-templating/www/doc/noquote.adp 5 Oct 2019 13:29:58 -0000 1.5.2.1 +++ openacs-4/packages/acs-templating/www/doc/noquote.adp 3 Sep 2021 09:15:58 -0000 1.5.2.2 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {HTMLQuoting as Part of the Templating System - +{/doc/acs-templating/ {ACS Templating}} {HTMLQuoting as Part of the Templating System - Requirements} HTMLQuoting as Part of the Templating System - Requirements Index: openacs-4/packages/acs-templating/www/doc/requirements.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/requirements.adp,v diff -u -r1.5 -r1.5.2.1 --- openacs-4/packages/acs-templating/www/doc/requirements.adp 25 Apr 2018 08:42:17 -0000 1.5 +++ openacs-4/packages/acs-templating/www/doc/requirements.adp 3 Sep 2021 09:15:59 -0000 1.5.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {ACS Templating Requirements} +{/doc/acs-templating/ {ACS Templating}} {ACS Templating Requirements} ACS Templating Requirements

    ACS Templating Requirements

    Index: openacs-4/packages/acs-templating/www/doc/timing-1.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/timing-1.adp,v diff -u -r1.3.2.1 -r1.3.2.2 --- openacs-4/packages/acs-templating/www/doc/timing-1.adp 15 Aug 2019 10:13:07 -0000 1.3.2.1 +++ openacs-4/packages/acs-templating/www/doc/timing-1.adp 3 Sep 2021 09:15:59 -0000 1.3.2.2 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Template Timing Results} +{/doc/acs-templating/ {ACS Templating}} {Template Timing Results} Template Timing Results

    Results

    Index: openacs-4/packages/acs-templating/www/doc/timing-2.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/timing-2.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-templating/www/doc/timing-2.adp 7 Aug 2017 23:48:02 -0000 1.3 +++ openacs-4/packages/acs-templating/www/doc/timing-2.adp 3 Sep 2021 09:15:59 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Template Timing Results} +{/doc/acs-templating/ {ACS Templating}} {Template Timing Results} Template Timing Results

    Results

    Index: openacs-4/packages/acs-templating/www/doc/timing-3.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/timing-3.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-templating/www/doc/timing-3.adp 7 Aug 2017 23:48:02 -0000 1.3 +++ openacs-4/packages/acs-templating/www/doc/timing-3.adp 3 Sep 2021 09:16:00 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Template Timing Results} +{/doc/acs-templating/ {ACS Templating}} {Template Timing Results} Template Timing Results

    Results

    Index: openacs-4/packages/acs-templating/www/doc/timing.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/timing.adp,v diff -u -r1.5.2.1 -r1.5.2.2 --- openacs-4/packages/acs-templating/www/doc/timing.adp 15 Aug 2019 10:13:07 -0000 1.5.2.1 +++ openacs-4/packages/acs-templating/www/doc/timing.adp 3 Sep 2021 09:16:01 -0000 1.5.2.2 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Timing a Templated Page} +{/doc/acs-templating/ {ACS Templating}} {Timing a Templated Page} Timing a Templated Page

    Timing a Templated Page

    Index: openacs-4/packages/acs-templating/www/doc/todo.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/todo.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-templating/www/doc/todo.adp 7 Aug 2017 23:48:02 -0000 1.3 +++ openacs-4/packages/acs-templating/www/doc/todo.adp 3 Sep 2021 09:16:02 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {} +{/doc/acs-templating/ {ACS Templating}} {}

    Data Source API

    Index: openacs-4/packages/acs-templating/www/doc/TclDocs/cm_widget.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/TclDocs/cm_widget.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-templating/www/doc/TclDocs/cm_widget.adp 7 Aug 2017 23:48:02 -0000 1.3 +++ openacs-4/packages/acs-templating/www/doc/TclDocs/cm_widget.adp 3 Sep 2021 09:16:03 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {} +{/doc/acs-templating/ {ACS Templating}} {}

    Namespace cm_widget

    Index: openacs-4/packages/acs-templating/www/doc/TclDocs/cms_rel.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/TclDocs/cms_rel.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-templating/www/doc/TclDocs/cms_rel.adp 7 Aug 2017 23:48:02 -0000 1.3 +++ openacs-4/packages/acs-templating/www/doc/TclDocs/cms_rel.adp 3 Sep 2021 09:16:04 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {} +{/doc/acs-templating/ {ACS Templating}} {}

    Namespace cms_rel

    Index: openacs-4/packages/acs-templating/www/doc/TclDocs/content.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/TclDocs/content.adp,v diff -u -r1.5.2.2 -r1.5.2.3 --- openacs-4/packages/acs-templating/www/doc/TclDocs/content.adp 19 Dec 2019 19:06:27 -0000 1.5.2.2 +++ openacs-4/packages/acs-templating/www/doc/TclDocs/content.adp 3 Sep 2021 09:16:04 -0000 1.5.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {} +{/doc/acs-templating/ {ACS Templating}} {}

    Namespace content

    @@ -458,7 +458,8 @@
    content::get_default_content_method
    -
    Gets the content input method most appropriate for a content type, based on the MIME types that are registered for that +
    Gets the content input method most appropriate for a +content type, based on the MIME types that are registered for that content type.
    Parameters:
    Index: openacs-4/packages/acs-templating/www/doc/TclDocs/content_add.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/TclDocs/content_add.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-templating/www/doc/TclDocs/content_add.adp 7 Aug 2017 23:48:02 -0000 1.3 +++ openacs-4/packages/acs-templating/www/doc/TclDocs/content_add.adp 3 Sep 2021 09:16:05 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {} +{/doc/acs-templating/ {ACS Templating}} {}

    Namespace content_add

    Index: openacs-4/packages/acs-templating/www/doc/TclDocs/content_method.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/TclDocs/content_method.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-templating/www/doc/TclDocs/content_method.adp 7 Aug 2017 23:48:02 -0000 1.3 +++ openacs-4/packages/acs-templating/www/doc/TclDocs/content_method.adp 3 Sep 2021 09:16:06 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {} +{/doc/acs-templating/ {ACS Templating}} {}

    Namespace content_method

    Index: openacs-4/packages/acs-templating/www/doc/TclDocs/doc.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/TclDocs/doc.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-templating/www/doc/TclDocs/doc.adp 7 Aug 2017 23:48:02 -0000 1.3 +++ openacs-4/packages/acs-templating/www/doc/TclDocs/doc.adp 3 Sep 2021 09:16:06 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {} +{/doc/acs-templating/ {ACS Templating}} {}

    Namespace doc

    Index: openacs-4/packages/acs-templating/www/doc/TclDocs/doc__util.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/TclDocs/doc__util.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-templating/www/doc/TclDocs/doc__util.adp 25 Apr 2018 08:42:17 -0000 1.4 +++ openacs-4/packages/acs-templating/www/doc/TclDocs/doc__util.adp 3 Sep 2021 09:16:07 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {} +{/doc/acs-templating/ {ACS Templating}} {}

    Namespace doc::util

    Index: openacs-4/packages/acs-templating/www/doc/TclDocs/form.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/TclDocs/form.adp,v diff -u -r1.5 -r1.5.2.1 --- openacs-4/packages/acs-templating/www/doc/TclDocs/form.adp 25 Apr 2018 08:42:17 -0000 1.5 +++ openacs-4/packages/acs-templating/www/doc/TclDocs/form.adp 3 Sep 2021 09:16:08 -0000 1.5.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {} +{/doc/acs-templating/ {ACS Templating}} {}

    Namespace form

    Index: openacs-4/packages/acs-templating/www/doc/TclDocs/item.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/TclDocs/item.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-templating/www/doc/TclDocs/item.adp 7 Aug 2017 23:48:02 -0000 1.3 +++ openacs-4/packages/acs-templating/www/doc/TclDocs/item.adp 3 Sep 2021 09:16:09 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {} +{/doc/acs-templating/ {ACS Templating}} {}

    Namespace item

    Index: openacs-4/packages/acs-templating/www/doc/TclDocs/namespace-list.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/TclDocs/namespace-list.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-templating/www/doc/TclDocs/namespace-list.adp 7 Aug 2017 23:48:02 -0000 1.3 +++ openacs-4/packages/acs-templating/www/doc/TclDocs/namespace-list.adp 3 Sep 2021 09:16:10 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {All Namespaces} +{/doc/acs-templating/ {ACS Templating}} {All Namespaces} All Namespaces

    All Index: openacs-4/packages/acs-templating/www/doc/TclDocs/namespaces.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/TclDocs/namespaces.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-templating/www/doc/TclDocs/namespaces.adp 7 Aug 2017 23:48:02 -0000 1.3 +++ openacs-4/packages/acs-templating/www/doc/TclDocs/namespaces.adp 3 Sep 2021 09:16:10 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {ATS and CMS Tcl Procedure Specifications} +{/doc/acs-templating/ {ACS Templating}} {ATS and CMS Tcl Procedure Specifications} ATS and CMS Tcl Procedure Specifications

    ATS and CMS Tcl Procedure Index: openacs-4/packages/acs-templating/www/doc/TclDocs/pagination.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/TclDocs/pagination.adp,v diff -u -r1.3.2.1 -r1.3.2.2 --- openacs-4/packages/acs-templating/www/doc/TclDocs/pagination.adp 19 Dec 2019 19:06:27 -0000 1.3.2.1 +++ openacs-4/packages/acs-templating/www/doc/TclDocs/pagination.adp 3 Sep 2021 09:16:11 -0000 1.3.2.2 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {} +{/doc/acs-templating/ {ACS Templating}} {}

    Namespace pagination

    Index: openacs-4/packages/acs-templating/www/doc/TclDocs/publish.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/TclDocs/publish.adp,v diff -u -r1.5.2.2 -r1.5.2.3 --- openacs-4/packages/acs-templating/www/doc/TclDocs/publish.adp 5 Jan 2021 17:10:17 -0000 1.5.2.2 +++ openacs-4/packages/acs-templating/www/doc/TclDocs/publish.adp 3 Sep 2021 09:16:11 -0000 1.5.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {} +{/doc/acs-templating/ {ACS Templating}} {}

    Namespace publish

    @@ -129,7 +129,7 @@

    url_ref* The name of the variable in the calling frame that -will receive the relative URL of the file in the filesystem which +will receive the relative URL of the file in the file system which contains the content blob
    @@ -427,11 +427,11 @@
    publish::handle_item
    -
    Render an item either by looking it up in the -temporary cache, or by using the appropriate mime handler. Once the -item is rendered, it is stored in the temporary cache under a key -which combines the item_id, any extra HTML parameters, and a flag -which specifies whether the item was merged with its template.
    +
    Render an item either by looking it up in the temporary +cache, or by using the appropriate mime handler. Once the item is +rendered, it is stored in the temporary cache under a key which +combines the item_id, any extra HTML parameters, and a flag which +specifies whether the item was merged with its template.
    This proc takes the same arguments as the individual mime handlers.
    Index: openacs-4/packages/acs-templating/www/doc/TclDocs/request.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/TclDocs/request.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-templating/www/doc/TclDocs/request.adp 7 Aug 2017 23:48:02 -0000 1.3 +++ openacs-4/packages/acs-templating/www/doc/TclDocs/request.adp 3 Sep 2021 09:16:11 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {} +{/doc/acs-templating/ {ACS Templating}} {}

    Namespace request

    Index: openacs-4/packages/acs-templating/www/doc/TclDocs/tcl-procs.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/TclDocs/tcl-procs.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-templating/www/doc/TclDocs/tcl-procs.adp 25 Apr 2018 08:42:17 -0000 1.4 +++ openacs-4/packages/acs-templating/www/doc/TclDocs/tcl-procs.adp 3 Sep 2021 09:16:11 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {ArsDigita Templating System, Content Management Tcl +{/doc/acs-templating/ {ACS Templating}} {ArsDigita Templating System, Content Management Tcl Procedure Specifications} ArsDigita Templating System, Content Management Tcl Procedure Specifications Index: openacs-4/packages/acs-templating/www/doc/TclDocs/util.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/TclDocs/util.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-templating/www/doc/TclDocs/util.adp 7 Aug 2017 23:48:02 -0000 1.3 +++ openacs-4/packages/acs-templating/www/doc/TclDocs/util.adp 3 Sep 2021 09:16:12 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {} +{/doc/acs-templating/ {ACS Templating}} {}

    Namespace util

    Index: openacs-4/packages/acs-templating/www/doc/TclDocs/widget.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/TclDocs/widget.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-templating/www/doc/TclDocs/widget.adp 29 Dec 2017 09:59:11 -0000 1.4 +++ openacs-4/packages/acs-templating/www/doc/TclDocs/widget.adp 3 Sep 2021 09:16:14 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {} +{/doc/acs-templating/ {ACS Templating}} {}

    Namespace widget

    Index: openacs-4/packages/acs-templating/www/doc/api/database.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/api/database.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-templating/www/doc/api/database.adp 7 Aug 2017 23:48:02 -0000 1.3 +++ openacs-4/packages/acs-templating/www/doc/api/database.adp 3 Sep 2021 09:16:14 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System API: Database Query} +{/doc/acs-templating/ {ACS Templating}} {Templating System API: Database Query} Templating System API: Database Query

    Database Query

    Index: openacs-4/packages/acs-templating/www/doc/api/element.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/api/element.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-templating/www/doc/api/element.adp 25 Apr 2018 08:42:17 -0000 1.4 +++ openacs-4/packages/acs-templating/www/doc/api/element.adp 3 Sep 2021 09:16:15 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System API: Form Element} +{/doc/acs-templating/ {ACS Templating}} {Templating System API: Form Element} Templating System API: Form Element

    Form Element

    Index: openacs-4/packages/acs-templating/www/doc/api/form.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/api/form.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-templating/www/doc/api/form.adp 25 Apr 2018 08:42:17 -0000 1.4 +++ openacs-4/packages/acs-templating/www/doc/api/form.adp 3 Sep 2021 09:16:15 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System API: Form} +{/doc/acs-templating/ {ACS Templating}} {Templating System API: Form} Templating System API: Form

    Form

    Index: openacs-4/packages/acs-templating/www/doc/api/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/api/index.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-templating/www/doc/api/index.adp 7 Aug 2017 23:48:02 -0000 1.3 +++ openacs-4/packages/acs-templating/www/doc/api/index.adp 3 Sep 2021 09:16:15 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Object and API Reference} +{/doc/acs-templating/ {ACS Templating}} {Object and API Reference} Object and API Reference

    Object and API Reference

    Index: openacs-4/packages/acs-templating/www/doc/api/multirow.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/api/multirow.adp,v diff -u -r1.4.2.1 -r1.4.2.2 --- openacs-4/packages/acs-templating/www/doc/api/multirow.adp 2 May 2021 19:58:28 -0000 1.4.2.1 +++ openacs-4/packages/acs-templating/www/doc/api/multirow.adp 3 Sep 2021 09:16:16 -0000 1.4.2.2 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System API: Multirow} +{/doc/acs-templating/ {ACS Templating}} {Templating System API: Multirow} Templating System API: Multirow

    Multirow

    @@ -20,20 +20,17 @@ for the row specified by index.
    -
    -multirow set name index column value
    +
    multirow set name index column value
     

    Set the value of a column in a specified row.

    multirow size name
     

    Get the number of rows in the data source.

    -
    -multirow create name column [column ...]
    +
    multirow create name column [column ...]
     

    Set up a new multirow data source. This is an alternative to having db_multirow create the data source.

    -
    -multirow append name value [value ...]
    +
    multirow append name value [value ...]
     

    Add a row at the end of the data source. Extra values are dropped, missing values default to the empty string

    Index: openacs-4/packages/acs-templating/www/doc/api/request.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/api/request.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-templating/www/doc/api/request.adp 25 Apr 2018 08:42:17 -0000 1.4 +++ openacs-4/packages/acs-templating/www/doc/api/request.adp 3 Sep 2021 09:16:16 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System API: Page Request} +{/doc/acs-templating/ {ACS Templating}} {Templating System API: Page Request} Templating System API: Page Request

    Page Request

    Index: openacs-4/packages/acs-templating/www/doc/appendices/memory.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/appendices/memory.adp,v diff -u -r1.4.2.1 -r1.4.2.2 --- openacs-4/packages/acs-templating/www/doc/appendices/memory.adp 5 Jan 2021 17:10:17 -0000 1.4.2.1 +++ openacs-4/packages/acs-templating/www/doc/appendices/memory.adp 3 Sep 2021 09:16:17 -0000 1.4.2.2 @@ -1,15 +1,15 @@ -{/doc/acs-templating {ACS Templating}} {Templating System Appendix D: Parsing templates in +{/doc/acs-templating/ {ACS Templating}} {Templating System Appendix D: Parsing templates in memory} Templating System Appendix D: Parsing templates in memory

    Parsing Templates in Memory

    Templating System

    The templating system code is oriented towards parsing templates -stored in the filesystem, in conjunction with a Tcl script that is +stored in the file system, in conjunction with a Tcl script that is also stored as a file. However, when the template is not actually -stored in the filesystem, you will need to parse it as a string in +stored in the file system, you will need to parse it as a string in memory. Two common situations in which this occurs are:

    • Templates are stored in the database.
    • Templates are generated dynamically, possibly based in turn on Index: openacs-4/packages/acs-templating/www/doc/demo/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/demo/index.adp,v diff -u -r1.6 -r1.6.2.1 --- openacs-4/packages/acs-templating/www/doc/demo/index.adp 28 Nov 2018 13:05:45 -0000 1.6 +++ openacs-4/packages/acs-templating/www/doc/demo/index.adp 3 Sep 2021 09:16:17 -0000 1.6.2.1 @@ -1,4 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System Samples} + +{/doc/acs-templating/ {ACS Templating}} {Templating System Samples} Templating System Samples

      Samples

      @@ -96,8 +97,6 @@ below. - - +
      DescriptionDataTemplateCompiled
      @@ -109,53 +108,28 @@
      Repeating template chunks for each row of a query result, with custom manipulation of dataViewViewViewView
      Repeating template chunks with grouping ViewViewViewViewViewViewViewViewViewViewViewView + + + - + - - - + -
      Repeating template chunks with grouping -ViewViewViewViewRepeating template chunks as cells of a grid
      Repeating template chunks as cells of a gridViewViewViewView
      Repeating template chunks for each element of a listViewViewViewViewRepeating template chunks for each element of a list
      -

      Both Iteration and Composition

      - - - +

      Both Iteration and Composition

      ViewPlain
      FancyPlain
      FancyPlain
      Fancy
      AbsoluteViewOuter
      IncludedOuter
      IncludedViewViewViewViewView - + - + - + -
      DescriptionDataTemplateCompiled
      Template
      Output
      Apply different skins to the same dataView -Plain
      Fancy -
      -Plain
      Fancy -
      -Plain
      Fancy
      Absolute -
      Apply different skins to the same data
      Passing a multirow datasource to an included pageView -Outer
      Included -
      -Outer
      Included -
      ViewPassing a multirow datasource to an included page
      Processing a template from a string (not file)ViewViewViewViewProcessing a template from a string (not file)
      -

      Using ListBuilder

      - - - - - - - - - - - +

      Using ListBuilder

      @@ -239,11 +213,7 @@ index
      -
      DescriptionDataTemplateCompiled
      Template
      Output View
      -

      Forms

      - - - +

      Forms

      @@ -254,58 +224,35 @@ Form
      Target
      Error Page +  -
      DescriptionDataTemplateCompiled
      Template
      Output Form
      Target
      -
      Report an error related to a request.ViewViewPlainView
      -

      Using the Form Manager.

      - - - - - - - - - - +

    Using the Form Manager.

    ViewViewViewViewViewSimple
    GriddedSimple
    GriddedSimple
    GriddedViewViewViewViewViewViewViewInline Error MessageSitewide Error +PageValid RequestViewViewViewViewViewViewViewViewViewSubmit
    ConfirmSubmit
    ConfirmViewViewViewViewViewViewViewViewView - + - + - + - - - + + + - + - + - + - + +
    DescriptionDataTemplateCompiled
    Template
    Output
    A simple formViewViewViewViewA simple form
    A form with button groupsView -Simple
    Gridded -
    -Simple
    Gridded -
    -Simple
    Gridded -
    A form with button groups
    A form with Select widgetsViewViewViewViewA form with Select widgets
    Custom validation of a requestViewViewViewInline Error -Message
    Sitewide Error Page
    Valid -Request
    A form with the Date widgetViewViewViewViewCustom validation of a request
    A form with the Date widget
    Editing: several pages in oneViewViewViewViewEditing: several pages in one
    A form with a custom confirmation pageView -Submit
    Confirm -
    -Submit
    Confirm -
    ViewA form with a custom confirmation page
    A form with display/edit modesViewViewViewViewA form with display/edit modes
    A form with multiple submit buttonsViewViewViewViewA form with multiple submit buttons


    +
    -
    -
    - Index: openacs-4/packages/acs-templating/www/doc/exercise/ats-for-designers.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/exercise/ats-for-designers.adp,v diff -u -r1.7.2.2 -r1.7.2.3 --- openacs-4/packages/acs-templating/www/doc/exercise/ats-for-designers.adp 5 Jan 2021 17:10:17 -0000 1.7.2.2 +++ openacs-4/packages/acs-templating/www/doc/exercise/ats-for-designers.adp 3 Sep 2021 09:16:19 -0000 1.7.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {The ACS Templating System for Web Designers} +{/doc/acs-templating/ {ACS Templating}} {The ACS Templating System for Web Designers} The ACS Templating System for Web Designers

    The ACS Templating System for Web Designers

    @@ -123,17 +123,17 @@ <else> tags allow you to alter the format of your page to accommodate data changes. The function of <if> is straightforward enough: given a condition -- such as \@x\@ equals 5 --- all the text/html/dynamic data between the opening and -closing <if> tags will be displayed if and only if \@x\@ does -in fact equal 5. A complete listing of currently supported -conditions and some brief explanatory notes can be found here. Also, a few more things to keep in +-- all the text/html/dynamic data between the opening and closing +<if> tags will be displayed if and only if \@x\@ does in fact +equal 5. A complete listing of currently supported conditions and +some brief explanatory notes can be found here. Also, a few more things to keep in mind:

    • in Tcl all variables, even numbers, are stored as text strings with quantitative values, so conditions like less than, greater than, and (not) between can also be used with text to determine alphabetical order: a < b < ... < -z, lowercase letters are greater than uppercase, and +z, lower-case letters are greater than upper-case, and numbers less than letters. Example: "you" are greater than "me", and "I" am less than "you"
    • the "between" conditions checks inclusively, so @@ -176,11 +176,11 @@
      • the <slave> tag indicates where on the master page the slave section is inserted
      • slave pages indicate the source of the master file with the -<master> tag, referring by the filename only, and not +<master> tag, referring by the file name only, and not including its ".adp" extension
      • as mentioned earlier, slave sections do not require <html>, <head>, and <body> tags when contained within a master tag already formatted for HTML
      • as the demonstration points out, pages are browsed at the .acs -page sharing the same filename as the slave, not master
      • the master page can be viewed at its own .acs page, but shows +page sharing the same file name as the slave, not master
      • the master page can be viewed at its own .acs page, but shows nothing in place of the <slave> tag
      • you can have nested slave sections, that is, a slave section within another slave
      • you cannot have two different slave sections within the same master (go ahead and try adding an extra @@ -198,8 +198,9 @@

        Now that the secrets of <master> and <slave> have been revealed, it's time to put a little of your newfound knowledge to use. Open up form-sample.adp, a standalone, -independently formatted html page, and enslave it to the mastery of your personal web page. It would also be nice if you were to -label the newly inserted form with some slave-specific title.

        +independently formatted html page, and enslave it to the mastery of +your personal web page. It would also be nice if you were to label +the newly inserted form with some slave-specific title.

        Exercise Four: The functions of <formtemplate>
        @@ -290,4 +291,4 @@


        shuynh\@arsdigita.com
        -Last modified: Fri Nov 17 10:14:44 EST 2000 +Last modified: Fri Nov 17 10:14:44 EST 2000 \ No newline at end of file Index: openacs-4/packages/acs-templating/www/doc/gen/proc-doc.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/gen/proc-doc.adp,v diff -u -r1.8 -r1.8.2.1 --- openacs-4/packages/acs-templating/www/doc/gen/proc-doc.adp 3 Jul 2018 18:19:14 -0000 1.8 +++ openacs-4/packages/acs-templating/www/doc/gen/proc-doc.adp 3 Sep 2021 09:16:20 -0000 1.8.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Commenting Tcl procedures for parsing} +{/doc/acs-templating/ {ACS Templating}} {Commenting Tcl procedures for parsing} Commenting Tcl procedures for parsing

        Using comments to document Tcl procedures

        @@ -134,8 +134,7 @@ object_id would be marked as required, alert_admin_email would show no default-value description, and granter_id and -privilege_id would show the default info from -above. +privilege_id would show the default info from above.

        On to \@see directive markers:

        # \@see <type of reference><name of reference><url of reference> @@ -155,4 +154,4 @@ completely qualified name of the namespace or procedure.

        - + \ No newline at end of file Index: openacs-4/packages/acs-templating/www/doc/guide/components.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/guide/components.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-templating/www/doc/guide/components.adp 7 Aug 2017 23:48:03 -0000 1.3 +++ openacs-4/packages/acs-templating/www/doc/guide/components.adp 3 Sep 2021 09:16:20 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System User Guide: Building Reusable Template +{/doc/acs-templating/ {ACS Templating}} {Templating System User Guide: Building Reusable Template Components} Templating System User Guide: Building Reusable Template Components Index: openacs-4/packages/acs-templating/www/doc/guide/composite.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/guide/composite.adp,v diff -u -r1.5.2.2 -r1.5.2.3 --- openacs-4/packages/acs-templating/www/doc/guide/composite.adp 5 Jan 2021 17:10:17 -0000 1.5.2.2 +++ openacs-4/packages/acs-templating/www/doc/guide/composite.adp 3 Sep 2021 09:16:20 -0000 1.5.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System User Guide: Composite Page} +{/doc/acs-templating/ {ACS Templating}} {Templating System User Guide: Composite Page} Templating System User Guide: Composite Page

        Assembling a Page from Components

        @@ -110,7 +110,7 @@ them. In some situations, the following facility can help to reduce duplication or to handle special situations more effectively.

        The "code" part can divert to another page by calling -template::set_file to modify the filename stub of the +template::set_file to modify the file name stub of the page being processed. For convenience, ad_return_template can be used with the same effect; it is a wrapper for template::set_file, and it Index: openacs-4/packages/acs-templating/www/doc/guide/data.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/guide/data.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-templating/www/doc/guide/data.adp 25 Apr 2018 08:42:18 -0000 1.4 +++ openacs-4/packages/acs-templating/www/doc/guide/data.adp 3 Sep 2021 09:16:21 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System User Guide: Data Sources} +{/doc/acs-templating/ {ACS Templating}} {Templating System User Guide: Data Sources} Templating System User Guide: Data Sources

        Implementing Data Sources

        @@ -59,8 +59,7 @@

        onelist data sources are implemented by creating a Tcl list:

        -
        -set names [list "Walter" "Fred" "Susy" "Frieda"]
        +
        set names [list "Walter" "Fred" "Susy" "Frieda"]

        The query procedure may be used to set a onelist data source based on a one-column database query:

        query name onevalue "select name from users" Index: openacs-4/packages/acs-templating/www/doc/guide/document.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/guide/document.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-templating/www/doc/guide/document.adp 25 Apr 2018 08:42:18 -0000 1.4 +++ openacs-4/packages/acs-templating/www/doc/guide/document.adp 3 Sep 2021 09:16:21 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System User Guide: Documenting Data +{/doc/acs-templating/ {ACS Templating}} {Templating System User Guide: Documenting Data Sources} Templating System User Guide: Documenting Data Sources Index: openacs-4/packages/acs-templating/www/doc/guide/form-datatypes.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/guide/form-datatypes.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-templating/www/doc/guide/form-datatypes.adp 7 Aug 2017 23:48:03 -0000 1.3 +++ openacs-4/packages/acs-templating/www/doc/guide/form-datatypes.adp 3 Sep 2021 09:16:21 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System User Guide: Custom Data Types} +{/doc/acs-templating/ {ACS Templating}} {Templating System User Guide: Custom Data Types} Templating System User Guide: Custom Data Types

        Custom Data Types

        Index: openacs-4/packages/acs-templating/www/doc/guide/form-process.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/guide/form-process.adp,v diff -u -r1.3.2.1 -r1.3.2.2 --- openacs-4/packages/acs-templating/www/doc/guide/form-process.adp 11 Mar 2019 08:25:47 -0000 1.3.2.1 +++ openacs-4/packages/acs-templating/www/doc/guide/form-process.adp 3 Sep 2021 09:16:21 -0000 1.3.2.2 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System User Guide: Validating and Processing Form +{/doc/acs-templating/ {ACS Templating}} {Templating System User Guide: Validating and Processing Form Submissions} Templating System User Guide: Validating and Processing Form Submissions Index: openacs-4/packages/acs-templating/www/doc/guide/form-templates.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/guide/form-templates.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-templating/www/doc/guide/form-templates.adp 7 Aug 2017 23:48:03 -0000 1.3 +++ openacs-4/packages/acs-templating/www/doc/guide/form-templates.adp 3 Sep 2021 09:16:21 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System User Guide: Customizing Form +{/doc/acs-templating/ {ACS Templating}} {Templating System User Guide: Customizing Form Templates} Templating System User Guide: Customizing Form Templates Index: openacs-4/packages/acs-templating/www/doc/guide/form-widgets.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/guide/form-widgets.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-templating/www/doc/guide/form-widgets.adp 7 Aug 2017 23:48:03 -0000 1.3 +++ openacs-4/packages/acs-templating/www/doc/guide/form-widgets.adp 3 Sep 2021 09:16:21 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System User Guide: Custom Form Widgets} +{/doc/acs-templating/ {ACS Templating}} {Templating System User Guide: Custom Form Widgets} Templating System User Guide: Custom Form Widgets

        Custom Form Widgets

        Index: openacs-4/packages/acs-templating/www/doc/guide/forms.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/guide/forms.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-templating/www/doc/guide/forms.adp 25 Apr 2018 08:42:18 -0000 1.4 +++ openacs-4/packages/acs-templating/www/doc/guide/forms.adp 3 Sep 2021 09:16:21 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System User Guide: Creating and Populating +{/doc/acs-templating/ {ACS Templating}} {Templating System User Guide: Creating and Populating Forms} Templating System User Guide: Creating and Populating Forms Index: openacs-4/packages/acs-templating/www/doc/guide/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/guide/index.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-templating/www/doc/guide/index.adp 7 Aug 2017 23:48:03 -0000 1.3 +++ openacs-4/packages/acs-templating/www/doc/guide/index.adp 3 Sep 2021 09:16:21 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System User Guide: Overview} +{/doc/acs-templating/ {ACS Templating}} {Templating System User Guide: Overview} Templating System User Guide: Overview

        Overview

        Index: openacs-4/packages/acs-templating/www/doc/guide/master.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/guide/master.adp,v diff -u -r1.5 -r1.5.2.1 --- openacs-4/packages/acs-templating/www/doc/guide/master.adp 25 Apr 2018 08:42:18 -0000 1.5 +++ openacs-4/packages/acs-templating/www/doc/guide/master.adp 3 Sep 2021 09:16:21 -0000 1.5.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System User Guide: Using Master Templates} +{/doc/acs-templating/ {ACS Templating}} {Templating System User Guide: Using Master Templates} Templating System User Guide: Using Master Templates

        Using Master Templates

        @@ -45,8 +45,7 @@

        Write the Master Template

        A master template to implement the page layout shown above would have this basic structure:

        -
        -<html><body><table width="100%" cellspacing="0" cellpadding="0" border="0">
        +
        <html><body><table width="100%" cellspacing="0" cellpadding="0" border="0">
         
         <tr>
           <td><!-- LOGO --></td>
        @@ -94,8 +93,7 @@
         user's name on every page to indicate that the site has been
         personalized. The Tcl script associated with the master template
         would include code like this:

        -
        -set user_name [your_procedure_to_get_the_current_user_name]
        +
        set user_name [your_procedure_to_get_the_current_user_name]

        The template would have a section like this:

        <if \@user_name\@ nil>
           <a href="/register.acs">Register Now!</a>
        Index: openacs-4/packages/acs-templating/www/doc/guide/search.adp
        ===================================================================
        RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/guide/search.adp,v
        diff -u -r1.3.2.1 -r1.3.2.2
        --- openacs-4/packages/acs-templating/www/doc/guide/search.adp	5 Jan 2021 17:10:17 -0000	1.3.2.1
        +++ openacs-4/packages/acs-templating/www/doc/guide/search.adp	3 Sep 2021 09:16:21 -0000	1.3.2.2
        @@ -1,5 +1,5 @@
         
        -{/doc/acs-templating {ACS Templating}} {Templating System User Guide: Search-and-Select
        +{/doc/acs-templating/ {ACS Templating}} {Templating System User Guide: Search-and-Select
         Forms}
         Templating System User Guide: Search-and-Select
         Forms
        @@ -42,7 +42,7 @@
         a user. The administrator requests a page,
         user-edit.acs. The page looks for a query parameter
         named user_id to specify which user to edit.

      • Initially, user_id is not specified. In this case, -the page includes a user search form.

      • The user enters part of a username or screen name and submits +the page includes a user search form.

      • The user enters part of a user name or screen name and submits the form, which returns to the same URL with the query parameter user_search. If this parameter is defined, the page queries the database for potential matches.

      • If one match is found, the page sets a user_id Index: openacs-4/packages/acs-templating/www/doc/guide/skins.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/guide/skins.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-templating/www/doc/guide/skins.adp 7 Aug 2017 23:48:03 -0000 1.3 +++ openacs-4/packages/acs-templating/www/doc/guide/skins.adp 3 Sep 2021 09:16:21 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System User Guide: Presenting Data in Multiple +{/doc/acs-templating/ {ACS Templating}} {Templating System User Guide: Presenting Data in Multiple Styles and Formats} Templating System User Guide: Presenting Data in Multiple Styles and Formats Index: openacs-4/packages/acs-templating/www/doc/guide/tcl.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/guide/tcl.adp,v diff -u -r1.3.2.1 -r1.3.2.2 --- openacs-4/packages/acs-templating/www/doc/guide/tcl.adp 5 Jan 2021 17:10:17 -0000 1.3.2.1 +++ openacs-4/packages/acs-templating/www/doc/guide/tcl.adp 3 Sep 2021 09:16:21 -0000 1.3.2.2 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System User Guide: Embedding Code in +{/doc/acs-templating/ {ACS Templating}} {Templating System User Guide: Embedding Code in Templates} Templating System User Guide: Embedding Code in Templates @@ -16,6 +16,6 @@

        Generally, avoid putting escaped Tcl code in adp files, or generating HTML fragments in Tcl procedures. It subverts the separation of code and layout, one of the benefits of templating. -Embedded Tcl makes templates nonportable to ACS/Java.

        +Embedded Tcl makes templates non-portable to ACS/Java.


        \ No newline at end of file Index: openacs-4/packages/acs-templating/www/doc/guide/templates.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/guide/templates.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-templating/www/doc/guide/templates.adp 7 Aug 2017 23:48:03 -0000 1.4 +++ openacs-4/packages/acs-templating/www/doc/guide/templates.adp 3 Sep 2021 09:16:22 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System User Guide: Writing Templates} +{/doc/acs-templating/ {ACS Templating}} {Templating System User Guide: Writing Templates} Templating System User Guide: Writing Templates

        Writing Templates

        Index: openacs-4/packages/acs-templating/www/doc/guide/wizard-procs-doc.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/guide/wizard-procs-doc.adp,v diff -u -r1.6.2.2 -r1.6.2.3 --- openacs-4/packages/acs-templating/www/doc/guide/wizard-procs-doc.adp 5 Jan 2021 17:10:17 -0000 1.6.2.2 +++ openacs-4/packages/acs-templating/www/doc/guide/wizard-procs-doc.adp 3 Sep 2021 09:16:22 -0000 1.6.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Using the Wizard} +{/doc/acs-templating/ {ACS Templating}} {Using the Wizard} Using the Wizard

        Overview Of How To Make A Wizard

        @@ -155,11 +155,11 @@ load_last_visited_step -key $yourkey" before "template::wizard get_current_step", after "get_current_step" call "template::wizard -save_last_visited_step -key $yourkey"

        Also the wizard params name is present across the current wizards -being used, so the developer has to be aware not to use the same -names with different purpose. For example on main wizard with have -a param called "name" for the username. And on on sub -wizard we have the param again called "name" but used for -the filename.

        +save_last_visited_step -key $yourkey"

        Also the wizard params name is present across the current +wizards being used, so the developer has to be aware not to use the +same names with different purpose. For example on main wizard with +have a param called "name" for the user name. And on on +sub wizard we have the param again called "name" but used +for the file name.

      Index: openacs-4/packages/acs-templating/www/doc/guide/wizards.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/guide/wizards.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-templating/www/doc/guide/wizards.adp 25 Apr 2018 08:42:18 -0000 1.4 +++ openacs-4/packages/acs-templating/www/doc/guide/wizards.adp 3 Sep 2021 09:16:22 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System User Guide: Integrating Forms into a +{/doc/acs-templating/ {ACS Templating}} {Templating System User Guide: Integrating Forms into a Wizard} Templating System User Guide: Integrating Forms into a Wizard @@ -22,15 +22,13 @@

      Add steps

      Once the wizard is created, use the wizard create command to add steps to it:

      -
      -wizard add make_sandwich -label "Add the lettuce" -url "add-lettuce"
      +
      wizard add make_sandwich -label "Add the lettuce" -url "add-lettuce"

      In auto-generated wizards, the wizard steps appear in the order they were created. See the wizard API for optional parameters to this command. Alternatively, wizard steps can be created in the wizard create statement with the -steps option:

      -
      -wizard create make_sandwich -action "eat-sandwich.acs?sandwich_id=$sandwich_id" -params { 
      +
      wizard create make_sandwich -action "eat-sandwich.acs?sandwich_id=$sandwich_id" -params { 
         sandwich_id 
       } -steps { 
         1 -label "Add Meat"    -url "add-meat" -repeat
      @@ -44,8 +42,7 @@
       statement. At any point in the wizard process, a state
       variable's value can be updated using the wizard
       set_param command.

      -
      -# check to see if a sandwich_id has been passed in by the wizard
      +
      # check to see if a sandwich_id has been passed in by the wizard
       request set_param sandwich_id -datatype integer -optional
       
       # if not, then set the sandwich_id
      Index: openacs-4/packages/acs-templating/www/doc/tagref/formerror.adp
      ===================================================================
      RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/formerror.adp,v
      diff -u -r1.4 -r1.4.2.1
      --- openacs-4/packages/acs-templating/www/doc/tagref/formerror.adp	7 Aug 2017 23:48:03 -0000	1.4
      +++ openacs-4/packages/acs-templating/www/doc/tagref/formerror.adp	3 Sep 2021 09:16:22 -0000	1.4.2.1
      @@ -1,5 +1,5 @@
       
      -{/doc/acs-templating {ACS Templating}} {Templating System Tag Reference: formerror}
      +{/doc/acs-templating/ {ACS Templating}} {Templating System Tag Reference: formerror}
       Templating System Tag Reference: formerror
       
       

      formerror

      Index: openacs-4/packages/acs-templating/www/doc/tagref/formgroup.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/formgroup.adp,v diff -u -r1.5 -r1.5.2.1 --- openacs-4/packages/acs-templating/www/doc/tagref/formgroup.adp 25 Apr 2018 08:42:18 -0000 1.5 +++ openacs-4/packages/acs-templating/www/doc/tagref/formgroup.adp 3 Sep 2021 09:16:22 -0000 1.5.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System Tag Reference: Formgroup} +{/doc/acs-templating/ {ACS Templating}} {Templating System Tag Reference: Formgroup} Templating System Tag Reference: Formgroup

      Formgroup

      @@ -42,8 +42,7 @@ attributes in the input tags of each radio button or check box in the group. Although possible, newer browser security features such as CSP discourage the use of inline Javascript event -handlers.

      -<formgroup id="services" style="background-color:white;">
      +handlers.

      <formgroup id="services" style="background-color:white;">
    • See the formtemplate and formwidget tags for more information on writing the body of a dynamic form Index: openacs-4/packages/acs-templating/www/doc/tagref/formtemplate.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/formtemplate.adp,v diff -u -r1.5 -r1.5.2.1 --- openacs-4/packages/acs-templating/www/doc/tagref/formtemplate.adp 25 Apr 2018 08:42:18 -0000 1.5 +++ openacs-4/packages/acs-templating/www/doc/tagref/formtemplate.adp 3 Sep 2021 09:16:23 -0000 1.5.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System Tag Reference: Formtemplate} +{/doc/acs-templating/ {ACS Templating}} {Templating System Tag Reference: Formtemplate} Templating System Tag Reference: Formtemplate

      Formtemplate

      @@ -34,8 +34,7 @@

      If the body of the formtemplate is empty, the templating system will generate a form automatically based on the list of elements created in the Tcl script associated with the -template:

      -<formtemplate id="add_user" style="standard"></formtemplate>

      The style attribute is optional. It may be used to +template:

      <formtemplate id="add_user" style="standard"></formtemplate>

      The style attribute is optional. It may be used to select a style template from /ats/templates/forms for determining the layout of the auto-generated form. The default style is defined in the DefaultFormStyle parameter on the @@ -46,8 +45,7 @@ formtemplate tag. The system will include all such attributes in the form tag of the rendered HTML form. Although possible, newer browser security features such as CSP -discourage the use of inline Javascript event handlers.

      -<formtemplate id="add_user" style="background-color:white;">

      This will work for both autogenerated and explicitly formatted +discourage the use of inline Javascript event handlers.

      <formtemplate id="add_user" style="background-color:white;">

      This will work for both autogenerated and explicitly formatted forms.

    • See the formwidget and formgroup tags for more Index: openacs-4/packages/acs-templating/www/doc/tagref/formwidget.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/formwidget.adp,v diff -u -r1.5 -r1.5.2.1 --- openacs-4/packages/acs-templating/www/doc/tagref/formwidget.adp 25 Apr 2018 08:42:18 -0000 1.5 +++ openacs-4/packages/acs-templating/www/doc/tagref/formwidget.adp 3 Sep 2021 09:16:23 -0000 1.5.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System Tag Reference: Formwidget} +{/doc/acs-templating/ {ACS Templating}} {Templating System Tag Reference: Formwidget} Templating System Tag Reference: Formwidget

      Formwidget

      @@ -39,8 +39,7 @@ attributes in the input or select tag of the rendered HTML form. Although possible, newer browser security features such as CSP discourage the use of inline Javascript event -handlers.

      -<formwidget id="cc_number" style="background-color:white;">
      +handlers.

      <formwidget id="cc_number" style="background-color:white;">
    • See the formtemplate and formgroup tags for more information on writing the body of a dynamic form template.

    • Index: openacs-4/packages/acs-templating/www/doc/tagref/grid.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/grid.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-templating/www/doc/tagref/grid.adp 7 Aug 2017 23:48:03 -0000 1.4 +++ openacs-4/packages/acs-templating/www/doc/tagref/grid.adp 3 Sep 2021 09:16:24 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System Tag Reference: Grid} +{/doc/acs-templating/ {ACS Templating}} {Templating System Tag Reference: Grid} Templating System Tag Reference: Grid

      Grid

      Index: openacs-4/packages/acs-templating/www/doc/tagref/group.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/group.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-templating/www/doc/tagref/group.adp 25 Apr 2018 08:42:18 -0000 1.4 +++ openacs-4/packages/acs-templating/www/doc/tagref/group.adp 3 Sep 2021 09:16:24 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System Tag Reference: Group} +{/doc/acs-templating/ {ACS Templating}} {Templating System Tag Reference: Group} Templating System Tag Reference: Group

      Group

      Index: openacs-4/packages/acs-templating/www/doc/tagref/if.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/if.adp,v diff -u -r1.5 -r1.5.2.1 --- openacs-4/packages/acs-templating/www/doc/tagref/if.adp 25 Apr 2018 08:42:18 -0000 1.5 +++ openacs-4/packages/acs-templating/www/doc/tagref/if.adp 3 Sep 2021 09:16:24 -0000 1.5.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System Tag Reference: If} +{/doc/acs-templating/ {ACS Templating}} {Templating System Tag Reference: If} Templating System Tag Reference: If

      If

      Index: openacs-4/packages/acs-templating/www/doc/tagref/include-optional.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/include-optional.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-templating/www/doc/tagref/include-optional.adp 7 Aug 2017 23:48:03 -0000 1.3 +++ openacs-4/packages/acs-templating/www/doc/tagref/include-optional.adp 3 Sep 2021 09:16:24 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System Tag Reference: include-optional} +{/doc/acs-templating/ {ACS Templating}} {Templating System Tag Reference: include-optional} Templating System Tag Reference: include-optional

      Include

      Index: openacs-4/packages/acs-templating/www/doc/tagref/include.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/include.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-templating/www/doc/tagref/include.adp 25 Apr 2018 08:42:18 -0000 1.4 +++ openacs-4/packages/acs-templating/www/doc/tagref/include.adp 3 Sep 2021 09:16:24 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System Tag Reference: Include} +{/doc/acs-templating/ {ACS Templating}} {Templating System Tag Reference: Include} Templating System Tag Reference: Include

      Include

      @@ -13,12 +13,10 @@ in the same fashion as any other dynamic template; the developer may associate data sources and other properties to them.

      Usage

      -
      -<include src="subtemplate" attribute="value" ...>
      +
      <include src="subtemplate" attribute="value" ...>
      or -
      -<include src="/packages/packagename/www/lib/subtemplate" attribute="value" ...>
      +
      <include src="/packages/packagename/www/lib/subtemplate" attribute="value" ...>

      Notes

      • Arguments may be passed to the subtemplate by specifying @@ -27,8 +25,7 @@ as variables which the subtemplate may reference using the var tag. To pass a dynamic variable to the subtemplate, specify the variable name surrounded by at signs as the value: -
        -<include src="subtemplate" source_id="\@source_id\@" ...>
        +
        <include src="subtemplate" source_id="\@source_id\@" ...>
        Note that passing an html string to a subtemplate via \@var\@ will result in passing an html-escaped and internationalized string. To prevent this, use @@ -38,8 +35,7 @@ scope of the subtemplate. This variant is necessary for e.g. passing a Tcl array like a templating datasource. To pass e.g. users by reference, use this notation: -
        -<include src="subtemplate" &persons="users" ...>
        +
        <include src="subtemplate" &persons="users" ...>
        This is particularly useful for passing onerow and multirow data sourced. Note that in this case, if the subtemplate modifies the value this will affect the includer. When the datasource in the Index: openacs-4/packages/acs-templating/www/doc/tagref/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/index.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-templating/www/doc/tagref/index.adp 25 Apr 2018 08:42:18 -0000 1.4 +++ openacs-4/packages/acs-templating/www/doc/tagref/index.adp 3 Sep 2021 09:16:24 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Template Markup Tag Reference} +{/doc/acs-templating/ {ACS Templating}} {Template Markup Tag Reference} Template Markup Tag Reference

        Template Markup Tag Reference

        Index: openacs-4/packages/acs-templating/www/doc/tagref/list.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/list.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-templating/www/doc/tagref/list.adp 25 Apr 2018 08:42:18 -0000 1.4 +++ openacs-4/packages/acs-templating/www/doc/tagref/list.adp 3 Sep 2021 09:16:24 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System Tag Reference: List} +{/doc/acs-templating/ {ACS Templating}} {Templating System Tag Reference: List} Templating System Tag Reference: List

        List

        Index: openacs-4/packages/acs-templating/www/doc/tagref/listtemplate.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/listtemplate.adp,v diff -u -r1.2 -r1.2.2.1 --- openacs-4/packages/acs-templating/www/doc/tagref/listtemplate.adp 7 Aug 2017 23:48:03 -0000 1.2 +++ openacs-4/packages/acs-templating/www/doc/tagref/listtemplate.adp 3 Sep 2021 09:16:24 -0000 1.2.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System Tag Reference: Listtemplate} +{/doc/acs-templating/ {ACS Templating}} {Templating System Tag Reference: Listtemplate} Templating System Tag Reference: Listtemplate

        Listtemplate

        Index: openacs-4/packages/acs-templating/www/doc/tagref/master.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/master.adp,v diff -u -r1.4 -r1.4.2.1 --- openacs-4/packages/acs-templating/www/doc/tagref/master.adp 25 Apr 2018 08:42:18 -0000 1.4 +++ openacs-4/packages/acs-templating/www/doc/tagref/master.adp 3 Sep 2021 09:16:25 -0000 1.4.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System Tag Reference: Master} +{/doc/acs-templating/ {ACS Templating}} {Templating System Tag Reference: Master} Templating System Tag Reference: Master

        Master

        Index: openacs-4/packages/acs-templating/www/doc/tagref/multiple.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/multiple.adp,v diff -u -r1.5 -r1.5.2.1 --- openacs-4/packages/acs-templating/www/doc/tagref/multiple.adp 25 Apr 2018 08:42:18 -0000 1.5 +++ openacs-4/packages/acs-templating/www/doc/tagref/multiple.adp 3 Sep 2021 09:16:26 -0000 1.5.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System Tag Reference: Multiple} +{/doc/acs-templating/ {ACS Templating}} {Templating System Tag Reference: Multiple} Templating System Tag Reference: Multiple

        Multiple

        Index: openacs-4/packages/acs-templating/www/doc/tagref/noparse.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/noparse.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-templating/www/doc/tagref/noparse.adp 7 Aug 2017 23:48:03 -0000 1.3 +++ openacs-4/packages/acs-templating/www/doc/tagref/noparse.adp 3 Sep 2021 09:16:27 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System Tag Reference: Noparse} +{/doc/acs-templating/ {ACS Templating}} {Templating System Tag Reference: Noparse} Templating System Tag Reference: Noparse

        Noparse

        Index: openacs-4/packages/acs-templating/www/doc/tagref/property.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/property.adp,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/acs-templating/www/doc/tagref/property.adp 20 May 2020 09:20:35 -0000 1.4.2.2 +++ openacs-4/packages/acs-templating/www/doc/tagref/property.adp 3 Sep 2021 09:16:27 -0000 1.4.2.3 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System Tag Reference: Property} +{/doc/acs-templating/ {ACS Templating}} {Templating System Tag Reference: Property} Templating System Tag Reference: Property

        Property

        @@ -8,11 +8,11 @@ : Tag Reference : Property

        Summary

        -

        The property tag is used to set named attributes of the -page. The boolean attribute adp can be used to control, whether -the content of the element should be processed by the ADP parser or -not. Properties are most commonly used to pass information to a master -template, such as a title or logo.

        +

        The property tag is used to set named attributes of +the page. The boolean attribute adp can be used to +control, whether the content of the element should be processed by +the ADP parser or not. Properties are most commonly used to pass +information to a master template, such as a title or logo.

        Usage

        <master src="master">
         <property name="title">My Home Page</property>
        Index: openacs-4/packages/acs-templating/www/doc/tagref/slave.adp
        ===================================================================
        RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/slave.adp,v
        diff -u -r1.4 -r1.4.2.1
        --- openacs-4/packages/acs-templating/www/doc/tagref/slave.adp	25 Apr 2018 08:42:18 -0000	1.4
        +++ openacs-4/packages/acs-templating/www/doc/tagref/slave.adp	3 Sep 2021 09:16:28 -0000	1.4.2.1
        @@ -1,5 +1,5 @@
         
        -{/doc/acs-templating {ACS Templating}} {Templating System Tag Reference: Slave}
        +{/doc/acs-templating/ {ACS Templating}} {Templating System Tag Reference: Slave}
         Templating System Tag Reference: Slave
         
         

        Slave

        Index: openacs-4/packages/acs-templating/www/doc/tagref/switch.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/switch.adp,v diff -u -r1.5 -r1.5.2.1 --- openacs-4/packages/acs-templating/www/doc/tagref/switch.adp 25 Apr 2018 08:42:18 -0000 1.5 +++ openacs-4/packages/acs-templating/www/doc/tagref/switch.adp 3 Sep 2021 09:16:29 -0000 1.5.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System Tag Reference: Switch} +{/doc/acs-templating/ {ACS Templating}} {Templating System Tag Reference: Switch} Templating System Tag Reference: Switch

        Switch

        Index: openacs-4/packages/acs-templating/www/doc/tagref/variable.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/tagref/variable.adp,v diff -u -r1.5 -r1.5.2.1 --- openacs-4/packages/acs-templating/www/doc/tagref/variable.adp 25 Apr 2018 08:42:18 -0000 1.5 +++ openacs-4/packages/acs-templating/www/doc/tagref/variable.adp 3 Sep 2021 09:16:29 -0000 1.5.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System Tag Reference: Variables} +{/doc/acs-templating/ {ACS Templating}} {Templating System Tag Reference: Variables} Templating System Tag Reference: Variables

        Variables

        Index: openacs-4/packages/acs-templating/www/doc/widgets/date.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/widgets/date.adp,v diff -u -r1.3.2.1 -r1.3.2.2 --- openacs-4/packages/acs-templating/www/doc/widgets/date.adp 15 Aug 2019 10:18:49 -0000 1.3.2.1 +++ openacs-4/packages/acs-templating/www/doc/widgets/date.adp 3 Sep 2021 09:16:29 -0000 1.3.2.2 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System Widget Reference: Date} +{/doc/acs-templating/ {ACS Templating}} {Templating System Widget Reference: Date} Templating System Widget Reference: Date

        The Date Widget

        Index: openacs-4/packages/acs-templating/www/doc/widgets/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/widgets/index.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-templating/www/doc/widgets/index.adp 7 Aug 2017 23:48:03 -0000 1.3 +++ openacs-4/packages/acs-templating/www/doc/widgets/index.adp 3 Sep 2021 09:16:29 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System Widget Reference} +{/doc/acs-templating/ {ACS Templating}} {Templating System Widget Reference} Templating System Widget Reference

        Slave

        Index: openacs-4/packages/acs-templating/www/doc/widgets/input.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/widgets/input.adp,v diff -u -r1.5.2.1 -r1.5.2.2 --- openacs-4/packages/acs-templating/www/doc/widgets/input.adp 20 May 2020 09:20:35 -0000 1.5.2.1 +++ openacs-4/packages/acs-templating/www/doc/widgets/input.adp 3 Sep 2021 09:16:29 -0000 1.5.2.2 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System Widget Reference: Input} +{/doc/acs-templating/ {ACS Templating}} {Templating System Widget Reference: Input} Templating System Widget Reference: Input

        The Input Widgets

        Index: openacs-4/packages/acs-templating/www/doc/widgets/select.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/widgets/select.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-templating/www/doc/widgets/select.adp 7 Aug 2017 23:48:03 -0000 1.3 +++ openacs-4/packages/acs-templating/www/doc/widgets/select.adp 3 Sep 2021 09:16:30 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System Widget Reference: Select} +{/doc/acs-templating/ {ACS Templating}} {Templating System Widget Reference: Select} Templating System Widget Reference: Select

        The Input Widgets

        Index: openacs-4/packages/acs-templating/www/doc/widgets/table.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/www/doc/widgets/table.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/acs-templating/www/doc/widgets/table.adp 7 Aug 2017 23:48:03 -0000 1.3 +++ openacs-4/packages/acs-templating/www/doc/widgets/table.adp 3 Sep 2021 09:16:30 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/acs-templating {ACS Templating}} {Templating System Widget Reference: Table} +{/doc/acs-templating/ {ACS Templating}} {Templating System Widget Reference: Table} Templating System Widget Reference: Table

        Table Widget

        Index: openacs-4/packages/ajaxhelper/www/doc/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/ajaxhelper/www/doc/index.adp,v diff -u -r1.2.2.1 -r1.2.2.2 --- openacs-4/packages/ajaxhelper/www/doc/index.adp 11 Mar 2019 08:43:27 -0000 1.2.2.1 +++ openacs-4/packages/ajaxhelper/www/doc/index.adp 3 Sep 2021 09:16:30 -0000 1.2.2.2 @@ -1,5 +1,5 @@ -{/doc/ajaxhelper {Ajax Helper}} {Ajax Helper} +{/doc/ajaxhelper/ {Ajax Helper}} {Ajax Helper} Ajax Helper

        Ajax Helper

        @@ -86,7 +86,7 @@ <a href="#" onClick="\@request;noquote\@">Send Request</a>
        -Consult the API-doc for more information about other parameters you +Consult the api-doc for more information about other parameters you can pass on to the ah::ajaxrequest proc.

        @@ -133,7 +133,7 @@
        Cinematic Effects :

        -Use ah::effects to generate javascript that allows you + Use ah::effects to generate javascript that allows you to implement transitional and cinematic effects to html elements. You will need to consult the scriptaculous documentation http://madrobby.github.io/scriptaculous/core-effects/ Index: openacs-4/packages/assessment/www/doc/as_items.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/doc/as_items.adp,v diff -u -r1.9.2.2 -r1.9.2.3 --- openacs-4/packages/assessment/www/doc/as_items.adp 5 Oct 2019 13:43:47 -0000 1.9.2.2 +++ openacs-4/packages/assessment/www/doc/as_items.adp 3 Sep 2021 09:16:30 -0000 1.9.2.3 @@ -1,5 +1,5 @@ -{/doc/assessment {Assessment}} {As_Items} +{/doc/assessment/ {Assessment}} {As_Items} As_Items

        Overview

        @@ -36,9 +36,9 @@ as_item_display instance.

        Categorization and internationalization -will make it into OpenACS 5.2, therefore, we are not dealing with it -in Assessment separately but use the (to be) built in functionality -of OpenACS 5.2

        +will make it into OpenACS 5.2, therefore, we are not dealing with +it in Assessment separately but use the (to be) built in +functionality of OpenACS 5.2

        Additionally we have support functionality for an as_item. This includes the help functionality. To give Assessment authors flexibility in adapting as_item defaults, help @@ -383,7 +383,8 @@

      • checkbox (as_item_display_cb) - multiple-choice multiple-option
        • choice_orientation (see above)
        • choice_label_orientation
          -
        • allow_multiple_p - Is it allow one to select multiple values ?
        • sort_order_type: Numerical, alphabetic, randomized or by order +
        • allow_multiple_p - Is it allow one to select multiple values +?
        • sort_order_type: Numerical, alphabetic, randomized or by order of entry (sort_order field).
        • item_answer_alignment - the orientation between the "question part" of the Item (the Index: openacs-4/packages/assessment/www/doc/as_types.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/doc/as_types.adp,v diff -u -r1.2 -r1.2.2.1 --- openacs-4/packages/assessment/www/doc/as_types.adp 7 Aug 2017 23:48:04 -0000 1.2 +++ openacs-4/packages/assessment/www/doc/as_types.adp 3 Sep 2021 09:16:30 -0000 1.2.2.1 @@ -1,5 +1,5 @@ -{/doc/assessment {Assessment}} {Item Types and Item Display Types} +{/doc/assessment/ {Assessment}} {Item Types and Item Display Types} Item Types and Item Display Types

          Overview

          Index: openacs-4/packages/assessment/www/doc/data-model.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/doc/data-model.adp,v diff -u -r1.1.2.2 -r1.1.2.3 --- openacs-4/packages/assessment/www/doc/data-model.adp 5 Oct 2019 13:43:47 -0000 1.1.2.2 +++ openacs-4/packages/assessment/www/doc/data-model.adp 3 Sep 2021 09:16:30 -0000 1.1.2.3 @@ -1,5 +1,5 @@ -{/doc/assessment {Assessment}} {Assessment Data Model Overview} +{/doc/assessment/ {Assessment}} {Assessment Data Model Overview} Assessment Data Model Overview

          Overview

          Index: openacs-4/packages/assessment/www/doc/data_collection.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/doc/data_collection.adp,v diff -u -r1.5.2.2 -r1.5.2.3 --- openacs-4/packages/assessment/www/doc/data_collection.adp 17 Aug 2019 09:29:28 -0000 1.5.2.2 +++ openacs-4/packages/assessment/www/doc/data_collection.adp 3 Sep 2021 09:16:30 -0000 1.5.2.3 @@ -1,5 +1,5 @@ -{/doc/assessment {Assessment}} {Data Collection} +{/doc/assessment/ {Assessment}} {Data Collection} Data Collection

          Overview

          @@ -250,7 +250,7 @@
        • Signing of content -allows one to verify that the data submitted is actually from the +allows to verify that the data submitted is actually from the person it is pretended to be from. This assumes a public key environment where the public key is stored along with the user information (e.g. with the users table) and the data stored in Index: openacs-4/packages/assessment/www/doc/display_types.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/doc/display_types.adp,v diff -u -r1.7.2.2 -r1.7.2.3 --- openacs-4/packages/assessment/www/doc/display_types.adp 5 Oct 2019 13:43:47 -0000 1.7.2.2 +++ openacs-4/packages/assessment/www/doc/display_types.adp 3 Sep 2021 09:16:30 -0000 1.7.2.3 @@ -1,5 +1,5 @@ -{/doc/assessment {Assessment}} {As_Item Display Types} +{/doc/assessment/ {Assessment}} {As_Item Display Types} As_Item Display Types

          Overview

          @@ -95,7 +95,8 @@
      • checkbox - multiple-choice multiple-option
          -
        • choice_orientation (see above)
        • allow_multiple_p - Is it allow one to select multiple values ?
        • sort_order: Numerical, alphabetic, randomized or by order of +
        • choice_orientation (see above)
        • allow_multiple_p - Is it allow one to select multiple values +?
        • sort_order: Numerical, alphabetic, randomized or by order of entry (sort_order field).
      • select - multiple-option displayed in "popup Index: openacs-4/packages/assessment/www/doc/grouping.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/doc/grouping.adp,v diff -u -r1.8.2.1 -r1.8.2.2 --- openacs-4/packages/assessment/www/doc/grouping.adp 17 Aug 2019 09:29:28 -0000 1.8.2.1 +++ openacs-4/packages/assessment/www/doc/grouping.adp 3 Sep 2021 09:16:30 -0000 1.8.2.2 @@ -1,5 +1,5 @@ -{/doc/assessment {Assessment}} {Assessment} +{/doc/assessment/ {Assessment}} {Assessment} Assessment

        Here is a graphical overview of the subsystem in the Assessment @@ -41,9 +41,9 @@ survey though.

      • secure_access_p - The assessment can only be taken if a secure connection (https) is used.
      • reuse_responses_p - If -yes, the system will look for previous responses to the -questions and prefill the last answer the respondee has given in -the assessment form of the respondee
      • show_item_name_p - If +yes, the system will look for previous responses to the questions +and prefill the last answer the respondee has given in the +assessment form of the respondee
      • show_item_name_p - If yes, the respondee will see the name of the item in addition to the item itself when taking the survey.
      • entry_page - The customizable entry page that will be displayed before the first response. 
      • exit_page - Customizable exit / thank you page that will be @@ -84,7 +84,7 @@
        • custom_header - Custom header (and footer) that will be -displayed the respondee when answering an assessment. +displayed to the respondee when answering an assessment. Possibility to include system variables (e.g. first name).
        • custom_footer
        • form_template - Style (form_template) that will be used for Index: openacs-4/packages/assessment/www/doc/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/doc/index.adp,v diff -u -r1.5.2.1 -r1.5.2.2 --- openacs-4/packages/assessment/www/doc/index.adp 17 Aug 2019 09:29:28 -0000 1.5.2.1 +++ openacs-4/packages/assessment/www/doc/index.adp 3 Sep 2021 09:16:31 -0000 1.5.2.2 @@ -1,15 +1,15 @@ -{/doc/assessment {Assessment}} {Assessment Overview} +{/doc/assessment/ {Assessment}} {Assessment Overview} Assessment Overview

          Introduction

          The Assessment Package unites the work and needs of various members of the OpenACS community for data collection functionality within the OpenACS framework. We're using the term "Assessment" instead of "Survey" or -"Questionnaire" (or "Case Report Form" a.k.a. CRF, -the term used in clinical trials) because it is a term used by IMS -and because it connotes the more generic nature of the data +"Questionnaire" (or "Case Report Form" a.k.a. +CRF, the term used in clinical trials) because it is a term used by +IMS and because it connotes the more generic nature of the data collection system we're focusing on.

          There has been considerable recent interest in expanding the capabilities of generic data collection packages within OpenACS. Index: openacs-4/packages/assessment/www/doc/item_types.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/doc/item_types.adp,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/assessment/www/doc/item_types.adp 5 Oct 2019 13:43:47 -0000 1.4.2.2 +++ openacs-4/packages/assessment/www/doc/item_types.adp 3 Sep 2021 09:16:31 -0000 1.4.2.3 @@ -1,5 +1,5 @@ -{/doc/assessment {Assessment}} {AS_item Types} +{/doc/assessment/ {Assessment}} {AS_item Types} AS_item Types

          Overview

          Index: openacs-4/packages/assessment/www/doc/page_flow.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/doc/page_flow.adp,v diff -u -r1.2.2.1 -r1.2.2.2 --- openacs-4/packages/assessment/www/doc/page_flow.adp 17 Aug 2019 09:29:28 -0000 1.2.2.1 +++ openacs-4/packages/assessment/www/doc/page_flow.adp 3 Sep 2021 09:16:31 -0000 1.2.2.2 @@ -1,5 +1,5 @@ -{/doc/assessment {Assessment}} {Page Flow} +{/doc/assessment/ {Assessment}} {Page Flow} Page Flow

          Overview

          Index: openacs-4/packages/assessment/www/doc/policies.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/doc/policies.adp,v diff -u -r1.2.2.1 -r1.2.2.2 --- openacs-4/packages/assessment/www/doc/policies.adp 17 Aug 2019 09:29:28 -0000 1.2.2.1 +++ openacs-4/packages/assessment/www/doc/policies.adp 3 Sep 2021 09:16:31 -0000 1.2.2.2 @@ -1,5 +1,5 @@ -{/doc/assessment {Assessment}} {Policies and Events} +{/doc/assessment/ {Assessment}} {Policies and Events} Policies and Events

          Policies and Events
          Index: openacs-4/packages/assessment/www/doc/requirements.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/doc/requirements.adp,v diff -u -r1.6.2.3 -r1.6.2.4 --- openacs-4/packages/assessment/www/doc/requirements.adp 5 Oct 2019 13:43:47 -0000 1.6.2.3 +++ openacs-4/packages/assessment/www/doc/requirements.adp 3 Sep 2021 09:16:31 -0000 1.6.2.4 @@ -1,5 +1,5 @@ -{/doc/assessment {Assessment}} {Assessment functional requirements} +{/doc/assessment/ {Assessment}} {Assessment functional requirements} Assessment functional requirements

          Introduction

          @@ -246,13 +246,13 @@ The exam consists of 3 sections. The exam is passed, if the student achieves at least 50% total score. In addition the student has to achieve at least 40% in each of the sections. The first section is -deemed more important, therefore, it gets a weight of 40%, the other -two sections only 30% towards the total score. Each section +deemed more important, therefore, it gets a weight of 40%, the +other two sections only 30% towards the total score. Each section consists of multiple questions that have a different weight (in percent) for the total score of the section. The sum of the weights -has to be 100%, otherwise the author of the section gets a -warning. Some of the questions are multiple choice questions, that -get different percentages for each answer. As the computer science +has to be 100%, otherwise the author of the section gets a warning. +Some of the questions are multiple choice questions, that get +different percentages for each answer. As the computer science department wants to discourage students from giving wrong answers, some wrong answers have a negative percentage (thereby reducing the total score in the section).
          Index: openacs-4/packages/assessment/www/doc/sequencing.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/doc/sequencing.adp,v diff -u -r1.4.2.1 -r1.4.2.2 --- openacs-4/packages/assessment/www/doc/sequencing.adp 17 Aug 2019 09:29:28 -0000 1.4.2.1 +++ openacs-4/packages/assessment/www/doc/sequencing.adp 3 Sep 2021 09:16:32 -0000 1.4.2.2 @@ -1,5 +1,5 @@ -{/doc/assessment {Assessment}} {Assessment Item Checks} +{/doc/assessment/ {Assessment}} {Assessment Item Checks} Assessment Item Checks

          Sequencing

          Index: openacs-4/packages/assessment/www/doc/versioning.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/doc/versioning.adp,v diff -u -r1.2 -r1.2.2.1 --- openacs-4/packages/assessment/www/doc/versioning.adp 7 Aug 2017 23:48:04 -0000 1.2 +++ openacs-4/packages/assessment/www/doc/versioning.adp 3 Sep 2021 09:16:32 -0000 1.2.2.1 @@ -1,5 +1,5 @@ -{/doc/assessment {Assessment}} {Versioning} +{/doc/assessment/ {Assessment}} {Versioning} Versioning

          Overview

          Index: openacs-4/packages/assessment/www/doc/asm_trigger_doc/bi01.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/doc/asm_trigger_doc/bi01.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/assessment/www/doc/asm_trigger_doc/bi01.adp 1 May 2018 08:45:53 -0000 1.3 +++ openacs-4/packages/assessment/www/doc/asm_trigger_doc/bi01.adp 3 Sep 2021 09:16:33 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/assessment {Assessment}} {Bibliography} +{/doc/assessment/ {Assessment}} {Bibliography} Bibliography {/doc/assessment {Assessment}} {Bibliography} +{/doc/assessment/ {Assessment}} {Bibliography} Bibliography {/doc/assessment {Assessment}} {Chapter 1. Design} +{/doc/assessment/ {Assessment}} {Chapter 1. Design} Chapter 1. Design {/doc/assessment {Assessment}} {1. Data Model} +{/doc/assessment/ {Assessment}} {1. Data Model} 1. Data Model {/doc/assessment {Assessment}} {Chapter 2. User Manual} +{/doc/assessment/ {Assessment}} {Chapter 2. User Manual} Chapter 2. User Manual {/doc/assessment {Assessment}} {1. Manage Permissions} +{/doc/assessment/ {Assessment}} {1. Manage Permissions} 1. Manage Permissions {/doc/assessment {Assessment}} {3. Trigger Definition} +{/doc/assessment/ {Assessment}} {3. Trigger Definition} 3. Trigger Definition {/doc/assessment {Assessment}} {4. Branch Triggers} +{/doc/assessment/ {Assessment}} {4. Branch Triggers} 4. Branch Triggers {/doc/assessment {Assessment}} {5. Action Triggers} +{/doc/assessment/ {Assessment}} {5. Action Triggers} 5. Action Triggers {/doc/assessment {Assessment}} {6. Trigger Administration} +{/doc/assessment/ {Assessment}} {6. Trigger Administration} 6. Trigger Administration {/doc/assessment {Assessment}} {7. Request Administration} +{/doc/assessment/ {Assessment}} {7. Request Administration} 7. Request Administration {/doc/assessment {Assessment}} {Chapter 3. Registration Assessment} +{/doc/assessment/ {Assessment}} {Chapter 3. Registration Assessment} Chapter 3. Registration Assessment {/doc/assessment {Assessment}} {Chapter 4. Authors} +{/doc/assessment/ {Assessment}} {Chapter 4. Authors} Chapter 4. Authors {/doc/assessment {Assessment}} {Triggers and Action Execution in Assessment} +{/doc/assessment/ {Assessment}} {Triggers and Action Execution in Assessment} Triggers and Action Execution in Assessment {/doc/assessment {Assessment}} {Assessment Creation} +{/doc/assessment/ {Assessment}} {Assessment Creation} Assessment Creation When @@ -11,7 +11,7 @@ this with regards to the UI:
          • Title: Title of the -assessment
          • Anonymous Assessment: boolean (yes/no). +Assessment
          • Anonymous Assessment: boolean (yes/no). This shows whether the creator of the assessment will have the possibility to see the personal details of the respondee or not. In particular this will exclude the user_id from the CSV files. It @@ -29,10 +29,10 @@ question.
          • Sectioned

        • Reuse responses: boolean (yes/no). If -yes, the system will look for previous responses to the -questions and prefill the last answer the respondee has given in -the assessment form of the respondee. It is debatable whether -this function should be per assessment and/or per +yes, the system will look for previous responses to the questions +and prefill the last answer the respondee has given in the +assessment form of the respondee. It is debatable whether this +function should be per assessment and/or per question
        • Navigation of sections: select (default path, randomized, rule-based branching, maybe looping in the @@ -90,10 +90,10 @@ allow access to the assessment. Add users to the system if not already part of it. Notify users via email that they should take the assessment.
        • Password: short_text. Password that has to be typed in before -the respondee gets access to the assessment. This should be -done by creating a registered filter that returns a 401 to popup an -HTTP auth box. look in oacs_dav::authenticate for an example of how -to check the username/password
          +the respondee gets access to the assessment. This should be done by +creating a registered filter that returns a 401 to popup an HTTP +auth box. look in oacs_dav::authenticate for an example of how to +check the username/password
        • IP Netmask. short_text. Netmask that will be matched against the IP-Address of the respondee. If it does not match, the user will not be given access. Again this should be handled by the @@ -176,4 +176,4 @@ settings, notably medical and financial ones.
        - + \ No newline at end of file Index: openacs-4/packages/assessment/www/doc/user_interface/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/doc/user_interface/index.adp,v diff -u -r1.8.2.2 -r1.8.2.3 --- openacs-4/packages/assessment/www/doc/user_interface/index.adp 5 Oct 2019 13:43:47 -0000 1.8.2.2 +++ openacs-4/packages/assessment/www/doc/user_interface/index.adp 3 Sep 2021 09:16:36 -0000 1.8.2.3 @@ -1,5 +1,5 @@ -{/doc/assessment {Assessment}} {Appendix A: RFC for Assessment Specs} +{/doc/assessment/ {Assessment}} {Appendix A: RFC for Assessment Specs} Appendix A: RFC for Assessment Specs

        Introduction

        @@ -58,11 +58,11 @@ done in total (points)). A description for this can be found here.

        The backend for the test processing, that -enables the automatic tests is described in a separate document as it will be parsed while -the respondee answers the test, not manually. In addition this -document describes how the grades are calculated (automatically or -manually) for each question. The result is being stored in the -grading package.

        +enables the automatic tests is described in a separate document as it will be parsed while the +respondee answers the test, not manually. In addition this document +describes how the grades are calculated (automatically or manually) +for each question. The result is being stored in the grading +package.

        Scoring/Grading

        The grading package will be designed first of all to all the storing of test results. In addition to this, it @@ -137,7 +137,8 @@ very important in a Knowledge Management environment, where you want to give rated feedback to users.

        -Question Catalogue

        Assessment +Question +Catalogue

        Assessment Creation

        Sections

        Tests

        Test Processing

        User Experience


        Index: openacs-4/packages/assessment/www/doc/user_interface/item_creation.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/doc/user_interface/item_creation.adp,v diff -u -r1.7.2.1 -r1.7.2.2 --- openacs-4/packages/assessment/www/doc/user_interface/item_creation.adp 5 Oct 2019 13:43:47 -0000 1.7.2.1 +++ openacs-4/packages/assessment/www/doc/user_interface/item_creation.adp 3 Sep 2021 09:16:37 -0000 1.7.2.2 @@ -1,5 +1,5 @@ -{/doc/assessment {Assessment}} {Question Catalogue} +{/doc/assessment/ {Assessment}} {Question Catalogue} Question Catalogue Index: openacs-4/packages/assessment/www/doc/user_interface/section_creation.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/doc/user_interface/section_creation.adp,v diff -u -r1.6.2.1 -r1.6.2.2 --- openacs-4/packages/assessment/www/doc/user_interface/section_creation.adp 17 Aug 2019 09:29:28 -0000 1.6.2.1 +++ openacs-4/packages/assessment/www/doc/user_interface/section_creation.adp 3 Sep 2021 09:16:37 -0000 1.6.2.2 @@ -1,5 +1,5 @@ -{/doc/assessment {Assessment}} {Sections} +{/doc/assessment/ {Assessment}} {Sections} Sections Section page. This page is for editing information about a @@ -99,8 +99,8 @@
        • Edit question
        • Search and add question(s) from question database: Link to the -search page which allows one to search for questions that can be added -to this section (multiple add possibility).
        • Add question: Link to the question catalogue entry form with a +search page which allows one to search for questions that can be +added to this section (multiple add possibility).
        • Add question: Link to the question catalogue entry form with a return_url that adds the question from the catalogue to this section and return to the section page.
        • Change order of questions (arrow navigation) Title of the question Link to edit question properties with regards to this Index: openacs-4/packages/assessment/www/doc/user_interface/tests.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/doc/user_interface/tests.adp,v diff -u -r1.8.2.2 -r1.8.2.3 --- openacs-4/packages/assessment/www/doc/user_interface/tests.adp 5 Oct 2019 13:43:47 -0000 1.8.2.2 +++ openacs-4/packages/assessment/www/doc/user_interface/tests.adp 3 Sep 2021 09:16:38 -0000 1.8.2.3 @@ -1,5 +1,5 @@ -{/doc/assessment {Assessment}} {Tests} +{/doc/assessment/ {Assessment}} {Tests} Tests A @@ -99,8 +99,8 @@ Multiple Choice
          • All or nothing. In this scenario it will be looked, if all correct answers have been chosen by the respondee -and none of the incorrect ones. If this is the case, respondee -gets 100%, otherwise nothing.
          • Cumultative. Each answer has a certain +and none of the incorrect ones. If this is the case, respondee gets +100%, otherwise nothing.
          • Cumultative. Each answer has a certain percentage associated with it. This can also be negative. For each option the user choose he will get the according percentage. If negative points are allowed, the user will get a negative @@ -109,8 +109,8 @@
        • Matching question
            -
          • All or nothing: User gets 100% if -all matches are correct, 0% otherwise.
          • Equally weighted: Each match is worth +
          • All or nothing: User gets 100% if all +matches are correct, 0% otherwise.
          • Equally weighted: Each match is worth 100/{number of matches} percent. Each correct match will give the according percentage and the end result will be the sum of all correct matches.
          • Allow negative: If we have equally @@ -125,8 +125,9 @@ are selected.
          • The response is matched with each of the possible answers
              -
            • Equals: Only award the percentage if the strings match exactly (case senstivity depends on the setting -for the question).
            • Contains: If the answer contains exactly +
            • Equals: Only award the percentage if the +strings match exactly (case senstivity depends on the setting for +the question).
            • Contains: If the answer contains exactly the string, points are granted. If you want to give percentages for multiple words, add another answer to the answerbox (so instead of having one answerbox containing "rugby soccer football", @@ -177,8 +178,8 @@ side and the picked item are displayed in a connecting manner. A correct / wrong statement will be added depending whether the displayed (and responded) match is correct.
            • Open Question: The answer is displayed as -written by the user. Furthermore, the correct answer is displayed as -well. This should allow the TA to easily come to a conclusion +written by the user. Furthermore, the correct answer is displayed +as well. This should allow the TA to easily come to a conclusion concerning the number of points.
            • Short Answer: For each answerbox the response will be displayed along with the percentage it got and all the correct answers for this answerbox (with percentage). Might be Index: openacs-4/packages/assessment/www/doc/user_interface/user_experience.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/assessment/www/doc/user_interface/user_experience.adp,v diff -u -r1.5.2.1 -r1.5.2.2 --- openacs-4/packages/assessment/www/doc/user_interface/user_experience.adp 11 Mar 2019 08:43:27 -0000 1.5.2.1 +++ openacs-4/packages/assessment/www/doc/user_interface/user_experience.adp 3 Sep 2021 09:16:38 -0000 1.5.2.2 @@ -1,5 +1,5 @@ -{/doc/assessment {Assessment}} {User Experience} +{/doc/assessment/ {Assessment}} {User Experience} User Experience User Index: openacs-4/packages/attachments/www/doc/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/attachments/www/doc/index.adp,v diff -u -r1.3.2.3 -r1.3.2.4 --- openacs-4/packages/attachments/www/doc/index.adp 24 Nov 2019 11:10:47 -0000 1.3.2.3 +++ openacs-4/packages/attachments/www/doc/index.adp 3 Sep 2021 09:16:38 -0000 1.3.2.4 @@ -1,5 +1,5 @@ -{/doc/attachments {Attachments}} {} +{/doc/attachments/ {Attachments}} {}

              Contents

              @@ -66,7 +66,8 @@ instance of attachments in the entire system. The same instance is just re-mounted)

              -1.2.2 Map a file-storage root folder to your package instance

              +1.2.2 Map a file-storage +root folder to your package instance

              First, you must select a file-storage instance that will provide the files you can attach. If you do not already have an instance of file-storage that you want to use for your package instance, you Index: openacs-4/packages/calendar/www/doc/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/calendar/www/doc/index.adp,v diff -u -r1.2 -r1.2.2.1 --- openacs-4/packages/calendar/www/doc/index.adp 7 Aug 2017 23:48:05 -0000 1.2 +++ openacs-4/packages/calendar/www/doc/index.adp 3 Sep 2021 09:16:38 -0000 1.2.2.1 @@ -1,5 +1,5 @@ -{/doc/calendar {Calendar}} {OpenACS Calendar package} +{/doc/calendar/ {Calendar}} {OpenACS Calendar package} OpenACS Calendar package

              OpenACS Calendar package

              Index: openacs-4/packages/calendar/www/doc/requirements.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/calendar/www/doc/requirements.adp,v diff -u -r1.4.2.6 -r1.4.2.7 --- openacs-4/packages/calendar/www/doc/requirements.adp 3 Jul 2020 08:03:18 -0000 1.4.2.6 +++ openacs-4/packages/calendar/www/doc/requirements.adp 3 Sep 2021 09:16:38 -0000 1.4.2.7 @@ -1,5 +1,5 @@ -{/doc/calendar {Calendar}} {Calendar Package Requirements} +{/doc/calendar/ {Calendar}} {Calendar Package Requirements} Calendar Package Requirements

              Calendar Package Requirements

              @@ -20,12 +20,12 @@ people to keep track of events as they normally would on a paper calendar while giving them the opportunity to share these events with other parties. Various types of additional information related -to a calendar item, such as a URL, a map indicating a -meeting's location, et cetera, can also be managed through the -Calendar application. The Calendar application also provides -different end-user specifiable presentation formats for viewing -this information. In its current form, the Calendar application can -be integrated with other ACS components, for example, our Intranet +to a calendar item, such as a URL, a map indicating a meeting's +location, et cetera, can also be managed through the Calendar +application. The Calendar application also provides different +end-user specifiable presentation formats for viewing this +information. In its current form, the Calendar application can be +integrated with other ACS components, for example, our Intranet application and our Portals application; eventually the Calendar application will integrate with yet further systems, for example, PDAs. @@ -511,11 +511,11 @@ 40.20.10 Provides the functionality to delete, add, edit any item on the calendar

              -40.20.20 Provides the functionality to allow +40.20.20 Provides the funcatinality to allow Calendar Administrator to change the permissions on each calendar item.

              -40.20.20 Provides the functionality to allow +40.20.20 Provides the funcatinality to allow Calendar Administrator to change the default permissions of the entire calendar

              @@ -526,7 +526,7 @@ 50.10.10 Provide a function to add a new item to a calendar. This function should support specifying all the values that can be specified in the 'add item' form. It -should allow creating either a user or a party-specific item. It +should allow creating either a user or a party-specific item. Iit should support specifying a mapping between the new item and an arbitrary object in the database.

              50.20 Calendar Views

              Index: openacs-4/packages/calendar/www/doc/test-cases.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/calendar/www/doc/test-cases.adp,v diff -u -r1.2 -r1.2.2.1 --- openacs-4/packages/calendar/www/doc/test-cases.adp 7 Aug 2017 23:48:05 -0000 1.2 +++ openacs-4/packages/calendar/www/doc/test-cases.adp 3 Sep 2021 09:16:39 -0000 1.2.2.1 @@ -1,5 +1,5 @@ -{/doc/calendar {Calendar}} {OpenACS Calendar package - test cases} +{/doc/calendar/ {Calendar}} {OpenACS Calendar package - test cases} OpenACS Calendar package - test cases

              OpenACS Calendar package - test cases

              Index: openacs-4/packages/categories/www/doc/design.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/categories/www/doc/design.adp,v diff -u -r1.3.2.1 -r1.3.2.2 --- openacs-4/packages/categories/www/doc/design.adp 5 Oct 2019 13:07:21 -0000 1.3.2.1 +++ openacs-4/packages/categories/www/doc/design.adp 3 Sep 2021 09:16:40 -0000 1.3.2.2 @@ -1,5 +1,5 @@ -{/doc/categories {Categories}} {Categories} +{/doc/categories/ {Categories}} {Categories} Categories

              Categories

              @@ -36,8 +36,7 @@ category the user selected - the category itself will not be included. Note that the mapped subtree will not be a new tree. Therefore, this option should be used only if an admin plans to use -the subtree as-is and has no intention of making changes -to it.

              +the subtree as-is and has no intention of making changes to it.

              An alternative solution is available for admins who want to create a tree by copying one of the existing trees and subsequently playing around with it (moving/adding/deleting categories). To Index: openacs-4/packages/categories/www/doc/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/categories/www/doc/index.adp,v diff -u -r1.2 -r1.2.2.1 --- openacs-4/packages/categories/www/doc/index.adp 7 Aug 2017 23:48:05 -0000 1.2 +++ openacs-4/packages/categories/www/doc/index.adp 3 Sep 2021 09:16:41 -0000 1.2.2.1 @@ -1,5 +1,5 @@ -{/doc/categories {Categories}} {Categories} +{/doc/categories/ {Categories}} {Categories} Categories

              Index: openacs-4/packages/categories/www/doc/install.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/categories/www/doc/install.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/categories/www/doc/install.adp 30 Apr 2018 09:04:46 -0000 1.3 +++ openacs-4/packages/categories/www/doc/install.adp 3 Sep 2021 09:16:41 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/categories {Categories}} {Installation} +{/doc/categories/ {Categories}} {Installation} Installation {/doc/categories {Categories}} {IdHandler Service Contract} +{/doc/categories/ {Categories}} {IdHandler Service Contract} IdHandler Service Contract

              IdHandler Service Contract

              @@ -8,13 +8,13 @@ provide links to the objects. Unfortunately, there currently is no way to do so.

              First, we need to know that package_id of the package -responsible for the object, then we would need to figure out the url -to that package instance. This can be done, but then we would need the -local url to the page being able to display a certain object. Since -a package may have more than one type of objects (i.e. file -folders, files, file versions), we can not simply store additional -package information about which page to call to display an -object.

              +responsible for the object, then we would need to figure out the +url to that package instance. This can be done, but even then we +would need the local url to the page being able to display a +certain object. Since a package may have more than one type of +objects (i.e. file folders, files, file versions), we can not +simply store additional package information about which page to +call to display an object.

              The solution to this kind of problem is by not resolving the url at all during display-time, but doing so at the time the user actually wants to see an object. The links would simply direct to Index: openacs-4/packages/categories/www/doc/requirements.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/categories/www/doc/requirements.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/categories/www/doc/requirements.adp 30 Apr 2018 09:04:46 -0000 1.3 +++ openacs-4/packages/categories/www/doc/requirements.adp 3 Sep 2021 09:16:41 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/categories {Categories}} {Requirements} +{/doc/categories/ {Categories}} {Requirements} Requirements {/doc/dotlrn-homework {dotLRN Homework}} {dotLRN Homework Package Design Document} +{/doc/dotlrn-homework/ {dotLRN Homework}} {dotLRN Homework Package Design Document} dotLRN Homework Package Design Document

              dotLRN Homework Package Design Document

              Index: openacs-4/packages/file-storage/www/doc/design.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/www/doc/design.adp,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/file-storage/www/doc/design.adp 5 Oct 2019 13:43:48 -0000 1.4.2.2 +++ openacs-4/packages/file-storage/www/doc/design.adp 3 Sep 2021 09:16:41 -0000 1.4.2.3 @@ -1,5 +1,5 @@ -{/doc/file-storage {File Storage}} {File Storage Design Document} +{/doc/file-storage/ {File Storage}} {File Storage Design Document} File Storage Design Document

              File Storage Design Document

              @@ -173,8 +173,7 @@

              Tcl API

              -

              children_have_permission_p

              -children_have_permission_p [ -user_id user_id ] item_idprivilege
              +

              children_have_permission_p

              children_have_permission_p [ -user_id user_id ] item_idprivilege
               
              This procedure, given a content item and a privilege, checks to see if there are any children of the item on which the user does not have that privilege. @@ -188,8 +187,7 @@
              -

              fs_context_bar_list

              -fs_context_bar_list [ -final final ] item_id
              +

              fs_context_bar_list

              fs_context_bar_list [ -final final ] item_id
               
              Constructs the list to be fed to ad_context_bar appropriate for item_id. If -final is specified, that string will be the last item in the context bar. Otherwise, the name Index: openacs-4/packages/file-storage/www/doc/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/www/doc/index.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/file-storage/www/doc/index.adp 30 Apr 2018 07:57:15 -0000 1.3 +++ openacs-4/packages/file-storage/www/doc/index.adp 3 Sep 2021 09:16:42 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/file-storage {File Storage}} {File-Storage Documentation} +{/doc/file-storage/ {File Storage}} {File-Storage Documentation} File-Storage Documentation

              File-Storage Documentation

              Index: openacs-4/packages/file-storage/www/doc/requirements.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/www/doc/requirements.adp,v diff -u -r1.2 -r1.2.2.1 --- openacs-4/packages/file-storage/www/doc/requirements.adp 7 Aug 2017 23:48:11 -0000 1.2 +++ openacs-4/packages/file-storage/www/doc/requirements.adp 3 Sep 2021 09:16:42 -0000 1.2.2.1 @@ -1,5 +1,5 @@ -{/doc/file-storage {File Storage}} {File-Storage Application Requirements} +{/doc/file-storage/ {File Storage}} {File-Storage Application Requirements} File-Storage Application Requirements

              File-Storage Application Requirements

              @@ -150,5 +150,5 @@
              kevin\@arsdigita.com
              -Last Modified: $‌Id: requirements.html,v 1.3.10.1 2016/07/16 -17:36:38 gustafn Exp $ +Last Modified: $‌Id: requirements.html,v 1.4 2017/08/07 23:48:11 +gustafn Exp $ Index: openacs-4/packages/general-comments/www/doc/design.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/general-comments/www/doc/design.adp,v diff -u -r1.4.2.1 -r1.4.2.2 --- openacs-4/packages/general-comments/www/doc/design.adp 11 Mar 2019 08:43:27 -0000 1.4.2.1 +++ openacs-4/packages/general-comments/www/doc/design.adp 3 Sep 2021 09:16:42 -0000 1.4.2.2 @@ -1,5 +1,5 @@ -{/doc/general-comments {General Comments}} {Design Document} +{/doc/general-comments/ {General Comments}} {Design Document} Design Document

              Last modified: $‌Id: design.html,v 1.3 2017/08/07 23:48:12 +

              Last modified: $‌Id: design.html,v 1.3.2.1 2019/08/15 10:31:02 gustafn Exp $

              Index: openacs-4/packages/general-comments/www/doc/dev-guide.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/general-comments/www/doc/dev-guide.adp,v diff -u -r1.3 -r1.3.2.1 --- openacs-4/packages/general-comments/www/doc/dev-guide.adp 1 May 2018 08:49:04 -0000 1.3 +++ openacs-4/packages/general-comments/www/doc/dev-guide.adp 3 Sep 2021 09:16:42 -0000 1.3.2.1 @@ -1,5 +1,5 @@ -{/doc/general-comments {General Comments}} {Developer's guide} +{/doc/general-comments/ {General Comments}} {Developer's guide} Developer's guide