Search

I’m not really sure WHAT I’ve been looking for in a CMS, but here is where I have come from. I’d like some feedback from those of you experienced with this system. I love the look and feel of Symphony, I just want to make sure I’m not trying to fit a square peg in a round hole.

I dabble.

I’m a musician and Electrical Engineering student who comes back to programming from time to time, usually for non-critical silly little things. I’ve spent a small amount of time in C++, Ruby, and Java. I’ve seen enough PHP and SQL to know what it is, but I’ve never actually written a project in it.

From time to time, I have a desire to put up a website. I usually think it’s simple until I realize it doesn’t really ‘fit’ into any of the ready-made boxes that exist (Wordpress, Textpattern, etc). All I usually want is a simple blog / news site plus something else, but that something else usually isn’t as simple as a photo gallery, etc. It usually has two or more data structures (Sections in Symphony) that are related in some way, and I want to be able to manage (add / edit / delete), sort, search, and present the information. I always want the backend interface to be ‘simple’, and have a ‘locked down view’ where you can only manage content and not screw up the site, especially on the occasion that this project is for someone else.

I shy away from rolling my own solution mainly because I’m not a whiz at this, and I don’t understand all the security implications of web stuff, and quite frankly, I’d rather just build a site and let a framework / CMS handle the security. While Drupal appears to be the least ‘klunky’ of the large extensible projects, I still feel like I’m having to go against the grain to connect pieces of data (Sections in Symphony, Content Types in Drupal), especially when it comes to designing a front-end that will display them how I want, in the URL scheme I want. On the other hand, the abundance of Drupal modules makes it very easy to add functionality like an email newsletter with subscription management.

My current project is a business / informational site, with news, links, endorsers, and products. The complexity is that the products belong to one or more applications, and one or more ‘series’. They need to be viewed in either organization. Eventually, it would be nice to add some classy interaction with Facebook or Twitter (basically pushing article content to the social network from the site, and linking to it from the site).

So, is Symphony for me?

Please grill me if you need more information. After all, the default content in Symphony thinks I’m a PROFESSIONAL SPACE MONKEY EXTRAORDINAIRE :)

So, is Symphony for me?

Absolutely yes!

Drupal wins if you want lots of pre-built functionality such as a blog, mailinglist management and the like. But Symphony provides the granular tools with which you can build these should you wish. It’s almost one level less abstracted, so it’s more like a framework than a CMS. It’s a CMS framework, if you will.

For the site you describe, Symphony looks perfect. You can define your own content repositories (Sections), relate them together (using fields that forge relationships such as the Select Box Link), define your own URL structures (Pages), define how to want to query/filter the content (Data Sources) and there’s no predetermined layout or HTML you need to use (XSLT).

The complexity is that the products belong to one or more applications, and one or more ‘series’.

The Select Box Link field can create what are essentially one-many and many-many relationships, so this should be fine.

I wrote an extension called Entity Diagram which generates kind of an Entity Relationship Diagram from the CMS. Here’s an example which shows you some basic Section relationships between Fixtures, Results (Match Reports) and Seasons from a sports site I’m developing. Multiple fixtures per season, one match report per fixture.

Give it a go :-)

@7trumpets, if you are new to XSLT, here's a lot of great resources. Also, Stephen Bau (bauhouse) has put together a very helpful "learning by doing" tutorial, which will help you understand sections, utilities, datasources, pages, and the basics of how to use Symphony.

I hope that helps.

Also, here's a couple of screencasts that will help you with XSLT basics...

  1. Learn how to use apply-templates.
  2. Understanding Recursion

I am a forester. And I recognise your urge to dabble and create websites now and then. If you love diving into new things (XSLT), I think you’ll love Symphony CMS.

This CMS does not get in your way when you want to do something, but it will need more work from you to get it to do what you want. But when your done, it might just do exactly what you wanted!

Eventually, it would be nice to add some classy interaction with Facebook or Twitter (basically pushing article content to the social network from the site, and linking to it from the site).

Pushing from symphony to the networks…
I am not sure symphony can handle this without a custom extension. We only have one (unfinished) extension that integrates with twitter, the twitter notifier

I wonder if there might be a webservice (advantage being its constantly updated for new networks) to push (autoblog) content to many social networks from symphony (not sure how it would be initiated, api wise?). Like yahoo pipes can combine many feeds into one, but the other way around….

posterous does offer autoblogging, and then you could pull feeds from the social networks back into symphony. Ideally ofcourse posterous should be compatible with the symphony api and create real entries in symphony too. But the posterous method might not be that bad since you have your content backed-up/organized in your gmail imap client. You can search your blog’s archive by using ea tumblr’s api (one of the networsk that gets posted too) so there really isn’t a need to have the content in your database.

