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 -N -r1.2 -r1.3 --- openacs-4/packages/acs-authentication/www/doc/configure-batch-sync.adp 29 Oct 2017 11:33:10 -0000 1.2 +++ openacs-4/packages/acs-authentication/www/doc/configure-batch-sync.adp 30 Apr 2018 08:12:47 -0000 1.3 @@ -1,12 +1,12 @@ -{/doc/acs-authentication {Authentication}} {Configure Batch Synchronization} +{/doc/acs-authentication {ACS Authentication}} {Configure Batch Synchronization} Configure Batch Synchronization -
+ leftLink="ext-auth-ldap-install" leftLabel="Prev" + title="Installation" + rightLink="ext-auth-design" rightLabel="Next"> +

Configure Batch Synchronization

    @@ -59,12 +59,12 @@ example in the design document for more details.

    (More information: the section called “IMS Sync driver design”, The IMS 1.1 spec)

    -
($‌Id: configure-batch-sync.html,v 1.2 -2004/02/19 14:59:42 joela Exp $)
+
($‌Id: configure-batch-sync.html,v 1.3 +2017/08/07 23:47:46 gustafn Exp $)
- \ No newline at end of file + leftLink="ext-auth-ldap-install" leftLabel="Prev" leftTitle="Installing LDAP support" + rightLink="ext-auth-design" rightLabel="Next" rightTitle="Design" + homeLink="index" homeLabel="Home" + upLink="ext-auth-install" upLabel="Up"> + \ No newline at end of file Index: openacs-4/packages/acs-authentication/www/doc/ext-auth-design.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-authentication/www/doc/ext-auth-design.adp,v diff -u -N -r1.2 -r1.3 --- openacs-4/packages/acs-authentication/www/doc/ext-auth-design.adp 29 Oct 2017 11:33:10 -0000 1.2 +++ openacs-4/packages/acs-authentication/www/doc/ext-auth-design.adp 30 Apr 2018 08:12:47 -0000 1.3 @@ -1,12 +1,12 @@ -{/doc/acs-authentication {Authentication}} {Design} +{/doc/acs-authentication {ACS Authentication}} {Design} Design -
+ leftLink="configure-batch-sync" leftLabel="Prev" + title="" + rightLink="ims-sync-driver-design" rightLabel="Next"> +

Design


@@ -18,8 +18,8 @@ staff.
- \ No newline at end of file + leftLink="configure-batch-sync" leftLabel="Prev" leftTitle="Configure Batch Synchronization" + rightLink="ims-sync-driver-design" rightLabel="Next" rightTitle="IMS Sync driver design" + homeLink="index" homeLabel="Home" + upLink="index" upLabel="Up"> + \ No newline at end of file Index: openacs-4/packages/acs-authentication/www/doc/ext-auth-install.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-authentication/www/doc/ext-auth-install.adp,v diff -u -N -r1.2 -r1.3 --- openacs-4/packages/acs-authentication/www/doc/ext-auth-install.adp 29 Oct 2017 11:33:10 -0000 1.2 +++ openacs-4/packages/acs-authentication/www/doc/ext-auth-install.adp 30 Apr 2018 08:12:47 -0000 1.3 @@ -1,12 +1,12 @@ -{/doc/acs-authentication {Authentication}} {Installation} +{/doc/acs-authentication {ACS Authentication}} {Installation} Installation -
+ leftLink="index" leftLabel="Prev" + title="" + rightLink="ext-auth-pam-install" rightLabel="Next"> +

Installation


@@ -24,9 +24,9 @@ OpenACS documentation staff.
- \ No newline at end of file + homeLink="index" homeLabel="Home" + upLink="index" upLabel="Up"> + \ No newline at end of file Index: openacs-4/packages/acs-authentication/www/doc/ext-auth-ldap-install.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-authentication/www/doc/ext-auth-ldap-install.adp,v diff -u -N -r1.3 -r1.4 --- openacs-4/packages/acs-authentication/www/doc/ext-auth-ldap-install.adp 29 Dec 2017 10:05:27 -0000 1.3 +++ openacs-4/packages/acs-authentication/www/doc/ext-auth-ldap-install.adp 30 Apr 2018 08:12:47 -0000 1.4 @@ -1,12 +1,12 @@ -{/doc/acs-authentication {Authentication}} {Using LDAP/Active Directory with OpenACS} +{/doc/acs-authentication {ACS Authentication}} {Using LDAP/Active Directory with OpenACS} Using LDAP/Active Directory with OpenACS -
+ leftLink="ext-auth-pam-install" leftLabel="Prev" + title="Installation" + rightLink="configure-batch-sync" rightLabel="Next"> +

Using LDAP/Active Directory with OpenACS

by John Sequeira, Michael Steigman, and Carl Blesius. OpenACS docs are written by the named @@ -132,7 +132,7 @@

Troubleshooting. If you're having trouble figuring out some the values for the ldapm, see this useful -page on setting up Active Directory integration with +page on setting up Active Directory integration with Bugzilla. It explains how distinguished names are defined in Active Directory, and how to test that you have the correct values for connectivity and base DN using the OpenLDAP command-line @@ -145,9 +145,9 @@ Hospital for underwriting this work.

