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

ocPortal Tutorial: Nuances of forum integration

Written by Chris Graham, ocProducts
ocPortal supports integration with a wide variety of forum systems through our forum driver system. Integration is seamless for the most part, but there are a few issues as described in this tutorial.

ocPortal draws upon the forum for features such as:
  • emoticons (aka smilies)
  • member management (aka user management, profile management)
  • (user)group management (the same as ranks, on some forums)
  • topic storage (aka thread [storage])
  • personal messaging (aka private messaging), or personal topics

Once you have installed ocPortal, you cannot trivially forums again, as the member and group ID's referenced by ocPortal would lose their association. Please see the "Importing from other software" tutorial for more information on this.



Comment topics

Thumbnail: Configuration of special forums

Configuration of special forums

Most resources in ocPortal that have commenting enabled create comment topics in the configured comment forum. If a forum stores posts in BBCode, then if Comcode features not supported in BBCode were used, they will be displayed unparsed when viewing from the forum.

You should moderate comments from the forum as you would any other forum topic. On some forum drivers, however, the forum "latest post" area may not update properly to show new posts. It is best to have the comment topic forums (ocPortal comment topics and ocPortal support tickets, by default) located on the root of the forum-view, as ocPortal will never update "last post" areas for parent-forum trees.

The first post in comment topics is a special 'spacer post'. This is necessary for two reasons…
  • To indicate what content the topic is for
  • To allow the first true post in the topic to be deleted (with ordinary forum topics the first post can not usually be deleted because it is considered as setting the grounds for the topic)

Thumbnail: The configured special forums do actually exist... see! (our own forum actually configures it all like this by default)

The configured special forums do actually exist... see! (our own forum actually configures it all like this by default)

It is possible to make the comments forum publicly viewable; as of version 3 of ocPortal, the topics will be created in a way that looks much more natural.

Super-members

Super-members are an ocPortal concept for advanced members that have access to extra facilities and are given greater trust. There is no constraint on how you might implement super-membership on your site, but most users would do as follows:
  • Create a super-member group, and add all the desired users who aren't already staff
  • Give the super-member group access to the collaboration zone (available to enterprise version users only)
  • Turn on additional specific permissions for the super-member group as desired

Forum base URL

It is very common for ocPortal users to install the portal, but get the forum base URL wrong. This can be easily corrected after installation by using the separate config_editor.php script (the one where you need to enter the admin password you chose upon install to change the installation environment). Once this is done, it is necessary to clean the Comcode page cache. To do this, go to ocPortal as a logged in member of staff, and hold down ctrl+alt+shift and click the refresh button.

The forum base URL should not include a script name - it should be a URL-prefix to your forums. For example,

Forum in portal

Thumbnail: Configuring ocPortal to generate in-line forum links

Configuring ocPortal to generate in-line forum links

Thumbnail: The default forum link before you fix it...

The default forum link before you fix it...

ocPortal supports integration of your forum into the portal, so that it fits between your menus, and your header and footer. This works by passing all forum URLs through a module that embeds the forums in a frame.

This feature can be turned on from the Admin Zone configuration module, and once on, any ocPortal generated forum link will be passed through the module (such as links to member profiles). You will also need to replace the forum link in the menu so as to pass through the 'forums' embedding module, as the menus are not managed by the configuration options. To do this, click the "edit menu" link underneath the menu, and make the change as identified in the screenshots.

Thumbnail: ...and this is how you should make it be

...and this is how you should make it be

The forum base URL should be on the same domain as the portal. This is so that Javascript can operate between the forum and the portal, allowing them to fit together such that the frame has no scrollbars (if not, browser security prevents it, as the embedding site could not be trusted to access data from the embedded site from a web browser point of view).

Cookie integration

