Search · Index


Showing 1 - 10 of 827 Postings (summary)

Upgrade between PostgreSQL versions

Created by Gustaf Neumann, last modified by Gustaf Neumann 23 Jul 2016, at 09:47 AM

The probably easiest way to upgrade between PostgreSQL versions is as follows (described here from 9.4 to 9.5, based on the directory structure as provided by Mac Ports)

DATE=`date +"%Y-%m-%d"`
# Dump all databases from pg 9.4
sudo -u postgres $PGBIN/pg_dumpall | gzip -9 > ~/pg-dump-all-$DATE.gz

Then stop pg 9.4, start pg 9.5, then reload the dump:

# Restore all databases and roles from dump into pg 9.5
gunzip < ~/pg-dump-all-$DATE.gz |  $PGBIN/psql -U postgres

voilà, start OpenACS, and everything works fine.

In case there is a problem with restoring the dump in PostgreSQL 9.5 due to the "=>" operator of hstore, one has to update the version of hstore at least to 1.1 before dump/restore (the current version of hstore is 1.4; for details see hstore-upgrade ).




Created by Maurizio Martignano, last modified by Maurizio Martignano 17 Jul 2016, at 08:53 AM

Windows-OpenACS (vers. 3.1.4 - July 2016) is a  Windows 64 port of OpenACS 5.9.0 and the latest snapshot of NaviServer and is available here.

This port installs and runs on the following systems:

  • Windows 8.1,
  • Windows 10,
  • Windows Server 2012 R2, and
  • Windows Server 2016 TP.


ACS Service Contract

Created by Nick Carroll, last modified by Torben Brosten 16 Jul 2016, at 07:43 PM

Package specification Summary for package acs-service-contract

Summary: API and UI for service contracts
Description: Service contracts defines an API for the creation of interfaces and discovery of interface implementations. Examples are the contracts used for search which provide a means to get content on a given object and to translate an object_id to a url or the contracts used by dotlrn and new-portals to allow packages to provide portalized panes.
Maturity: Mature and Standard
This package depends on: acs-kernel
Packages that depend on acs-service-contract: acs-authentication acs-content-repository acs-mail-lite dotlrn-research dotlrn-syllabus payment-gateway profile-provider search shipping-gateway

Bug Tracker Summary for package acs-service-contract

Open Bugs: 3
Latest Bug Opened: 2007-06-06 Missing unique constraint (acs_sc_msg_type_elements)
Latest Bug Fixed: 2006-01-25 Move acs-service-contract UI to sitewide-admin.
Top Bug Submitters: Caroline Meeks (1) Stefan Sobernig (1) Lars Pind (1) Harish Krishnan (1) Tilmann Singer (1)
Top Bug Fixers: Jeff Davis (1) Lars Pind (1)

Code Metrics Summary for package acs-service-contract

# Tcl Procs 31
# Tcl Lines 1099
# Automated Tests 1
# Stored Procedures PG: 0 ORA: 0
# SQL Lines PG: 0 ORA: 0
# ADP pages 3
# ADP lines 71
# Include pages (acs-service-contract/lib/) 0
# Documentation pages 4
# Documentation lines 587
Source API-browser


Created by Gustaf Neumann, last modified by Antonio Pisano 16 Jul 2016, at 07:42 PM

XoWiki is a wiki implementation for OpenACS  implemented based on xotcl-core. Instead of trying to implement the full set of wiki markup commands in systems like MediaWiki, XoWiki is based on a rich text editor and focuses more on integration with OpenACS (e.g. categories, general comments, adp-includes, ad-substitution of template variables). XoWiki combines aspects of wikis (ease of page-creation) with aspects of a content management system (revisions, reusable content, multiple languages, page templates).

XoWiki provides functionalities of enterprise wiki systems (such as combining structured with unstructured information, providing security policies, etc.). XoWiki is reused in several other packages such as XoWiki Content flow, S5 or  the Learning Content Tool.


Package specification Summary for package xowiki

