The Overture beta site you see now will eventually replace the main one. It's current still in development, but will eventually sport a variety of new features as explained below.

Account System Integration

The Symphony account system will be integrated to Overture. Members need not travel outside of Overture to manage their account.

Website Showcase

The website showcase's new design accommodates more websites displayed per page. We plan to offer filtering and sorting based on tags.


Packages exported using Symphony 2's "Export Archive" feature will have a similar showcase so developers can share sites which they have built. We plan to offer a PayPal donation system for these packages so that Symphony developers can earn some cash for their hard work.


We've found members of the current forum have been neglecting the use of categories. The new forum will have a more rigid posting system which will ensure members post to the correct category. Each category will have a slightly different posting format.

For example, the Installation Issues category will request the member to attach their installation log, a link to their phpinfo() and briefly describe the steps they took to install.

Documentation Section

This section will replace the Overture wiki. We have found the wiki to be less than ideal. Mark Lewis, our Overture moderator is hard at work writing documentation for Symphony 2. His document will be available as a PDF download on this page.

We've found 2 pages in the wiki to be very useful: Compatible Hosts and Tutorial and Screencasts. We are planning to implement a collaborative system for these pages.


Instead of having to go to the accounts page to submit a website, extension, application or an XSLT utility, the submission link is now context based. For example, the website submission page now has a link to submit a website.

Here are the direct links to Overture beta pages:

Symphony 2 brings a total rewrite to the core framework. As a result, the API for developers is more cohesive and powerful. This short article will highlight some of the key changes in Symphony 2.

1. Extensions

Extension are the replacement for Campfire Services. There is a paradigm shift to cater for the new direction Symphony is going, specifically open source. The API has been revamped to make creating and maintaining an Extension easier, whilst also giving you, the developer, more access to Symphony's core engine.

In 1.7, each CS was a distinct class, instantiated from outside the main Symphony engine scope. This meant lots of tricky pointers to objects and such. Well, extensions are now generate from right within the core and have direct access to everything that is already instantiated within it. For many of you, whom have not really spent a great deal in the 1.7 CS API, this will not mean a great deal, but know that the ground work laid out in 1.7 has paved the way to a much more comprehensive and intuitive API.

Some other nifty features include the ability to have complete control over where your links appear in the navigation, by way of overloaded helper functions, or directly manipulating the navigation data prior to rendering. Symphony 2 has more integrated error handling, logging and performance tracking giving you better debugging control.

1.1 Ajax

In Symphony 2 we have introduced a new system of delivering page content. This has enabled us to abstract core actions into distinct context sensitive classes. Specifically, creating AJAX interfaces for your JS is now as simple as extending a single class. Everything necessary is automatically instantiated for you, and everything unnecessary is left out. This kind of feature means as an Extension developer you can release JS only based Extensions easily, such as new toolbar widgets.

2. Data Sources

Symphony 2 brings with it a brand new DS editor and a greatly enchanted filtering system. Developers will be provided hooks into the DS editor to manipulate things like 'Included Elements', and DS's themselves will have complementary hooks to allow for custom DS logic without having to break compatibility with the DS editor.

An example would be email-hash. This element has been removed for Symphony 2, however the idea is that an Extension can be created to specifically target the Author DS type on the DS editor, adding in an additional field for email-hash. On the resultant Author DS, hooks allow the extension to inject its own fields and logic.

3. Fields

Custom Fields as we know them in 1.7 are no more. The replacement? An API for creating your own. Fields are the core building blocks for all data in Symphony. Each field is its own entity, and handles data in its own way. Symphony 2 ships with all the fields you know and love, as core fields.

The new API, releasing shortly after the beta, that can allow you to create a new field in a matter of 20 lines of code, and become as complex as you like simply by overloading the Symphony core Field functions. The API provides hooks into the Publish, Sections and DS Editor so you can create totally custom interfaces for your new Field.

4. Translation and Transliteration tables

As already mentioned in another thread, Symphony 2 will offer internationalisation features. For a developer this means access to custom translation and transliteration dictionary tables of Symphony's core interface.

The ability to work from translation tables is inherent throughout Symphony 2, meaning as a developer, not only can you easily offer your own complete translations for the Symphony interface, but also have access to the core functions that do the work, offering internationalisation features to even your Extensions.

5. Compatibility with Symphony 1.7

The Symphony 2 API, whist similar in some areas, is not compatible with the Symphony 1.7 API. This has allowed us to push the boundaries without being constrained to legacy code. None of the above would be possible if we hung onto the existing API. So, developers will need to rewrite their extensions for Symphony 2. The good news is that many of the coding conventions and overriding paradigms do remain the same, so most of what you will be learning is some slightly newer syntax, and API layout.

5.1. But, can I still write for 1.7?

Of course! Although, you will no longer be able to submit your CS via the Symphony account area. You will need to submit the code to us via email. We will take a look, and update the legacy downloads page to include it.

1. What's with the funny acronyms?

There is a big difference between internationalisation (i18n) and localisation (L10n), meaning they are not interchangeable, so it is important to know what each term signifies and implies.

Internationalisation (i18n): Translation (language)

Localisation (L10n): Adaptation of language, content and design to reflect local cultural sensitivity. E.G. supporting region specific date formats, currencies, paper sizes etc.

Symphony 2 focuses primarily on i18n, or sometimes referred to as localisation enablement. i18n is often described as a pre-cursor to L10n, such that it facilitates future attempts to localise an application. Symphony 2 offers a path to localisation, but we are primarily concentrating on the 'pre-cursor' phase, internationalisation.

