Search · Index

Learning Content Tool

Learning-Content Tool


User specs
The Learning-Content Package is a simple content creation tool based on xowiki. This package lets you easily create, edit and organize content for a course, taking advantage of xowiki's easy inline edition and revision history.  The package provides a generic template generated automatically with the pages and the categories.
During the edition of the pages there is an interface that allows the addition of terms and definitions to a glossary, linking the words from the content. It comes with an interface that allows linking of certain resources from the course, such as linking evaluations, assessments and forums to the content pages.
There is a new admin section for the content which includes a page to manage the categories in the content tree, an option to show/hide a specific title for the course on every page, user tracking by page or user, and one-click automatic copy of the content to other classes/communities.

Development History


The Content package was first developed by Byron Linares (Galileo University) as a portlet using xowiki as the main package, adding all the files and modifications needed in xowiki. The automatic template included was specific for the Galileo's theme.

Works on:
postgresql 8.2.x
xowiki 0.47
xotcl 0.47

ltree module for postgresql

The package was improved by Alvaro Rodriguez and Viaro Networks team to make it a real package as an extension of xowiki, it was updated to work with the latest version of xotcl-core, xowiki from the oacs-5-4 branch. It was completely ported to Oracle and it no longer requires the ltree module for postgresql.

How to Install

Works on:
Postgresql 8.2.x +
Oracle 9i +

xowiki 0.106.1
xotcl-core 0.100
views 0.1d3
ajaxhelper 0.87d (needs upgrade to YUI 2.5.2+)

Installation process:
  1. Get the following packages from branch oacs-5-4: dotlrn-all, xowiki, xotcl-core, views
  2. Get the following packages from HEAD: learning-content, learning-content-portlet, dotlrn-learning-content, ajaxhelper
  3. Move to the content package folder and run the, this will patch all the files from other packages to integrate them with content new features
    1. To run the script:
      • /$path_to_content_patch/$  sh
  4. Install dotlrn, then install xowiki, xotcl-core, learn-content, learn-content-portlet, dotlrn-learn-content, ajaxhelper and views
  5. Restart the server
  6. Activate the applet in a course

Release Notes

Name: Content
Version: 0.1d  (October 2007)
Developed by: Byron Linares (Galileo University)
  • Provides a simple interface to create web pages and easily include and manipulate web assets such as flash, videos, images, etc.
  • Provides a web template, easy to manage, similar to a PPT template but with built in navigation (sequential navigation, tab based organization, sub tabs supported and per unit / module navigation).
  • Folder, subfolders, pages ordering.
  • Free of "standards" approaches, so professors with basic word knowledge can use it.
  • Auto scroll (focus navigation on the content area).
  • It provides portlets for .LRN

Name: Learn Content (Renamed because Content was a very generic name)
Version: 1.0b (January 2009)
Developed by: Alvaro Rodriguez (Viaro Networks)
  • The package is an OO extension of xowiki, leaves xowiki package unmodified
  • Glossary tool, a plugin for xinha to add words to the glossary during the content edition, an admin page to manage all words and definitions, dynamic popup with the word definition inside the content
  • Integration with other dotlrn resources, a new interface to link resources from the course to the content pages, this allows the content tool to be the reference of a course like SCORM
  • User tracking, reports about all the content pages and all the users views, visits by page and visits by user
  • Header for the content, show/hide a specific title for the course on top of each page of the content
  • An admin section of the content for teachers, the xowiki's inherited admin section is only for swa
  • Automatic copy of the content to other classes/communities inside dotlrn
  • Split up the automatic template in sections to be easily changed (by developers/designers)

Technical specs

The Learn-Content Package is an OO extension of xowiki. The package generic template was split into sections so that it can be easily modified (by a developer/designer).  A new plug-in for the Xinha richtext editor allows it to interact with the new glossary feature. To use this plug-in a parameter in the Xinha configuration must be set (which is automatically added in content).

Every page instantiated along with the package (index, glossary admin, templates, etc) is now in the prototypes section of content. If a site-wide administrator deletes a page it will be loaded again when requested. There is a new admin section that is independent of xowiki's admin section, this section is in a different directory so that different permissions can be set.

Calls to content callbacks have been added to other packages in the add forms to be able to link the resources from those packages to the content pages. The callbacks extend the form of a new object to receive the page_id to be linked to, and inserts the objects into the page once it has been created in the submit section of the form.

A new proc was created that automatically copies content to other classes/comunities using the export and import options of xowiki, complete with all the categories, the mapped objects, and the activities linked to the content.

Each callback is defined and implemented in the learn-content-callback-procs, in the following way:
ad_proc -public -callback "callback_name" -impl content
if a package needs a different implementation of a callback it should be done in the package callbacks procs in the following way:
ad_proc -public -callback "callback_name" -impl $package_key
This callbacks are used inside the page that has the form for creating/editing new in the following way:
callback -catch -impl content "callback_name" -params...

To add a new package to the activities available in content, the callbacks should be added to the file(s) where the objects are created, i.e. forum-new, task-add-edit, etc.
  1. A new parameter called page_instance_id needs to be added to the ad_page_contract
  2. The following callback should be added in a place where the form can be extended
    • callback -catch -impl content learning_content::extend_form -name $form_name -page_instance_id $page_instance_id
  3. The following callback should be added in the submit section of the form after the object has been created
    • callback -catch -impl content learning_content::insert_object -name $object_name -item_id $page_instance_id -activity_id $object_id
  4. The activity should be added to the activity-new and get-activities pages in the learning-content package, check out the existing activities sections to figure out the right way to include

The script added to the package to patch the rest of the packages was generated with diff between the packages from clean oacs-5-4 and modified oacs-5-4:
diff -crNB ~/oacs-5-4/packages/$package_name ~/custom-oacs-5-4/packages/$package_name

This work was done in collaboration with Innova - UNED.
Previous Month March 2017
Sun Mon Tue Wed Thu Fri Sat
26 27 28 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 (1) 20 21 22 23 24 25
(1) 26 27 28 29 30 31 1

Popular tags

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