ocPortal, where possible, will allow you to use the same cookies for logging into ocPortal as you do for your forum. However this is difficult to set-up as:
  • it requires cookie domain and path consistency between ocPortal and the forum
  • if mistakes are made during configuration, they may block the success of reconfigurations, by the unsuccessful cookies being dominant over the correct ones
  • web browsers can behave differently with respect to cookies, especially when they are configured differently
  • cookie format may change between forum versions, and we might not always track such changes as it is not obvious (no error messages are provided)
Due to all these problems, ocProducts does not support this functionality officially.

Make sure:
  • That the forum cookie path is set to '/', or at least a URL path that both the forum and the portal exist underneath. A blank path will not work.
  • That the cookie domain is valid for both the forums and the portal. If your portal and forum are on different sub-domains, then blank will not work. For example '.forums.ocportal.com' would not cover a portal on 'ocportal.com'. '.ocportal.com' would cover both - and hence that should be used for the cookie domain. The proceeding 'dot' has a special meaning. Preferably, forum and portal will be on the same exact domain, so to avoid any confusion.
  • That the cookies have the same names. For most forums this will be auto-detected. The names ocPortal use will be based on the real cookie names, whilst forums may ask you just to define a stub.
  • That you clear cookies from the ocPortal/forums sites and reload your web browser between configuration changes. Please note that clearing all cookies indiscriminatingly is likely to be annoying for you because you will have to re-enter many passwords on Internet sites, and you may not remember them all.

Forum specifics

openBB

(Note that ocPortal does not currently support openBB, as their website had been down for months when making the latest release)

ocPortal cannot share openBB cookies, as openBB does not store usernames and passwords within them.

vBulletin

If you use vBulletin 3.6 or later put:

Code

$SITE_INFO[vb_version]=3.6;
into info.php.

phpBB

phpBB is unlike the other supported forums when it comes to determining who is a member of staff or not. phpBB stores this as a user-level for each user, rather than encoding it in the properties of a user group.

ocPortal uses the user level to define admin membership, but in order to make staff show up on the staff page, you will need to create a new group named 'Administrators' and put all staff into it. The reason for this is that ocPortal uses user group membership to list all the staff.

Because of this no-group-issue, the staff filter is disabled for phpBB: it can't synchronise when it is turned on, and thus would lock existing staff out.

Invision Power Board

ocPortal doesn't support IPB permission masks. This is because IPB permission masks are used to define which forums a member may moderate, not a user's overall user-level. ocPortal uses user-groups to control access.

If you use IPB stronghold cookies (version 2.2 and later) put:

Code

$SITE_INFO['stronghold_cookies']=1;
into info.php.

In order for it to perfectly display forum posts in the ocPortal 'forum news' block in the same way as IPB would display them, it's necessary to take some CSS from IPB and place it in the ocPortal global.css file. This particular applies to posts that contain quotes. Invision Board stores all it's posts in HTML format, which is fine, except the CSS styles of IPB are internal to IPB and thus not in ocPortal – the cause of this problem.
The particular styles that would need copying would depend on the skin that IPB was using. If you are experiencing this problem, look at the HTML ocPortal outputs and see what CSS classnames are being referenced – then copy over any styles that apply to these classnames.

None-forum

Using the none-forum driver, many ocPortal features will either be disabled or made useless. This includes content commenting and points, and anything involving interaction between logged in users.

If using this driver, you should remove links and blocks from the menus that involve users (such as the forum link, the points links, and the personal-stats-block).

Our own forum

We strongly recommend the use of our own forum, OCF, rather than a third-party one, if ocPortal is not being installed against a pre-established forum.

There are many advantages to use OCF, such as:
  • you'll be able to use Comcode for making forum posts and not see any difference in presentation between portal and forum
  • the forum users-online and sessions features will be the same as the sites
  • you won't have to work between the Admin Zone and forum admincp - there will instead be a single Admin Zone
  • links will flow seamlessly from ocPortal to the forum
  • the forum will use the same theme and basic templates as ocPortal
  • there is no need to learn concepts from two pieces of software: OCF has perfect integration on all levels
  • OCF is full of innovative features that other forum systems do not have, regardless of it's association to ocPortal



See also