2. Reasons why Symphony 1.7 had neither

There were a number of reason why Symphony 1.7 failed to contain any i18n related features. Mostly it was due to a combination of inexperience and an inflexible code base. Remember that we started Symphony back in 2004, and the code base, framework & coding paradigms hadn't really changed a great deal since then.

There were other concerns as well. For instance, how do we offer i18n to Symphonians, and offer quality support when we cannot speak the language. Also, do we have enough community support to maintain the translations. Symphony has been evolving so rapidly that it was difficult to commit to such an undertaking when the core aspects were not even fully realised. Shortly after 1.7 launched, the idea of Symphony 2 started to creep in, pushing the arrival of any form of i18n back even further.

3. Looking forward

So, now the big news. Symphony 2 will fully support i18n at launch (beta period will not have full translation table support right away). Symphony 2 has a flexible system for supporting text string dictionaries and custom transliteration tables. There is a new API for developers, allowing simple integration of new languages.

4. How to contribute

Symphony 2 brings with it a brand new API, part of which includes i18n support. Every text string in Symphony is abstracted, and easily overloaded, allowing for complete interface translations, and accurate URL transliterations.

If you are interested in creating your own translation files, than take a look at the article covering what you can look forward to in terms of Symphony's new API structure. We also encourage collaborative efforts to help improve accuracy and completeness. Installing new language packs will be as easy as installing extensions. Drop the folder into your /extentions, and change your language preference via System > Settings

All bug reports should be posted on the Symphony bug tracker. This will help the team keep track of issues, and also aid the community in knowing what has been addressed.

1. Topic Relevancy

Any discussion of Symphony 1.7 and prior should be raised on the archived Overture forum.

2. Bugs

Any bugs found for Symphony 2 or Overture should be submitted to Read the bug submission thread for more details.

About the redesign

Our main goal for the new Overture website is to combine the different section of overture into a consistent layout. The sidebar is now persistent throughout all the pages on Overture. The structure is now fixed width to allow more flexibility for the designs of different sections. The design for the sidebar will be changing to accommodate for a slew of new things to come.

Overture beta's design, naming scheme and section structure are still very much work-in-progress.

Installation took 2 secs. Backend in place. Go to front page, and wham, XSLT processing error! On Dreamhost.

XSLTProcessor::importStylesheet(): URL file-access is disabled in the server configuration
XSLTProcessor::importStylesheet( failed to open stream: no suitable wrapper could be found
XSLTProcessor::importStylesheet(): I/O warning : failed to load external entity ""
XSLTProcessor::importStylesheet(): compilation error: file /home/.finale/cena/ line 3 element import
XSLTProcessor::importStylesheet(): xsl:import : unable to load
XSLTProcessor::transformToXml(): No stylesheet associated to this object

Oh no...

Looks like importing stylesheets is considered an I/O load. Hmm.. I think there's a config you can set in Dreamhost right?

Someone with Dreamhost experience, please voice up!

seems like something to do with your importing files:

<xsl:import href="../utilities/master.xsl"/>
<xsl:import href="../utilities/get-article.xsl"/>
<xsl:import href="../utilities/get-notes.xsl"/>
<xsl:import href="../utilities/get-comments.xsl"/>

edit... i guess it goes beyond xsl. even though I have dreamhost, i don't know crap about it

Cenazoic, have you read the Dreamhost set-up guide on the wiki page?

There it says something about enabling fopen. Try that.

Hey Symphonians!

Just installed the beta - the installation went smooth. I can see the whole front end but I get this when I try to access the back end:

404 ERROR: PAGE NOT FOUND Head back to home or contact me.

The ULR is /symphony/publish/articles/

Any ideas?


I'd like to help with the German translation.

Ist noch jemand mit von der Partie?

Okay, just went through the DH setup. Reinstalled S2.


Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home/.finale/cena/ on line 16

I hope you weren't making snarky comments, wt. People in glass houses, and all that, ya know. *cough SLICEHOST *cough


Check that the .htaccess was created in /symphony. Without that the front-end rewrite rules will be kicking in. It should look something like this:

<IfModule mod_rewrite.c>

    RewriteEngine on
    RewriteBase /symphony/

    RewriteCond %{REQUEST_FILENAME} favicon.ico [NC]
    RewriteRule .* - [S=14]

    ### CHECK FOR TRAILING SLASH - Will ignore files
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} !/symphony$
    RewriteCond %{REQUEST_URI} !(.*)/$
    RewriteRule ^(.*)$ /symphony/$1/ [L,R=301]

    ### MAIN REWRITE - This will ignore directories
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)\/$ /symphony/index.php?page=$1&%{QUERY_STRING}        [L]


Just in case you were not aware. You've left traces of .svn folders in a couple of folders. /extensions/markdown/ is an example. Seems that the first level is fine but the lower levels are still svn'ed.

Has the CSS editing form been removed? Is there any specific reason for this?

Thanks :-)

P.S. Symphony 2 is great.

oh really? bugger... Thanks for spotting that. I'll release an updated archive soon.

I've added this as a bug. Please follow it up at

Create an account or sign in to comment.

Symphony • Open Source XSLT CMS

Server Requirements

  • PHP 5.3-5.6 or 7.0-7.3
  • PHP's LibXML module, with the XSLT extension enabled (--with-xsl)
  • MySQL 5.5 or above
  • An Apache or Litespeed webserver
  • Apache's mod_rewrite module or equivalent

Compatible Hosts

Sign in

Login details