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/ocProducts FAQ

This page will answer frequently asked questions (FAQs) about ocPortal and ocProducts. These are true FAQs, not a substitute for documentation, and not a piece of marketing material in disguise.

About ocPortal

What is ocPortal?
ocPortal is a CMS (Content Management System) that allows you to create and manage your interactive and dynamic website from an easy to use administration interface. ocPortal is unique by the combination of a vast and diverse range of provided functionality, out-of-the-box usability, and an ability for unlimited customisation.

What does the name ocPortal mean?
It stands for Online

How much does ocPortal cost?
ocPortal is completely free under an OSI-approved Open Source licence since version 4.0 (Common Public Attribution License). There are no restrictions on usage, and we don't keep away any 'pro' features from our users.
There is no requirement to display our logo or copyright notices on your website.
ocProducts makes money from commercial work.

What features set it apart from other systems?
ocPortal offers many powerful features that aren't to be found built-in to any competing products. Features such as:
  • sophisticated tools to help you build and manage your website, such as the Theme Wizard to allow you to set up your own colour scheme in just a few minutes.
  • functionality for all forms of content, includes articles, pages, downloads, banners, and your own custom forms of content.
  • the 'points' system, and the point-store, that allow users to earn, donate and spend points in your community.
  • integration with 8 different popular forums, as well as our own leading forum that is (optionally) seamlessly integrated into the system.
If this all sounds just like a powerful portal solution… we have support for completely customised page, sub-site and menu creation and layout entirely from within the powerful Admin Zone. To read more about ocPortal's extensive features, see our features page.

How secure is ocPortal?
No honest and competent company can guarantee their web application to be completely secure. To make ocPortal as secure as possible, we:
  • actively examine our code in great detail for possible security flaws and make sure we can find none before releasing our product
  • have a written set of security standards that all developers comply with
  • have designed the ocPortal architecture to abstract away common security problems, such as 'SQL injections'
  • have written our code to pro-actively detect suspicious activity, alerting the user to it
  • have prepared a 'security' tutorial giving a high level of technical detail on how to 'lock down' ocPortal beyond the high level of security provided by default

If there does turn out to be a security flaw in ocPortal, we will endeavour to fix it as quickly as we possibly can.

If you believe you have found a security flaw in ocPortal please contact us, so we may fix it before hackers can find and exploit it.

We have a published policy on how we handle security and stability issues.

What are the host requirements for ocPortal?
Please see the 'Web Hosting' tutorial.

Is ocPortal standards-compliant?
We have gone to great lengths to make our code 100% compliant with all major standards, and present well in popular modern browsers (not just Microsoft Internet Explorer). ocPortal even includes an inbuilt validator that ensures compliance with these standards, as well as identifies common mistakes and browser incompatibilities.
Supported standards include true XHTML support, valid hack-free CSS and the highest WAI accessibility standard (level 3) – very few, if any, competing systems can claim this.

Do you support blogging?
ocPortal has excellent support for blogging, through the news system. The news system features both RSS and Atom syndication, for both input and output of news. Members of an ocPortal site may have their own blogs.

Do you support form building?
We suggest people build forms using the catalogue system, and disable 'bypass validation' permissions for that catalogue. This way the staff get an alert whenever a new entry is added, and can act on that like an e-mail from a form builder. Generally this approach is more scalable and flexible.
However, if people do require a simpler form to e-mail system then ocPortal has a script that can receive and relay HTML forms (data/form_to_email.php), which is simple to hook up HTML to point to.

Why are e-mails sent by users shown as 'from' the website?
When you click reply it should show the email address of the sender, assuming they gave/have one.
The 'from' address (different to the 'reply address' you see when you click reply) is the site's address, which is necessary to stop some email services blocking the email as spam. Basically it's because if your server sends mail 'from' someone who's email account is not on your server, it looks suspicious.

Why are e-mails sent by users shown as 'from' the website?
When you click reply it should show the email address of the sender, assuming they gave/have one.
The 'from' address (different to the 'reply address' you see when you click reply) is the site's address, which is necessary to stop some email services blocking the email as spam. Basically it's because if your server sends mail 'from' someone who's email account is not on your server, it looks suspicious.

Does ocPortal support eCommerce?
ocPortal supports usergroup subscription in OCF, and includes an extendable eCommerce framework for making dynamically-dispatched purchases (as originally used on to serve out registration keys). ocPortal does not currently have shopping cart functionality, but it's something we want to do – please contact ocProducts if you need it and you may be able to get a discount on it's development.