Summary: A xotcl-based enterprise wiki system with multiple object types
Description: <pre> XoWiki is a Wiki implementation for OpenACS in XOTcl. Instead of trying to implement the full set of Wiki markup commands of systems like MediaWiki, XoWiki is based on a rich text editor and focuses more on integration with OpenACS (e.g categories, general comments, ADP-includes). XoWiki combines aspects of wikis (ease of page-creation) with aspects of a content management system (revisions, re-usable items, multiple languages). Furthermore, XoWiki allows to define different types of links such one could define book-structures (where a navigation structure could be built on the fly) or glossaries with different kind of word relationships (like synonyms, etc.). XoWiki supports pages in multiple languages and is localized. Some features: - cross language links - inclusion of ADP pages - nesting of Wiki-pages - large set of includeable content (includelets) - search - tags - categories - RSS - weblog - podcasts - notifications - web 2.0 gadgets (digg, delicious, my yahoo) - audio embedding - different appearances (template_file) - book-structures - prototype pages - import/export - virtual presence - analysis of collaboration networks - forms - named/unnamed pages - various security policies </pre>
Maturity: Mature
This package depends on: acs-datetime acs-kernel acs-tcl acs-subsite richtext-xinha categories file-storage general-comments xotcl-core
Packages that depend on xowiki: content-portlet eduwiki learning-content learning-content-portlet pages s5 xolirc xowf xowiki-includelet xowiki-portlet

Bug Tracker Summary for package xowiki

Open Bugs: 1
Latest Bug Opened: 2016-02-01 XOWiki YouTube FormField must be upgraded to YouTubes IFrame API
Latest Bug Fixed: 2015-10-20 Problem with HTML tag escaping in the Wiki.
Top Bug Submitters: Robert Taylor (10) Ryan Gallimore (9) Carl Robert Blesius (6) Malte Sussdorff (3) Janine Ohmer (2)
Top Bug Fixers: Gustaf Neumann (39) Stan Kaufman (2) Malte Sussdorff (1)

Code Metrics Summary for package xowiki

# Tcl Procs 24
# Tcl Lines 26790
# Automated Tests 0
# Stored Procedures PG: 0 ORA: 0
# SQL Lines PG: 0 ORA: 0
# ADP pages 23
# ADP lines 1721
# Include pages (xowiki/lib/) 1
# Documentation pages 0
# Documentation lines 0
Source API-browser

Theming in OpenACS

Created by Gustaf Neumann, last modified by Monika Andergassen 15 Jul 2016, at 03:55 PM

OpenACS provides theming functionality, i.e. the customization of the site layout through so-called theme packages with customized CSS and HTML layout.

Each subsite in OpenACS can have its own theme.

By default, the "Openacs-Default-Theme" is activated when installing OpenACS. The "Openacs-Default-Theme" package contains a "tabbed" navigation theme and a "plain" navigation theme (without tabs in main navigation).

OpenACS comes now with a new theme package, the "Openacs-Bootstrap3-Theme" Package, which is based on the Twitter Bootstrap Library . This new package is used on the site and available form the openacs repository. The package (and the description below) requires at least OpenACS 5.9.0.  In the following section you find some hints on how to use and customize this theme and how the theming can be customized in newer versions of OpenACS.

Step-by-Step Installation of a Theme Package

Installing theme packages and switching between themes can be easily done in a few steps:

  1. Obtain the theme package (e.g. from CVS or github) and install it under the package directory. You can as well "install from the respository", which makes step 2 below unnecessary.
  2. Go to /acs-admin/install and install the package
  3. Navigate to the subsite whose theme you would like to change and go to the "Configure"-Page. If you only have the default subsite set up, this is located at /admin/configure. Choose the theme you want. Klick Ok. You should see the new theme now.
    Note that a theme package can contain a number of different themes. For instance, the "Openacs-Default-Theme" Package contains a "tabbed" and a "plain" theme; the "Openacs-Bootstrap3-Theme" Package contains a "tabbed" theme in OpenACS style and a "tabbed" theme in turquoise color.
  4. DONE!

Understanding the Basic Settings of Theme Packages

Where are the themes of a theme package defined?

Open /packages/openacs-bootstrap3-theme/tcl/apm-callback-procs.tcl in your editor. You see that 2 themes are defined here (subsite::new_subsite_theme), with all relevant parameters including css and js files and definition of template files. 

You could add another subsite theme here. In order to get it listed on the "Configure"-Page of your subsite, you need to de-install and re-install the Theme Package.

The Theming Parameters allow you to specify, how elements of your page such as forms or lists should be rendered. If the resource which you have defned in your theme is not found, the default is taken from /packages/acs-templating/resources/ as a fallback.

The Theming Parameters

Have a look at the parameter page of your subsite. If you only have the default subsite set up, this is located at /shared/parameters.

