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: Creating sub-communities (and sub-sites)

Written by Chris Graham, ocProducts
ocPortal is designed to be able to support large community sites, and a common features of the largest sites is to have sub-communities within the larger community. There are a number of features in ocPortal to support this, including:
  • Zones (different zones may be created for each sub-community, located under a URL beneath the main site, with their own set of pages)
  • Redirection pages (using redirection pages, common modules, such as the download module, may be made to appear as if they are running from individual zones)
  • Categories, and virtual roots (using a combination of separate categories [and sub-branches there-of] for different sub-communities, and the 'virtual root' system, it can be made to appear that each sub-community has their own catalogue/download/gallery
  • Comcode pages, Chat rooms, Polls, IOTDs (all these support individual creating and referencing, such that different instances can be presented to different sub-communities)
  • Banners, Calendar (all these support category based referencing such that a division between sub-community interests can be created)
  • Sub-forums (different communities can be given their own branch of the discussion forums, with the OCF 'Clubs' feature providing special support for this)
  • Themes (different themes may be applied to different zones, giving sub-communities individual looks)
  • Usergroups and access privileges (members of sub-communities may be grouped by usergroup, and permissions assigned accordingly)
  • Custom profile fields [OCF users only] (custom profile fields can be made so that they only apply to a single usergroup: thus allowing specification of user data that applies only to specific sub-communities)


For some sites, it is advantageous to be able to create a whole website for each sub-community, each with its own settings, yet sharing a single member database and forums. This is possible using an ocPortal configuration known as a 'multi-site-network' and essentially involves separate ocPortal installs that are tied together by sharing a forum database. ocPortal provides special features for multi-site-network sites, and there is separate tutorial on them: as they involve separate installs, most of the features described in this tutorial are not necessary.

Advantages to using a multi-site network:
  • Full control
  • Cleaner administrative separation
  • Special multi-site-network features, such as the 'netlink' system

Disadvantages to using a multi-site network:
  • Overhead of additional configuration and maintenance


Thumbnail: Adding a new zone for our Church Of Santa subcommunity

Adding a new zone for our Church Of Santa subcommunity

ocPortal zones are sub-directories of your site, that operate with different settings. By default, ocPortal contains a number of zones:
  • Welcome (/)
  • Admin Zone (/adminzone) – Where ocPortal is configured
  • Collaboration (/collaboration) – Where privileged members may access collaboration tools
  • Site (/site) – Where the majority of the ocPortal modules are, by default
  • Docs (/docs) – Documentation
  • CMS (/cms)
  • Forum (/forum) – For OCF users only
Thumbnail: Viewing our zone (in its custom theme)

Viewing our zone (in its custom theme)

You may add new zones, edit zones, delete zones, and move pages between zones from the Admin Zone (Structure section). When performing an action that will add, rename or delete a zone, you will need to provide details that tell ocPortal how it can do this; this is because on the majority of web hosting configurations, PHP does not have full access to files on the hosting account. These details are the same as you provided when using the ocPortal quick installer (assuming you used this to install).
Thumbnail: To finalise the zone, FTP details will be needed so ocPortal can create the directory structure properly

To finalise the zone, FTP details will be needed so ocPortal can create the directory structure properly

To change the logo image for a zone, add a theme image named '<zone-name>-logo'. By default zones use the logo image of the Welcome Zone.

Redirection pages

Thumbnail: Managing redirection pages

Managing redirection pages

Thumbnail: Adding a download category for the NewTown Parish subcommunity

Adding a download category for the NewTown Parish subcommunity

Redirection pages may be configured to allow pages to be usable from one URL (technically, a zone and page name combination), where they actually reside under a different one.

Optionally, this redirection may be 'transparent' such that the user doesn't know a redirection is in place, and thus sees the page as if it was in the zone they accessed it from; for security reasons, with a transparent redirection the user still needs permission to view the page as it would be in its original location.

Redirections are useful for a number of reasons, including:
  • Sharing modules between zones
  • Making short-cuts to zone/page combinations
  • Making it so obvious URL mistakes can be automatically corrected
  • When moving pages, a redirect may be placed so that links are not broken

To reach the Redirects module go to the Structure section of the Admin Zone, then the 'Redirects' icon.

Special tip

If you want a module to behave as if it was completely moved, you can set up a transparent redirect from your desired location to the actual location, and then a non-transparent redirect from the actual location to the desired location. ocPortal will sense your intent, so when you do something that searches for that module (e.g. for the Wiki+ module, doing a Wiki+ link) it will go to where you want. For example, if you wanted to move the supermembers module from the Collaboration Zone to the Site zone, you could set up these redirects: site:supermembers–>collaboration:supermembers transparent and collaboration:supermembers–>site:supermembers non-transparent. ocPortal will see the transparent redirect as an indication the supermembers module really has a proper home in the site zone, and it will see the non-transparent redirect as an indication the supermembers module really does not have a proper home in the collaboration zone; ocPortal will respect these indications and link to the module in its new home.

Virtual roots

Thumbnail: Viewing the download category we added, we can find the virtualisation URL

Viewing the download category we added, we can find the virtualisation URL

A number of ocPortal modules contain categories organised into a tree structure, including:
  • galleries
  • download categories
  • catalogue categories
Thumbnail: The virtualed download category

The virtualed download category

If sub-community categories are stored under a common sub-tree of the full category tree, then the root of the 'sub-tree' may be made into the apparent root of the full-tree, by picking it as a virtual-root. This is easy to do, and doesn't involve any kind of configuration other than finding the URL to enter the module with. To find this URL you just look for the link of the current category in the breadcrumbs on a category screen (it'll have 'keep_root' in it): this is a mouthful to explain, but really very simple. Once you have the URL, you may wish to add it to to the menu of your sub-communities zone.