Do you support classified ads?
Classified ads are supported in the 'catalogues' system. You'd add a catalogue for the ads:
  • you'd define some fields (such as 'Ad title' and 'Ad message')
  • you'd define timeout settings
  • you'd then add some categories to the catalogue
  • you'd assign various permissions so that members could submit to this catalogue
  • you'd link the catalogue onto your menus
  • possible you'd place a 'recent entries' block onto your front page

What does ocPortal stand for?
ocPortal stands for 'Online 'C' Portal', where 'C' is any of: Corporate, Community, Content, Collaboration or Commerce.

Why is ocPortal not a portal?
The definition of a 'portal' is very fraught, as it is used by different people in different ways. In the discusson forum world, it refers to a simple front end to the forum itself. In the business world, it refers to a place for visitors to make their 'home' for a specific subject. The third definition is what ocPortal is – a rich web application for providing different kinds of functionality. Many would think of ocPortal as a Content Management System (CMS), but we dislike this term as it is very vague and does not have any indication of ocPortal's advanced functionality for things like discussion forums and chat rooms.

Does ocPortal include its own forum? What forum would you recommend I use?
Since version 2.5, ocPortal includes a leading forum that can stand up to the toughest standalone competition. We strongly recommend that you use this forum, OCF, as it has the best possible integration with the rest of the system, and offers many innovative features that make it more effective than other forums.

You may also choose to use one of the forums from our list of supported forums. We have importers for some of these forums, which allows you to migrate to OCF at the time of your choosing.

Do you recommend Windows or Linux servers?
We feel Linux is more suited for PHP purposes than Windows. ocPortal will work fine on Windows, however setting file permissions remotely can be very tricky and non-standard between different Windows servers.

Do you recommend any web hosts / provide your own hosting?
We emphatically recommend Elief: it's fast, secure, feature-rich, well configured, and ideally suited to hosting ocPortal.

Does ocPortal support (some forum vendor and version)?
Compatible forum software is listed in the web hosting requirements tutorial, and any issues are listed in the nuances of forum integration tutorial.

Is the software stable?
The ocPortal 3 line has now been out for over a year, and an enormous amount of work has been done to fix any problems that have been found – new bugs are still occasionally found due to the sheer size of the system, but these are increasingly obscure. New patch releases typically come out about once a month and it is generally advisable to keep up-to-date, as we also fix some usability issues in these releases. When bugs are found they are typically fixed very fast.

Will you implement (some feature)?
ocProducts is very open to new ideas, and a lot of planning goes on behind the scenes based on our feedback. We are very fortunate in that we regularly get new ideas directly from our users, and we listen very closely to them all – most items of feedback will prompt a staff discussion for corresponding software improvement. We regret that there are a variety of unavoidable reasons that prevent us from accepting all suggestions, or confirming acceptance of suggestions:
  • we need to integrate any changes into our long-term development roadmap
  • we need for us to design a clean product suitable for our wider user-base
  • we work in a complex, changing environment, on the forefront of technology
Users who need a new feature should bear in mind that ocPortal is Open Source and thus third-parties may advance development.
Please contact us to make your suggestion.

Will you implement a point-bank/games-arcade/auctions?
These significant new feature categories are often requested, but are unlikely to be produced as official ocPortal features. This is because these features are very specific, and particularly contrary to the needs of most websites. We are not against these feature categories in any way, but these are best developed and released as third party addons.

Will you implement per-user permissions?
For reasons of simplicity we have opted to only provide per-usergroup permissions. ocPortal does have internal functionality for per-user permissions (used by the point-store), but we feel that this would add unneeded complexity if it were placed in the administrative interface.

Is ocPortal available in (some language)?
ocProducts does not officially get involved in the translation of ocPortal, other than to redistribute good public translations. Please check the internationalisation forum for more information on specific languages. We provide a tutorial, and tools, to translate ocPortal, and ocPortal has excellent internationalisation support.

