2.9. Other elements

SCORM 1.2

OLAT has a fully compatible SCORM 1.2 runtime environement. Due to some SCORM concepts it differs a lot from the IMS content packaging viewser also integrated in OLAT. Each content object (Sharable Content Object [SCO]) communicates with OLAT over a separate channel with backend while the user is browsing the content. The API each SCO is looking for consits out of 5 javascript functions that need to be present in the SCO content.To communicate with the backend we relay on the not yet so commonly used XMLHttpRequest javascript object. It allows us to do asynchronous SCORM API call without the need for an Java Applet or other plugin technolgies.

The SCORM backend consits of three parts. First part is a standard OLAT controller which listens to the SCORM API calls and passes them further to the SCORM backend. The controller delivers also the content which is displayed in an IFrame. The API calls are passed to the API Adapter which is used in other projects as well (Ilias and ATutor).

Folders and WebDAV

All folders accessible through the GUI within OLAT are managed by the FolderRunController. The actual file operations are further wrapped by a Virtual Filesystem (VFS). See the section on the section called “Virtual Filesystem (VFS)” VFS for further details. Folders can have security restrictions such as read/write restrictions and quotas. All this is implemented through the functionality provided by the VFS abstraction layer.

All of a user's folder are exported via WebDAV through a single unique mountpoint at webdav://your.server.com/olat/webdav/. The user authenticates via an OLAT authentication provider (see section on authentication) and is presented its personal briefcase, and any coursefolders/groupfolders/sharedfolders she might have access to.

Direct jumps and state activation

After log in the home site is activated. However, it is also possible to directly jump into a course, forum in a group etc. When creating new sites or dynamic tabs this is handled via ControllerFactory.createLaunchController(). When the site or dynamic tab already exists the activation is done through the Activateable interface that must be implemented by such sites.

Context sensitive and comprehensive help

OLAT should be easy to use without the need to read help. However, the functionality of OLAT is so big and some of it is quite complex that it is not possible to make everything self explanatory. The context sensitive help is used wherever some help might be needed. The context sensitive help is appears with a small symbol. By clicking the symbol a pop up window opens containing the help.

The context sensitive help is placed in the html files using the velocity helper rendering method velocityRenderDecorator.help(). The context sensitive help is written using the translation tool explained in Customizing.

The comprehensive help in OLAT is accessed via the top navigation tools. The help opens in a new window and is organized as a regular OLAT course. This is very handy since the help has also a forum. Make sure you register to this forum notifications!

The OLAT help course is imported when starting OLAT. Modify the lines in the module CourseModule in the WEB-INF/olat_config.xml file if you want to have your own help course used instead of the default one.

GUI preferences

Some GUI elements in OLAT offer configuration / personalization options. These options usually have a very local scope and do not influence the whole system. In contrary the users settings that can be changed in the home site (see the section called “Settings”) have a global scope and affect OLAT as a whole for this user.

Every user has one object GuiPreferences that can be retrieved from the users user session ureq.getUserSession().getGuiPreferences(). The GuiPreferences object offers then methods to get and set values for this user.

The users list in the group management for example features much more data than is shown in the default view. However, presenting all data would make the table very large and would force you to scroll vertically. In this table a small icon right on top of the table lets you customize this tables view. Some other tables also use this feature, e.g. the listing of learning resources has an additional date field that is not visible in the default view.

Another place where the GUI perferences are used are the menu and toolbox state. Menus and toolboxes can be put into a dynamic / hidden state. This state information is stored in the GUI prefereces.

Another example is the home site portal configuration. The users personal settings are also stored in the GUI preferences.