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 9 released!

ocPortal 9 released! Version 9 has now been released. This version is the gold release of the next version of ocPortal. Upgrading is not necessary.

To upgrade follow the steps in your website's http://mybaseurl/upgrader.php script. You will need to copy the URL of the attached TAR file (created via the form below) during step 3.
Please make sure you take a backup before uploading your new files!

Your upgrade to version 9

You can generate an upgrader from any version of ocPortal to any other version. If you access this upgrade post via the version information box on your Admin Zone front page then we'll automatically know what version you're running.
If you'd prefer though you can enter in your version number right here:

(usually blank)

(example above is for upgrading from 4.3.2 beta1)

ocPortal version 9 is now released.

Version 9 includes a major redesign of the default theme (1000s of changes). Compatibility with version 8 themes has been dropped, as well as compatibility for Microsoft Internet Explorer 6 and Microsoft Internet Explorer 7.

We have used the rare situation of dropping compatibility as an opportunity to improve design standards, increase consistency, leverage new technologies, and make themeing easier.

Theme improvements

Standards and semantics:
  • Enabled HTML5 as standard and broadened our implementation.
  • Streamlined data transfer sizes (by disabling some features not commonly used, by default).
  • Improved our code validation technology to better support HTML5 and CSS3.
  • The HTML semantics have been greatly improved. Pieces of grammatical presentation used for layout have been removed, such as line breaks, brackets, hard-spaces, 'raquo' and 'middot'. Now these styles are placed via CSS, allowing greater control.

Code/layout structure:
  • Standard boxes are now achieved directly via CSS, rather than a complex abstraction within ocPortal.
  • HEADER.tpl, FOOTER.tpl, and GLOBAL.tpl have been removed and replaced with a simpler GLOBAL_HTML_WRAP.tpl template. In addition, many referenced variables that used to be parameters to these templates, are now Tempcode symbols, meaning you have more flexibility to move stuff around however you want it.
  • Templating and CSS applied to overlays, popups, and iframes, has been simplified, so the themer can better understand where particular styles will be applied.
  • All HTML wrapper templates (global, overlays, popups, iframes) now share the same HTML header, meaning you only need to add things like jQuery or Google fonts once and they'll also work in frames.
  • The panel width setting has been removed, and now this is handled via regular CSS. This allows greater flexibility and simplicity.
  • The member and stats bars in OCF are now blocks. These blocks are put in via panel_top and panel_bottom and by default now exist on multiple 'social' pages in the system. The horizontal menu across the top of the forum is now editable by default, and links to all these 'social' (aka community) pages. The forum zone menu link is now titled 'Social'. In essence we have broken down walls between OCF and other parts of the system, and simplified navigation around these areas.
  • Our default left-panel menus are now simpler, as we have taken social pages out of them due to the above change. We have also moved 'Rules' to the footer.
  • Tidied up the concept of content boxes (i.e. how a box previewing some content should look).
  • There is a new catalogue display mode, grids of boxes.
  • Internal Javascript naming standards have been introduced.