Does ocPortal support unicode?
Contrary to popular understanding, PHP does not itself support unicode until version 6 (not yet released at the time of writing). PHP may appear to function with unicode, and some application may use PHP extensions to provide limited unicode support, but true, reliable, unicode support is not there. We've opted to support PHP 6 style unicode rather than patching support using PHP extensions that would cause significant disruption and inefficiency inside ocPortal. All-this-said, ocPortal can support unicode in older PHP versions, it's just some rare unexpected behaviour may result from it. Unless you are using PHP 6, we recommend using the character set technique for your language pack.

About ocProducts / Services

What other products do you have?
At this time, we place all our efforts into ocPortal, and related addons and services.

Can you write us a system that supports <insert-blank> specifications?
We almost always can. Please contact us with details.

Is ocProducts available to perform some custom work for me?
Yes, please contact us.

Why is your spelling so terrible?
ocPortal is a British (in fact, English) company, so spelling is in British English.

Installation issues

The install is failing, how can I make it work?
The installer presents the most common point of failure for users, as it is a very sophisticated part of ocPortal, and also is the first piece of the ocPortal-framework used and thus first to catch framework problems.

The installation failed and the config file is blank, what do I fill it with?
Please report the problem you suffered. Manually filling the config file will not result in a working configuration.

Please submit a bug report to us. If we are unable to identify the problem, we may ask if we can access your server to resolve it ourselves.
If we suspect user error, we may offer to sell services to install it for you.

Why are you taking our FTP passwords in the installer? What dark plan have you got?
Passwords are only taken because of how PHP security works. PHP cannot extract files from the installation archive and place them on your website (normally) for complex reasons: the only way it can do it is to know your FTP password and to place the files there through FTP.

Why won't ocPortal work on my server, even though it meets the minimum requirements?
ocPortal is extremely compatible with different server configurations, tuned to work with many different problematic servers over a number of years, and developed with automatic compatibility detection software. Unfortunately some web hosts provide crippled versions of PHP, that are either rewritten to limit functionality, or configured to disable basic functionality (unfortunately PHP allows any piece of hundreds of items of basic functionality to be arbitrarily disabled). In addition, cheap web hosts often fit large numbers of users onto a single shared server, which can result in a rationing of server resources that is not in any way workable.

I used uploaded files manually using FTP and installed with the manual installer – why won't it work?
Unfortunately FTP can be slow and often results in corrupted uploads. This is why we developed the quick installer, and we strongly recommend using it if possible. Common reasons for corrupted upload include:
  • files that only have partially uploaded (or even uploaded as blank)
  • uploading in 'text mode' instead of 'binary mode' (only matters on a minority of servers)
  • files that never uploaded at all

What file permissions should ocPortal have?
Please check the installation tutorial.

Essentially, the installer is automating via its archive what most web applications make the user do by hand: uploading all the files.
If you do not trust us – the installer is a script, and thus the source code to it is plainly viewable, so you can see precisely what is happening.

How can I make a donation?
As we're a company we don't really accept direct donations, but if you still would like to donate please top up a support account with a generous amount – the advantage here is you can use it if you need any support doing!

Forum integration

Can I embed my forum between the portal menus?
Yes. You need to enable the 'Show forum within website' option from the Admin Zone (Environment option group, under the Site options configuration page, under the Configuration icon, in the Setup section of the Admin Zone), and change the forum link on your menus to point to index.php?page=forums.

Why do my embedded forums have the wrong height?
It is crucial that ocPortal is running from exactly the same domain name as your forums. This is because the forum runs within a frame, and if the domain is different, the web browser will not allow ocPortal (for security reasons) to find out the height of the forums to automatically adjust the frame height.

Can I share login between the portal and my forum if I am using a forum driver?
ocPortal uses the forum for authentication, but users may have difficulty sharing cookies between the forum and the portal.

It is recommended that you set the cookie names to be different between the portal and forum, making them run on separate cookies. The disadvantage to this is only minor, whilst you are a lot less likely to suffer from cookie conflict issues.

Why does my cookie integration not work?
There are many factors to cookie integration, and it is renowned to be problematic. These problems include: strange and inconsistent browser/privacy behaviour, the trickiness of getting exactly matching and correct paths and domains, the change of format between forum versions, secondary usage to forum session cookies, and old cookies masking new cookies. Due to all these problems, we cannot provide personal support for cookie integration except on a commercial basis.