Thanks, everyone for the great responses. I’m still feeling it out, but I’ve pretty much narrowed my choice down to Symphony, EE, and Akelos framework. I’m really liking Symphony though :)

After going through both introductory tutorials, I have a few (hopefully simple) questions and observations:

  1. It seems like it could get really tedious doing XSLT coding in the webform. Perhaps CodeMirror could help, but I imagine I’d rather edit XSLT in TextMate. Any tips on productive use of the admin backend alongside a text editor for XSLT?
  2. While Symphony is much better than some CMS’s about duplication of plugins (extensions) without knowing which one is the best, or more maintained, there are a couple of categories of extensions where I really don’t know which one I would try if I needed its functionality: Date pickers(Date and Time, Calendar Overlay, Flex Date Field, jQuery Date Picker), and Subscriptions Managers(Author Section, Frontend Membership, Frontend Member Manager, Members (Unofficial Release)). If some of these are in fact deprecated, it might help to split these out into a different section on the Symphony website.
  3. What is the best practice for splitting out xsl:template templates? I couldn’t really ‘get’ why certain sections were split out to the end of the file, or on the other hand, why they weren’t put into a completely different xsl file. Is there any reason an xsl:template can’t be broken out into an external file and called from a different file, other than the fact that it might not be directly viewable from the admin section?
  4. What is the difference between the Select Box Link, and the Select Box, dynamically populated from a field in another Section? I guess I’m having a bit of trouble wrapping my head around what the best practices are for creating links and referencing them in the xsl templates.
  5. Publishing the RSS feed didn’t work properly, but I think that has to do with my local dev environment? If I download the .rss file directly from safari, it looks correct, but adding the localhost:port/symphony URL to my feedreader results in an empty feed.

I have yet to really dig deep into XSLT yet (doing that next), but those are my initial impressions and questions. Overall I really like the system, especially how easy it is to set up sections and get nice-looking admin interfaces, while at the same time not putting limits on the presentation of the information.

(1) Yeesh… I don’t do any XSLT in Symphony. Once I realized I couldn’t do auto-indents, any tabbing at all, or code-highlighting I immediately looked into using an external editor. Thing is, you can. You have to create pages and datasources in Symphony but the actual XSLT can be edited through the files directly.

Also, Utilities don’t have to be created in Symphony, you can just create those and Symphony will automatically list them. From what I hear, Symphony 2.1 is going to extend this to the point of where you could, in theory, do just about everything and never touch the interface.

I use Coda, by the way.

(2) I prefer the Date & Time extension simply because the developer is extremely active in the Symphony community and has made a number of the best extensions. He’s Nils, if you’re curious. Never done user management so I can’t speak to that.

(3) You can break it out into as many extra files as you like. My basic modus operandi is to break things out into files where either having them in the page would get too hairy or I want the ability to reuse the same code again and again. For example, if a page has the option of having an entry or listing all entries, I have both options as external files and call them as necessary to simplify things. Another example is my contact form which I often reuse. Because of this, it’s on it’s own file.

I don’t know the third one and I’ve yet to play with RSS feeds so I can’t answer that either.

What is the difference between the Select Box Link, and the Select Box, dynamically populated from a field in another Section?

As far as I recall, the Select Box Link maintains it’s connections to other sections dynamically by ID. The Select Box on the other hand dynamically populates from other sections, yet acts as a static list and won’t change.

If you change the link in the linked to section, the entries with that link via a Select Box would all need resaving.

Select Box link is definitely the way to go for linking to other sections, I only ever use the Select Box for static lists.

I too haven’t worked with feeds yet, so can’t comment. Also not implemented Frontend Members yet, although this thread may help

So thats the difference. Thanks for the explanation, it’s been bugging me. I think I’m going to be switching over as well.

I never modify XSLT files through Symphony itself; I open my /workspace folder in TextMate instead. I have this XSLT bundle installed, so I can type temp, or value or choose (etc.) followed by TAB and I get XSLT snippets pre-populated with attributes that I can tab through.

In addition to Nick Dunn’s TextMate use for local files I have created a special TextMate project which allows to edit any remote files opened via Transmit 3 in tabs (in the TextMate window) instead of opening a new window for every file. This way I can work very comfortably on remote servers.

Here’s how to do it:

http://muffinresearch.co.uk/archives/2006/06/13/use-tabs-in-textmate-for-remote-files-opened-by-transmit/

For backend textareas (may be XSLT or Markdown textareas, whatever) I often use QuickCursor to open the contents in TextMate, edit it and save it back to the textarea. (The “Edit in TextMate” feature is supposed to do the same, but I often had trouble getting this to work.)

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