Here are some step-by-step instructions:
  1. Browse into the forum you'd like to be the virtual root. You need to be logged in as a staff member when you do this
  2. Look at the breadcrumbs. You should see the final (rightmost) link in the chain is also a link. This might appear strange, because you're already on the page so why would a link be shown? The reason is that it is an anchor to let you create a virtual root link
  3. Click the link
  4. You should see now you have set a virtual root
  5. Take the URL you're at and put it on your menus as required

Usergroup management

Thumbnail: Adding a new usergroup

Adding a new usergroup

The OCF system has a powerful usergroup system, based on the ability for members to be in a primary usergroup, and any number of secondary usergroups. When members join they are placed, by default, in the lowest usergroup in a 'ranked' progression of usergroups: the member moves up along these ranked usergroups as they accumulate points, and their visible rank, and privileges change in accordance. It is recommended that you leave all non-staff members such that their primary usergroup stays within this rank progression, and use secondary usergroups for the purpose of placing them in sub-communities, and granting additional permissions (a member has the 'best' permission combination out of all the permissions granted to all of their usergroups).

OCF allows you to choose which secondary usergroups a member is placed in when they join. Setting of default usergroups allows you to give people permission "by default", but to take it away if they abuse it without having to put them onto a different rank progression. For example, a 'debates' forum could be created and only the 'Civil Debater' usergroup given access; the 'Civil Debater' usergroup could be a default usergroup, meaning all have access by default – however, members who demonstrated an inability to debate in a civil manner could be removed from it.

It is also possible to give members a choice from a number of primary usergroups when they join. This is especially useful for what I call 'role-based communities', where different members use the website in such a way that is distinct to their role on it. By assigning usergroup according to role, it is possible to use various ocPortal features in order to customise the site for each role provided.

Thumbnail: Managing the members of a usergroup

Managing the members of a usergroup

You may opt to assign a leader to secondary usergroups, or to leave them leaderless. A usergroup leader has the ability to control who is in their usergroup, taking pressure away from the staff. Otherwise, only administrators may add users to usergroups (this is not done using privileges, as it would grant the ability for any member with such as privilege to escalate themselves to administrator status).

Members may apply to join usergroups if they wish, and the usergroup leader or administrators may decide to accept or decline their application; members may also choose to 'resign' from a usergroup. All usergroup membership management is performed on the usergroup-view page.

You can attach new rank images to usergroups on the usergroup editing screen. The usergroups admin module (which allows selection of a usergroup to edit) is available from the 'Security' section of the Admin Zone.


The OCF system provides a clubs feature. Clubs are special usergroups:
  • that can not have special permissions (they are not shown in permission editing interfaces)
  • that may be joined and left like ordinary usergroups (via secondary usergroup membership)
  • that come with their own forum (privileges to this are automatically assigned when the club and forum are created and cannot be revoked through the ocPortal permission editing interfaces)
  • may be added by ordinary members
Clubs are provided so that members may create their own sub-communities on the website. They are not given any special permissions so as to not overcomplicate the regular permission configuration process (as potentially you might have hundreds or even thousands of clubs).

The club forum has default permissions that only allow website staff and club members into it. The club functionality provides no special moderation controls – so by default the forum would need to be moderated by the website staff, rather than self-moderated. As it is a regular forum, additional permission changes can be achieved manually (for example, creating a new usergroup for the club's management and assigning moderator permissions over the forum to members of that).


virtual root
Virtual roots allow you to split an ocPortal tree based content system (such as the download system) so it appears to have multiple databases
redirection page
Allows pages to be redirected to from different zone/page combinations, either transparently, or with a redirection message

See also