How do I change the forum base-URL (because my forum links and emoticons are broken)?
You must correct it using the config editor script, available under the 'Environment' link in the 'Configuration' box of the Admin Zone. The installer asked for this value, but many users (wrongly) do not change it from the default auto-detected value.
Note that once the value in the config editor is changed, the 'Comcode page cache' must be cleared so as to update the value. To do this, hold down Ctrl+Alt+Shift and reload a page from your ocPortal site in a browser, when logged into ocPortal as an administrator. Clearing the caches manually is only necessary when using the config editor, as it is separated from ocPortal for fail-safe reasons.

Why do I not have commenting boxes on my portal?
You must create a comment forum with the name specified in your configuration settings. Also, commenting must be enabled for the content involved, and must be enabled globally (– although both these elements allow commenting by default).

How do I use my forum skin for an ocPortal theme?
There is no way to do this. Skins/themes define the visual appearance of applications by specifying visual properties for specific aspects of the specific application, they are not like all-purpose coats of paint.

Can I switch to OCF from my existing forum?
This is only supported if there is an available importer to perform this. Currently this is only the case for IPB and vBulletin.
It may seem possible to perform this action by editing the info.php file, but this is highly ill-advised because it will result in misassociated members and usergroups.

Can I switch from OCF to another forum?
This is not supported.

Common problems

Why is the text bigger/smaller than it should be?
You accidentally enlarged the text size in the browser. Whilst most sites don't scale properly with browser text size (in Internet Explorer, at least), ocPortal is designed so that it does. This is why you only notice it in ocPortal – the other sites don't adhere to the accessibility standards, and thus it is the other sites that are at fault.

Why do images files start gray, then blend?
This is due to a flaw in Microsoft Internet Explorer 6, which is now a very dated web browser. Please upgrade to Internet Explorer 7, Safari, Firefox, Opera, or Google Chrome.

Why do my backups not work?
If there is something about your server configuration that prevents PHP scripts from executing for a long time, even if left running in the background, this will cause the backup system to fail. To check this is not an error, rather than a time-out, check your ocPortal error log.

How do I get more than <just a few megabytes> of upload support?
PHP defines its own upload limits, which ocPortal can not exceed. Try renaming the bundled 'recommended.htaccess' file to '.htaccess'. If this fails read the answer to "Why does recommended.htaccess not work?". If you still have problems you will need to persuade the server administrator to increase the limits defined in the PHP 'post_max_size' and 'upload_max_filesize' options.

Please note that it is not advisable to try and upload more than around 10MB, regard of server limits. HTTP uploads (uploads from web forms) are very unreliable – the smallest connection problem results in the entire download failing, as there is no error correction or resume support.
ocPortal provides ways to reference files uploaded via other means (e.g. FTP):
  • the Comcode attachment tag can reference files by URL ([attachment]url_<url>[/attachment])
  • the downloads addon supports referencing existing URLs, copying of existing remote URLs, and even batch importing from FTP directories
  • the galleries addon supports referencing existing URLs, and batch importing of files placed in the uploads/galleries directory that aren't yet linked in

Why do I get blank pages? OR, Why do I get errors saying the script has run out of memory?
ocPortal is designed to run on a PHP memory limit of 16MB or higher; very old PHP configurations come with an 8MB limit, but the majority of web-hosts have it raised to a more reasonable level: take into account that every ocPortal interface, even the installer which unpacks a large archive, is being asked to run within a tiny 8MB, which includes the space taken up by the PHP source code being run. If you encounter these problems, please submit a bug report, and we will optimise the area where they are occurring for you.

Note that the 'blank page' problem is likely to be due to memory running out, as some PHP installations do not give errors in this event, even if the PHP 'display_errors' option is enabled.

Why do I get errors about 'imagetypes()' or other errors relating to image or GD?
You may have enabled 'GD' in your configuration, but do not actually have GD configured into PHP. GD comes as standard, and is very widespread across web-hosts, and ocPortal uses it for various areas. Officially, GD is required, but if you encounter problems when it is disabled in your configuration, please submit a bug report.

Why do I get an Internal Server Error or '500' error when saving the site configuration, using the WYSIWYG editor, or editing templates?
Your server has an extension called 'mod_security' enabled, which is thinking the presence of a configuration option that contains HTML is an attack on the server. Disable mod_security by renaming recommended.htaccess to .htaccess. If this doesn't work, try the file with just leaving these 5 lines at the top:


# Disable inaccurate security scanning (ocPortal has it's own)
<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
ocPortal is securely coded, and also has it's own proactive security, so mod_security does not serve a useful purpose and only interferes with normal routines.