- \ No newline at end of file + rightLink="configure-batch-sync" rightLabel="Next" rightTitle="Configure Batch Synchronization" + homeLink="index" homeLabel="Home" + upLink="ext-auth-install" upLabel="Up"> + \ No newline at end of file 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 -N -r1.2 -r1.3 --- openacs-4/packages/acs-authentication/www/doc/ext-auth-pam-install.adp 29 Oct 2017 11:33:10 -0000 1.2 +++ openacs-4/packages/acs-authentication/www/doc/ext-auth-pam-install.adp 30 Apr 2018 08:12:47 -0000 1.3 @@ -1,14 +1,14 @@ -{/doc/acs-authentication {Authentication}} {Using Pluggable Authentication Modules (PAM) with +{/doc/acs-authentication {ACS Authentication}} {Using Pluggable Authentication Modules (PAM) with OpenACS} Using Pluggable Authentication Modules (PAM) with OpenACS -
+ leftLink="ext-auth-install" leftLabel="Prev" + title="Installation" + rightLink="ext-auth-ldap-install" rightLabel="Next"> +

Using Pluggable Authentication Modules (PAM) with OpenACS

OpenACS supports PAM authetication via the ns_pam module in @@ -18,16 +18,15 @@ Add PAM support to AOLserver. OpenACS supports PAM support via the PAM AOLserver module. PAM is system of modular support, and can provide local (unix password), RADIUS, -LDAP (more information), and other forms of +LDAP (more information), and other forms of authentication. Note that due to security issues, the AOLserver PAM module cannot be used for local password authentication.

  1. Compile and install ns_pam. Download the tarball to /tmp.

    Debian users: first do apt-get install libpam-dev -

    -[root\@yourserver root]# cd /usr/local/src/aolserver
    +

    [root\@yourserver root]# cd /usr/local/src/aolserver
     [root\@yourserver aolserver]# tar xzf /tmp/ns_pam-0.1.tar.gz
     [root\@yourserver aolserver]# cd nspam
     [root\@yourserver nspam]# make
    @@ -63,8 +62,7 @@
     

    RADIUS in PAM. 

    1. Untar the pam_radius tarball and compile and install. (more -information)

      -[root\@yourserver root]# cd /usr/local/src/
      +information)

      [root\@yourserver root]# cd /usr/local/src/
       [root\@yourserver src]# tar xf /tmp/pam_radius-1.3.16.tar
       [root\@yourserver src]# cd pam_radius-1.3.16
       [root\@yourserver pam_radius-1.3.16]# make
      @@ -93,23 +91,19 @@
       
    2. 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 -file name, not the fully pathed name) of the domain file in

      -/etc/pam.d/
      -
      +ns_param PamDomain "service0"

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

    /etc/pam.d/
  • -LDAP in PAM. more information +LDAP in PAM. more information

  • 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
    -
    +ns_param nspam ${bindir}/nspam.so
  • @@ -132,9 +126,9 @@

  • - \ No newline at end of file + homeLink="index" homeLabel="Home" + upLink="ext-auth-install" upLabel="Up"> + \ No newline at end of file Index: openacs-4/packages/acs-authentication/www/doc/ims-sync-driver-design.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-authentication/www/doc/ims-sync-driver-design.adp,v diff -u -N -r1.2 -r1.3 --- openacs-4/packages/acs-authentication/www/doc/ims-sync-driver-design.adp 29 Oct 2017 11:33:10 -0000 1.2 +++ openacs-4/packages/acs-authentication/www/doc/ims-sync-driver-design.adp 30 Apr 2018 08:12:47 -0000 1.3 @@ -1,12 +1,12 @@ -{/doc/acs-authentication {Authentication}} {IMS Sync driver design} +{/doc/acs-authentication {ACS Authentication}} {IMS Sync driver design} IMS Sync driver design -
    + leftLink="ext-auth-design" leftLabel="Prev" + title="Design" + rightLink="" rightLabel=""> +

    IMS Sync driver design

    by Lars Pind OpenACS docs are written by the named @@ -190,18 +190,18 @@ Resources
    - \ No newline at end of file + leftLink="ext-auth-design" leftLabel="Prev" leftTitle="Design" + rightLink="" rightLabel="" rightTitle="" + homeLink="index" homeLabel="Home" + upLink="ext-auth-design" upLabel="Up"> + \ No newline at end of file Index: openacs-4/packages/acs-authentication/www/doc/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-authentication/www/doc/index.adp,v diff -u -N -r1.2 -r1.3 --- openacs-4/packages/acs-authentication/www/doc/index.adp 29 Oct 2017 11:33:10 -0000 1.2 +++ openacs-4/packages/acs-authentication/www/doc/index.adp 30 Apr 2018 08:12:47 -0000 1.3 @@ -1,32 +1,21 @@ -{/doc/acs-authentication {Authentication}} {External Authentication} +{/doc/acs-authentication {ACS Authentication}} {External Authentication} External Authentication - - - - -
    View comments -on this page at openacs.org
    +

    Release Notes

    +

    Please file bugs in the Bug Tracker.

    +
    +
    docs\@openacs.org
    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 -N -r1.3 -r1.4 --- openacs-4/packages/acs-automated-testing/www/doc/install.adp 7 Aug 2017 23:47:46 -0000 1.3 +++ openacs-4/packages/acs-automated-testing/www/doc/install.adp 30 Apr 2018 08:13:40 -0000 1.4 @@ -3,10 +3,10 @@ Installation -
    + leftLink="index" leftLabel="Prev" + title="" + rightLink="usage" rightLabel="Next"> +

    Installation

    - \ No newline at end of file + leftLink="index" leftLabel="Prev" leftTitle="Automated Testing" + rightLink="usage" rightLabel="Next" rightTitle="Usage" + homeLink="index" homeLabel="Home" + upLink="index" upLabel="Up"> + \ No newline at end of file Index: openacs-4/packages/acs-automated-testing/www/doc/requirements.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-automated-testing/www/doc/requirements.adp,v diff -u -N -r1.3 -r1.4 --- openacs-4/packages/acs-automated-testing/www/doc/requirements.adp 7 Aug 2017 23:47:46 -0000 1.3 +++ openacs-4/packages/acs-automated-testing/www/doc/requirements.adp 30 Apr 2018 08:13:40 -0000 1.4 @@ -3,10 +3,10 @@ Requirements -
    + leftLink="usage" leftLabel="Prev" + title="" + rightLink="" rightLabel=""> + - \ No newline at end of file + leftLink="usage" leftLabel="Prev" leftTitle="Usage" + rightLink="" rightLabel="" rightTitle="" + homeLink="index" homeLabel="Home" + upLink="index" upLabel="Up"> + \ No newline at end of file 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 -N -r1.3 -r1.4 --- openacs-4/packages/acs-automated-testing/www/doc/usage.adp 7 Aug 2017 23:47:46 -0000 1.3 +++ openacs-4/packages/acs-automated-testing/www/doc/usage.adp 30 Apr 2018 08:13:40 -0000 1.4 @@ -3,10 +3,10 @@ Usage -
    + leftLink="install" leftLabel="Prev" + title="" + rightLink="requirements" rightLabel="Next"> +

    Usage

    by Joel @@ -27,16 +27,13 @@ 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"
    -
    +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"?>
    +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 -->
     
    @@ -54,8 +51,7 @@
     
  • To enable the 'rebuild server' link, edit the file -/usr/local/bin/rebuild-server.sh:

    -#!/bin/sh
    +/usr/local/bin/rebuild-server.sh:

    #!/bin/sh
     # script to trigger a server rebuild
     
     # hard-coding the valid server names here for some minimal security
    @@ -67,18 +63,16 @@
             exit;;
     esac
     
    -sudo /home/$1/install/install.sh 2>&1
    -

    and allow the master user to +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
    -
    +master ALL = NOPASSWD: /usr/local/bin/rebuild-server.sh
  • - \ No newline at end of file + leftLink="install" leftLabel="Prev" leftTitle="Installation" + rightLink="requirements" rightLabel="Next" rightTitle="Requirements" + homeLink="index" homeLabel="Home" + upLink="index" upLabel="Up"> + \ No newline at end of file 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 -N -r1.3 -r1.4 --- openacs-4/packages/acs-content-repository/www/doc/design.adp 7 Aug 2017 23:47:47 -0000 1.3 +++ openacs-4/packages/acs-content-repository/www/doc/design.adp 30 Apr 2018 08:15:07 -0000 1.4 @@ -84,5 +84,5 @@ karlg\@arsdigita.com
    -Last Modified: $‌Id: design.html,v 1.1.1.1.30.1 2016/06/22 07:40:41 -gustafn Exp $ +Last Modified: $‌Id: design.html,v 1.2 2017/08/07 23:47:47 gustafn +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 -N -r1.3 -r1.4 --- openacs-4/packages/acs-content-repository/www/doc/index.adp 7 Aug 2017 23:47:47 -0000 1.3 +++ openacs-4/packages/acs-content-repository/www/doc/index.adp 30 Apr 2018 08:15:07 -0000 1.4 @@ -39,5 +39,5 @@ karlg\@arsdigita.com
    -Last Revised: $‌Id: index.html,v 1.2.18.3 2016/06/22 07:40:41 -gustafn Exp $ +Last Revised: $‌Id: index.html,v 1.3 2017/08/07 23:47:47 gustafn Exp +$ 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 -N -r1.3 -r1.4 --- openacs-4/packages/acs-content-repository/www/doc/install.adp 7 Aug 2017 23:47:47 -0000 1.3 +++ openacs-4/packages/acs-content-repository/www/doc/install.adp 30 Apr 2018 08:15:07 -0000 1.4 @@ -29,14 +29,10 @@

    To load the XML parser, download and untar the distribution. Load the class package lib/xmlparserv2.jar into Oracle from a shell prompt:

    -
    -$ loadjava -user user/password xmlparserv2.jar
    -
    +
    $ loadjava -user user/password xmlparserv2.jar

    Finally, load the SQLJ files in packages/acs-content-repository/java:

    -
    -$ loadjava -user user/password -resolve *.sqlj
    -
    +
    $ loadjava -user user/password -resolve *.sqlj

    Installation of the data model and API should now be complete.

    Intermedia

    @@ -53,33 +49,29 @@ index statement.

    If you experience errors on a UNIX system, check the following:

    -
    • The operating system user running the Oracle database must have execute permission on the files -$ORACLE_HOME/ctx/lib/*.flt.
    • The directory $ORACLE_HOME/ctx/lib must be in the +$ORACLE_HOME/ctx/lib/*.flt. +
        +
      • The directory $ORACLE_HOME/ctx/lib must be in the $PATH environment variable of the operating system user running the Oracle database.
      • The directory $ORACLE_HOME/ctx/lib must be in the $LD_LIBRARY_PATH of the operating system user running the Oracle database.
      • The LD_LIBRARY_PATH environment variable must be specified in the entry for PLSExtProc in the -$ORACLE_HOME/network/admin/listener.ora. For -example:
      • -
      +$ORACLE_HOME/network/admin/listener.ora. For example:
           (SID_DESC =
             (SID_NAME = PLSExtProc)
             (ORACLE_HOME = /ora8/m01/app/oracle/product/8.1.6)
             (ENVS = LD_LIBRARY_PATH=/ora8/m01/app/oracle/product/8.1.6/lib:/usr/lib:/lib:/usr/openwin/lib:/ora8/m01/app/oracle/product/8.1.6/ctx/lib)
             (PROGRAM = extproc)
           )
      -
      -

      If your searches are still failing even after following these +

      If your searches are still failing even after following these instructions, try a simple test case to determine whether the problem has something to do with the -content repository data model itself.

      -
      -karlg\@arsdigita.com -
      - -Last revised: $‌Id: install.html,v 1.1.1.1.30.2 2017/06/20 07:10:17 -gustafn Exp $ +content repository data model itself.


      karlg\@arsdigita.com
      +Last revised: $‌Id: install.html,v 1.2 2017/08/07 23:47:47 gustafn +Exp $
    • +
    + 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 -N -r1.3 -r1.4 --- openacs-4/packages/acs-content-repository/www/doc/intermedia.adp 7 Aug 2017 23:47:47 -0000 1.3 +++ openacs-4/packages/acs-content-repository/www/doc/intermedia.adp 30 Apr 2018 08:15:07 -0000 1.4 @@ -10,39 +10,33 @@ that Intermedia is indeed functioning properly.

    Create a document table

    Create a simple table to hold some test documents:

    -
    -create table cr_test_documents ( 
    +
    create table cr_test_documents ( 
       doc_id    integer primary key, 
       author    varchar2(30), 
       format    varchar2(30), 
       title     varchar2(256), 
       doc       blob 
    -);
    -
    +);

    Create an Intermedia preference to specify INSO filtering:

    -
    -begin
    +
    begin
       ctx_ddl.create_preference
       (
         preference_name => 'CONTENT_FILTER_PREF',
         object_name     => 'INSO_FILTER'
    -  );
    -
    + );

    If this preference has already been created, this step will 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 )
       indextype is ctxsys.context
    -  parameters ('FILTER content_filter_pref' );
    -
    + parameters ('FILTER content_filter_pref' );

    Load test documents

    You can use SQL*Loader to load some documents into the test table. First create a control file named cr-test-docs.ctl:

    -
    -load data
    +
    load data
     INFILE 'cr-test-docs.data'
     INTO TABLE cr_test_documents
     APPEND
    @@ -51,16 +45,13 @@
      format,
      title,
      ext_fname FILLER CHAR(80),
    - doc LOBFILE(ext_fname) TERMINATED BY EOF)
    -
    + doc LOBFILE(ext_fname) TERMINATED BY EOF)

    Copy any number of documents (Microsoft Word, PDF, text, HTML, etc.) to the file system 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
    -
    +
    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
    @@ -69,8 +60,7 @@
     
     (c) Copyright 1999 Oracle Corporation.  All rights reserved.
     
    -Commit point reached - logical record count 2
    -
    +Commit point reached - logical record count 2

    Test search

    Once the documents have been loaded, rebuild the index and run some test queries:

    @@ -87,5 +77,5 @@ karlg\@arsdigita.com
    -Last revised: $‌Id: intermedia.html,v 1.1.1.1.30.1 2016/06/22 -07:40:41 gustafn Exp $ +Last revised: $‌Id: intermedia.html,v 1.2 2017/08/07 23:47:47 +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 -N -r1.4 -r1.5 --- openacs-4/packages/acs-content-repository/www/doc/object-model.adp 17 Sep 2017 08:49:17 -0000 1.4 +++ openacs-4/packages/acs-content-repository/www/doc/object-model.adp 30 Apr 2018 08:15:07 -0000 1.5 @@ -30,5 +30,5 @@ karlg\@arsdigita.com
    -Last revised: $‌Id: object-model.html,v 1.1.1.1.30.2 2017/04/15 -11:00:21 gustafn Exp $ +Last revised: $‌Id: object-model.html,v 1.3 2017/09/17 08:49:17 +gustafn Exp $ 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 -N -r1.3 -r1.4 --- openacs-4/packages/acs-content-repository/www/doc/requirements.adp 7 Aug 2017 23:47:47 -0000 1.3 +++ openacs-4/packages/acs-content-repository/www/doc/requirements.adp 30 Apr 2018 08:15:07 -0000 1.4 @@ -398,5 +398,5 @@ karlg\@arsdigita.com
    -Last Modified: $‌Id: requirements.html,v 1.2.22.1 2016/06/22 -07:40:41 gustafn Exp $ +Last Modified: $‌Id: requirements.html,v 1.3 2017/08/07 23:47:47 +gustafn Exp $ 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 -N -r1.4 -r1.5 --- openacs-4/packages/acs-content-repository/www/doc/tutorial.adp 24 Dec 2017 13:03:22 -0000 1.4 +++ openacs-4/packages/acs-content-repository/www/doc/tutorial.adp 30 Apr 2018 08:15:07 -0000 1.5 @@ -48,8 +48,7 @@ Title Description Task Number - - +

    Overview

    First of all, let's get some terminology out of the way. Columns of a table are referred to as attributes in @@ -71,8 +70,7 @@ Title - want versions Description - want versions Task Number - do NOT want versions - - +

    Define tables

    You will have two tables: one with versioned attributes, and one without versioned attributes.

    @@ -99,8 +97,7 @@ description varchar(4000) ); - - +

    Unversioned portion:

                 create table pm_tasks (
    @@ -114,8 +111,7 @@
                 task_number
                 integer
                 )
    -          
    -
    +

    One thing you have to be careful of when creating these tables is that there are no columns that have the same names as any of the columns in the cr_items and cr_revisions @@ -153,8 +149,7 @@ 'task_id', -- id_column 'content_revision.revision_name' ); - - +

    You then need to add in all the attributes, so that the content repository can do some magic things behind the scenes. The content repository doesn't know about what's inside of the @@ -195,8 +190,7 @@ null, -- default value 'numeric' -- column_spec ); - - +

    Side effect: once you've created the content type, the content repository creates a view for you called @@ -291,8 +285,7 @@ null, null, 'integer constraint pm_project_comp_fk references organizations' -); - +); I have no idea of whether or not that is supposed to be legal, but I believe it works. Jun was the one who originally talked about 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 -N -r1.3 -r1.4 --- openacs-4/packages/acs-content-repository/www/doc/uninstall.adp 7 Aug 2017 23:47:47 -0000 1.3 +++ openacs-4/packages/acs-content-repository/www/doc/uninstall.adp 30 Apr 2018 08:15:07 -0000 1.4 @@ -32,5 +32,5 @@ karlg\@arsdigita.com
    -Last revised: $‌Id: uninstall.html,v 1.1.1.1.30.1 2016/06/22 -07:40:41 gustafn Exp $ +Last revised: $‌Id: uninstall.html,v 1.2 2017/08/07 23:47:47 gustafn +Exp $ 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 -N -r1.3 -r1.4 --- openacs-4/packages/acs-content-repository/www/doc/api/content.adp 7 Aug 2017 23:47:47 -0000 1.3 +++ openacs-4/packages/acs-content-repository/www/doc/api/content.adp 30 Apr 2018 08:15:07 -0000 1.4 @@ -65,5 +65,5 @@ -

    Last Modified: $‌Id: content.html,v 1.1.1.1.30.2 2016/06/22 -07:40:41 gustafn Exp $

    +

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

    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 -N -r1.3 -r1.4 --- openacs-4/packages/acs-content-repository/www/doc/api/extlink.adp 7 Aug 2017 23:47:47 -0000 1.3 +++ openacs-4/packages/acs-content-repository/www/doc/api/extlink.adp 30 Apr 2018 08:15:07 -0000 1.4 @@ -11,18 +11,17 @@
  • Overview
  • Related Objects
  • API
  •  

    -

    Overview

    +

    Overview

    External links are references to content pages on other web sites. They provide the basis for maintaining a hierarchy of "bookmarks" that may be managed in a manner analogous to other content items. In particular, external links may be tagged with keywords and related to the site's own content items.

     

    -

    Related Objects

    - -See also: {content_item} +

    Related Objects

    + See also: {content_item}

     

    -

    API

    +

    API

    • Function: content_extlink.is_extlink @@ -115,5 +114,5 @@
    -Last Modified: $‌Id: extlink.html,v 1.1.1.1.30.2 2016/06/22 07:40:41 -gustafn Exp $ +Last Modified: $‌Id: extlink.html,v 1.2 2017/08/07 23:47:47 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 -N -r1.3 -r1.4 --- openacs-4/packages/acs-content-repository/www/doc/api/folder.adp 7 Aug 2017 23:47:47 -0000 1.3 +++ openacs-4/packages/acs-content-repository/www/doc/api/folder.adp 30 Apr 2018 08:15:07 -0000 1.4 @@ -11,7 +11,7 @@
  • Overview
  • Related Objects
  • API
  •  

    -

    Overview

    +

    Overview

    Content folders contain related content items and allow content managers to group content as they see fit. Within a content folder, content items must have unique names since this is where they will @@ -21,11 +21,10 @@ from "/movies/terminator, "/movies/terminator2" respectively).

     

    -

    Related Objects

    - -See also: Content Item +

    Related Objects

    + See also: Content Item

     

    -

    API

    +

    API

    • Function: content_folder.get_index_page @@ -366,5 +365,5 @@

     

    -Last Modified: $‌Id: folder.html,v 1.2.18.2 2016/06/22 07:40:41 -gustafn Exp $ +Last Modified: $‌Id: folder.html,v 1.3 2017/08/07 23:47:47 gustafn +Exp $ 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 -N -r1.5 -r1.6 --- openacs-4/packages/acs-content-repository/www/doc/api/item.adp 11 Apr 2018 21:35:06 -0000 1.5 +++ openacs-4/packages/acs-content-repository/www/doc/api/item.adp 30 Apr 2018 08:15:07 -0000 1.6 @@ -11,7 +11,7 @@
  • Overview
  • Related Objects
  • API
  •  

    -

    Overview

    +

    Overview

    Content items store the overview of the content published on a website. The actual content is stored in content revisions. It is implemented this way so that there can be multiple versions of the @@ -22,11 +22,10 @@ exist at least one content revision pointing to this item with the actual review content.

     

    -

    Related Objects

    - -See also: content_revision, content_folder +

    Related Objects

    + See also: content_revision, content_folder

     

    -

    API

    +

    API

    • Function: content_item.get_content_type @@ -742,5 +741,5 @@

     

    -Last Modified: $‌Id: item.html,v 1.3.18.3 2017/04/21 14:53:08 -gustafn Exp $ +Last Modified: $‌Id: item.html,v 1.6 2018/04/11 21:35:06 hectorr 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 -N -r1.3 -r1.4 --- openacs-4/packages/acs-content-repository/www/doc/api/keyword.adp 7 Aug 2017 23:47:47 -0000 1.3 +++ openacs-4/packages/acs-content-repository/www/doc/api/keyword.adp 30 Apr 2018 08:15:07 -0000 1.4 @@ -11,16 +11,15 @@
  • Overview
  • Related Objects
  • API
  •  

    -

    Overview

    +

    Overview

    Keyword cassify a content_item. For example: If you have some press releases about dogs. You might want assigning the Keyword dog to every single content_item.

     

    -

    Related Objects

    - -See also: content_item +

    Related Objects

    + See also: content_item

     

    -

    API

    +

    API

    • Function: @@ -314,5 +313,5 @@

     

    -Last Modified: $‌Id: keyword.html,v 1.1.1.1.30.3 2017/04/21 14:53:08 -gustafn Exp $ +Last Modified: $‌Id: keyword.html,v 1.2 2017/08/07 23:47:47 gustafn +Exp $ 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 -N -r1.3 -r1.4 --- openacs-4/packages/acs-content-repository/www/doc/api/permission.adp 7 Aug 2017 23:47:47 -0000 1.3 +++ openacs-4/packages/acs-content-repository/www/doc/api/permission.adp 30 Apr 2018 08:15:07 -0000 1.4 @@ -11,16 +11,15 @@
  • Overview
  • Related Objects
  • API
  •  

    -

    Overview

    +

    Overview

    Permissions can be set to allow certain users certain things. - They can be compared with the Unix filesystem permission: read, write ...

     

    -

    Related Objects

    - -See also: {content_item } +

    Related Objects

    + See also: {content_item }

     

    -

    API

    +

    API

    • Function: @@ -266,5 +265,5 @@

     

    -Last Modified: $‌Id: permission.html,v 1.1.1.1.30.3 2017/04/21 -14:53:08 gustafn Exp $ +Last Modified: $‌Id: permission.html,v 1.2 2017/08/07 23:47:47 +gustafn Exp $ 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 -N -r1.3 -r1.4 --- openacs-4/packages/acs-content-repository/www/doc/api/revision.adp 7 Aug 2017 23:47:47 -0000 1.3 +++ openacs-4/packages/acs-content-repository/www/doc/api/revision.adp 30 Apr 2018 08:15:07 -0000 1.4 @@ -11,19 +11,18 @@
  • Overview
  • Related Objects
  • API
  •  

    -

    Overview

    +

    Overview

    Content revisions contain the data for content items. There is a many to one relationship between content revisions and content items. There is at most one "live" revision for every content item though. For example, there may be 5 revisions of the review for the movie "Terminator," yet only one of these may be live on the website at a given time.

     

    -

    Related Objects

    - -See also: {content_item } +

    Related Objects

    + See also: {content_item }

     

    -

    API

    +

    API

    • Function: content_revision.copy @@ -244,5 +243,5 @@

     

    -Last Modified: $‌Id: revision.html,v 1.1.1.1.30.2 2016/06/22 -07:40:41 gustafn Exp $ +Last Modified: $‌Id: revision.html,v 1.2 2017/08/07 23:47:47 gustafn +Exp $ 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 -N -r1.3 -r1.4 --- openacs-4/packages/acs-content-repository/www/doc/api/symlink.adp 7 Aug 2017 23:47:47 -0000 1.3 +++ openacs-4/packages/acs-content-repository/www/doc/api/symlink.adp 30 Apr 2018 08:15:07 -0000 1.4 @@ -11,15 +11,14 @@
  • Overview
  • Related Objects
  • API
  •  

    -

    Overview

    +

    Overview

    Symlinks are pointers to items within the content repository. They are simply used to create links between content items.

     

    -

    Related Objects

    - -See also: content_item, content_folder +

    Related Objects

    + See also: content_item, content_folder

     

    -

    API

    +

    API

    • Function: content_symlink.is_symlink @@ -171,5 +170,5 @@

     

    -Last Modified: $‌Id: symlink.html,v 1.2.2.2 2016/06/22 07:40:41 -gustafn Exp $ +Last Modified: $‌Id: symlink.html,v 1.3 2017/08/07 23:47:47 gustafn +Exp $ 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 -N -r1.3 -r1.4 --- openacs-4/packages/acs-content-repository/www/doc/api/template.adp 7 Aug 2017 23:47:47 -0000 1.3 +++ openacs-4/packages/acs-content-repository/www/doc/api/template.adp 30 Apr 2018 08:15:07 -0000 1.4 @@ -11,18 +11,17 @@
  • Overview
  • Related Objects
  • API
  •  

    -

    Overview

    +

    Overview

    Templates are a special class of text objects that are used for specifying the layout of a content item. They may be mapped to content types, meaning that every item of that type will display using that template unless a specific item overrides the default by mapping to a template itself.

     

    -

    Related Objects

    - -See also: content_item, content_folder +

    Related Objects

    + See also: content_item, content_folder

     

    -

    API

    +

    API

    • Function: content_template.get_path @@ -145,5 +144,5 @@
    -Last Modified: $‌Id: template.html,v 1.1.1.1.30.2 2016/06/22 -07:40:41 gustafn Exp $ +Last Modified: $‌Id: template.html,v 1.2 2017/08/07 23:47:47 gustafn +Exp $ 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 -N -r1.4 -r1.5 --- openacs-4/packages/acs-content-repository/www/doc/api/type.adp 27 Mar 2018 11:17:59 -0000 1.4 +++ openacs-4/packages/acs-content-repository/www/doc/api/type.adp 30 Apr 2018 08:15:07 -0000 1.5 @@ -11,16 +11,15 @@
  • Overview
  • Related Objects
  • API
  •  

    -

    Overview

    +

    Overview

    This package is used to manipulate content types and attributes Content types represent the different kind of content displayed on a website. All content items should subclass a content type.

     

    -

    Related Objects

    - -See also: {Content Item } +

    Related Objects

    + See also: {Content Item }

     

    -

    API

    +

    API

    • Function: content_type.create_attribute @@ -171,8 +170,8 @@ type, including the inherited attributes. The view is named "

      X" Called by create_attribute and create_type. - - +
      +
      Author:Karl Goldstein
      Parameters:
      @@ -440,5 +439,5 @@ -Last Modified: $‌Id: type.html,v 1.1.1.1.30.2 2016/06/22 07:40:41 -gustafn Exp $ +Last Modified: $‌Id: type.html,v 1.3 2018/03/27 11:17:59 hectorr Exp +$ 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 -N -r1.3 -r1.4 --- openacs-4/packages/acs-content-repository/www/doc/guide/convert.adp 7 Aug 2017 23:47:47 -0000 1.3 +++ openacs-4/packages/acs-content-repository/www/doc/guide/convert.adp 30 Apr 2018 08:15:07 -0000 1.4 @@ -52,5 +52,5 @@ karlg\@arsdigita.com
      -Last Modified: $‌Id: convert.html,v 1.1.1.1.30.1 2016/06/22 07:40:41 -gustafn Exp $ +Last Modified: $‌Id: convert.html,v 1.2 2017/08/07 23:47:47 gustafn +Exp $ 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 -N -r1.3 -r1.4 --- openacs-4/packages/acs-content-repository/www/doc/guide/file-system.adp 7 Aug 2017 23:47:47 -0000 1.3 +++ openacs-4/packages/acs-content-repository/www/doc/guide/file-system.adp 30 Apr 2018 08:15:07 -0000 1.4 @@ -94,8 +94,7 @@ ); -- Store v_my_content_root in a safe place end; -/ - +/

      The important point is that you have to pass in 0 for the parent_id. This parent_id is special in that it indicates folders with no parent.

      @@ -117,5 +116,5 @@ karlg\@arsdigita.com
      -Last Modified: $‌Id: file-system.html,v 1.1.1.1.30.2 2017/04/21 -14:53:08 gustafn Exp $ +Last Modified: $‌Id: file-system.html,v 1.2 2017/08/07 23:47:47 +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 -N -r1.3 -r1.4 --- openacs-4/packages/acs-content-repository/www/doc/guide/items.adp 7 Aug 2017 23:47:47 -0000 1.3 +++ openacs-4/packages/acs-content-repository/www/doc/guide/items.adp 30 Apr 2018 08:15:07 -0000 1.4 @@ -13,34 +13,29 @@ 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:

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

      The parent ID must be another content item, or a subclass of content item such as a folder.

      The content_item.new function accepts a number of other optional parameters. The standard creation_date, creation_user and creation_ip should be specified for auditing purposes. You can also create the initial revision and publish text items in a single step:

      -
      -item_id := content_item.new(
      +
      item_id := content_item.new(
          name      => 'my_item', 
          parent_id => :parent_id,
          title     => 'My Item',
          text      => 'Once upon a time Goldilocks crossed the street.  
                        Here comes a car...uh oh!  The End',
          is_live   => 't'
      -);
      -
      +);

      If either the title or text are not null, the function will create the first revision of the item. It will also mark the item as live if the is_live parameter is true. The @@ -51,9 +46,8 @@ 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.1.1.1.30.1 2016/06/22 -07:40:41 gustafn Exp $

      +

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

      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 -N -r1.3 -r1.4 --- openacs-4/packages/acs-content-repository/www/doc/guide/keywords.adp 7 Aug 2017 23:47:47 -0000 1.3 +++ openacs-4/packages/acs-content-repository/www/doc/guide/keywords.adp 30 Apr 2018 08:15:07 -0000 1.4 @@ -37,8 +37,7 @@ => 'content_keyword', pretty_name => 'Content Keyword', pretty_plural => 'Content Keywords', table_name => 'cr_keywords', id_column => 'keyword_id', name_method => 'acs_object.default_name' - ); - + ); In addition, the cr_keywords table (see 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 -N -r1.3 -r1.4 --- openacs-4/packages/acs-content-repository/www/doc/guide/object-relationships.adp 7 Aug 2017 23:47:47 -0000 1.3 +++ openacs-4/packages/acs-content-repository/www/doc/guide/object-relationships.adp 30 Apr 2018 08:15:07 -0000 1.4 @@ -111,5 +111,5 @@ karlg\@arsdigita.com
      -Last modified: $‌Id: object-relationships.html,v 1.1.1.1.30.3 -2017/04/21 14:53:08 gustafn Exp $ +Last modified: $‌Id: object-relationships.html,v 1.2 2017/08/07 +23:47:47 gustafn Exp $ 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 -N -r1.3 -r1.4 --- openacs-4/packages/acs-content-repository/www/doc/guide/publish.adp 7 Aug 2017 23:47:47 -0000 1.3 +++ openacs-4/packages/acs-content-repository/www/doc/guide/publish.adp 30 Apr 2018 08:15:07 -0000 1.4 @@ -122,5 +122,5 @@ karlg\@arsdigita.com
      -Last Modified: $‌Id: publish.html,v 1.4.4.2 2016/06/22 07:40:41 -gustafn Exp $ +Last Modified: $‌Id: publish.html,v 1.5 2017/08/07 23:47:47 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 -N -r1.3 -r1.4 --- openacs-4/packages/acs-content-repository/www/doc/guide/revisions.adp 7 Aug 2017 23:47:47 -0000 1.3 +++ openacs-4/packages/acs-content-repository/www/doc/guide/revisions.adp 30 Apr 2018 08:15:07 -0000 1.4 @@ -25,14 +25,12 @@ content_revision.new function. The only parameters required to create the revision are a title, a content item ID, and some text:

      -
      -revision_id := content_revision.new( 
      +
      revision_id := content_revision.new( 
           title   => 'A Revision',
           item_id => :item_id,
           text    => 'Once upon a time Goldilocks crossed the street.
                       Here comes a car...uh oh!  The End'
      -);
      -
      +);

      The item_id parameter is ID of the content item with which the revision is associated.

      The content_item.new function accepts a number of @@ -43,8 +41,7 @@ Instead of the text parameter, this function can be called with a data parameter, in which data is a blob:

      -
      -revision_id := content_revision.new(
      +
      revision_id := content_revision.new(
           title         => 'A Revision',
           description   => 'A Description of a revision',
           mime_type     => 'text/html',
      @@ -54,8 +51,7 @@
           creation_date => sysdate,
           creation_user => :user_id,
           creation_ip   => :ip_address
      -);
      -
      +);

      Insert additional attributes

      Given that there is no way (AFAIK) to pass variable parameters to a PL/SQL function, there is no way to make @@ -82,43 +78,35 @@ content_type.create_attribute. The trigger makes it possible to create complete revisions with a single insert statement:

      -
      -insert into cr_revisionsx (
      +
      insert into cr_revisionsx (
         item_id, revision_id, title
       ) values (
         18, 19, 'All About Revisions'
      -);
      -
      +);

      Because a special trigger is generated for each content type that includes insert statements for all inherited tables, revisions with extended attributes may be created in the same fashion:

      -
      -insert into cr_imagesx (
      +
      insert into cr_imagesx (
         item_id, revision_id, title, height, width
       ) values (
         18, 19, 'A Nice Drawing', 300, 400
      -);
      -
      +);

      Inserting content via file or text upload

      Selecting a live revision

      The live revision of a content item can be obtained with the content_item.get_live_revision function:

      -
      -live_revision_id := content_item.get_live_revision(
      +
      live_revision_id := content_item.get_live_revision(
           item_id => :item_id
      -);
      -
      +);

      The item_id identifies the content item with which the revision is associated.

      Likewise, the most recent revision of a content item can be obtained with the content_item.get_latest_revision function:

      -
      -latest_revision_id := content_item.get_latest_revision(
      +
      latest_revision_id := content_item.get_latest_revision(
           item_id => :item_id
      -);
      -
      +);

      karlg\@arsdigita.com -

      Last Modified: $‌Id: revisions.html,v 1.1.1.1.30.1 2016/06/22 -07:40:41 gustafn Exp $

      +

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

      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 -N -r1.3 -r1.4 --- openacs-4/packages/acs-content-repository/www/doc/guide/search.adp 7 Aug 2017 23:47:47 -0000 1.3 +++ openacs-4/packages/acs-content-repository/www/doc/guide/search.adp 30 Apr 2018 08:15:07 -0000 1.4 @@ -113,5 +113,5 @@ karlg\@arsdigita.com
      -Last Modified: $‌Id: search.html,v 1.1.1.1.30.2 2017/04/21 14:53:08 -gustafn Exp $ +Last Modified: $‌Id: search.html,v 1.2 2017/08/07 23:47:47 gustafn +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 -N -r1.3 -r1.4 --- openacs-4/packages/acs-content-repository/www/doc/guide/storage.adp 7 Aug 2017 23:47:47 -0000 1.3 +++ openacs-4/packages/acs-content-repository/www/doc/guide/storage.adp 30 Apr 2018 08:15:07 -0000 1.4 @@ -18,21 +18,18 @@

      Most types of content require additional attributes. For a photo, we probably also want to store the pixel width and height at the very least:

      -
      -  create table images (
      +
        create table images (
           image_id       integer
                          constraint images_image_id_fk
                          references cr_revisions
                          constraint images_pk
                          primary key,
           width          integer,
           height         integer
      -  );
      -
      + );

      Content types are nothing more than standard ACS Objects that inherit from content_revision:

      -
      -begin
      +
      begin
       
        acs_object_type.create_type (
          supertype => 'content_revision',
      @@ -62,8 +59,7 @@
       
       end;
       /
      -show errors
      -
      +show errors

      Note that content types always extend content_revision, rather than content_item. This is because we want to store multiple revisions of both the @@ -79,8 +75,7 @@

      In the simple case where each user is allowed a single portrait, we can simply define a relationship between user and image as ACS Objects:

      -
      -  acs_rel_type.create_role('user');
      +
        acs_rel_type.create_role('user');
         acs_rel_type.create_role('portrait');
       
         acs_rel_type.create_type( rel_type => 'user_portrait_rel',
      @@ -93,8 +88,7 @@
            object_type_two => 'content_item',
            min_n_rels_two => 0,
            max_n_rels_two => 1
      -  );
      -
      + );

      Note that the user object is related to a content_item object rather than an image object directly. Each image object represents only a @@ -104,21 +98,17 @@

      Now we have defined both a content type and relationship type, we can start storing portraits. The DML for processing a new portrait upload form would look like this:

      -
      -  begin transaction
      +
        begin transaction
           :item_id := content_item.new(:name, :item_id, sysdate, NULL,                           '[ns_conn peeraddr]'); 
           # maybe have content_revision return the LOB locator so that it can
           # be used directly with blob_dml_file
           :revision_id := content_revision.new(:title, :description, $publish_date,                               :mime_type, NULL, :text, 'content_revision', 
                                      :item_id, :revision_id);
           blob_dml_file update cr_revisions set content = empty_blob() ...
      -    :rel_id := acs_rel.new(...)
      -
      + :rel_id := acs_rel.new(...)

      Retrieve Objects

      -
      -  ns_ora write_blob ...
      -
      +
        ns_ora write_blob ...

      karlg\@arsdigita.com -

      Last Modified: $‌Id: storage.html,v 1.1.1.1.30.1 2016/06/22 -07:40:41 gustafn Exp $

      +

      Last Modified: $‌Id: storage.html,v 1.2 2017/08/07 23:47:47 +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 -N -r1.3 -r1.4 --- openacs-4/packages/acs-content-repository/www/doc/guide/template.adp 7 Aug 2017 23:47:47 -0000 1.3 +++ openacs-4/packages/acs-content-repository/www/doc/guide/template.adp 30 Apr 2018 08:15:07 -0000 1.4 @@ -21,12 +21,10 @@

      The content repository handle templates as a special class of text object. The interface for handling templates builds on that of simple content items:

      -
      -template_id := content_template.new(
      +
      template_id := content_template.new(
           name          => 'image_template',
           parent_id     => :parent_id
      -);
      -
      +);

      The name represents the tail of the location for that content template. The parent ID must be another content item, or a subclass of content item such as a folder.

      @@ -52,14 +50,12 @@

      Associating templates with content types

      You use the content_type.register_template procedure to associate a template with a particular content type:

      -
      -content_type.register_template(
      +
      content_type.register_template(
         content_type => 'content_revision',
         template_id  => :template_id,
         use_context  => 'public',
         is_default   => 't'
      -);
      -
      +);

      The use_context is a simple keyword that specifies the situation in which the template is appropriate. One general context, public, is loaded when the content repository @@ -75,23 +71,19 @@ template per pair.

      To make a template the default template for a content type/context pair:

      -
      -content_type.set_default_template(
      +
      content_type.set_default_template(
           content_type => 'content_revision',
           template_id  => :template_id,
           use_context  => 'public'
      -);
      -
      +);

      Associating templates with content items

      Individual items may also be associated with templates using the content_item.register_template procedure:

      -
      -content_item.register_template(
      +
      content_item.register_template(
         item_id     => :item_id,
         template_id => :template_id,
         use_context => 'intranet'
      -);
      -
      +);

      Unlike the case with content types, only one template may be registered with a content item for a particular context.

      The content management system uses this functionality to allow @@ -105,40 +97,34 @@ the content_item.get_template function to determine the proper template to use for rendering a page in any particular context:

      -
      -template_id := content_item.get_template(
      +
      template_id := content_item.get_template(
           item_id     => :item_id, 
           use_context => 'public'
       );
       
       template_path := content_template.get_path(
           template_id => :template_id
      -);
      -
      +);

      In the case that no template is registered to given item/context pair, content_item.get_template will return the default template (if it exists) for the related content type/context pair.

      Unregistering templates

      The procedure for disassociating templates with content types is as follows:

      -
      -content_type.unregister_template(
      +
      content_type.unregister_template(
           content_type => 'content_revision',
           template_id  => :template_id,
           use_context  => 'intranet'
      -);
      -
      +);

      The corresponding procedure to disassociate templates with content items is:

      -
      -content_item.unregister_template(
      +
      content_item.unregister_template(
           item_id     => :item_id,
           template_id => :template_id,
           use_context => 'admin'
      -);
      -
      +);

      karlg\@arsdigita.com -

      Last Modified: $‌Id: template.html,v 1.1.1.1.30.1 2016/06/22 -07:40:41 gustafn Exp $

      +

      Last Modified: $‌Id: template.html,v 1.2 2017/08/07 23:47:47 +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 -N -r1.3 -r1.4 --- openacs-4/packages/acs-content-repository/www/doc/guide/types.adp 7 Aug 2017 23:47:47 -0000 1.3 +++ openacs-4/packages/acs-content-repository/www/doc/guide/types.adp 30 Apr 2018 08:15:07 -0000 1.4 @@ -43,16 +43,14 @@ object ID (specific storage). To ensure efficient access to attributes, the content repository API requires you to use specific storage. Your table should have the form:

      -
      -create table cr_content_type (
      +
      create table cr_content_type (
           content_type_id       integer
                                 constraint cr_content_type_id_fk
                                 references cr_revisions
                                 constraint cr_content_type_pk
                                 primary key,
           attributes...
      -);
      -
      +);

      Note that your extended attribute table must reference the cr_revisions table, notcr_items. As mentioned above, this allows you to maintain multiple revisions of @@ -61,8 +59,7 @@

      Use the Content Type API to create the content type

      To define a content type, you should write an SQL script to create the content type and then add attributes to it:

      -
      -declare
      +
      declare
        attr_id        acs_attributes.attribute_id%TYPE;
       begin
       
      @@ -113,5 +110,5 @@
       details.


      templating\@arsdigita.com -

      Last Modified: $‌Id: types.html,v 1.1.1.1.30.1 2016/06/22 -07:40:41 gustafn Exp $

      +

      Last Modified: $‌Id: types.html,v 1.2 2017/08/07 23:47:47 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 -N -r1.4 -r1.5 --- openacs-4/packages/acs-content-repository/www/doc/guide/workflow.adp 27 Mar 2018 11:17:59 -0000 1.4 +++ openacs-4/packages/acs-content-repository/www/doc/guide/workflow.adp 30 Apr 2018 08:15:07 -0000 1.5 @@ -190,5 +190,5 @@ karlg\@arsdigita.com
      -Last Modified: $‌Id: workflow.html,v 1.1.1.1.30.1 2016/06/22 -07:40:41 gustafn Exp $ +Last Modified: $‌Id: workflow.html,v 1.3 2018/03/27 11:17:59 +hectorr Exp $ Index: openacs-4/packages/acs-developer-support/www/doc/developer-support-example.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-developer-support/www/doc/developer-support-example.adp,v diff -u -N -r1.2 -r1.3 --- openacs-4/packages/acs-developer-support/www/doc/developer-support-example.adp 7 Aug 2017 23:47:56 -0000 1.2 +++ openacs-4/packages/acs-developer-support/www/doc/developer-support-example.adp 30 Apr 2018 08:17:32 -0000 1.3 @@ -81,23 +81,19 @@
      content_type:  The type for which the view is to be created.
        13 ms  dml nsdb0 (main pool) -
      -update session_statistics 
      +
      update session_statistics 
       set session_count = session_count + 1, 
       repeat_count = repeat_count + 1 
      -where entry_date = trunc(sysdate)
      -
      +where entry_date = trunc(sysdate)
        124 ms  dml nsdb0 (main pool) -
      -update users
      +
      update users
       set last_visit = sysdate,
           second_to_last_visit = last_visit,
           n_sessions = n_sessions + 1
      -where user_id = 1472
      -
      +where user_id = 1472
      @@ -108,13 +104,11 @@
        6 ms  1row nsdb1 (main pool) -
      -select decode(count(1),0,0,1) 
      +
      select decode(count(1),0,0,1) 
                      from user_group_map 
                     where user_id=1472 
                       and (group_id=6
      -                     or group_id=1181)
      -
      + or group_id=1181)
      @@ -125,68 +119,57 @@
        10 ms  0or1row nsdb2 (main pool) -
      -select group_id 
      +
      select group_id 
       from administration_info 
       where module = 'intranet' 
      -and submodule is null
      -
      +and submodule is null
        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
        9 ms  0or1row nsdb2 (main pool) -
      -select group_id 
      +
      select group_id 
       from administration_info 
       where module = 'site_wide' 
      -and submodule is null
      -
      +and submodule is null
        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')
        18 ms  0or1row nsdb2 (main pool) -
      -select first_names || ' ' || last_name as full_name, 
      +
      select first_names || ' ' || last_name as full_name, 
                       decode(portrait_upload_date,NULL,0,1) as portrait_exists_p
                  from users 
      -          where user_id=1472
      -
      + where user_id=1472
        1225 ms  select nsdb2 (main pool) -
      -select ug.group_name, ug.group_id
      +
      select ug.group_name, ug.group_id
                  from user_groups ug, im_projects p
                 where ad_group_member_p ( 1472, ug.group_id ) = 't'
                   and ug.group_id=p.group_id
                   and p.project_status_id in (select project_status_id
                                                 from im_project_status 
                                                where project_status='Open' 
                                                   or project_status='Future' )
      -          order by lower(group_name)
      -
      + order by lower(group_name)
      @@ -209,62 +192,51 @@
        1578 ms  select nsdb2 (main pool) -
      -select ug.group_name, ug.group_id
      +
      select ug.group_name, ug.group_id
                  from user_groups ug, im_customers c
                 where ad_group_member_p ( 1472, ug.group_id ) = 't'
                   and ug.group_id=c.group_id
                   and c.customer_status_id in (select customer_status_id 
                                                 from im_customer_status 
                                                where customer_status in ('Current','Inquiries','Creating Bid','Bid out'))
      -          order by lower(group_name)
      -
      + order by lower(group_name)
        2 ms  getrow nsdb2 t54 (main pool)
        30 ms  1row nsdb2 (main pool) -
      -select sum(hours) from im_hours where user_id=1472
      +
      select sum(hours) from im_hours where user_id=1472
           and on_which_table='im_projects'
      -    and day >= sysdate - 7
      -
      + and day >= sysdate - 7
        14 ms  1row nsdb2 (main pool) -
      -select decode(count(1),0,0,1) 
      +
      select decode(count(1),0,0,1) 
                  from user_groups ug
                 where ad_group_member_p ( 1472, ug.group_id ) = 't'
      -            and ug.short_name='Business'
      -
      + and ug.short_name='Business'
        15 ms  1row nsdb2 (main pool) -
      -select decode(count(1),0,0,1) 
      +
      select decode(count(1),0,0,1) 
                  from user_groups ug
                 where ad_group_member_p ( 1472, ug.group_id ) = 't'
      -            and ug.short_name='Finance'
      -
      + and ug.short_name='Finance'
        5 ms  1row nsdb2 (main pool) -
      -select sysdate - 30 from dual
      -
      +
      select sysdate - 30 from dual
        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)
      @@ -281,8 +253,7 @@
        16 ms  select nsdb2 (main pool) -
      -select news.title, news.news_item_id, news.approval_state, 
      +
      select news.title, news.news_item_id, news.approval_state, 
        expired_p(news.expiration_date) as expired_p, 
        to_char(news.release_date,'Mon DD, YYYY') as release_date_pretty
       from news_items news, users ut
      @@ -291,8 +262,7 @@
       and news.approval_state = 'approved'
       and release_date < sysdate
       and news.creation_user = ut.user_id
      -order by release_date desc, creation_date desc
      -
      +order by release_date desc, creation_date desc
      @@ -312,8 +282,7 @@
        137 ms  select nsdb2 (main pool) -
      -select g.group_name, g.group_id
      +
      select g.group_name, g.group_id
                      from user_groups g, im_projects p, im_employees_active u, im_project_types
                     where p.project_lead_id = u.user_id
                       and p.project_type_id = im_project_types.project_type_id
      @@ -338,8 +307,7 @@
                                                          from survsimp_surveys
                                                         where short_name in ('project_report'))
                                         and submission_date > sysdate - 7
      -                                  and group_id=p.group_id)) )
      -
      + and group_id=p.group_id)) )
      @@ -350,13 +318,11 @@
        20 ms  select nsdb2 (main pool) -
      -select distinct u.user_id
      +
      select distinct u.user_id
                  from users_active u, user_group_map ugm
                 where u.user_id = ugm.user_id
                   and ugm.group_id = 6
      -            and u.portrait is not null
      -
      + and u.portrait is not null
      @@ -516,18 +482,15 @@ and ug.group_id = ugm.group_id and ug.parent_group_id = 5 and u.user_id = 1678 - and rownum < 2 - + and rownum < 2
        12 ms  select nsdb2 (main pool) -
      -select ug.group_id, ug.group_name, ai.url as ai_url
      +
      select ug.group_id, ug.group_name, ai.url as ai_url
       from  user_groups ug, administration_info ai
       where ug.group_id = ai.group_id
      -and ad_group_member_p ( 1472, ug.group_id ) = 't'
      -
      +and ad_group_member_p ( 1472, ug.group_id ) = 't'
      @@ -545,8 +508,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
      @@ -556,7 +518,6 @@

      - -
      webmaster\@dev.arsdigita.com
      -

      Last Modified: $‌Id: developer-support-example.html,v -1.1.1.1.28.1 2015/08/25 17:58:44 gustafn Exp $

      +
      webmaster\@dev.arsdigita.com
      +

      Last Modified: $‌Id: developer-support-example.html,v 1.2 +2017/08/07 23:47:56 gustafn Exp $

      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 -N -r1.3 -r1.4 --- openacs-4/packages/acs-developer-support/www/doc/index.adp 7 Aug 2017 23:47:56 -0000 1.3 +++ openacs-4/packages/acs-developer-support/www/doc/index.adp 30 Apr 2018 08:17:33 -0000 1.4 @@ -50,9 +50,7 @@ grokking the error log to see what's wrong with your page? Use the ds_comment routine instead: -
      -ds_comment "Foo is $foo"
      -
      +
      ds_comment "Foo is $foo"
      Your comment will show up at the bottom of the page, beneath the Developer Information @@ -78,5 +76,5 @@

      Please file bugs in the Bug Tracker.


      jsalz\@mit.edu
      -

      Last Modified: $‌Id: index.html,v 1.1.1.1.28.2 2015/08/25 -17:58:45 gustafn Exp $

      +

      Last Modified: $‌Id: index.html,v 1.2 2017/08/07 23:47:56 gustafn +Exp $

      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 -N -r1.6 -r1.7 --- openacs-4/packages/acs-lang/www/doc/i18n-design.adp 18 Apr 2018 08:07:33 -0000 1.6 +++ openacs-4/packages/acs-lang/www/doc/i18n-design.adp 30 Apr 2018 08:19:34 -0000 1.7 @@ -270,12 +270,12 @@ legacy tools that author in their "native" character sets, such as ShiftJIS in Japan, or BIG5 in China.

      So we make the convention that the template file is authored in -its effective locale's character set. For -multilingual templates, we will load the template in the site -default character set as specified by the AOLserver -OutputCharset initializatoin parameter. For now, we will -say that authoring generic multilingual adp files can and should be -done in ASCII. Eventually we can switch to using UTF8.

      +its effective locale's character set. For multilingual +templates, we will load the template in the site default character +set as specified by the AOLserver OutputCharset +initializatoin parameter. For now, we will say that authoring +generic multilingual adp files can and should be done in ASCII. +Eventually we can switch to using UTF8.

      A character set corresponding to a locale can be found using the [ad_locale charset$locale] command. The templating system should call this right after it @@ -513,22 +513,19 @@ (i.e. do nothing special):

           <trn>Hello</trn>
      -    
      -
      + Example 2: Assign the key key hello to the text string Hello and display the translated string in the user's preferred language:
           <trn key="hello">Hello</trn>
      -    
      -
      + Example 3: Specify that Bonjour needs to be registered as the French translation for the key hello (in addition to displaying the translation in the user's preferred language):
           <trn key="hello" lang="fr">Bonjour</trn>
      -    
      -
      + Example 4: Register the string and display it in the preferred language of the current user. Note that the possible values for the type parameter are determined by what has been @@ -539,12 +536,10 @@ current web page.
           <trn key="hello" type="user">Hello</trn>
      -    
      -

      Example 5: Translates the string once at template compile time, +

      Example 5: Translates the string once at template compile time, using the effective local of the page.

           <trn key="hello" static>Hello</trn>
      -    
      -
      +

      VII. Data Model Discussion

      Internationalizing the Data Models

      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 -N -r1.4 -r1.5 --- openacs-4/packages/acs-lang/www/doc/i18n-requirements.adp 29 Dec 2017 10:51:45 -0000 1.4 +++ openacs-4/packages/acs-lang/www/doc/i18n-requirements.adp 30 Apr 2018 08:19:34 -0000 1.5 @@ -119,10 +119,10 @@ documentation for this software is linked off of
    • Design document
    • Developer's guide
    • User's guide
    • Other-cool-system-related-to-this-one document
      LI18NUX 2000 Globalization Specification: http://www.li18nux.net/

      Mozilla i18N Guidelines: -http://www.mozilla.org/docs/refList/i18n/l12yGuidelines.html

      ISO -639:1988 Code for the representation of names of languages

      ISO 3166-1:1997 Codes -for the representation of names of countries and their subdivisions -Part 1: Country codes

      IANA Registry of Character Sets

      +http://www.mozilla.org/docs/refList/i18n/l12yGuidelines.html

      ISO 639:1988 +Code for the representation of names of languages

      ISO +3166-1:1997 Codes for the representation of names of countries and +their subdivisions Part 1: Country codes

      IANA Registry of Character Sets

    • Test plan
    • Competitive system(s)
    • VI Requirements