HTML Logo by World Wide Web Consortium ( Click to learn more about our commitment to accessibility and standards.

Moving forward with Composr

ocPortal has been relaunched as Composr CMS. ocPortal 9 is superseded by Composr 10.

Head over to for our new site, and to our migration roadmap. Existing ocPortal member accounts have been mirrored.

ocPortal Tutorial: Custom structured content (via Wiki+)

Written by Chris Graham, ocProducts
This tutorial will describe the Wiki+ system, which is ocPortal's equivalent to a wiki.

About Wiki+

Thumbnail: Viewing a Wiki+ page

Viewing a Wiki+ page

CEDI is a hierarchical database of pages and posts which is in many ways like a forum system, but presented in an encyclopaedic style, and designed to have a deep and extensible hierarchy. CEDI can also be configured to behave just like a wiki system, by linking pages purely by using hypertext links. It is a collaborative, community-driven tool for the organisation of media and information; unlike wikis it is capable of providing a well-organised structure, with flexible permissions to allow the staff complete control over how open the system will be.

Information is presented using Comcode and the Comcode attachment system, meaning there is excellent support for rich media. CEDI is ideal for storing collaboratively/interactively extended information with a high organisational factor; the speed of which information can be added is also particularly advantageous. This pattern works very well for types of ad-hoc guide, especially community-driven ones.

Pages and posts

Thumbnail: Making a Wiki+ post

Making a Wiki+ post

Wiki+ consists of a pages which may include a page description and any number of posts. If there are no posts, or if the page has been configured to hide them (the per-page "Hide posts" option), then the pages appear much like those on a wiki; otherwise it functions more like a forum.

Pages may also contain a list of pages that are 'underneath' the page; however, a page can be underneath any number of pages, as the Wiki+ hierarchy is loosely defined (technically it is a node based network rather than a real tree structure). When pages are accessed from different paths, the path to the page as it has been accessed is displayed, so that back-tracking is easier, and that the user does not get confused by the path suddenly changing when they enter a 'child' page.
If you do not choose to develop a tree structure then Wiki+ navigation will be much like the navigation of a wiki- Comcode has special wiki-like support for making quick links between Wiki+ pages just by writing [[pagename]].

This simple structure of posts, pages, and children, is Wiki+'s core. There are of course peripheral features, such as:
  • Giving pages some 'page text', which sits above the posts on that page; this text is staff decided, and thus provides an authoritative space.
  • Jumping to a random page.
  • Seeing a list of recent changes to the database.
  • Moving posts.
Thumbnail: Editing the Wiki+ tree

Editing the Wiki+ tree

  • Merging posts.
  • Viewing the tree structure of the whole database (transferred in a compressed format, and reduced so as only to show a single path to any page).
  • Search
  • Editing posts

This simplicity is key to the flexibility of the system- it is a system of control built around organised text, and how that text is used and structured is completely up to the website staff.


The full Wiki+ structure and content may be manipulated from the page-view screens of Wiki+ itself. Wiki+ pages are created on an adhoc basis, by either:
  1. referencing them in the child-list for a page (available under the 'Edit Tree' button),
  2. or by referencing them via the special Comcode syntax ([[pagename]]).
The 'Edit Wiki+ page' selection list in the Content Management Zone may be used to find/select pages which have been orphaned from the Wiki+ hierarchy.
In a typical set-up, staff are given access to modify the Wiki+ tree, whilst ordinary users rely on the Comcode syntax to create new inline links. Whether ordinary users are given access to add new pages can vary substantially between deployments, depending heavily on what role Wiki+ is being used for.

Orphaned pages

Orphaned pages should not be perceived as a bad thing. It's fine to have pages not linked into the tree structure, if you're linking to them in the typical wiki-code style syntax ([[page name]]). Comcode has subsumed that part of wiki-code.
It's a choice you have. You can link in both ways, one way, or the other way.


As Wiki+ is (by default) open to posting by any user, you may feel it is necessary to moderate posts: especially as they may detract from the quality of the database. When a member posts, an e-mail is sent to the staff e-mail address: this will help you to moderate posts on the system, as they are made.

It is possible to provide greater open-access to Wiki+, so that anyone may edit all page details and navigation, in the same way that they may do so on a wiki. If you wish to enable the permissions for this (Security section of the Admin Zone, Global privileges icon, Wiki+ section) then you will likely want to make use of the page history feature to revert unwanted changes, as well as ocPortal's site-wide tracing and moderation abilities.

Expanding images

On a Wiki+ page with a lot of thumb-nailed images, you may wish to click the expand buttons to expand the thumbnails to display the full-size images, so that you don't need to click on them all to view them at their native resolution. You may either enlarge all images within a single post, or enlarge every image on the page.

Viewing the complete tree structure

Please note that when you do this you view with guest access – so some pages may be missing from the view.

The tree screen

The tree shows the overall Wiki+ structure.

A child page will only show on the tree:
  1. If the page does allows guest access. That's a limitation to do with how the caching works. You can easily assign guest access to the page though; most users won't have a use for this (instead will just make the whole Wiki+ private if you want).
  2. If a page is a child of more than one parent (I know, weird terminology) it will only show under the first one in the tree. This is to stop repetition and potentially loops.

(The tree feature is discontinued in v10, as it can be built using the Sitemap, via the menu block, without the above limitations)


A collaborative and informal hierarchical database system in ocPortal

See also