Why do I get an Internal Server Error or '500' error (often when adding a new zone or going to the Installation Options)?
Check that the PHP file you are loaded up by URL (e.g. config_editor.php or mynewzone/index.php) does not have write access (use your FTP tool to 'chmod' the file). Often Apache servers will not allow script files to load if they have write access.

I've renamed recommended.htaccess to .htaccess, but why ocPortal won't load anymore (Internal Server Error or '500' error)?
Unfortunately the Apache web server gives very poor error feedback, and setting features that it's configuration environment doesn't understand can cause it to fail. Try commenting out lines (put "#" at the start of the line) to work out what lines cause the problems, and leave those lines commented out.
Read the next question's answer also.

Why does recommended.htaccess not work?
If you are getting "Internal Server Error"'s or '500' errors first read the answer above, to narrow down to the problem.
If you're not getting actual errors but things just aren't applying, it's probably because either:
  • .htaccess has been disabled on the server (you'll need to consult your web-host)
  • The PHP options you're trying to override with php_value or php_flag have been locked down in the main Apache configuration (via php_admin_value or php_admin_flag)
  • or, you're using Windows IIS which does not have this feature. You'll need to:
    • change settings through the IIS Administrative Tools or your web hosting control panel)
    • or, if the settings you want to change are for PHP, and PHP is configured as CGI, see "How do I set PHP settings on a CGI server?").

If you are getting actual errors you have probably narrowed it down and found that all the "php_value"/"php_flag" lines fail. If this is the case it is because PHP on your server is set up as CGI, and on CGI you need to set PHP settings differently (read the answer to the next question).

How do I set PHP settings on a CGI server?
You need to create php.ini files that override your web-server's default php.ini file. This can be tricky for two reasons:
  1. You need to place duplicates of the file in a number of different directories.
  2. You may need to replicate settings from the original php.ini file into your own one. Usually your web-host will provide some kind of documentation that you can copy&paste from.

This is what your php.ini file should look like, assuming you do not need to add any extra lines (see "2" above).


; ocPortal needs uploads; many hosts leave these low

; Turn insecure things off

; Put some limits up. ocPortal is stable enough not to cause problems- it'll only use higher limits when it really needs them

; This unavoidably kills filedump folder creation, and stops us controlling our script execution time

; Sandbox ocPortal to it's own directory
; open_basedir="/tmp:/home/blah/public_html/ocportal/"      Customise this line for your server, or leave it commented out

Theoretically the file should be placed in any directory from which a PHP file might be called up by URL. Practically though you can just put it in the base directory, adminzone, cms, collaboration, site, forum and personalzone directories.

Common usage queries

Why do I need to keep entering my FTP password?
ocPortal must not remember the password in order to maintain security. It would present a very significant security vulnerability if it was stored in a database or configuration file on a shared server, and it is ill-advised on any server.
The FTP password is required for some file-based operations, as PHP only has limited file access on most servers. If you are running a Windows server, or a "SUID" Apache server, you can tell the abstract file manager that you don't need to use FTP.

How do I change the header text (title bar text) away from 'A site about ocPortal-?'?
In order to change the ocPortal header text that is shown in page titles, you must choose to edit zones from the Admin Zone. This is because header text is defined on a per-zone basis, rather than globally. To change the text regular visitors see, edit the Welcome and Site Zones.

My custom HTML is corrupted
ocPortal tries to turn XHTML from the WYSIWYG editor into Comcode, to keep things neat/consistent/tidy. This can cause some problems if you're trying to write custom HTML. For those without privileges it also applies some security restrictions like stripping scripting.

There are a couple of different things you can do:
  • Turn off the WYSIWYG editor.
  • There's also a config option called "Convert XHTML to Comcode" which you can disable.

Also, if there are specific things ocPortal is breaking, we can also look into it because it could be a bug.

Can I include PHP code in my templates?
This is not possible: we could have very easily allowed this, but it would mean that themes could essentially be distributed that delete files, for instance. Templates could still be abused, to steal password cookies, for example: but direct server attacks are less likely.
Instead, use our tempcode language, which provides all the power you should need: and if you need more power, you should be working with source code in conjunction with the templates.

Can new items be added to the point-store?
At this time, they can only be added via custom programming new point-store 'hooks'.

