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:
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}RequirementsTest 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.)
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):
<?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
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.
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
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:
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.
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:
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 @@
);
[$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.
[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:
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)
-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:
All prerequisite packages are installed
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:
110.1.1 Running any data model scripts necessary to drop
the package.
110.1.5 Moving all of the files into a separate location
-in the file system from the installed packages.
4.110.1.10 If the package is a compound package, then
+in the filesystem from the installed packages.
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.
<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
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
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
+
Figure 8.1. 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 @@
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 @@
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 @@
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 @@
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 SiteChapter 4. Configuring a new OpenACS Site
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.
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:
.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:
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:
OpenACS docs are written by the named authors, and may be edited
by OpenACS documentation staff.
-
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
Branimir suggests an additional level of abstraction. If you put
Host cvs-server
HostName cvs.openacs.org
- 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
+ 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:
.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.
@@ -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:
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.
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.
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_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.
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).
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.
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.
Returns the next value for the sequence sequence-name (using a
SQL statement like SELECTsequence-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.
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.
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.)
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 @@
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.
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 @@
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 GuideDocBook 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>):
....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.
- 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>.
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.
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.
-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.
-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
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.
Upgrade scripts should be named /packages/myfirstpackage/sql/postgresql/upgrade/upgrade-OLDVERSION-NEWVERSION.sql
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.
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.
Database upgrades should be confined to development releases, not alpha or beta releases.
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
Feature
Status
Description
New API
@@ -108,9 +108,9 @@
EXT-AUTH-28
A
Username 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
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
Feature
Status
Description
New API
EXT-AUTH-01
A
Extend Authentication/Acct Status API
EXT-AUTH-03
A
Account Creation API
EXT-AUTH-05
A
Password Management API
EXT-AUTH-30
A
Authority Management API
Login
Feature
Status
Description
Login
EXT-AUTH-04
A
Rewrite login, register, and admin pages to use APIs
EXT-AUTH-38
A
ad_form complain feature
EXT-AUTH-19
A
Rewrite password recovery to use API
EXT-AUTH-21
A
Rewrite email verification with API
EXT-AUTH-28
A
Username 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
Feature
Status
Description
New API
EXT-AUTH-01
A
Extend Authentication/Acct Status API
EXT-AUTH-03
A
Account Creation API
EXT-AUTH-05
A
Password Management API
EXT-AUTH-30
A
Authority Management API
Login
Feature
Status
Description
Login
EXT-AUTH-04
A
Rewrite login, register, and admin pages to use APIs
EXT-AUTH-38
A
ad_form complain feature
EXT-AUTH-19
A
Rewrite password recovery to use API
EXT-AUTH-21
A
Rewrite email verification with API
EXT-AUTH-28
A
Username 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.
Feature
Status
Description
create service contract
EXT-AUTH-16
A
Create service contract for Authentication
EXT-AUTH-17
A
Create service contract for Acct. Creation
EXT-AUTH-29
A
Create service contract for Passwd Management
Feature
Status
Description
EXT-AUTH-18
A
Authority 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 dynamicallyMulti-part Elements
Some elements have more than one choice, or can submit more than
one value.
-SELECT elements
+SELECT elements
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
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:
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
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
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:
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 ConfigurationsHigh Availability/High Performance
Configurations
On the administration page, click Parameters link.
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
-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:
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
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".
On the administration page, click Parameters link.
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 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 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:
On the administration page, click Parameters link.
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 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 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:
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
How do I diagnose a permissions problem?
Steps to Reproduce. The events package does not allow users to register for new events.
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.
Select an available event
A link such as Registration: Deadline is 03/15/2004 10:00am.
+
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
How do I diagnose a permissions problem?
Steps to Reproduce. The events package does not allow users to register for new events.
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.
Select an available event
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"
-
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
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.
To grant permissions on a package, start at the site map. Find the event package and click "Set permissions".
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
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.
To grant permissions on a package, start at the site map. Find the event package and click "Set permissions".
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 PackageYYYY-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
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.
<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]"
@@ -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.
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:
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.
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
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.
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.
[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.
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 inittabweb 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.
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 AOLservercd 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.
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/9Unplug
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
- 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 @@
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
On the pop-up window asking "Are you sure
you want to do this?" click
Yes
- IF YOU ARE WIPING YOUR HARD DRIVE.
Click Next on the boot loader screen
Configure Networking.
+ IF YOU ARE WIPING YOUR HARD DRIVE.
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.
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.
Type in your host
-name, gateway, and DNS server(s). Then click Next.
We're going to use the firewall template for high
+and type in your IP and netmask. Click Ok.
Type in your hostname, gateway, and DNS server(s). Then click Next.
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
-
+
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.
Make sure nsopenssl.so is installed
for AOLserver.
-
Uncomment this line from config.tcl.
-#ns_param nsopenssl ${bindir}/nsopenssl.so
+
Uncomment this line from config.tcl.
#ns_param nsopenssl ${bindir}/nsopenssl.so
@@ -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 @@
name of administrative access account
remadmin
OpenACS service
-$OPENACS_SERVICE_NAME (set to service0
+$OPENACS_SERVICE_NAME (set to service0
in default install)
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 server
yourserver.test
name of administrative access account
remadmin
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 server
yourserver.test
name of administrative access account
remadmin
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:
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 ProblemsThis 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
@@ -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#
-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 @@
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?
Click on "Install New Application" in "Install from OpenACS Repository"
Choose "ACS Developer Support">
After install is complete, restart the server.
Browse to Developer Support, which is automatically mounted at /ds.
-
Turn on Database statistics
Browse directly to a slow page and click "Request Information" at the bottom of the page.
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
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?
Click on "Install New Application" in "Install from OpenACS Repository"
Choose "ACS Developer Support">
After install is complete, restart the server.
Browse to Developer Support, which is automatically mounted at /ds.
+
Turn on Database statistics
Browse directly to a slow page and click "Request Information" at the bottom of the page.
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
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 @@
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
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
-
Figure 6.3. Simple A/B
+
Figure 6.3. Simple A/B
Deployment - Step 2
-
Figure 6.4. Simple A/B
+
Figure 6.4. Simple A/B
Deployment - Step 3
-Complex A/B Deployment: Database is
+Complex A/B Deployment: Database is
changed
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
Figure 6.3. Simple A/B Deployment - Step 2
Figure 6.4. Simple A/B Deployment - Step 3
Complex A/B Deployment: Database is changed
Figure 6.5. Complex A/B Deployment - Step 1
Figure 6.6. Complex A/B Deployment - Step 2
Figure 6.7. 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
Figure 6.3. Simple A/B Deployment - Step 2
Figure 6.4. Simple A/B Deployment - Step 3
Complex A/B Deployment: Database is changed
Figure 6.5. Complex A/B Deployment - Step 1
Figure 6.6. Complex A/B Deployment - Step 2
Figure 6.7. 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:
The knowledge level (i.e. the metadata model)
The operational level (i.e. the concrete data model)
+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 Systemcreated 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.
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:
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.
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.
-
Make sure that you can login to Oracle using your service_name account:
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.
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.
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.
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.
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.
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.
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.
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
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
-
+
\ 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 Type
Its Use
Naming Convention
Package Specification File
The package specification file is an XML file generated and
+
Table 11.1. Package files
File Type
Its Use
Naming Convention
Package Specification File
The package specification file is an XML file generated and
maintained by the OpenACS Package Manager (APM). It specifies
information about the package including its parameters and its
files.
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 OpenACSparties. 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.
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 ExplainedContext
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_id
context_id
20
10
30
10
40
20
50
20
60
30
+
Table 11.3. acs_objects example data
object_id
context_id
20
10
30
10
40
20
50
20
60
30
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.
- 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 @@
-
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 @@
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
contributed by xxxx committers (...) and xxxx patch/bugfix
+providers (...). All packages of the release were tested with
+PostgreSQL 10.* and Tcl 8.6.*.
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
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/* *~")
+ contributed by xxxx committers (...) and xxxx patch/bugfix providers
+ (...). All packages of
+ the release were tested with PostgreSQL 10.* and Tcl 8.6.*.
+
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/* *~")
-
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
-
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.
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 Designad_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.
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.
Back up the database to a file.
Oracle.
+ filesystem backup.
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.
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.
-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}Categoriesnote_id and confirm_p. If confirm_p is present, we
delete the record, set redirection back to the index, and abort
-script execution.
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 tablesLaying out a page with CSS instead of
tables
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
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.
[$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 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
The top of each sql file has some
+
Figure 9.2. 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.
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.
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:
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:
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
Test Num
Action
Expected Result
@@ -69,11 +69,11 @@
to delete your own note. Edit your own note. Search for a note.
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
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 Num
Action
Expected Result
001
Browse to the index page while not logged in and
+
Manual testing
Make a list of basic tests to make sure it works
Test Num
Action
Expected Result
001
Browse to the index page while not logged in and
while one or more notes exist.
No edit or delete or add links should appear.
002
Browse 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-001
Invoke mfp::note::create with a specific word as the title.
Proc should return an object id.
API-002
Given an object id from API-001, invoke mfp::note::get.
Proc should return the specific word in the title.
API-003
Given 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.
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:
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.
The template should provide us with the following ETP layout:
Table 10.1. table showing ETP layout
Header
Sidebar
Main 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
Sidebar
Main 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 PackageThe 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.
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:
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.
-
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.
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:
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:
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
-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:
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.
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
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:
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
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 Specswww/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:
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 URLsnote-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 translationsHow to Update the translations
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:
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.
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.
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 @@
-
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
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
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):
-[$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
@@ -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:
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.)
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:
Go to /acs-admin/install/ and click "Upgrade Your System" in "Install from OpenACS Repository"
Select all of the packages you want to upgrade and proceed
After upgrade is complete, restart the server as indicated.
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:
Go to /acs-admin/install/ and click "Upgrade Your System" in "Install from local file system"
Select all of the packages you want to upgrade and proceed
After upgrade is complete, restart the server as indicated.
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:
Go to /acs-admin/install/ and click "Upgrade Your System" in "Install from OpenACS Repository"
Select all of the packages you want to upgrade and proceed
After upgrade is complete, restart the server as indicated.
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:
Go to /acs-admin/install/ and click "Upgrade Your System" in "Install from local filesystem"
Select all of the packages you want to upgrade and proceed
After upgrade is complete, restart the server as indicated.
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.
-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
@@ -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!
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:
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 @@
-
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
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
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 @@
[$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:
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:
Declare a freeze on new cvs updates - ie, you cannot run cvs update
on the production site
Make a manual backup of the production site in addition to the
automated backups
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:
Click install or upgrade under "Install from OpenACS Repository" and select the packages to install or upgrade.
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
It's always a good idea to precede an upgrade attempt with a snapshot 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:
Click install or upgrade under "Install from OpenACS Repository" and select the packages to install or upgrade.
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
It's always a good idea to precede an upgrade attempt with a snapshot backup.
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
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
@@ -39,14 +39,14 @@
need to give it a base URL, a username, and password for that user.
are the "JVMARG" lines in the "JUNIT" section.
). In the near future, this will be moved out of the subdirectories
-and either into the top-level build.xml file or into a configuration
+and either into the toplevel build.xml file or into a configuration
file.
You should now be ready to run the tests. Go to your
server's "packages" directory and type source
./paths.sh to set up your classpath. Now type
-ant. Ant should find the top-level build.xml file,
+ant. Ant should find the toplevel build.xml file,
check that it can see JUnit, compile your java files, and finally
-call Ant on each of the subdirectory build.xml files to run the
+call Ant on each of the sub-directory build.xml files to run the
tests. You should be shown a report of which tests failed and which
succeeded.
Adding Your Own Unit Tests
Index: openacs-4/packages/acs-datetime/www/doc/coversheet.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-datetime/www/doc/coversheet.adp,v
diff -u -r1.3 -r1.3.2.1
--- openacs-4/packages/acs-datetime/www/doc/coversheet.adp 7 Aug 2017 23:47:55 -0000 1.3
+++ openacs-4/packages/acs-datetime/www/doc/coversheet.adp 3 Sep 2021 09:15:39 -0000 1.3.2.1
@@ -1,5 +1,5 @@
-{/doc/acs-datetime {ACS Date and Time Utilities}} {ACS DateTime}
+{/doc/acs-datetime/ {ACS Date and Time Utilities}} {ACS DateTime}ACS DateTime
ACS DateTime
Index: openacs-4/packages/acs-datetime/www/doc/design.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-datetime/www/doc/design.adp,v
diff -u -r1.4.2.1 -r1.4.2.2
--- openacs-4/packages/acs-datetime/www/doc/design.adp 13 Aug 2019 07:25:24 -0000 1.4.2.1
+++ openacs-4/packages/acs-datetime/www/doc/design.adp 3 Sep 2021 09:15:39 -0000 1.4.2.2
@@ -1,5 +1,5 @@
-{/doc/acs-datetime {ACS Date and Time Utilities}} {ACS DateTime}
+{/doc/acs-datetime/ {ACS Date and Time Utilities}} {ACS DateTime}ACS DateTime
ACS DateTime
Index: openacs-4/packages/acs-datetime/www/doc/index.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-datetime/www/doc/index.adp,v
diff -u -r1.4 -r1.4.2.1
--- openacs-4/packages/acs-datetime/www/doc/index.adp 11 Apr 2018 20:52:01 -0000 1.4
+++ openacs-4/packages/acs-datetime/www/doc/index.adp 3 Sep 2021 09:15:42 -0000 1.4.2.1
@@ -1,5 +1,5 @@
-{/doc/acs-datetime {ACS Date and Time Utilities}} {ACS DateTime Documentation}
+{/doc/acs-datetime/ {ACS Date and Time Utilities}} {ACS DateTime Documentation}ACS DateTime Documentation
ACS DateTime Documentation
Index: openacs-4/packages/acs-datetime/www/doc/requirements.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-datetime/www/doc/requirements.adp,v
diff -u -r1.3.2.1 -r1.3.2.2
--- openacs-4/packages/acs-datetime/www/doc/requirements.adp 13 Aug 2019 07:25:24 -0000 1.3.2.1
+++ openacs-4/packages/acs-datetime/www/doc/requirements.adp 3 Sep 2021 09:15:43 -0000 1.3.2.2
@@ -1,5 +1,5 @@
-{/doc/acs-datetime {ACS Date and Time Utilities}} {ACS DateTime}
+{/doc/acs-datetime/ {ACS Date and Time Utilities}} {ACS DateTime}ACS DateTime
ACS DateTime Requirements
@@ -64,8 +64,8 @@
an HTML table.
Generate a basic monthly calendar
Generate a small monthly calendar
Generate small monthly calendars centered in a given month
-(previous, current, next)
Generate a yearly calendar (composed of small monthly calendars)
-given the starting month as a date
Generate a yearly calendar based on calendar year (Jan to Dec),
+(previous, current, next)
Generate a yearly calendar (composed of small monthly
+calendars) given the starting month as a date
Generate a yearly calendar based on calendar year (Jan to Dec),
given any date within that calendar year
Generate a calendar navigation widget with viewing options for
day, week, month and year
@@ -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.
".
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.
@@ -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
-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
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.
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.
-
-
Description
Data
Template
Compiled
@@ -109,53 +108,28 @@
Repeating template chunks for each row of a query result, with
custom manipulation of data
-
-
-
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">
<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]
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
@@ -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 {
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.
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:
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.
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.
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:
-
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
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
-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 @@
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).
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
@@ -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
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.
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}TestsA
@@ -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 ExperienceUser
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}} {}
@@ -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
@@ -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.
@@ -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
@@ -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
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 @@
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
Index: openacs-4/packages/news/www/doc/requirements.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/news/www/doc/requirements.adp,v
diff -u -r1.3.2.3 -r1.3.2.4
--- openacs-4/packages/news/www/doc/requirements.adp 8 Aug 2020 11:19:23 -0000 1.3.2.3
+++ openacs-4/packages/news/www/doc/requirements.adp 3 Sep 2021 09:16:43 -0000 1.3.2.4
@@ -104,8 +104,8 @@
10.10.10 cr_news: subtype cr_revisions to define news content
type
-10.10.20 news_templates: use filesystem for new templates, no
-extra table
+10.10.20 news_templates: use filesystem for new templates, no extra
+table
Install the rss-support package, and mount a single instance at
a convenient location (e.g. /rss). Note that
-rss-support is a service package and a singleton.
Create one or more implementations Of the RssGenerationSubscriber
-interface. This example
-registers an implementation for bboard forums.
Define the implementation procs. This example implements the contracted
+rss-support is a service package and a singleton.
Create one or more implementations of the
+RssGenerationSubscriber interface. This example registers an
+implementation for bboard forums.
Define the implementation procs. This example implements the contracted
procs.
Create a subscription for each forum to be summarized. This can
be accomplished by querying for the implementation's
impl_id as follows
Index: openacs-4/packages/rss-support/www/doc/design.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/rss-support/www/doc/design.adp,v
diff -u -r1.2 -r1.2.2.1
--- openacs-4/packages/rss-support/www/doc/design.adp 7 Aug 2017 23:48:29 -0000 1.2
+++ openacs-4/packages/rss-support/www/doc/design.adp 3 Sep 2021 09:16:47 -0000 1.2.2.1
@@ -1,5 +1,5 @@
-{/doc/rss-support {RSS Support}} {RSS Support Design Notes}
+{/doc/rss-support/ {RSS Support}} {RSS Support Design Notes}RSS Support Design Notes
Index: openacs-4/packages/search/www/doc/guidelines.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/search/www/doc/guidelines.adp,v
diff -u -r1.3 -r1.3.2.1
--- openacs-4/packages/search/www/doc/guidelines.adp 11 Jun 2018 09:36:28 -0000 1.3
+++ openacs-4/packages/search/www/doc/guidelines.adp 3 Sep 2021 09:16:47 -0000 1.3.2.1
@@ -1,5 +1,5 @@
-{/doc/search {Search}} {How to make an object type searchable?}
+{/doc/search/ {Search}} {How to make an object type searchable?}How to make an object type searchable?