Themeing usability:
  • Much more code commenting in key theme files (now that we automatically minimise CSS, and have Tempcode comments, we can do this without worry of increasing output size).
  • Many templates have been renamed, and many parameters renamed, for greater simplicity and consistency, both within ocPortal, and in relation to better use of industry-standard terminology. Some examples:
    • the catalogue templates have been renamed to clarify which are used for what.
    • 'results browser' is now 'pagination'.
    • 'tree' is now 'breadcrumbs'.
    • 'link' is now 'URL' (to indicate the difference between an actual URL, and an <a> tag).
  • Added example usages of jQuery and Google Fonts, to make sure people understand we are embracing these things even if ocPortal isn't requiring them by default.

  • The CSS has been completely overhauled - almost all of it has been touched in some way.
  • The CSS class names, and file structure are now far more logical and therefore far easier to understand.
  • Some styles that did the same thing have been merged.
  • Some stuff is taken out of global.css and adminzone.css and side_blocks.css and removed into separate addon-specific CSS files.
  • The forms CSS is taken out of global.css and put into forms.css.
  • Theme Wizard colours are now defined in a table at the top of global.css, making it easier to manage your complete site colour scheme from one place.
  • The number of colours has been reduced, as similar ones have been merged.
  • The colours have been given more logical names and clear definitions, so you can understand exactly how they work.
  • The Theme Wizard can now be talked-to via OcCLE, which is incredibly useful if you want to extend the accurate result of Theme Wizard equations into your own theme changes.
  • We have embraced the concept of 'margin collapsing' in a big way. Rather than trying to explicitly define the spacing between each box, through hard-line breaks or explicit top/bottom margins, we now surround all boxy-elements with a margin and let CSS margin collapsing automatically set them apart at sensible distances. This is a very major change to how we go about things, and a big improvement.
  • Almost everything is now spaced using 'em' units rather than pixels. This means that spacing is more accurate, automatic, and consistent. For example, most boxes are spaced with a '1em' margin – if the font size for the surrounding element was reduced, the margin would reduce in proportion.
  • We have a very handy new Tempcode symbol called 'BETA_CSS_PROPERTY', that can automatically add vendor prefixes to CSS properties. This is used extensively. Through maintenance of the symbol we can fix late-changes to specifications and ensure things keep working right. For example, IE10 was announced just last night to implement an updated version of the CSS gradients standard, and all other browsers only support the standard of the previous draft – through this symbol we can now support both the draft and the standard, smoothing things out through the transition period, but with no need to give it any consideration to it at all in the CSS files. It also allows the themer to clearly see what CSS is standard, and what is making use of upcoming functionality, or functionality that ocPortal is kludging to work on IE8 (e.g. opacity).

  • Up to now the Theme Wizard has worked mostly by blending saturations of the seed colour. We have now injected some use of colour theory into it, and as a result mathematically correct complement colours are used in a few places.
  • CSS3 has been used to add flourish to many existing styles. A lot of use of gradients, curved borders, and transitions, has been added.
  • The default start and panel pages feature a new 'deboxification' method that may be deployed anywhere at the webmasters discretion. By wrapping a CSS class around some elements you can trigger them to be rendered without boxes (i.e. no borders, gradients, boxed-title). Instead, they are rendered in more of a newspaper format that is less cluttered and draws the eye towards the content.
  • The welcome zone is back on by default, and the default welcome zone features a modern marketing callout and animated content scroller. It's not quite the old splash page that rightly went out of fashion, but it's more of a decluttered and powerful marketing landing page.
  • The forum styling used on is now standard in ocPortal.
  • We have been through all the screen previews defined for ocPortal (i.e. every template, every style) and made sure each really looks amazing (and of course, this allowed us to easily ensure all our sweeping changes hadn't broken stuff).
  • CEDI is now named Wiki+.
  • Improved gallery display a lot, so that if thumbnails have inconsistent styles it doesn't break the grid layout.
  • Improved all content view screens to have a more attractive, tidy, and consistent way of displaying meta-data (such as who submitted the content, and the submission date).
  • All kinds of new design styles have been added. We'll let you discover them yourself, but it's really cool how nicer some things look, and how consistent these new styles are.

Very little across over a thousand templates and many CSS files is untouched by these changes. Changes are broad and deep, detailed, and consistent. It really brings quality up a few levels.


Some compatibility has been dropped:
  • Theme compatibility is broken, so all themes will need to be rebuilt. We recognise this is a biggie, which is why we've tried to hard to make this a one-off and to really make it worth it.
  • The old syntaxes for the Comcode 'page' tag have been removed.
  • The Comcode 'box' tag no longer accepts a height; the dimensions parameter is replaced with a width parameter which accepts CSS units.
  • The old 'internal_table' Comcode tag is dropped (history lesson: ocPortal was originally developed before good CSS layouts were possible, so standard boxes used to be tables, which are sized outwards while CSS is sized inwards – we are finally removing the last subtle references to this in our underlying architecture design).
  • The 'side_stored_menu' block now accepts a 'title' parameter instead of a 'caption' parameter (for consistency with other block parameter names).
  • The side_zone_jump block has been removed.
  • To be more touch-friendly, the default menu type is now 'embossed' rather than 'tree'.
  • Otherwise, compatibility with v8 is pretty good – we have not done major database changes or changed the internal structuring greatly.

Compatibility with Microsoft Internet Explorer 6 (IE6) and Microsoft Internet Explorer 7 (IE7) has been entirely and irreversibly dropped. This is a change that has allowed us to make substantial improvements without taking months working-around IE bugs or implementing stuff using old time consuming, inflexible, techniques. IE8 and IE9 (and soon, IE10) are essentially a clean start for IE, far more stable and supporting newer standards, and we are leveraging it for all it's worth. We have essentially just done a rendering technology leap of 12 years. Most of the theme changes we have made are due to new engineering decisions that improved technology has allowed us to make.

Some of our visual techniques will not work on all browsers, however these techniques are optional. For example, we make use of CSS curved borders (IE9+), CSS transitions (IE10+), CSS transformations (IE10+), and CSS gradients (IE10+).

Use of modern CSS techniques have allowed us to achieve better display, with less code. Less-prescriptive HTML that relies on modern CSS capability allows themers the flexibility to make sweeping changes without having to modify many templates.

The banner code option has been removed because HTML banner code may now be added within regular banner entries. This is both simpler and much more powerful, but you'll need to re-add your banner.

Other features

This release is definitely not just theme improvements. It also has:
  • New anti-spam system:
    • Blocklists: DNS:BL, RBLs, stopforumspam – advanced configuration to say exactly what checks and thresholds take place.
    • Black holes defined on forms to detect spam-bots.
    • Support for linking in Project Honeypot honeypots, in a way likely to prevent spammers auto-detecting the honeypot.
    • Internal support for temporary IP bans.
    • An OcCLE command for checking against blocklists.
  • New content filtering system:
    • A highly flexible filtering systems, supporting many different modes of operation and great richness in filter definition.
    • New mini-language for defining filters: ocSelect.
    • Filter block, for easily building up content filtering forms for most major content types in ocPortal.
    • Merged category browsing option (per-content-type), where browsing subcategories works as a filter metaphor rather than as an exploration metaphor).
  • More sophisticated calendar recurrence support (e.g. every third Tuesday of the month).
  • Automated detection of out-dated non-bundled addons and bulk upgrading
  • A trick to improve browser caching of Javascript and CSS files, so outdated files are not incorrectly cached.
  • Better catalogue CSV import (e.g. control of how duplicate records are handled).
  • A hint about if either Safe Mode or Fatalistic Mode are active is provided, for usability reasons.
  • Member directory search by email address (admins-only).
  • Integrated OCF signup into the purchase wizard (so you can, for example, purchase a subscription account without having to join separately first).
  • Listing inside the upgrader of what files belong to non-bundled addons (rather than just labelling everything external as simply alien)
  • Support for adding direct-HTML/PHP banners (as advertising affiliates will often provide raw HTML for you to use, but many site admins prefer to continue to work through the banner system rather than template editing)
  • Improved backup generation/restoration, memory limits no longer provide a problem for backup size (CGI/safe-mode server timeout during generation is still a problem for some servers though, so we continue to recommend using third-party backup if possible)
  • New OcCLE commands:
    • phpinfo (useful if the PHP-info addon is not installed, or the Admin Zone is not accessible for some reason)
    • db_search (useful for finding where data is stored in the database)
    • directory_sizes (to find out how much disk space is being used, and where)
    • mysql_table_sizes (to find out how much database space is being used, and where)
  • New/updated non-bundled addons
    • "Member directory boxes" addon for advanced member directory search with a year-book layout
    • New "Related members" addon (allow members to define themselves to be in a shared family, with other family members shown on a member profile tab similar to friends)
    • Static site exporter (use CMS tools for authoring then export your site to static HTML, if you don't need dynamic features and want the site to run really fast without needing a database; all forms get routed through an e-mailer script)
    • New backup tool for developers to generate a TAR backup in real-time as a direct download, with basic directory and time filtering support
  • Many code cleanups and small improvements to existing functionality


This release includes work kindly sponsored by (in alphabetical-order):

View all