What are catalogues?
Catalogues holds structured records of data. The system is extremely powerful, as the staff can create new catalogues with any structure of their choosing. The default FAQ page on an ocPortal install is a catalogue.

What is CEDI?
CEDI is our equivalent to a WIKI: a community-built ad-hoc database.

Why are Comcode pages stored as files?
This is because a number of them need to be provided by default, so that they may easily be created and edited in a text editor, and so that they may easily be transferred between portals.

How do I open my site?
This is available in the configuration. Please read our 'Basic Configuration' tutorial.

I turned on short URLs, but they won't work, and now ocPortal links are all broken. How do I fix it?
Use the config_editor.php script to force short URLs to be off.

How do I move to another server?
Please check the documentation – we have a tutorial about moving sites.

Why won't WYSIWYG work on Safari?
Unfortunately Safari currently does not (or has not had until recently) adequate functionality to support this. The WYSIWYG editor is third-party software integrated with ocPortal, and we are dependant both on what web browsers that software supports, and by extension the limitations of different web browsers. WYSIWYG functionality works using non-standard features of web browsers.

Why don't non-validated posts show up in the staff checklist?
This is an intentional design decision, to make sure the tally only took into account website resources, and wasn't always 'spammed to the point of meaninglessness' by an ongoing stream of forum posts. However, we have since learnt that some users prefer the tally to be more transparent, and thus we have made an unofficial method to set this. Please see the 'hidden functionality' section of our Code Book (available from our Documentation section):

Can I include a YouTube video / something else from another website?
The website you are getting content from will likely provide an HTML snippet. See the FAQ answer to 'Can I include HTML?' for instructions on using such snippets.

Why do I get an error about a missing comment topic forum when I try to use comment topics?
You may have renamed the default OCF comment forum, or you may have changed the name used for it in the configuration. These need to match up.

Why is mail not getting sent from the server?
This can be very difficult to debug, but is unlikely to be the fault of ocPortal. One possibility is if your server is on a spam blacklist. Another is that the outgoing email server you are using is clogged or broken. Another possibility is that your website name could look like spam, or your server is not on an SPF list for the website email address. If you are using the inbuilt SMTP sending functionality (if you filled it in in the configuration), please be aware that it is best to not use this unless the inbuilt PHP functionality (which is auto-configured by the web host) is not working.

How can I show different content to different usergroups?
Permissions are usually the tool to use to customise things for different users, but sometimes the actual message is what you need to customise rather than just limiting access. In this case, use the Comcode if_in_group tag in your Comcode pages to deliver targetted portions of Comcode to limited sets of usergroups.

How do I show random content in a box in the front page?
Place the main_content block on the page with the right parameters. Here is an example to pick a random download: [block="download"]main_content[/block].
To get a full list of valid content-types, look to see what filenames exist in the sources/hooks/systems/awards directory.
The main_content block is actually very flexible, and can also show specific content items of your choice, or randomise from sets.

Various blocks require ID codes for what content to include. Where do I find these?
Look at the URL you see in the web browser address bar when you view content. It'll include the ID (usually a number) near the end. If the ID is not a number, it will have been manually chosen.

PHP files need to end with "?>" but none of ocPortal's do
This is a common misunderstanding. It is actually the documented PHP best practice (as described in the PHP manual) to leave off "?>" from the end of PHP files. Some text editors (especially online ones) insert white-space at the end of files, and if that happens after "?>" then it can cause operational problems relating to HTTP headers and cookies.


Where do I get new themes?
The default theme can be modified to have a colour scheme of your choice, and can also be manually customised in any way. At this point not many third party themes have been released, but we are seeking for this to change, and willing to provide free registrations for those that release high quality custom themes. Our long-term goal with themes is to make theme editing as easy as possible, and we seek progressive ideas as to what improvements we could make to further this goal.