In the "Theming"-Section of the subsite parameter page, you find the parameters which you have defined in the apm-callback-procs.tcl file of your theme package. You can modify the parameters here, however it is recommended that you define them in the apm-callback-procs. Why? If you switch the theme or re-install it, the settings of the parameter page are lost!


  • Defines layout of the filter options in a dimensional list. You can find an example at the Download Page  of the OpenACS Website.


  • Defines the layout of form templates


  • Defines the layout of list templates


  • Defines the general page layout. The master usually sets the framing for the page layout and places elements such as header, navigation, content area, footer.


  • The directory, from which the resources of acs-templating are loaded. The resources include the template files for dimensionals, forms, lists, masters, templates, widgets. If not set, or the required resource is not found, the default is taken from /packages/acs-templating/resources/.
    If for instance, the ResourceDir is set to /packages/openacs-bootstrap3-theme/resources, and you have a dimensional template defined in "Openacs-Bootstrap3-Theme" Package, you only need to specify the name of the -dimensional_template without giving the entire path.


  • Master used for streaming content


  • List of CSS files used in the theme


  • List of Javascript files used in the theme


  • Key of theme.

Additional Tools to Layout in a Theme Package


Starting with OpenACS 5.9, so-called widgets can be defined. <widget> is very similar to <include>, but uses widget specific name resolution based on themes. If the theme package contains resources/widgets/$specifiedName it is used from there. Otherwise it behaves exactly like <include> (without the resources/templates/theming).

In the "Openacs-Bootstrap3-Theme" Package, widgets are defined e.g. for the main navigation bar and the login area.


Sometimes, you might want a specific page or include to have a special design or layout which differs from the standard layout defined in that package. For instance, you might want to give the notification widget a new look&feel. You could go to the notification package and edit the correspondend tcl/adp files there. However, when upgrading the package, you always would have to merge your local changes with the upgraded files.

Starting with OpenACS 5.9, you can customize your local templates in your Theme Package. These files "overrule" the tcl/adp files in the corresponding packages. This makes it easier for you to keep the overview of all your layout changes, and also to upgrade your packages with less effort.

How does it work?

Let's take the example from above: you want to change the lokk&feel of the notification widget. The tcl/adp files are situated in /packages/notifications/lib/notification-widget.tcl and /packages/notifications/lib/notification-widget.adp.

Go to the "Openacs-Bootstrap3-Theme" Package. You see a folder resources/templates. Now construct a folder structure in the templates folder, just like this: resources/templates/notifications/lib and create the 2 files notification-widget.tcl/adp. Change the layout as desired.


The "Openacs-Bootstrap3-Theme" Package contains a few such template files by default; feel free to change or complement them.

Understanding the Openacs-Bootstrap3-Theme Package

Different master files

The "Openacs-Bootstrap3-Theme" Package comes with a set of master files, which are shortly explained here. 

  • The "base master" is the plain-master.tcl/adp. It defines the general page layout.
  • The tabbed-master.tcl/adp is the addition for a tabbed navigation, i.e. navigation tabs in the header bar which are defined in the parameter page. Tabs can be defined for admins (AdminNavbarTabsList), for members (MembersViewNavbarTabsList), for users (UserNavbarTabsList). You can check if you want the applications to be shown as tabs in the navigation bar.
  • The tabbed-master-turquois.tcl/adp is similar tp the tabbed-master.tcl/adp. The difference is in the logo image defined in the .tcl file. In the OpenACS website, it is currently applied in the subsite for the .LRN project .
  • The plain-streaming-head.tcl/adp, tabbed-streaming-head.tcl/adp, and tabbed-streaming-head-turquois.tcl/adp files are the corresponding master files for streaming content.

Color css

"Openacs-Bootstrap3-Theme" Package contains a "tabbed" theme in OpenACS style and a "tabbed" theme in turquoise color. The color stylesheets are defined in the apm-callback-procs.tcl file and located at /packages/openacs-bootstrap3-theme/www/resources/css/color/. This makes it very easy to change the color design of the theme. You could either modify one of the color stylesheets "blue.css" or "turquois.css"; or you could add your own color stylesheet and link it in the apm-callback-procs.tcl-file. In the latter case, you should de-activate and re-activate the theme in the "Configure"-Page (see above) to activate the setting.

Twitter Bootstrap

As the name of the package suggests, the "Openacs-Bootstrap3-Theme" Package makes use of the Twitter Bootstrap Library in version 3. The Twitter Bootstrap Library is a HTML, CSS and JAVASCRIPT library for frontend development which is based on a mobile first, responsive approach to web design.

Much has ben written about this library. However, here are a few links which should help you to make yourself familiar with the Library in case you are new to Bootstrap:

Designing your own Theme

 The following guideline helps you to create your own theme. The easiest approach to develop your own theme is to build up on an existing one. For instance, you could modify the "Openacs-Bootstrap3-Theme" Package as a starting point.

  1. Make a local copy of the "Openacs-Bootstrap3-Theme" Package
  2. Rename the package.
  3. Take particular care of the .info file. Rename all the places where you find "openacs-bootstrap3-theme", and give a unique package key.
  4. Take particular care of the tcl/apm-callback-procs.tcl file. The subsites defined here through subsite::new_subsite_theme need to have a unique key, so give all the subsites you create here a unique key. Also, take care of the namespace.
  5. Before starting to modify the package, it is best to try to install and de-install the package on a test instance to make sure that you have all the naming right.
  6. Now feel free to modify the design as you like.

Themes in .LRN

When installing .LRN, the theme-zen is installed and activated by default.

.LRN comes now with a new theme package, the "Dotlrn-Bootstrap3-Theme" Package (as of July 2016, it is in proof-of-concept state!).

The "Dotlrn-Bootstrap3-Theme" Package builds on the "Openacs-Bootstrap3-Theme" Package and depends on both the "Openacs-Bootstrap3-Theme" Package and the "Theme-Zen" Package.

The Theming specifics described above also apply to .LRN theming, but additionally you should consider the following points:

Portal Pages Design

The Design of a Portal Page is defined on 3 levels:

  • The subsite theme (which can be chosen on the "Configure"- Page, as described above)
  • The page layout: It defines whether the page has, for instance, a 1-column, 2-column or 3-column layout. In the "Dotlrn-Bootstrap3-Theme" Package, the layouts are defined at lib/layouts.
  • The portlet theme: It defines the look&feel of the single portlet. In the "Dotlrn-Bootstrap3-Theme" Package, the themes are defined at lib/themes.

Since every portal which is created, stores the portlet theme ID in the database, and since every portal page that is created, stores the page layout ID in the database, changing a theme in .LRN requires an upgrade of the affected database tables. This is done by the tcl/theme-procs.tcl/xql in the "Dotlrn-Bootstrap3-Theme" Package.

!!!!!! Attention: If you switch to the .LRN-bootstrap3-theme, all the portal pages are updated to the bootstrap3 layout !!!!!!

Installing and De-Installing the "Dotlrn-Bootstrap3-Theme" Package

If the "Dotlrn-Bootstrap3-Theme" Package is de-installed, the above described portal pages design falls back to the theme-zen design. This should make sure that the portal pages are always provided with a working layout.

OpenACS 5.9 HTML validity fixes

Created by Gustaf Neumann, last modified by Gustaf Neumann 15 Jul 2016, at 06:48 AM

Fixed validity of the following (mostly admin) pages:

 /admin/groups/  (elements-by-group-type, elements-by-group-type)
 /admin/site-map  (folder add, rename)




Known Problems

  • double "id": 
    Example: /admin/rel-types/new-2?supertype=membership_rel
  • developer-support breaks validation (adds "div" immediately after "ul" due to include):
    Example: /admin/groups/
    Solved, by adding ability to suppress div wrapper via <include ds=0 src=...>


Modifying the look of an OACS install

Created by Ryan Gallimore, last modified by Monika Andergassen 09 Jul 2016, at 02:53 PM

Please refer to for newer templating information & tutorial.


Template Files 

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:


    If it appears exactly like this, without any arguments, the template processer 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 1. Site Templates

Site Templates


CSS Files

 /packages/acs-subsite/www/resources/site-master.css contains styles for the following elements:

  • Header
  • User Bar
  • Footer
  • Navigation
  • Widgets (Buttons)
  • Text Styles
  • Portlets
  • acs-developer-support (along with /packages/acs-developer-support/www/resources/acs-developer-support.css)

 /packages/acs-subsite/www/resources/default-master.css defines styles for the following elements:

  • Table, TR, TD
  • Calendar package
  • combo boxes (for date dropdowns)

/packages/acs-templating/www/resources contains many other css stylesheets that are appropriately named. Each package may also often have its own stylesheet.


Selva Theme 

Selva simplifies the work of customizing the look and feel of your OpenACS/dotLRN website. You will find Selva's documentation on each installation of openacs, once the package is installed, you will find its documentation as follows: http://yoursite/doc/theme-selva.

Since Selva is based purely on css you can have a better accessibility on designing your site.

Steps in placing logo using Selva 

  • Go to http://yoursite/admin/site-map/
  • Search on theme-selva package and Click on its parameter link
  • Look for the parameter named " logoUrl" and place the the filename or URL of the Logo that you want to put in.
  • Go to http://yoursite/admin/site-map/, look for "Main Site" and click on parameters, then set the DefaultMaster parameter to  /packages/theme-selva/www/selva-master

