OpenACS TODO List
Release Status
Development is taking place in the oacs-5-10 branch.
OpenACS Version 5.10.0 Agenda/wish list
- Postponed for later releases:
- implement subsite-singleton (in addition to the classical singleton)
- say farewell to CVS
- Make more parts of xotcl-core a first-class citizen of the OpenACS core (e.g. database interface)
- Data bloat hygiene:
- rethink package parameter and portlet parameter data models
- parameters: include "subsite-parameters" in parameter resolution (package->subsite->global)
- Functional improvements
- Added additional page_contract filter: oneof(red|green|blue)
- Added text/markdown to the accepted text formats or rich-text widget
- Get rid of bugging "login page expired" messages. The 17 years old construct was replaced by newer means to avoid caching of form values from the login form. Admins of existing sites should set the kernel parameter "LoginPageExpirationTime" to 0
- Support for range types in .xql files:
PostgreSQL supports range types since 9.5. When using range types, square braces have to be used in SQL statements. Since OpenACS uses always Tcl substitution in .xql files, and OpenACS does NOT allow backslash substitution in these files, square brackets could not be escaped and therefore not be used in .xql files so far. This change allows now a developer to deactivate the substitution by passing e.g. "-subst none" to the db_* command using the .xql file. Valid values for "-subst" are "all", "none", "vars", and "commands", default is "all" which is exactly the behavior of before. Therefore, this change is fully backward compatible.
- new API call "category::get" to obtain category description for a category_id and locale
- Added doc(base_href) and doc(base_target) for setting <base> element via blank-baster (see issue #3435)
- Improved API browser: Visualization for code dependencies (which procs calls what, from where is a proc being called) and test-coverage
- warn site administrators about expiring certificates
- dynamic reloading reform:
- When reloading apm packages, watched files, etc. the NaviServer blueprint is now updated correctly. This solves the long-standing problem that changes for scheduled procedures required a restart of the server. Furthermore, the old-style reloading was based on a ever-growing list of reload operations each time a new reload was requested, causing slow-downs in long running server instances, especially, when new threads are started.
- Now changes are applied to all NaviServer threads, including threads for
schedules procedures, ns_jobs and the like. Note that the current job has to be finished before the changes can be applied. - For the transition, it is possible to switch between the classical reloading style and blueprint reloading by changing a variable in acs-tcl/tcl/apm-procs.tcl
- new packages:
- cookie-consent: alerting users about the use of cookies on a website
- boomerang: performance of your website from your end user’s point of view
- Forums reform:
- remove hard-coded dependency with registered_users group when checking forum permissions
- don't rely so heavily on acs_permissions to model forum configuration, as this can have unexpected consequences in convoluted multi-group/multi-subsite scenarios. Prefer simpler table attributes instead
- Registry for .js and .css libraries: allow besides classical URLs symbolic names for loading external resources (e.g. jquery), this makes it easier to upgrade libraries in multiple packages (without running into problems with duplicate versions) and supports switching between CDN and local pathsURN.
The existing implementation is based on URNs and extends the existing template-head API to support registration for URNs. A URN provides an abstraction and a single place for e.g updating references to external resources when switching between a CDN and a locally stored resource, or when a resource should be updated. Instead of adding e.g. a CDN URL via template::head::add_script, one can add an URN and control its content from a single place. Use common namespaces for OpenACS such as urn:ad:css:* and urn:ad:js:*.-
Register URNs:
Example provider (e.g. in some theme):template::register_urn \ -urn urn:ad:js:jquery \ -resource /resources/xowiki/jquery/jquery.min.js
-
The registered URN can be used like classical URL after registration.
Example consumer:template::head::add_javascript -src urn:ad:js:jquery
- Declare composite files: Provide an interface to define that a .js file or a .css file contains multiple other .js/.css files in order to reduce the number of requests.
template::head::includes -container urn:js::style.js -parts {urn:ad:js:jquery ...}
-
- TODO: improved support for streaming HTML: currently, all template::script or CSP contents are lost, when streaming HTML (incremental HTML) is used, since only the blank.master collects this data. Some HTML-finalize (or end_of_HTML) call is should be factored out to handle such cases in a uniform way.
- Added additional page_contract filter: oneof(red|green|blue)
- non-functional changes
- Improved regression testing
- Goal is that all packages in oacs-5-10 pass regression test
- Include web testing in standard regression testing
- Detailed statistics for test coverage
- Improved scalability:
-
provided lock-free implementation of ad_page_contract_filters and ad_page_contract_filter_rules. This change improves parallel processing of requests and is primarily interesting for sites with a few mio page views per days. These locks were among the most frequent nsv locks
-
Reduced locks on util_memoize_cache my more invariants values into per-thread caching (acs_lookup_magic_object, ad_acs_version, .... ) and by avoiding specialized calls, which can be realized by already optimized ones ("apm_package_installed_p_not_cached ref-timezones" was most frequently used util_memoize_cache entry). These changes are necessary to avoid full still-stand on the unfortunate long-time locks on util_memoize_cache stemming from permission and user management with wild-card flush operations, which require to iterate over all cache entries (which might be on a busy server several hundred thousands)
-
Added new interface for cache partitioning to reduce lock latencies on high load websites
-
Added new interface for lock-free per-thread and per-request caching to avoid scattered ad-hoc implementations
-
Better reuse of DB handles (reduced expiring/reopen/etc.), faster access to handles
-
- Code smell reduction: fix typos, white-space etc.
- Improved startup time:
- when the package acs-automated-testing is disabled, startup time is reduced by avoiding loading of support functions and tests; the size of the blueprint is reduced
- xowf: loading of at-jobs is significantly improved.
- Security improvements:
- strengthened page contracts
- CSP support for application packages
- CSP fine tuing
- Better exception handling based on Tcl 8.6 exception handlers ("try" and "throw", also available in Tcl 8.5)
- a new "ad_try" implementation based on Tcl's "try" replaces now the old "ad_try", "with_catch" and "with_finally", which are marked as deprecated
- the new "ad_try" is in essence Tcl's "try" but with predefined handling of "ad_script_abort" and should be also used instead of "catch", when the OpenACS API is used (which might use script aborts)
- all core packages use the new "ad_try" instead of the deprecated versions
- Connection close reform:
- NaviServer/AOLserver continue after connection closing commands to execute a script. This is in many situations not desired, especially, when for the page as well a .adp file exists, which will try to deliver this on the already closed connection. This can lead to errors in the error.log file, which are sometimes hard to analyze
- therefore, developers should use in most such cases cases "ad_script_abort"
- connection closing commands are e.g. ad_returnredirect, ad_redirect_for_registration, cr_write_content, ad_page_contract_handle_datasource_error, ad_return_string_as_file, ad_return_complaint, ad_return_error,
ad_return_forbidden, ad_return_warning, ad_return_exception_page, ns_returnredirect, ns_return, ns_returnerror - The new version has made on most occasions explicit, when the script should abort.
- SQL cleanup:
- cleanup of obsolete non-portable SQL constructs in a way Oracle and PostgreSQL code base divergency is reduced:
- "nvl" -> "coalesce"
- "sysdate" / "now()" -> standard "current_date" or "current_timestamp"
- use standard-compliant "dual" table where appropriate (required by Oracle, supported by PostgreSQL)
- use non-dialectal cast idioms when appropriate
- adopt CTE idioms in Oracle codebase as well (e.g. connect -> with recursive)
- ... (reference Oracle version will be 11gr2 as is oldest version officially supported by Oracle (See here and here)
- reduce superfluous .xql queries
- acs-subsite: delete 21 files with un-referenced .xql queries
- acs-tcl: delete 4 files
- news: 3 files
- file-storage: 1 file
- dotlrn: 9 files
- cleanup of obsolete non-portable SQL constructs in a way Oracle and PostgreSQL code base divergency is reduced:
- Deprecated commands:
- move deprecated code into separate files
- make loading of deprecated code optional (can be controlled via parameter "WithDeprecatedCode" in section "ns_section ns/server/${server}/acs" of the config file. By default, deprecated procs are still loaded
- When deprecated code is not loaded, the blueprint of the interpreter is smaller. The following number of lines of code can be omitted when loading without the deprecated procs:
- acs-tcl: 3178
- acs-templating: 450
- xotcl-core http-client-procs: 830
- acs-content-repository: 1717 (including .xql files)
- Improved handling of server implementation-specific code
- provide *-procs-aolserver.tcl and *-procs-naviserver.tcl similar to *.postgresql.xql and *.oracle.xql where appropriate
- provide *-procs-aolserver.tcl and *-procs-naviserver.tcl similar to *.postgresql.xql and *.oracle.xql where appropriate
- Improved regression testing
- Require Tcl 8.6, XOTcl 2.1, PostgreSQL 9.5 (PostgreSQL 9.4 EOL: February 2020), tdom 0.9
OpenACS Version 5.9.1 Agenda
Refactoring of rich-text editor integration
- Driving force: Debian packaging (e.g. js minified code is not allowed)
- Moved out code from acs-templating, provided interfaces to add many different rich-text editors as separate packages
- New OpenACS packages:
- richtext-xinha
- richtext-tinymce
- richtext-ckeditor4 (has ability to choose between CDN and local installation via web interface)
Improving admin interface
- New theme manager:
- Goals:
- Make it easier to keep track of themes with local modifications
- Make it easier to create local modifications of existing themes and to update these
- Show differences between default theme parameter (in DB) and actual settings (in subsite parameters)
- Allow to delete unused themes
- Give site admin hints, which theme is used at which subsite
- Ease theme switching
- Added a subsite::theme_changed callback to be able to handle theme changes in custom themes (was also necessary for proper integration with DotLRN theming)
- Added support for these features under subsite admin (/admin/)
- Improved support for themed templates via [template::themed_template]
- Goals:
- Improved (broken) interface to define/manage groups over web interface
- Allow to send as well mail, when membership was rejected
- New functions [membership_rel::get_user_id], [membership_rel::get] and [membership_rel::get_group_id] to avoid code duplication
- Added support to let user include %forgotten_password_url% in self-registration emails (e.g. in message key acs-subsite.email_body_Registration_password)
- Improved subsite/www/members
- Make it possible to manage members of arbitrary groups
- Improved performance for large groups
- Improved configurability: when ShowMembersListTo is set to "3", show list to members only, when this is not the whole subsite
- Improved user interface for /admin/applications for large number of applications
- Various fixes for sitewide-admin pages (under /acs-admin)
- Update blueprint in "install from repository" (currently just working in NaviServer)
SQL
- Further cleanup of .xql files (like what as done for acs-subsite in OpenACS 5.9.0):
- 36 files deleted
- Removed more than 100 obsolete named queries
- Stripped misleading SQL statements
- Marked redundant / uncalled SQL functions as deprecated
- Replaced usages of obsolete view "all_object_party_privilege_map" by "acs_object_party_privilege_map"
- Removed type discrepancy introduced in 2002:
- acs_object_types.object_type has type varchar(1000), while
- acs_object_types.supertype has type varchar(100)
- ... several more data types are involved, using acs_object_types.object_type as foreign key
- 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 versions),
- Reduced code redundancy
- Affected functions:
- Reduced content_item__new from 12 versions to 6,
- Reduce content_revision__new from 7 to 4
- Similar in image__new, image__new_revision, content_item__copy, content_item__get_title, content_item__move
- PostgreSQL 9.5 supports named parameter in the same syntax as in Oracle. Further reduction of variants will be possible, once OpenACS requires at least PostgreSQL 9.5
- Reduced usage of deprecated versions of SQL functions (mostly content repository calls)
- Reduced generation of dead tuples by combining multiple DML statements to one (reduces costs of checkpoint cleanups in PostgreSQL)
- Permission queries:
- Improved performance
- Support PACKAGE.FUNCTION notation for PostgreSQL to allow calls permission queries exactly the same way as in Oracle (e.g. "acs_permission.permission_p()"). This helps to reduce the number of PostgreSQL specific .xql files.
- Modernize SQL:
- Use real Boolean types instead of character(1)
(done for new-portal, forums, faq, attachments, categories, dotlrn, dotlrn-forums, evaluation) - Use real enumeration types rather than check constraints (done for storage_type text/file/lob)
- Use real Boolean types instead of character(1)
CR hygienics (reduce cr bloat)
- Provided means to avoid insert/update/delete operations in the search queue:
OpenACS adds for every new revision often multiple entries to the search_queue, without providing any means to prevent this. This requires for busy sites very short intervals between queue sweeps (otherwise too many entries pile up). Another consequence is that this behavior keeps the PostgreSQL auto-vacuum daemons permanently active. Many of these operations are useless in cases where the content repository is used for content that should not be provided via search. The changed behavior should honors a publish-date set to the future, since it will not add any content with future publish dates to the search-queue.
- Reduced number of insert cr_child_rels operations, just when needed:
cr_child_rels provide only little benefit (allow to use roles in a child-rel), but the common operation is a well available in cr_items via the parent_id. cr_child_rels do not help for recursive queries either. One option would be to add an additional argument for content_item__new to omit child-rel creation (default is old behavior) and adapt the other cases.
Security improvements
- Added support against CSRF (cross site request forgery)
- OpenACS maintains a per-request CSRF token that ensures that form replies are coming just from sites that received the form
- CSRF support is optional for packages where CSRF is less dangerous, and such requests are wanted (e.g. search and api-browser)
-
Added Support for W3C "Upgrade-Insecure-Headers" (see https://www.w3.org/TR/upgrade-insecure-requests/):
For standard compliant upgrade for requests from HTTP to HTTPS -
Added support for W3C "Subresource Integrity" (SRI; see https://www.w3.org/TR/SRI/)
-
Added support for W3C "Content Security Policy" (CSP; see https://www.w3.org/TR/CSP/)
- Removed "javascript:*" links (all such urls are removed from the 90 packages in oacs-5-9, excluding js libraries (ajaxhelper) and richtext code)
- Removed "onclick", "onfocus", "onblur", "onchange" handlers from all .adp and .tcl files in the 90 packages in oacs-5-9 (excluding js libraries (ajaxhelper) and richtext code)
- Added optional nonces to all <script> elements with literal JavaScript content
- Removed "generic downloader", which allowed to download arbitrary content items, when item_id was known (bug-fix)
- Improved protection against XSS and SQL-injection (strengthen page contracts, add validators, added page_contract_filter "localurl", improve HTML escaping, and URI encoding)
- Fixed for potential traversal attack (acs-api-documentation-procs)
Improvements for "host-node mapped" subsites
- Fixed links from host-node mapped subsite pages to swa-functions (must be always on main subsite)
- Made "util_current_directory" aware of host-node-mapped subsites
- Added ability to pass "-cookie_domain" to make it possible to use the same cookie for different domains
- Fixed result of affected commands "util_current_location", "ad_return_url", "ad_get_login_url" and "ad_get_logout_url" for HTTP and HTTPS, when UseHostnameDomainforReg is 0 or 1.
- Improved UI for host-node maps when a large number of site nodes exists
Reform of acs-rels
- Made acs-rels configurable to give the developer the option to specify, whether these are composable or not (default fully backward compatible). This is required to control transitivity in rel-segments
- The code changes are based on a patch provided by Michael Steigman.
For details, see:- https://openacs.org/forums/message-view?message_id=4031049
- https://openacs.org/forums/message-view?message_id=5330734
Improved status code handlers for AJAX scenarios
- Don't report data source errors with status code 200 (use 422 instead)
- Let "permission::require_permission" return forbidden (403) in AJAX calls (determined via [ad_conn ajaxp])
Improved Internationalization
- Extended language catalogs for
- Russian (thanks to v v)
- Italian (thanks to Antonio Pisano)
- Spanish (thanks to Hector Romojaro)
- German (thanks to Markus Moser)
- Added (missing) message keys
- Improved wording of entries
- Added message keys for member_state changes, provide API via group::get_member_state_pretty
Improved online documentation (/doc)
- Fixed many broken links
- Removed fully obsolete sections
- Improved markup (modernize HTML)
- Updated various sections
Misc code improvements:
- 18 issues from the OpenACS-bug-tracker fixed
- Made code more robust against invalid/incorrect input (page_contracts, validators, values obtained from header fields such as Accept-Language)
- Fixed quoting of message keys on many places
- Improved exception handling (often, a "catch" swallows to much, e.g. script_aborts), introducing "ad_exception".
-
Generalized handling of leading zeros:
- Fixed cases where leading zeros could lead to unwanted octal interpretations
- Switch to use of " util::trim_leading_zeros" instead of "template::util::leadingTrim", "dt_trim_leading_zeros" and "template::util::leadingTrim", marked the latter as deprecated
-
URL encoding
- "ad_urlencode_folder_path": new function to perform an urlencode operation on the segments of the provided folder path
- "export_vars": encode path always correctly, except -no_base_encode is specified
- Fixed encoding of the URL path in "ad_returnredirect"
-
Improvements for "ad_conn":
- Added [ad_conn behind_proxy_p] to check, whether the request is coming from behind a proxy server
- Added [ad_conn behind_secure_proxy_p] to check, whether the request is coming from behind a secure proxy server
- Added [ad_conn ajax_p] to check, whether the request is an AJAX requests (assumption: AJAX request sets header-field Requested-With: XMLHttpRequest")
- Added [ad_conn vhost_url] to obtain the url of host-node-mapped subsites
- Added various missing upgrade scripts (missing since many years) of changes that were implemented for new installs to reduce differences between "new"-and "old" (upgraded) installations
-
Templating
- Get rid of various pesky "MISSING FORMWIDGET: ...formbutton:ok" messages
- Improved support for javascript event handlers in template::head
- New functions "template::add_event_listener" and "template::add_confirm_handler"
- Fix handling, when "page_size_variable_p" is set (was broken since ages)
-
Improved location and URL handling:
- Refactored and commented "util_current_location" to address security issues, handle IPv6 addresses, IP literal notation, multiple drivers, "
- Improved "security::get_secure_location" (align with documentation)
- New functions:
- "util::configured_location"
- "util::join_location", "util::split_location"
- Improved IPv6 support
- Use native "ns_parseurl" when available, provide backward compatible version for AOLserver
-
MIME types:
- Added more Open XML formats for MS-Office to allowed content types
- Modernized entries to IANA recommendations
- New function "cr_check_mime_type" centralizing the retrieval of the mime_type from uploaded content
-
Finalized cleanup of permissions (started in OpenACS 5.9.0):
- Get rid of "acs_object_context_index " (and therefore on "acs_object_party_privilege_map " as well) on PostgreSQL.
Reasons:- huge table,
- expensive maintenance, used only in a few places,
- Get rid of "acs_object_context_index " (and therefore on "acs_object_party_privilege_map " as well) on PostgreSQL.
-
Misc new functions:
- "lang::util::message_key_regexp": factor out scattered regexp for detecting message keys
- "ns_md5" and "ns_parseurl": improve compatibility between AOLserver and NaviServer
- "ad_dom_sanitize_html": allow to specify different sets of tags, attributes and protocols and "ad_dom_fix_html", which is a light weight tidy variant.
- Improved HTML rendering (acs-api-browser), provide width and height to speed up rendering
- Improved ADP files (e.g. missing doc(title))
- Added usage of "ad_include_contract" on more occasions
- Modernize Tcl and HTML coding
- Reduced dependency on external programs (use Tcl functions instead)
- Improved robustness of "file delete" operations all over the code
- Improved documentation, fix demo pages
- Aligned usages of log notification levels (distinction between "error", "warning" and "notice") with coding-standards
- Cleaned up deprecated calls:
- Removed usage of deprecated API functions (e.g. "cc_lookup_email_user", "cc_email_from_party", "util_unlist", ...)
- Moved more deprecated procs to acs-outdated
- Marked remaining (and unused) "cc_*" functions as well as deprecated.
- Improved Oracle and windows support
- Fixed common spelling errors and standardize spelling of product names all over the code (comments, documentation, ...)
- Many more small bug fixes
Version numbers:
- require PG 9.2 (End Of Life of PostgreSQL 9.0 was Oct 2015)
- require XOTcl 2.0 (presented at the Tcl conference in 2011).
Packages:
-
New Package Parameters
-
acs-kernel:
- MaxUrlLength: remove hard-coded constant in request processor for max accepted url paths
- SecureSessionCookie: Let site admin determine, whether or not to use secured session cookies (useful, when not all requests are over HTTPS)
- CSPEnabledP: activate/deactivate CSP
-
acs-kernel (recommended to be set via config file in section "ns/server/${server}/>acs"
- NsShutdownWithNonZeroExitCode: tell NaviServer to return with a non-zero return code to cause restart (important under windows)
- LogIncludeUserId: include user_id in access log
-
acs-api-browser:
- ValidateCSRFP: make checking of CSRF optional (default 1)
-
acs-content-repository:
- AllowMimeTypeCreationP: Decides whether we allow unknown mime types to be automatically registered (default: 0}
-
news-portlet:
- display_item_lead_p: Should we display news leads in the portlet? (default 0)
-
search:
- ValidateCSRFP: make checking of CSRF optional (default 1)
-
xotcl-request-monitor:
- do_track_activity: turn activity monitoring on or off (default 0)
- do_track_activity: turn activity monitoring on or off (default 0)
-
-
New OpenACS packages:
- richtext-xinha
- richtext-tinymce
- richtext-ckeditor4 (has ability to choose between CDN and local installation via GUI)
- openacs-bootstrap3-theme (as used on openacs.org)
- dotlrn-bootstrap3-theme
-
xotcl-core:
- Improved XOTcl 2.0 and NX support (e.g. api-browser)
- Added "-debug", "-deprecated" to ad_* defined methods (such as e.g. "ad_instproc")
- Make use of explicit "create" statements when creating XOTcl/NX objects (makes it easier to grab intentions and to detect typos)
- Added parameter to "get_instance_from_db" to specify, whether the loaded objects should be initialized
- Added support for PostgreSQL prepared statements of SQL interface in ::xo::dc (nsdb driver)
-
xowiki:
- Named all web-callable methods www-NAME (to make it clear, what is called, what has to be checked especially carefully)
- Moved templates from www into xowiki/resources to avoid naming conflicts
- Improved ckeditor support
- Added usage of prepared statements for common queries
- Improved error handling
- Better value checking for query parameter, error reporting via ad_return_complaint
- Added option "-path_encode" to methods "pretty_link" and "folder_path" to allow to control, whether the result should be encoded or not (default true)
- Form fields:
- Improved repeatable form fields (esp. composite cases), don't require preallocation (can be costly in composite cases)
- Added signing of form-fields
- Added HTML5 attributes such as "multiple" (for "file") or "autocomplete"
- Fixed generation of "orderby" attribute based on form-field names
- richtext: allow to specify "extraAllowedContent" via options
- Improved layout of horizontal check boxes
- Menu bar:
- Added dropzone (requires bootstrap): drag and drop file upload
- Added mode toggle (requires bootstrap)
- Extended default policies for handling e.g. dropzone (file-upload method)
- Distinguish between "startpage" (menu.Package.Startpage) and "table of contents" (menu.Package.Toc)
- Notifications:
- Added support for better tailorable notifications: introduced method "notification_render" (similar to "search_render")
- Added support for tailorable subject lines (method "notification_subject")
- Improved bootstrap support, use "bootstrap" as PreferredCSSToolkit
- Switched to ckeditor4 as PreferredRichtextEditor
- Improved handling of script-abort from within the payload of ::xowiki::Object payloads
- Added parameter to "get_all_children" to specify, whether the child objects should be initialized
-
xowf:
- Added property "payload" to "WorkflowConstruct" in order to simplify customized workflow "allocate" actions
- Internationalized more menu buttons
-
xotcl-request-monitor
- Added class "BanUser" (use. e.g. ip address to disallow requests from a user via request monitor)
- Added support for optional user tracking in database
- Added support for monitoring response-time for certain urls via munin
- Increased usage of XOTcl 2.0 variable resolver (potentially speed improvement 4x)
- Performed some refactoring of response-time handling to allow site-admin to make e.g. use of NaviServer's dynamic connection pool management (not included in CVS)
- Added support for partial times in long-calls.tcl to ease interpretation of unexpected slow calls
- last100.tcl: Don't report hrefs to URLs, except to SWAs
-
chat:
- Introduced new options to set chat rooms so login and/or logout message are not issued every time a user enters/exits a chat-room (important for chats with huge number of participants)
- Parameterized viewing of chat-logs
- Fixed cases of over-/under-quoting
- Fixed JavaScript for IE, where innerHTML can cause problems
-
file-storage:
- Don't show action keys, when user has no permissions
- Added support for copying of same-named files into a folder (adding suffix)
- Fixed old bugs in connection with "views" package
OpenACS Version 5.9.0 Agenda
- Slimming pg SQL core:
- Part 1: improve performance of object deletion
- remove manual delete operations from acs_object__delete()
- remove manual delete operations from acs_object__delete()
- Part 2: content-repository - manual referential integrity management
- handle referential integrity via pg's integrity constraints rather by functions cr_revision_del_ri_tr, cr_revision_ins_ri_tr, cr_revision_up_ri_tr, cr_revision_del_rev_ri_tr, and cr_revision_del_rev_ri_tr
- fix broken/missing upgrade scripts from earlier updates
- Part 3: content-repository - manual deletions and nulling
- Removed manual nulling of live_revision and latest_revision
- Removed manual deletion of old_revision and new_revision in cr_item_publish_audit
- Removed manual deletion of item_id in cr_item_publish_audit, cr_release_periods, cr_item_template_map, and cr_item_keyword_map
- Removed manual deletion of direct permissions
- Added missing index for child_id to cr_child_rels.
- Part 4: get rid of tree_sortkey in acs-objects
- Check/fix dependencies in oacs-5-8 packages
- Get rid of broken/uncalled functions using the column
- Check/fix dependencies in other packages
- Remove tree_sortkey and max_child_sortkey
- Part 1: improve performance of object deletion
- Web interface:
- Improve client performance
- moving core.js from head to body
- provide kernel parameter to control expiration date for /resources/
- Protect against more XSS attacks
- Improved HTML validity (see oacs-5-9-html-validity for the checklist)
- Add lightweight support for ckeditor4 for templating::richtext widget (configurable via package parameter "RichTextEditor" of acs-templating. ckeditor4 supports mobile devices (such as iPad, ...).
- New kernel parameter ResourcesExpireInterval to control expiration dates of resources
- Improve client performance
- Templating:
- Improve theme-ability
- Move more information into theme packages in order to create responsive designs
- Reduce hard-coding of paths, HTML etc.
- Dimensional slider reform (ad_dimensional):
- Remove hard-coded table layout from dimensional slider
- Add backwards compatible templates
- Move hard-coded styles into theme styling
- Remove obsolete comments from ad_dimensional
- Complete template variable controls (adding noi18n, addressing bug #2692):
- @foo@: perform html quoting and internationalization
- @foo;noquote@: perform internationalization
- @foo;noi18n@: perform html quoting
- @foo;literal@: perform neither html quoting nor internationalization
- Improved Russian nationalization
- Support of expiration dates and passwords for signed variables
- Improve theme-ability
- Documentation:
- Use ACS templating for the (static) OpenACS documentation to provide a more consistent layout and user experience.
- Make pretty-naming of acs-core packages more consistent.
- Misc improvements:
- Mark unused functions of acs-tcl/tcl/table-display-procs.tcl as deprecated
- Reduce number of muxtex locks by pre-request and per-thread caching
- Improved development und debugging aids:
- use "ad_log error|warning .... " instead of "ns_log" to include information of request and callstack in error.log
- ability to display ns_log entries caused by a request in ds-footer
- ability to save delivered web pages in file-system for testing HTML validity (especially for admin pages, which are unaccessible for external validity testers)
- More bug fixes
- Version numbers:
* require PG 9.0 (End Of Life of PostgreSQL 8.4 was July 2014)
* require XOTcl 2.0 (presented at the Tcl conference in 2011).
OpenACS Version 5.8 Agenda
- PostgreSQL 9.2+:
- Get rid of nonstandard backslash escapes in function definitions
- Change quote syntax in sql files (single quotes around the functions) to recommended PostgreSQL quoting using (recommended since pg8.0, jan 2005). li>Drop aliases in favor of named function arguments (recommended since pg8.0)
- Fix wrong function_args, add missing function_args, align default semantics with the defaults in pg (providing "null" as default means the argument is optional)
- Make OpenACS loadable without any tweaks in the pg config files
- Use recursive queries for e.g. permission lookup to avoid performance problems in pg 8.4 and newer)
- ADP: Use byte-compiled function wherever possible in compiled adp-code, support "@var;literal@" when neither quotes nor localization is needed in compiled adp-code
- Improve support of NaviServer
- Switch to Tcl 8.5 (TIP #143)
- Improve scalability: Reduce mutex-stress on util-memoize cache and for cache maintenance in general
- Code cleanup:
- Get rid of calls to deprecated code (e.g. ad_tables, ad_parameter, ... in acs-core and main packages)
- Improve awareness of usage of deprecated code (complain to error.log)
- Use Tcl 8.5 idioms
- cleanup of various http-client approaches and introduce a common implementation util::http::get and util::http::post; get rid of other usages, mark these as deprecated
- page-contracts: Perform checking of all ids in acs-core and main packages to improve error messages and to improve security
- OpenACS 5.8.1 should be released with main packages
OpenACS Version 5.7 Agenda
- Support for object management in core
- Postgresql 9.0
- TinyMCE update (fix for random JS injection issue, affecting Safari)
- Fix for "remember me" issue
- WCAG2-AA
OpenACS Version 5.6 Agenda
- global parameters
- package "embeds"
- fix search by package_id
- core works on Postgresql 8.4
OpenACS Version 5.5 Agenda
- DONE: Postgresql 8.3 support: especially regarding tsearch2
- DONE: acs-authentication:
- fix upgrade, add conditional logic into site wide tcl library so that you can login to perform the rest of the upgrade
- DONE: tinymce:
- upgrade to 3.1.1 + language packs
- HTML Strict cleanup
- create appropriate parameters for its config in acs-templating
- acs-mail-lite:
- DONE: cleanup duplicated procs (bounce)
- review the parsing of bouncing messages (case user_id 0)
- DONE: rollout support
- Documentation improvements as discussed at the Guatemala conference:
- Make current openacs.org/test-doc source for static files included in the release and provide ease means to achieve this for the release manager
- DONE (CVS HEAD): Provide in XoWiki an alternative table of contents by nested UL/LI (without JavaScript) for static output
- DONE (CVS HEAD): Provide in XoWiki a prototype page similar to "book" without edit-buttons etc., using the new table of contents
- Update openacs.org/test-doc where necessary (incomplete list):
- DONE: Fix the page ordering for the higher chapters (the original document had no 3rd. level numbering)
- update pages in /test-doc which are more recent in openacs/xowiki
- bump version numbers of OpenACS, where appropriate (some places talk about openacs-5-0, others about openacs-5-1, oacs-5-2-3rc1 or 5-3)
- some version numbers of the required components are quite a mess. e.g. some parts say that Postgres 7.3 is required, some examples talks about postgres 7.4.7 and 8.2.4 in the same listing.
- also the dotlrn version numbers are old dotrln-2.0
- Tcl version numbers should be 8.4.19
- The install section for XOTcl is missing in II.3.4
- remove ChangeLog from documentation
- find some other prominent place for the ChangeLog
- Fix indenting in examples (e.g. in Rocael's robust web development framework)
- overthink Win2000 guidelines. There are the native compiled packages from Maurizio, including everything from postgres, xotcl ....
- It is desired to find a single person responsible for overworking the documentation, however, funding is unclear.
- Make current openacs.org/test-doc source for static files included in the release and provide ease means to achieve this for the release manager
OpenACS Version 5.4 Agenda
- DONE: HTML Strict (openacs core)
- DONE: finish template::head (daveb)
- DONE: test acs-mail-lite (complex send)
- DONE: test notifications (complex send)
- DONE: new XinHA release, get rid of RTE & HTMLarea, test on Safari
- DONE: Form builder: add the ID attribute to the form tag
- DONE: acs-lang - keepLocalTranslationP to be removed
- DONE search and intermedia-driver: move intermedia specific stuff to its package
- DONE: acs-mail-lite - patch for mime::qp_encode bug
Future
- Split Xinha and TinyMCE into separate packages see: https://openacs.org/forums/message-view?message_id=2750958
- Usability ("my account" page)
- XHTML ?
- Testing and documentation for recording automated tests using the firefox plugin and the upload feature for it new in automated testing. Probably needs some polishing and should be talked to with Quest who are getting into this.
- Parameter Scope Patch https://openacs.org/bugtracker/openacs/patch?patch%5fnumber=845
- Remove obsolete master template stuff (default and site master template in openacs-4/www, acs-subsite's group-master, and related CSS and images). Probably in the version which follows 5.5 (probably 5.6). Also remove the compat master stuff at the same time.
Things to merge into this page
Ideas for Boston 2006 Future of OpenACS discussion
Another .LRN Roadmap discussion
What's on this page?
This page should include work that is planned on and has someone committed to working on it.
in last 30 minutes
OpenACS.org
- HOME
- News
- Community
- Getting admin-level help
- Getting help
- Goals / Ideas
- History of OpenACS
- Marketing Team
- Most Popular Pages
- OpenACS Translation server
- Events
- 2006 Fall Conference Interest in Attending
- 2006 Fall Conference Presentations
- 2006 Fall Conference Submissions and Program
- 2006 International Workshop on Community Based E-Learning Systems
- 2006 November 2nd (General Web Applications Focus - OpenACS)
- 2006 November 3rd and November 4th (Training and Hacking Days)
- 2006 OpenACS/.LRN Fall Conference
- 2006 Session 1: Towards full Accessibility in LMS
- 2007 Project Ideas for Google Summer of Code
- OCT
- Directory - Who's Who
- Documentation
- OpenACS Handbook
- for administrators
- for administrators - Table of Contents
- for beginning developers
- for developers
- for developers - Table of Contents
- for everyone
- for everyone - Table of Contents
- Collaboration Graph
- Documentation Credits
- Documentation History
- Documentation Introduction
- Documentation Process test-doc (Approach 3)
- Documentation Project Discussion
- Documentation Project Plan (Approach 4)
- Most Popular Pages
- Try Openacs
- WikiDoc Project Notice
- Core Documentation
- Subsystems Documentation
- for administrators
- for administrators - Table of Contents
- for beginning developers
- for developers
- for developers - Table of Contents
- for everyone
- for everyone - Table of Contents
- *nix operating system
- ::xo::db Object Relational Database Interface
- AOLserver
- AOLserver administration
- Administrators - Req.
- Available OpenACS Packages
- Boost your application performance to serve large files!
- Conditional CREATE Index for Postgresql and Oracle
- Deployment feedback channel
- Developer - Requirements
- Developer Tutorial - Req.
- Emacs as an OpenACS IDE
- End-users - Requirements
- Get the OpenACS Source Code
- Getting admin-level help
- Install AOLserver
- Install AOLserver 4.5
- Install OpenACS - prereqs
- Install OpenACS distribution
- Install OpenACS on Linux
- Install OpenACS on Mac OS X 10.5 / 10.6 (Snow Leopard) Using Macports
- Install OpenACS on debian unstable / Ubuntu 7.10
- Install OpenACS with NaviServer from Scratch
- Install Oracle
- Install Postgresql
- Install Tcl
- Install a *nix-based operating system (OS)
- Installation - Req.
- Installing OpenACS
- Installing OpenACS on Arch Linux
- Installing OpenACS on FreeBSD
- Installing OpenACS on FreeBSD (quick)
- Installing OpenACS on FreeBSD with ports
- Installing OpenACS on Mac OS X
- Installing OpenACS on RPM-based systems
- Installing OpenACS on Redhat
- Installing OpenACS on Solaris
- Installing OpenACS on SuSE
- Installing OpenACS on Windows
- Installing OpenACS on debian
- Installing OpenACS on win2k
- Mail Transport Agents
- Monitoring Naviserver
- Nagios Monitoring
- NaviServer
- Next Steps After Installation, Debian Specific
- OpenACS Debian Install quicksheet
- OpenACS Monitoring
- OpenACS Performance Tuning
- OpenACS Reference Platform
- OpenACS compatibility matrix
- OpenACS subsystem
- OpenACS system
- OpenACS/.LRN for Debian
- OpenACS/.LRN for Ubuntu
- OpenACS/dotLRN Windows Installer Instructions
- OpenACS/dotLRN windows installer how to
- Oracle
- Oracle Notes
- PostgreSQL
- PostgreSQL Administration
- PostgreSQL's Tsearch2
- Postgres 8.1.x to 9.1
- Securing your system
- Source control
- Tcl
- Tcl Thread Library
- Testing with Selenium
- Testing with TCLWebtest
- Upgrade between PostgreSQL versions
- Upgrade from PostgreSQL 9.6 to 13.1
- Upgrade to OpenACS 5.8
- Upgrade to OpenACS 5.9
- Vi as an OpenACS IDE
- XOTcl
- hstore
- tDOM
- tDOM with OpenACS
- Package Documentation
- Aliases at CVS
- Available OpenACS Packages
- Packages available in the oacs-5-9 channel
- Documentation Non-Core Packages
- Marketing Documentation
- Tutorials
- for beginning developers
- Developer Tutorial - Req.
- Introduction to OpenACS
- Next Steps After Installation, Debian Specific
- OpenACS/dotLRN windows installer how to
- Theming in OpenACS
- Tutorials for Designers
- Tutorials for Users
- Tutorials for Administrators
- Tutorials for Programmers
- Add extra headers
- Automated Installs - Using install.xml
- Body Onload javascript event
- Emacs as an OpenACS IDE
- OpenACS 5.1.4 / PG 7.3.6 => 5.2.3/8.0.7 Upgrade Path for acs-core
- OpenACS mode for Emacs
- Vi as an OpenACS IDE
- Webinar - Part 1 - Basics
- Webinar - Part 2 - Site Map Administration
- Webinar - Part 3 - Packages and ad_form
- Webinar - Part 4 - Survey
- listbuilder tutorial
- Tutorials - The N00B Journey
- OpenACS Projects
- (Sketch for) OpenACS Home
- .LRN
- Activity Graph
- Admin Package RFC
- Bugtracker Cleanup Project
- Collaboration Graph
- Community Metrics in OpenACS
- Debian/Ubuntu installer developing
- Documentation Project
- Documentation Project Discussion
- Documentation Project Plan (Approach 4)
- Dynamic Object Types and Attributes
- E-Mail: Event Handling
- E-Mail: Incoming E-Mail
- E-Mail: Outgoing E-Mail
- Ecommerce G2
- Forums Project
- GETable resources, that should be POSTable resources
- Interface / CSS Coding Guidelines
- Logo
- Mentorship Program
- Migration from CVS to GIT
- Official Test Servers
- OpenACS 5.9 HTML validity fixes
- OpenACS Packaging for Debian and Ubuntu
- OpenACS Release Status
- OpenACS TODO List
- OpenACS/.LRN for Debian
- Package Object Types
- Package Testing Process
- Prerequisites and Procedures for Migrating to Subversion from CVS
- Site Nodes Proposal (Draft)
- Site Wide File Upload
- Site Wide Image Upload Widget
- Theme Manager
- Theming Project
- Translation server for OpenACS packages
- User interface mockups
- Website_Redesign
- XoWiki Design Ideas
- YUI Project
- {done} Change Log from OpenACS 5.4.2 to OpenACS 5.4.3
- {done} OpenACS 5.3.x releases
- {done} Release Notes OpenACS 5.4.3
- Marketing
- Our Website
- Packages
- Available OpenACS Packages
- Core Packages
- ACS API Browser
- ACS Admin
- ACS Authentication
- ACS Automated Testing
- ACS Bootstrap Installer
- ACS Content Repository
- ACS Core Docs
- ACS Default Theme
- ACS Developer Support
- ACS Kernel
- ACS Lang
- ACS Mail Lite
- ACS Messaging
- ACS Reference Data
- ACS Service Contract
- ACS Subsite
- ACS Tcl
- ACS Templating
- ACS Translations
- Intermedia Driver
- Notifications
- Reference Data - Country
- Reference Data - Language
- Reference Data - Timezone
- Search
- Tsearch2 Driver
- Non-Core Packages
- ACS Date Time
- ACS Events
- ACS Interface
- ACS Object Management
- Ad Server
- Address Book
- Ajax Filestore UI
- Ajax Helper
- Ajax Photoalbum UI
- Anonymous Evaluation
- Assessment
- Attachments
- Attendance
- Attribute Management System
- Auth CAS
- Auth HTTP
- Authentication Server
- Authorize.net Gateway
- B Responsive Theme
- Beehive
- Bookmarks
- Bookshelf
- Boomerang Plugin
- Bug tracker
- Bulk mail
- CMS
- CMS News Demo
- Calendar
- Calendar Includelet
- Cards
- Categories
- Chat
- Chat Includelet
- Clickthrough
- Clipboard
- Connections
- Contacts
- Contacts Lite
- Content Includelet
- Cookie Consent Widget
- Cronjob
- Curriculum
- Curriculum Central
- Curriculum Tracker
- Datamanager
- Diagram
- Directory
- Download
- Dynamic Object Type
- E-Commerce
- EZIC Gateway
- Ecommerce Serial Number Tracking
- Edit This Page
- EduWiki
- Email Handler
- Evaluation
- Expense
- Expense Tracking
- FAQ
- Facebook API
- Feed parser
- File Manager
- File Storage Includelet
- File storage
- Forums
- Forums Includelet
- GateKeeper
- General comments
- Glossar
- Glossary
- IMS Enterprise
- Image Magick
- Imsld
- Invoices
- Jabber
- LAMS Integration
- LAMS Integration Configuration
- LDAP Authentication Driver
- LORS management Includelet
- Lab Report
- Lab Report Central
- Latest
- Layout Managed Subsite
- Layout Manager
- Learning Content
- Logger
- MMplayer
- Mail Tracking
- Monitoring
- New portal
- News
- News Includelet
- News aggregator
- Notes
- OCT Election
- Organization
- Outdated Library functions
- PAM Authentication Driver
- Package Builder
- Page
- Pages
- Payment Gateway
- Permissions Administrator
- Photo album
- Planner
- Poll
- Post Card
- Postal Address
- Press
- Profile provider
- Project Manager
- Q-Forms
- Q-Wiki
- Quota
- RSS support
- Ratings
- Recruiting
- Redirect
- Reference Data - Currency
- Reference Data - ITU Code
- Reference Data - UNSPSC code
- Reference Data - US County
- Reference Data - US State
- Reference Data - US Zipcode
- Related Items
- Richtext CKEditor 4
- Richtext CKEditor 5
- Richtext TinyMCE
- Richtext Xinha
- Robot Detection
- S5
- SOAP Gateway
- SOAP db
- Sample Gateway
- Schema Browser
- Scholarship Fund
- Scorm Core
- Scorm Importer
- Scorm Player
- Scorm Simple LMS
- Selva theme
- Shipping Service Contract
- Simple Survey
- Simulation
- Site-wide Search
- Skin
- Spreadsheet
- Static Pages
- Survey
- Survey Library
- Survey Reports
- T Account
- Tasks
- Tcl SOAP
- Telecom Information
- Trackback
- User preferences
- User profile
- Value-based Shipping
- Version Control
- Views
- WebDAV Support
- Weblogger
- Webmail System
- Wikipedia
- Wimpypoint slim
- Workflow
- XCMS User Interface
- XML RPC
- XO Learning Performance
- XOTcl Core
- XOTcl Request Monitor
- XoWiki
- XoWiki Includelet
- XoWiki Workflow
- dbm
- openacs-bootstrap3-theme
- xolirc
- xowf plugin for Monaco code editor
- ecommerce-g2
- Accounts Desk
- Accounts Finance
- Accounts Payables
- Accounts Payroll
- Accounts Receivables
- Bulk Upload
- CL Custom Commerce
- Customer Service
- E-commerce 2
- Fabrication
- Field Service
- General Ledger
- Human Resources
- Inventory Control
- Manufacturing Design
- Online Catalog
- Production
- Reference Data - GIFI
- Ship-Track
- Vendors-Suppliers
- DotLrn
- Anon Eval Applet
- Anon Eval Portlet
- Application track
- Application track Applet
- Application track portlet
- Assessment Applet
- Assessment portlet
- Attendance Applet
- Beehive Applet
- Beehive Portlet
- Bulk mail Applet
- Bulk mail Portlet
- Calendar Applet
- Calendar portlet
- Cards applet
- Cards portlet
- Chat Applet
- Chat Portlet
- Contacts Applet
- Contacts Portlet
- Content Applet
- Content Portlet
- Courses
- Curriculum Applet
- Curriculum Portlet
- Datamanager Portlet
- Edit-this-page Applet
- Edit-this-page Portlet
- EduWiki Applet
- EduWiki Portlet
- Evaluation applet
- Evaluation portlet
- Expense-tracking Applet
- FAQ Applet
- FAQ Portlet
- File Storage Applet
- File Storage Portlet
- Forums Applet
- Forums Portlet
- Glossar Applet
- Glossar Portlet
- Homework Applet
- IMS LD Portlet
- IMS-LD Applet
- Invoices Applet
- Invoices Portlet
- Jabber Applet
- Jabber Portlet
- LAMS Integration Applet
- LAMS Integration Portlet
- LORS - Learning Objects Repository Service
- LORS central
- LORS management
- LORS management Applet
- LORS management Portlet
- Latest Applet
- Latest Portlet
- Learning Content Applet
- Learning Content Portlet
- MMplayer Applet
- MMplayer Portlet
- Messages Applet
- Messages Portlet
- News Aggregator Applet
- News Aggregator Portlet
- News Applet
- News Portlet
- Photo Album Applet
- Photo Album Portlet
- Private-Message
- Project Manager Portlet
- Project-manager Applet
- Quota Applet
- Quota Portlet
- Random-photo Applet
- Random-photo Portlet
- Recruiting Applet
- Recruiting Portlet
- Research Applet
- Research Portlet
- Static Applet
- Static Portlet
- Survey Applet
- Survey Portlet
- Syllabus Applet
- Tasks Applet
- Tasks Portlet
- Theme Zen
- User Tracking
- User Tracking Applet
- User Tracking Portlet
- Weblogger Applet
- Weblogger Portlet
- Wikipedia Applet
- Wikipedia Portlet
- Wimpypoint Slim Applet
- Wimpypoint Slim Portlet
- XoWiki Applet
- XoWiki Portlet
- dotLRN
- dotLRN - Ecommerce
- dotLRN Administration
- dotLRN Bootstrap 3 Theme
- dotLRN Course Catalog
- dotLRN Datamanager Applet
- dotLRN Roadmap
- dotLRN applet
- dotLRN portlet
- Contrib Packages
- Acknowledgement
- BCDS
- BCMS
- BCMS UI Base
- BCMS UI Wizard
- COP Base
- COP UI
- Classified Ads
- Events Management
- Form To Mail
- IRC Logger
- Irc Applet
- Mail Clickthrough
- PayFlowPro Gateway
- Personal Community
- Photobook
- Populate
- Research Papers
- Resource List
- Room Reservation
- Users Selection
- Vocabulary
- mailing-lists
- Deprecated Packages
- {deprecated} ACS Content
- {deprecated} ACS LDAP Authentication
- {deprecated} ACS Mail
- {deprecated} ACS Utility Services
- {deprecated} Bboard Portlet
- {deprecated} OpenFTS Driver
- {deprecated} Portal
- {deprecated} Sloan Bboard
- {deprecated} Spam System
- {deprecated} Webmail
- {deprecated} Wiki
- {deprecated} Workflow Service
- {deprecated} dotFOLIO
- {deprecated} dotFOLIO UI
- {deprecated} dotLRN BBoard Applet
- F. A. Q.
- .LRN
- .LRN
- .LRN Accessibility
- .LRN Core Team (DRAFT)
- .LRN Educational standards support
- .LRN Get Involved!
- .LRN Governance
- .LRN Installation
- .LRN Installation (up to .LRN 2.5.0)
- .LRN Leadership Team 2008
- .LRN Meetings
- .LRN Motions (DRAFT)
- 2006 Fall Conference Submissions and Program
- Content development tools options
- Documentation and help pages for individual .LRN installations
- Educational Wiki (Eduwiki) Tool
- How to contribute code that passes accessibility tests
- Learning Content Tool
- Modelling Learners Preferences
- Plataforma Elearning
- SCORM support
- Simple Content Creator / Editor
- Time/Topics Planner for dotLRN Courses
- Consortium
- Releases
- .LRN 2.2 Release Management
- .LRN 2.2 bugs
- .LRN 2.2 to .LRN 2.3.0 Change Log
- .LRN 2.3 Release Management
- .LRN 2.3.0 to .LRN 2.3.1 Change Log
- .LRN 2.3.1 Release Notes
- .LRN 2.3.1 to .LRN 2.4 Change Log
- .LRN 2.4 Release Management
- .LRN 2.4 Release Notes
- .LRN 2.4.0 to .LRN 2.4.1 Change Log
- .LRN 2.4.1 Release Notes
- .LRN 2.5 Release Management
- Zen Project
- Coding Standards
- Coding Standards - Index
- .LRN Zen Project: Standards
- ADP Files
- Ajax and Accessibility
- Code Formatting
- Commit Messages
- Emacs as an OpenACS IDE
- How to contribute code that passes accessibility tests
- Logging Conventions
- Naming Conventions
- SQL - XQL
- Tcl Procs
- Tcl pages
- Vi as an OpenACS IDE
- WCAG 1.0 Checkpoints
- Web Forms
- Web Lists / Tables
- template::head::*
- External Resources
- Cookbook
- Cookbook
- Add extra headers
- Creating adp box tags for consistent html/css
- E-Mail: Event Handling
- E-Mail: Incoming E-Mail
- E-Mail: Outgoing E-Mail
- F. A. Q.
- Handling out of memory on "exec" calls
- Host Node Map
- How to configure a Network Place under Windows XP to access file-storage via WebDAV
- How to handle "connection already closed" errors
- How to manage/upgrade CKEditor versions
- How to tune cache sizes
- Modifying the look of an installation
- OpenACS Performance Tuning
- Passing values up from an include
- Permissions explored, a practical way exists
- Refactoring Recipes
- Running OpenACS behind a proxy
- SQL: How to log (slow) queries in the system log
- Security: Content Security Policy (CSP)
- Security: Cross Site Request Forgery (CSRF)
- Using Pound as a reverse Proxy
- XoWiki: How to save files directly in the wiki
- XoWiki: List of the available includelets
- Resources
- Accessibility
- Testing Pages
- Commit graph
- Commits
- Comparison of the CTRL Surveys Package vs. the OACS Assessment Package
- OpenACS Object Types
- Pastebin for irc
- QUOTA
- Recently Changed Pages
- Wikipedia
- XoWiki Slides from the Vienna OpenACS conference
- category test
- fullpage
- just playing around
- name with space
- preview.png
- toc-test-page