How do I change (some aspect of ocPortal's appearance)?
ocPortal is displayed to web browser's using standard web technologies wherever possible, employing best practices. The appearance is fully configurable and defined using a combination of XHTML (in templates), CSS, and images. Sometimes these technologies can be complex to edit and require a good technical understanding, and this is unfortunately unavoidable; an analogy, is that writing or painting also require practice. Unfortunately for economic reasons ocProducts is not able to step through specific changes for free. It is often worth asking on the forum in case other user's can help.

I've edited template/CSS and my changes won't show?
These files are evaluated and cached by ocPortal, so changes will only show if either the cache is disabled, or the cache is emptied. A quick way to empty the cache is to hold down ctrl+alt+shift and click refresh in the web browser (you need to be logged in as staff). Alternative ways to empty the cache including using the cleanup tools in the Admin Zone, or to manually delete cache files from the filesystem.

How do I know which template to edit?
Use the 'template tree' feature available from the drop-down list in your personal stats block. It'll show the template structure for the screen you're viewing. If the personal stats block is not available, add &special_page_type=tree to the URL.
Another technique is to add &keep_markers=1 to the end of the URL. This renders the current screen with comments in there marking the start and end of templates. You can then save the page, and edit this using a WYSIWYG HTML/CSS editor. Integration could be aided using a diff tool such as 'Winmerge' – comparing the original file to the new file, and using the template comments to identify in what ocPortal template to perform the identified change.

Can you provide any advice on editing CSS?
We would definitely advise using the Firefox web browser with the 'Web developers toolbar' extension (or the 'Firebug' extension). This extension provides advanced functionality to test CSS changes 'live' on the screen you're currently viewing. Once you've determined what works, you can then put these changes into ocPortal's CSS using the ocPortal CSS editing interface. There are now also addons for other web browsers that provide similar functionality, but Firefox generally provides a better development environment overall and has a lot of other useful extensions.

How do I change the logo?
Hold down ctrl+alt+shift and click it. You'll then be able to upload a replacement images. Please be aware that CSS changes will likely also be required, if the spacings around the logo need to be adjusted. See:
ocPortal - View topic: Some very basic questions-- logo and background color

A template is used in two aspects of the system, but I need it to work differently in each?
Please read about the GUID feature in our tempcode tutorial.

Can I put PHP in templates?
This is not supported for security and architectural reasons. Instead, you can create a miniblock, and then place that miniblock into a template using the BLOCK symbol.

Is there a CSS map?
No, there is too much CSS to feasibly make a map as is often used for forum software. Instead, we would recommend using the Firefox 'Firebug' extension to identify what CSS is used where.

How can I change how times are displayed?
You can either change the settings for the whole of ocPortal by changing key strings in the global language file, or you can make specific changes for individual templates. To make changes for individual templates, use the FROM_TIMESTAMP symbol on the RAW_ prefixed equivalent that usually exists to the default date/time parameter to the template. For example, {$FROM_TIMESTAMP*,%d %y,{RAW_DATE}}. For documentation about the syntax, please see the PHP manual:
PHP: strftime - Manual

How do I edit the header/footer?
The actual XHTML header is in HEADER.tpl.
The actual XHTML footer is in FOOTER.tpl.
GLOBAL.tpl holds the panels, and main screen together.

How do I edit ocPortal in an HTML editor?
It is not possible to do this, as ocPortal screens are constructed by an amalgamation of many template files. It is possible, however, to construct HTML pages, using an HTML editor. HTML pages can be placed into ocPortal zones much like a Comcode page can: however, we would advise you use Comcode pages instead.

How can I include flash?
You may use regular HTML via the 'html' Comcode tag, or you may use our 'flash' Comcode tag.

Can I include HTML?
Yes, using the 'html' Comcode tag.

If you have the WYSIWYG editor enabled:
Put [html] and [/html] into your Comcode, then put the HTML you desire inbetween. If you want to mix HTML and Comcode more freely, use the semihtml Comcode tag instead of the aforementioned html Comcode tag.

If you don't have the WYSIWYG editor enabled:
There is a button on the editor's toolbar to toggle HTML source viewing mode. When inside the HTML source viewing mode you can paste in your HTML directly.

How can I add a block / How can I change how a block looks / How can I add a box?
There is often confusion about the difference between a block and a box. A block is an embeddable dynamic unit, and whilst most blocks are rendered in boxes, this is not necessarily the case. It also certainly isn't the case that all boxes are around blocks. Boxes can be placed around anything, and are used in many places.
The box type a block uses is changeable by editing the template of that block; this is often useful if you want to place a main block on a panel where a side block would usually go.
If you want to make your own box in Comcode, just use the 'box' Comcode tag around some existing Comcode.
If you want to place a block, use the 'Add block' button you see whilst editing Comcode pages.

Do you have another question?
Please first check the documentation, and if there is no obvious answer, post your question on our public forums so anyone can answer.