Note: This instruction assumed that you have already installed the package theme-selva in your openacs installation.





Created by Gustaf Neumann, last modified by Gustaf Neumann 09 Jul 2016, at 11:48 AM

This package provides a Theme based on  the Twitter Bootstrap 3  library. The theme can be activated via /admin/configure and it can be configured via /shared/parameters.   For more information about customizing this theme and on theming in OpenACS in general, see oacs-theming.

This theme is currently in use at

Package specification Summary for package openacs-bootstrap3-theme

Summary: Theme for OpenACS based on Twitter Bootstrap 3
Description: This package provides a Theme based on Twitter Bootstrap 3. The them can be activated via /admin/configure and it can be configured via /shared/parameters . This theme is currently in use at
Maturity: Mature
This package depends on: acs-kernel
Packages that depend on openacs-bootstrap3-theme: None

Bug Tracker Summary for package openacs-bootstrap3-theme

Open Bugs: 0
Latest Bug Opened: This package has no open bugs.
Latest Bug Fixed: No bugs have been fixed in this package.
Top Bug Submitters:
Top Bug Fixers:

Code Metrics Summary for package openacs-bootstrap3-theme

# Tcl Procs 2
# Tcl Lines 70
# Automated Tests 0
# Stored Procedures PG: 0 ORA: 0
# SQL Lines PG: 0 ORA: 0
# ADP pages 0
# ADP lines 0
# Include pages (openacs-bootstrap3-theme/lib/) 0
# Documentation pages 0
# Documentation lines 0
Source API-browser



Creating box tags for consistent html/css

Created by openacs community, last modified by Torben Brosten 08 Jul 2016, at 02:30 PM

Box tag code:

# The box tag is intended to make the markup around a "box"
# standard sitewide so that you can use the same css everywhere to   
# style the site.


template_tag box { chunk params } {

    set class [ns_set iget $params class]

    if {[template::util::is_nil class]} {

        set class box


    set id [ns_set iget $params id]

    if {![template::util::is_nil id]} {

        set id " id=\\\"$id\\\""


    template::adp_append_code "append __adp_output \"<div class=\\\"$class\\\"$id><div class=\\\"boxTop\\\"></div><div class=\\\"boxContent\\\">\""

    template::adp_compile_chunk $chunk

    template::adp_append_code "append __adp_output {</div><div class=\"boxBottom\"></div></div>}"


Postgres 8.1.x to 9.1

Created by Rocael Hernández Rizzardini, last modified by Gustaf Neumann 08 Jul 2016, at 02:25 PM

PostgreSQL 8.x (e.g. 8.1.* and later up to 9.1) require a few changes in the configuration file for backward compatibility (see below).

Note that OpenACS 5.8 or newer works with PostgreSQL 9.1 (or newer) out of the box, the special configurations for postgresql.conf described below are not needed anymore.

1. Configure postgres8 with all compatibility ON in postgresql.conf:

 add_missing_from = on 
 regex_flavor = extended 
 default_with_oids = on

2. If you are upgrading an OpenACS site between versions 4.5.2 to 5.2 and not continuing to 5.3, then: After the createdb step to create the OpenACS database, generate the next function before you import the pre-existing OpenACS database.

From your shell prompt enter:

psql <dbname>

From the psql prompt enter the follow plpgsql code to create the bitfromint4 function:


 create or replace function bitfromint4 (integer) 
 returns bit varying as ' 
    return $1::bit(32); 
 end;' language 'plpgsql' immutable strict; 

Exit psql:


This is the original thread  

For a full script on how to install PG 8.2 with ltree and tsearch2 look at Malte's install script  

Next Page
Previous Month July 2016
Sun Mon Tue Wed Thu Fri Sat
26 27 28 29 30 1 2
(1) 3 4 5 6 (1) 7 (2) 8 (2) 9
10 11 12 13 14 (2) 15 (2) 16
(1) 17 18 19 20 21 22 (1) 23
24 25 26 27 28 29 30
31 1 2 3 4 5 6

Popular tags

17 , ad_form , ADP , ajax , aolserver , asynchronous , bgdelivery , bootstrap , bugtracker , CentOS , COMET , cvs , debian , emacs , fedora , FreeBSD , hstore , includelets , install , installation , installers , install-ns , javascript , libthread , linux , monitoring , munin , NaviServer , nginx , nx
No registered users in community xowiki
in last 30 minutes