Project name
Interface Extension Points
Estimated workload
3 months

Implement a mechanism for allowing XWiki Applications to alter the content of existing interface elements, like adding a new tab in the admin mode, or a new page in the global preferences, or new menu items.

The best solution so far is to use an Overlay class. Here's how it would work (inspired by the XUL model):

  • an overlay object registers a piece of content that should be added inside a container, identified by an id.
  • the added content can be inserter either at the start or at the end of the container, with an optional neighbor component (e.g.: inside #globalmenu, at the end, if possible before #watchmenuentry). If possible means that if that component exists, respect the required ordering, but if doesn't exist, don't fail.
  • we provide two functions, onStartId and onEndId, which automatically detect what are the components that must be also added
  • each application provides such overlay objects in a document inside the .xar archive

This makes it easy to extend some content, without actually modifying it, but requires massive changes in the existing template to replace <div id=..."> elements with onStartId() calls.

See also and


No volunteer



Created by Sergiu Dumitriu on 2007/03/17 15:02

Get Connected