Composr/ocProducts FAQ

Written by Chris Graham (ocProducts)
This page will answer frequently asked questions (FAQs) about Composr and ocProducts, including:
  • Basic background information
  • Solutions to common problems
  • Succinct answers to common requests

Table of contents

  1. Composr/ocProducts FAQ
    1. About Composr
      1. What is Composr?
      2. What is ocPortal?
      3. Why not just hire a programmer to create something from scratch?
      4. What features set Composr apart from other systems?
      5. How secure is Composr?
      6. Is Composr standards-compliant?
      7. Is Composr available in (some language)?
      8. What's with your funky domain name?
    2. Licensing and costs
      1. How much does Composr cost?
      2. How does it create value when software is given away for free, specifically?
      3. Any down-sides of free software?
      4. Why should I favour Open Source?
      5. How much does a website cost?
      6. Can I make something without a budget?
    3. About ocProducts / Services
      1. Who are ocProducts?
      2. Can you write us a system that supports <insert-blank> specifications?
      3. Is ocProducts available to perform some custom work for me?
      4. Why is your spelling so terrible?
      5. How can I make a donation?
      6. How is ocProducts funded / what is your company philosophy?
    4. Installation issues
      1. Why won't Composr work on my server, even though it meets the minimum requirements?
    5. Compatibility
      1. What are the host requirements for Composr?
      2. Do you recommend Windows or Linux servers?
      3. Does Composr support (some forum vendor and version)?
      4. Can you import this particular product?
    6. Common problems
      1. My new install seems slow?
      2. Why do my backups not work?
      3. How do I get more than <just a few megabytes> of upload support?
      4. Why do I get blank pages? OR, Why do I get errors saying the script has run out of memory?
        1. Memory
        2. Corrupt PHP files
        3. Other causes
      5. Why do I get an Internal Server Error or '500' error?
        1. ModSecurity
        2. File permissions
        3. .htaccess problems
        4. Other causes
      6. I've renamed recommended.htaccess to .htaccess, but why Composr won't load anymore (Internal Serv…
      7. Why does recommended.htaccess not work?
      8. How do I set PHP settings on a CGI server?
      9. Composr has gone very slow after changing the configuration / will not save configuration changes…
      10. I have (or have had) multiple installs and I keep getting logged out
      11. Why does the language pack I installed mess up the layout?
    7. E-mail problems
      1. Why are e-mails sent by users shown as 'from' the website?
      2. Why is e-mail not getting sent from the server?
      3. Why do large uploads fail on IIS?
    8. Common usage queries
      1. What are catalogues?
      2. How do I prevent users from modifying CMS content?
      3. I broke my panel layout. How do I restore it?
      4. How do I open my site?
      5. I turned on a URL Scheme, but they won't work, and now Composr links are all broken. How do I fix…
      6. How do I move to another server?
      7. Why don't non-validated posts show up in the staff checklist?
      8. Why do I get an error about a missing comment topic forum when I try to use comment topics?
      9. How can I show different content to different usergroups?
      10. I turned off WYSIWYG for a page, and now I can't get it back on, how do I?
      11. Various blocks require ID codes for what content to include. Where do I find these?
      12. How can I automatically install hotfixes?
      13. Can I get early access to new features?
    9. Programming philosophy and goals
      1. Will you implement (some feature)?
      2. Will you implement per-user permissions?
      3. Will you implement a point-bank/games-arcade/auctions?
      4. Why are Comcode pages stored as files?
      5. PHP files need to end with "?>" but none of Composr's do
      6. Why isn't all the code Object Orientated?
    10. Themes/Appearance
      1. How do I change (some aspect of Composr's appearance)?
      2. How do I know which template to edit?
      3. How do I change the logo?
      4. A template is used in two aspects of the system, but I need it to work differently in each?
      5. Is there a CSS map?
      6. How can I change how times are displayed?
      7. How do I edit the HTML head and/or the opening and closing HTML body tags?
      8. How do I edit Composr in an HTML editor?
      9. Can I include HTML?
      10. Why are em units used rather than pt units?
      11. How can I add a block / How can I change how a block looks / How can I add a box?
    11. Forum integration (third-party forums)
      1. Can I embed my third-party forum between the CMS menus?
      2. Can I share login between the CMS and my forum if I am using a forum driver?
      3. Why does my cookie integration not work?
      4. How do I change the forum base-URL (because my forum links and emoticons are broken)?
      5. Why do I not have commenting boxes on my CMS?
      6. How do I use my forum skin for a Composr theme?
      7. Can I switch to Conversr from my existing forum?
      8. Do you have another question?

About Composr

What is Composr?

Composr 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. Composr is unique by the combination of a vast and diverse range of provided functionality, out-of-the-box usability, and an ability for almost unlimited customisation. Feature areas include Content, Community, Corporate (Enterprise), Collaboration and Commerce.

What is ocPortal?

Composr was called ocPortal for the first 11 years of its existence. You'll still find the name ocPortal popping up in various places.

Why not just hire a programmer to create something from scratch?

A third party (ohloh) has estimated that it would cost millions of dollars to replicate Composr's features, which are vast but also in many ways fundamental to building a serious modern website. Composr is designed to work as a set of components (building blocks), and you can build almost any kind of advanced site on these components, dramatically reducing time-to-market. Of course you may need custom programming to get things exactly as you need them, but it's a lot less time and money than starting fresh.

What features set Composr apart from other systems?

Composr 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.
  • powerful social networking capabilities.
  • enterprise functionality for integrating third-party systems.

To read more about Composr's extensive features, see our Features page. To read more about our USPs see our Why we're different page and our Web-applications, Composr, and PHP tutorial.

More importantly, however, is how we integrate functionality. If you look at other CMSs you may be surprised how difficult simple things can be. For example, take any popular CMS, and look to see how you would implement gallery functionality with support for discussing videos on an integrated forum – you are likely to find there is no way to do it without programming.

How secure is Composr?

No honest and competent company can guarantee their web application to be completely secure. To make Composr 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 Composr 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' Composr beyond the high level of security provided by default

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

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

Is Composr standards-compliant?

We have gone to great lengths to make our code compliant with all major standards, and present well in popular modern browsers. Composr even includes an inbuilt webstandards checker that ensures compliance with these standards, as well as identifies common mistakes and browser incompatibilities.

Supported standards include true XHTML5 support, valid hack-free CSS and the highest WAI accessibility standard (level 3) – very few, if any, competing systems can claim this.

As web standards are evolving and we often need to make use of ones that are not yet finalised, sometimes checker tools may produce some warnings. This is normal for any modern website, as things are moving ahead so fast.

Is Composr available in (some language)?

The developers do not officially get involved in the translation of Composr. Please check the Internationalisation forum for more information on specific languages and if you would like to get involved with translation (please do!). We provide an Internationalisation tutorial, and tools, to translate Composr, and Composr has excellent internationalisation support.

What's with your funky domain name?

We like that compo.sr is short and catch, and we don't own any of the obvious .com variants. If you prefer you can access the site via composr.org.

Licensing and costs

How much does Composr cost?

Composr is completely free under an OSI-approved Open Source licence (the 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, we don't want to box people in from a design and marketing perspective either.

The team has always been very fanatical about Open Source. There are 2 big reasons:
  1. Given that software can be easily copied and therefore the value of Composr can be distributed across the world effortlessly, we think we have a social responsibility to take advantage of this and therefore structure our business in a way that can work with it. Software has such great potential to empower individuals from all walks of life, so we believe wherever possible companies shouldn't put the brakes on it by restricting the way things can be used via economic levies.
  2. We feel it is important that customers have full access to the code of what they pay for, so they aren't locked into a single company whose circumstances, availability, offerings, and pricings, could change drastically over time.

We have structured our business so that ocProducts makes money from commercial projects, support, and implementing new functionality. We also encourage people outside our company to contribute to Composr, as a community project. Code is hosted on GitLab, commit access is available by request (after showing some skill and sincerity, e.g. by releasing a public addon). Coding standards are defined in a spreadsheet. The founders of ocProducts Ltd originally created Composr – we do our best to make our company a great sponsor to the community project.

Note that "reducing cost" should not be considered a primary benefit of Open Source. Cost often will be lower with Open Source, but people do expect to be paid competitively for their work.

How does it create value when software is given away for free, specifically?

The developers feel it is important that all organisations are able to benefit from our technology, including organisations such as small social enterprises that may not be able to pay, or web service providers who may build innovative services on top of our infrastructure. Innovation often happens on the fringes, where companies don't necessarily have any budgets, and we consider it the ethical thing to promote this, and allow people to stand on the shoulders of giants (which we have done ourselves, via use of PHP, and Linux).

Things like Cloud Computing could not exist without the Open Source foundations that allow software to be leveraged without constant onerous contractual negotiations and unfeasibly high costs.

Any down-sides of free software?

We can't provide any guarantee of free support, development, or advice of course, because it takes salaried staff to do so on an individual basis, and it is therefore via these kinds of charged services that we keep our project going. Users who can't afford support will need to support each other, or bring their own professional development skills to the table to do so. This said, commercial software doesn't have truly free support either, obviously.

Why should I favour Open Source?

Let's assume for a minute that you have a budget, and commercial software is an option to you. It's important for us to be up-front and clear that Open Source isn't really there to save you money. It is there to save your bacon.

(Regardless of commercial or Open Source, you'll be paying for new features you need, and general support services.)

What if a commercial vendor goes out of business?
What if a commercial vendor is bought out by a competitor, and the product discontinued?
What if the commercial vendor doesn't treat your relationship seriously, but you are locked in so can't switch to a third-party?
What if you want to have an in-house team make changes to the product?
What if a commercial vendor has put in hidden backdoors for themselves or for governments?

There are huge risks with commercial and/or closed-source solutions, and these risks are often far more serious than solution pricing. The risks of closed software could easily be the difference between a project succeeding and a project failing before launch, or a project having to be restarted every couple of years.

How much does a website cost?

This is a bit like asking how much a home costs. You could live in a tent, an apartment, a house, or a mansion. At the very bottom end, you'll find people can put together something in a few hours, but it'll be very poorly designed, generic, and simple. At the high end, you'll get large web companies investing millions of dollars in development each year.

To start a new successful 'web property' (i.e. something for a medium-to-large business), you'll probably want a highly-experienced/qualified team working with a range of skills over a scale of months or years (at least one designer, copywriter, developer, SEO, marketer, PR agent, and user testers); some of these roles can be shared, and some take less time than others. Usually it will be in the range of $10,000-$200,000, with post-launch maintenance costs of $500-$5000 per month. We go into a lot of detail in our Project pricing tutorial.

Can I make something without a budget?

Absolutely. We encourage people to use our software, setting stuff up on their own. You can make quite sophisticated sites for free so long as you don't require a clean-room design or new functionality. If you are, or have, a programmer, you don't need to solicit the help of any core developers or staff from ocProducts even for significant new functionality.

If you're operating as a hobby and have lots of free time to help others too, you'll have a lot of mileage in getting others to help you back. That is one of the beauties of Open Source communities.

However, you need to be very aware that to make a website that is seriously commercially successful, in the modern world, you'll usually need to invest professionally and financially in order to have a chance of competing. You'll often get ignored if you try and get free support and advice from professionals, as they need to get paid for their professional time, and they are always on hectic projects and need to recoup the high costs associated with their initial and ongoing training – you may be able to get help via the community, but to keep getting good answers you need to build up respect/reputation, which requires that on average every user gives more time into helping others than they take out themselves – so you should never consider it a totally free lunch.

As a very rough guide, expect 10% of your needs to require bespoke programming by a skilled developer(s), or higher if you're making a new kind of web application. This is on top of the costs of setting up the system just how you need it, and of design. Also bear in mind that every power user tends to think what they are doing is simpler than it is, so plan things out carefully in advance.

About ocProducts / Services

Who are ocProducts?



ocProducts is a business, founded by a group of people fanatic about enabling people to have great websites, for a lower investment than is typical in the web development industry today. We started Composr (originally named ocPortal) before even considering making a business of it – we're really passionate about it, and we always have been. To the founders, the ocProducts business is a tool that allows us to keep doing it full time, now that we're older and have to keep money coming in.

ocProducts maintains the Composr website and are sponsors of the project and community (the community being wider than any one organisation).

ocProducts has a tendency towards innovative, open, and collaborative practices, including around how business is conducted. We try and make ourselves approachable, rather than filtering all contact, handing out robo-responses, funneling and segmenting everybody, and residing in an ivory tower.

Can you write us a system that supports <insert-blank> specifications?

We almost always can (via paid services). Please contact us with details.

Is ocProducts available to perform some custom work for me?

Depending on availability, and budget, yes. Contact us and we will provide guidance, and likely either put you in touch with a local developer, or work towards providing a quote for ocProducts to perform the work.

Why is your spelling so terrible?

Composr is a British (in fact, English) company, so spelling is in British English. We do have a configuration option so that Composr CMS will generally display using US English.

How can I make a donation?

As we're a company we don't really accept direct donations, but you can:
  1. sponsor features on the tracker
  2. support the lead developer Chris Graham as an individual on Patreon (or other individual Composr CMS developers for that matter)

How is ocProducts funded / what is your company philosophy?

We cover most of our costs through work we do for our clients, and feature sponsorships.
Unlike many other CMS companies, we are financially independent – we haven't taken outside venture capital, which means we are able to operate our ecosystem to our own founding ideals.

We aren't a non-profit organisation like many CMSs have behind them, because we feel it's important to have an entity that can provide strong product leadership and direct resources efficiently. By being capitalist we have the right mindset to make sure that resources are allocated in a way that derives measurable value, and allows us to turn a profit to reinvest, as opposed to spreading resources around according to the specialist interests of those on a committee. Our belief is that forced committee decisions don't result in good product design and generally weigh/slow things down with bureaucracy and management cost, and general noise and chaos. We also believe that relying on unpaid volunteers would result in an unbalanced product.

So there you have it – we are a small passionate organisation, led by the Composr founders, that ensures Composr is financially sustainable, but also free from big-money interests and short-term profitability burdens.
And, if the company turns evil or otherwise fails to manage the project effectively, Composr is Open Source so someone can fork it!

Installation issues

Why won't Composr work on my server, even though it meets the minimum requirements?

Composr is extremely compatible with different server configurations, tuned to work with many different problematic servers over a decade, and developed with automatic compatibility detection software. Unfortunately some webhosts 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 webhosts 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.

Compatibility

What are the host requirements for Composr?

Read about Composr's minimum requirements in our Webhosting requirements tutorial. Composr is designed to run well on almost all webhosts.

We don't have a recommended host at this time.

Do you recommend Windows or Linux servers?

We feel Linux is more suited for PHP purposes than Windows. Composr will work fine on Windows, however setting file permissions remotely can be very tricky and non-standard between different Windows servers. So: Linux by default, but Windows if you already have a Windows architecture.

Does Composr support (some forum vendor and version)?

Compatible forum software is listed in the Webhosting requirements tutorial, and any issues are listed in the Nuances of forum integration tutorial.

Can you import this particular product?

Our importers are listed to the left of our download page.
If your software is not supported and you want to send us a database dump it might help us if we decide to support in the future; it might not happen, but it helps us to have these databases on hand should we decide to at some point.
Alternatively it may be possible to import by first converting to some other software that we do have an importer from. You'd need to identify a software product we can import and which also can itself import what you currently have.
Finally, we could give you a quote to have an importer developed.

Common problems

My new install seems slow?

A new install will be slow at first, while templates/CSS/JavaScript/blocks compile. It should be fast the second time you come back to something. If things are slow and:
  1. you're not on ridiculously cheap hosting
  2. you haven't turned on a large number of blocks to display at once (compared to the amount of functionality comparable sites may show)
  3. you haven't disabled the caches
…you can report performance issues as bugs.

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 Composr error log. We recommend you do backups at the server-level though, not the Composr level.

How do I get more than <just a few megabytes> of upload support?

PHP defines its own upload limits, which Composr 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.

By the way, make sure you define MB units like '50M', not '50MB'. 'MB' is not a recognised unit by PHP.

Please note that it is not advisable to try and upload more than around 200MB, regardless 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.
Composr provides ways to reference files uploaded via other means (e.g. FTP):
  • the Comcode media tag can reference files by URL
  • 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?

There are a number of likely possible causes.

Memory

Composr is designed to run on a PHP memory limit of 32MB or higher; very old PHP configurations come with an 16MB limit, but the majority of webhosts have it raised to a more reasonable level: take into account that every Composr interface, even the installer which unpacks a large archive, is being asked to run within a tiny 16MB, 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.

Also note that some webhosts have PHP installations that report memory limits that are higher than they actually are. If you see an error like:
PHP[1] Out of memory (allocated 6815744) (tried to allocate 311296 bytes)
then this is telling you PHP actually has a memory limit of approximately 6815744+311296 bytes (about 7MB).

It may be possible to get Composr to raise the memory limit for you. Our default recommended.htaccess file does this – try renaming it to .htaccess to activate it. If you get the problem during the quick installer and thus don't have this file yet, you can find it in the manual installer package.
If renaming the recommended.htaccess file results in "Internal Server Error" error messages, see the "I've renamed recommended.htaccess to .htaccess, but why Composr won't load anymore" answer below.
If you are not successful in raising the memory limit you will need to contact the webhost to ask them to do it, as on some hosts the limit is locked down at a server level.

Corrupt PHP files

It could be a problem with a corrupt PHP file. You can use the 'Integrity checker' option within the upgrader to find a list of all corrupt files. You can access the upgrader by calling up the http://yourwebsite/upgrader.php URL on your site.
Alternatively append &keep_show_parse_errors=1 to the URL (or ?keep_show_parse_errors=1 if the URL you are adding to it doesn't have any parameters on yet). This will allow you to identify the offending PHP file.

Once you have identified which files are corrupt you need to re-upload them. Download the manual installer from the Composr website that corresponds to your version, and then upload the files using an FTP client (or by some other means if you prefer).

Other causes

Check your web server's raw logs, or contact your webhost.

Why do I get an Internal Server Error or '500' error?

ModSecurity

If you specifically get it when saving the site configuration, using the WYSIWYG editor, or editing templates then your server likely has an extension called ModSecurity enabled.

File permissions

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.
You may also need to remove 'execute' access, or in some rare cases add it.
If in doubt, look at the permissions of a working PHP script, and copy them.

If you have being using root access to add files on the server, you may need to change the file ownership and file group to that of the account user.

Also see the answer to "I've renamed recommended.htaccess to .htaccess, but why Composr won't load anymore (Internal Server Error or '500' error)?" if this has just start after editing the .htaccess file or switching webhosts.

.htaccess problems

Please keep reading on for this specific case.

Other causes

Otherwise, you may need to look at your raw web server logs, or contact your webhost. Often the true cause of internal errors are written into the web server error log.

I've renamed recommended.htaccess to .htaccess, but why Composr 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" errors 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:
  1. .htaccess has been disabled on the server (you'll need to consult your webhost)
  2. 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)
  3. 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 webhosting 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 webhost 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).

Code (INI)

; Composr needs uploads; many hosts leave these low
post_max_size=500M
upload_max_filesize=500M

; Turn insecure things off

allow_url_fopen=off
register_globals=off

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

memory_limit=128M
max_input_time=60
max_input_vars=2000

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

safe_mode=off

; This causes unstability (and is known/documented to) but some hosts turn it on

mbstring.func_overload=0
mail.add_x_header=off

; Suhosin can cause problems on configuration and Catalogue forms, which use a lot of fields

suhosin.post.max_vars=2000
suhosin.request.max_vars=2000
suhosin.cookie.max_vars=400
suhosin.cookie.max_name_length=150
suhosin.cookie.encrypt=off
suhosin.post.max_value_length=100000000
suhosin.request.max_value_length=100000000
suhosin.post.max_totalname_length=10000
suhosin.request.max_totalname_length=10000
suhosin.cookie.encrypt=off
suhosin.sql.union=off
suhosin.sql.comment=off
suhosin.sql.multiselect=off
suhosin.upload.remove_binary=off


; Sandbox Composr to its own directory

; open_basedir=/tmp:/home/blah/public_html/composr/             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, data, data_custom, forum and site directories.

Composr has gone very slow after changing the configuration / will not save configuration changes / catalogue adding or editing will not work?

It is likely you have suhosin on the server and it is limiting the number of fields that forms may use.
Composr's sample .htaccess and php.ini files contain a remedy for this.

I have (or have had) multiple installs and I keep getting logged out

You need to edit the base configuration (_config.php) to make sure the cookie settings of the sites don't overlap. Generally you'd use the Composr cookie_path setting to do this. For example, if you have a site http://example.com/foobar, you might set $SITE_INFO['cookie_path'] = '/foobar';.
Additionally, if you have changed your configuration (before, or just now) then any existing cookies need to be manually deleted as they can stick around and take priority over new ones. This is because web browsers can store multiple cookies of the same name if those cookies are varying in domain and path – and your site will be exposed to cookies of matching domains or paths via a precedence system.

You can confirm the problem is due to conflicting cookies by testing your login using a new incognito/private window in your browser. This will start up a temporary fresh cookie state so that you can be sure of no conflicts. If everything works fine in there then you know the problem is indeed a cookie conflict (cookie under a different path/domain combination that is set in your web browser).
Modern web browsers allow you to inspect and erase individual cookies via the developer tools (in Firefox it's under the developer tools Storage tab, then Cookies subsection). If you find this challenging then you can also erase all cookies from all sites if you don't mind logging back into all your other websites manually.

If the problem isn't due to a cookie conflict, check the cookies really are saving by using the same developer tools in your browser mentioned above. They'll only save if you have your cookie settings correct in _config.php and aren't somehow blocking cookies due to some kind of special browser configuration. It is also conceivable various other things could interfere with cookies.

Why does the language pack I installed mess up the layout?

Often people will accidentally translate these language strings:
  • left
  • right
These are there to control CSS settings, for the potential of supporting right-to-left languages. Valid values for each are left or right (you flip them for a right-to-left language pack). They should never be literally translated.
If someone has mucked up the translation on Transifex you'll need to correct it yourself.

E-mail problems

Why are e-mails sent by users shown as 'from' the website?

When you click reply it should show the e-mail 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 e-mail services blocking the e-mail as spam. Basically it's because if your server sends mail from someone whose e-mail account is not on your server, it looks suspicious.

Why is e-mail not getting sent from the server?

This can be very difficult to debug, but is unlikely to be the fault of Composr. One possibility is if your server is on a spam blacklist. Another is that the outgoing e-mail 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 e-mail 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 webhost) is not working.

Why do large uploads fail on IIS?

If you are using PHP as FastCGI check out these settings…
IIS Manage > Host Computer > FastCGI Settings > php-cgi.exe > Edit > Activity Timeout
IIS Manage > Host Computer > FastCGI Settings > php-cgi.exe > Edit > Request Timeout
IIS Manage > Host Computer > FastCGI Settings > php-cgi.exe>  Edit > Idle Timeout

Common usage queries

What are catalogues?

Catalogues hold 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 a Composr install is a catalogue.

How do I prevent users from modifying CMS content?

Often webmasters are surprised that by default users allowed into the CMS zone. This is because the default privileges allow submission of content, but subject to validation – a good feature on community sites. To deny access to the whole CMS zone use the Permissions tree editor (under Admin Zone > Security).

I broke my panel layout. How do I restore it?

Panels are just Comcode pages. Whenever you save a change, a revision is saved. However, the Zone editor doesn't have any user interface for restoring past revisions, so you'll need to do this via editing the individual Comcode page. From the admin menus find Content > Pages (Comcode pages), then select the panel page to edit. You will see revision restore functionality at the bottom.

How do I open my site?

This is available in the configuration. Please read our 'Basic Configuration' tutorial.

I turned on a URL Scheme, but they won't work, and now Composr links are all broken. How do I fix it?

Use the http://yourbaseurl/config_editor.php script to force URL Schemes to be off.

How do I move to another server?

Please check the documentation – we have a tutorial about moving sites.

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.

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 Conversr comment forum, or you may have changed the name used for it in the configuration. These need to match up.

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 targeted portions of Comcode to limited sets of usergroups.

I turned off WYSIWYG for a page, and now I can't get it back on, how do I?

In order to stop other potential authors accidentally corrupting the hand-crafted page while using WYSIWYG, WYSIWYG will have been locked off for the page when you originally disabled it.
Simply remove {$,page hint: no_wysiwyg} from the bottom of the page's Comcode (it will have been added there automatically), re-save, then go back in to edit.

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 have clicked through to edit that piece of 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 by you (e.g. gallery names are manually chosen).

How can I automatically install hotfixes?

Hotfixes are not supposed to be installed unless you really need them.

Some rough figures:
We perhaps change 200 things with each patch release, and perhaps make 30 hotfixes, and expect individual users may need to install perhaps 2 of those hotfixes.

On the tracker issues it says "These hotfixes are not necessarily reliable or well supported", which is the truth. We don't necessarily spend more than 2 minutes testing out a hotfix. We don't go testing out how different combinations of them might interact. We don't know how they might interact with different combinations of addons people may have installed. We don't run through our test suite. And, we don't particularly want to be trying to debug issues for non-versioned versions of Composr. They are just there as a band-aid for people with immediate issues.

So, please don't go installing all of them, it'll hurt you more than it will help you, and it's not expected. Just install a hotfix if you are being affected by a specific issue and keep up with the official patch releases.

Can I get early access to new features?

Nothing should be considered usable in production until at least beta of the version it is set to arrive in. Before then things are typically developed in feature branches (which have no specific version as they're off-track); compatibility is likely to be broken dozens of times before final release – e.g. database structure, CSS structure, file names, etc. This is because the various in-development features often overlap, or late unexpected changes happen. Those compatibility breaks wouldn't be supported or documented in any way, so anyone using it early would be on their own unfortunately. There's no way for us to bridge this stuff for a large product like Composr outside of official releases, there are too many permutations of compatibility states.

Programmers can break that rule if they're going to take individual responsibility for the non-final code and manually keep it updated/upgraded with whatever changes will happen until its final release within an official version. That's a legitimate approach but it's expert work, whoever is doing it needs a strong understanding of how the code works.

So, by all means try it out to do an early test run and report any feedback (much appreciated), just please don't expect the test site to turn into a real site when the next major version hits beta, expect it to at some point become terminally incompatible with the mainline releases.

I hope that clears things up. People are eager to be early-adopters, but there's some limitation to that.

Programming philosophy and goals

Will you implement (some feature)?

The developers are very open to new ideas and we are very fortunate in that we regularly get new ideas directly from our users. Ideas are organised in public view on our feature tracker. We regret that there are a variety of unavoidable reasons that prevent us from confirming acceptance of suggestions or providing a public road-map:
  • we need to integrate any changes into our long-term development roadmap, but this is always changing as the Internet (and economy) evolves very rapidly and priorities shift, and new ideas often make old ideas irrelevant
  • we need for us to design a clean product suitable for our wider user-base, which makes decisions on features almost impossible to do in advance because it requires multiple levels of design before we can be completely clear on how things might work, and how well they would in relation to other plans and wider goals
Users who need a new feature should bear in mind that Composr is Open Source and thus third-parties may advance development, or we support feature sponsorship on our tracker. We therefore try to explain that Composr as it stands today is a solid reliable product, but if you require enhancements then you should take responsibility to budget or plan for this in terms of sponsoring or contributing (this is part of the spirit of Open Source – it is free, but it requires community investment to move forward).

Will you implement per-user permissions?

For reasons of simplicity we have opted to only provide per-usergroup permissions. Composr 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.

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 Composr 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.

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 CMSs.

PHP files need to end with "?>" but none of Composr'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.

Why isn't all the code Object Orientated?

We do use a lot of OOP in Composr, but a lot of the general library code is not in classes. Some programmers will strongly disagree with this way of coding, but it is done for performance reasons and productivity reasons. For a number of reasons, heavy use of OOP adds performance costs to a dynamic language like PHP (code parse time, memory usage, and execution time). Software like the Linux kernel or Wordpress don't use much OOP at all, and are wildly successful. We go into more detail about the reasonings behind these conscious engineering decisions in the Code Book.

Themes/Appearance

How do I change (some aspect of Composr's appearance)?

Composr 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 XHTML5 (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. It is often worth asking on the forum in case other user's can help. We definitely recommend learning HTML and CSS if you're not just making a quick and simple website.

How do I know which template to edit?

Use the 'template tree' feature available from the drop-down list in the footer. It'll show the template structure for the screen you're viewing. If the default footer is not available in your theme, add &special_page_type=tree to the URL.

How do I change the logo?

Hold the mouse over it for a few seconds and an edit button will appear.

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 programming tutorial.

Can I put PHP in templates?
This is not supported for security and architectural reasons. 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, you can create a mini-block, and then place that mini-block 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 your web browser's developer tools to identify what CSS is used where.

How can I change how times are displayed?

To change the settings for the whole of Composr you change some key strings in the global language file. For documentation about the syntax, please see the PHP manual:
PHP: strftime - Manual

How do I edit the HTML head and/or the opening and closing HTML body tags?

It is all in the GLOBAL_HTML_WRAP.tpl template.

How do I edit Composr in an HTML editor?

It is not possible to do this, as Composr 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 Composr zones much like a Comcode page can: however, we would advise you use Comcode pages instead.

Can I include HTML?

Yes, using the html Comcode tag.

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

If you 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.

Why are em units used rather than pt units?

em are relatively sized units. So '1em' does nothing, while '2em' would double the font size.
This is done for purposes of accessibility: all sizing in Composr is relative, so the text size can be scaled up properly without any fudges.
Also, as content is defined as layout agnostic, the content can be correctly proportioned while shown in different sizing contexts.
The WYSIWYG_SETTINGS.tpl template lists the font sizes in the WYSIWYG font size picker, so can be customised with pt units if this is desired.

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 while most blocks are displayed 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 while editing Comcode pages.

Forum integration (third-party forums)

Can I embed my third-party forum between the CMS menus?

Yes. You need to enable the 'Show forum within website' option from the Admin Zone (Admin Zone > Setup > Configuration > Site options, Advanced options group), and change the forum link on your menus to point to index.php?page=forums.

Can I share login between the CMS and my forum if I am using a forum driver?

Composr uses the forum for authentication, but users may have difficulty sharing cookies between the forum and the CMS.

It is recommended that you set the cookie names to be different between the CMS and forum, making them run on separate cookies. The disadvantage to this is only minor, while 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 under our paid professional support.

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 Admin Zone > Setup > Configuration > Installation Options. 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. Clearing the caches manually is only necessary when using the config editor, as it is separated from Composr for fail-safe reasons.

Why do I not have commenting boxes on my CMS?

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 a Composr 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 Conversr 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 _config.php file, but this is highly ill-advised because it will result in misassociated members and usergroups.


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.
If you need an answer from an ocProducts employee, we have a professional support service.

Feedback

Please rate this tutorial:

Have a suggestion? Report an issue on the tracker.