Just to make sure you don't miss the latest announcement on the Blog, the project to rebuild this community site with the Symphony Factory framework is already in motion. But I wanted to formally announce my role in actively contributing to the work, responding to requests and comments, and facilitating the collaborative effort.

I am really excited to be involved with the project and it will be good to finally reconnect with this community after being mostly absent for far too long.

A collaborative effort

We have plans to keep the community involved in the process and to be as transparent as we can throughout the project, while being sensitive to guard our time so that we can focus on delivering the new site as soon as possible.

I have a lot of catching up to do on the current state of development for the Symphony core and extensions. I may have more questions than you will. But please feel free to add your comments, questions and suggestions here. And if you see anything that doesn't seem right about the approach or implementation, we'd like to catch those bugs and issues as soon as possible.

How you can help

Please check out the Symphony Factory project, clone the GitHub repository and take it for a test drive. Now is the best time to iron things out before we start integrating the design into the site build.

Soon, you should all have a shiny new ensemble to play with, and we'll want this to represent best practices for building a Symphony site. We'll need the collective wisdom of this community to accomplish this. So, please do share your ideas and join the effort!

Getting Started: HTML Templates

We have been working on the first step of the process: creating the HTML templates that will serve as the basis for integrating the site into Symphony. You'll see a new repository in the Symphony GitHub account:

And you can see how the design is coming along by viewing the GitHub pages for the repository:

A Work in Progress

As you can see, the main navigation pages have been roughed in, but without content except for the Stream and Discussions pages.

Expect that these layouts may be in somewhat rough shape as we go through the process of designing these pages in code. If you feel like adding your two cents, fork the repository and send pull requests for items you might like to see included. I have been chatting with Allen on what we need to change right off the bat. If you have any questions, I'll clarify as much as I am able.

I have included the Factory repository as a submodule. So, if you are making modifications to this repository, send your pull requests to the Factory repository.

XSLT Static Site Generator

Oh yeah! I forgot to mention: I'm using what might be a strange way of using XSLT without requiring a Symphony install. All you need is a webserver that can handle HTML files and xsltproc installed on your system (very likely, if you are using Mac OS X or Linux, you've already got it). It does involve using the command line, but see what you think. The documentation for the process of using XSLT as a static site generator with a Symphony workspace directory can be found here:

Thanks for all the updates about the redesign. It's quite exiting to actually see other people using Factory :)

Oh! I guess we'll see many new post on the Factory issue tracker over the next weeks then … Sorry, I have to leave. Very important … uhm … email. Busy. Bye!

Hehe. Sorry, Nils. I'm not trying to create more work for you and Johanna. :P

It's been great to have something so nicely designed that I can play around with. It does look like I will need to create some layouts that will work well for the Showcase items. If you already have some ideas for that, please let me know.

An Update on Progress

Things have been moving along, slowly but surely. My focus has been on understanding where all the pages will reside for each site and on working out the navigation structure for the network sites.

I have been working through building a way to configure the network navigation and dynamically generate the navigation for each site, based on a custom XML data source.

The network navigation now shows the active state for the current site in the Symphony Network, as you can see in the working demo of the Symphony Network navigation structure.

Allen and I have been chatting through some of the issues related to the usability of the navigation system, and I have submitted some thoughts about how the interaction could be improved.

Helping Out

When I left my position at Domain7 to donate my time to the work of helping to rebuild the Symphony site, I was hoping that it would be more of a collaborative project. I can appreciate that the majority of the community's efforts are being directed toward improving the core, and it's fantastic to see so much work being done. So, bear in mind that work on the new Symphony Network sites will only progress as fast as there are people who are committed to moving the effort forward.

I am still acclimatizing myself to my new role as a student, and I am discovering that I haven't had as much time as I thought I would, but I'm getting better at making the time. Just be assured, I am committed to moving things forward. I won't be starting work on my book idea XSLT for Designers or creating more XSLT/Symphony documentation until this project is completed, so there is a sense of urgency in my mind to complete my part as soon as possible. But I think it will follow a logical progression to have a site of this scale completed to use as an example for others who might like to learn how it was done, since we will have a working example to share and will be documenting the process.

So, I'll put it in these terms: the more hands on deck to finish the new Symphony site, the sooner you may have more documentation and, possibly, a new book in your hands about XSLT. Either way, I'm gambling my career on the success of both the new Symphony site and the book project, however long this might take.

Thanks for update Stephen, is there a list of tasks that need attacking on github to pick off then? If one was to offer a few hours a week to do what I can?

Thanks, Andrew!

My next step is to get as familiar as I can with the Factory framework so I can create page templates for each of the pages of the Community site. Without some definite ideas on how to create the Showcase gallery, I may be suggesting some ideas on how we can toggle between a list view and a gallery view.

Once the page templates are ready, we will want to build out the Symphony ensemble. We will need to agree on a method for many people to be able to collaborate on the ensemble. When I was working on other projects, such as xpathr, we used the DB Dump extension to maintain the SQL files in the repositories to sync local development instances. I would like to do the same with this project, unless someone has any better ideas.


If it would help to list the tasks as GitHub issues, I can certainly create that list. Off the top of my head, here's what we need for layout templates:

  • Stream: layout to accommodate stream of data from multiple sections, including discussions, questions, blog, showcase and events.
  • Discussions: layout completed for list view and post layout.
  • Questions: to be deferred until after launch. Requires ability to poll members and rate questions, similar to
  • Blog: layout to accommodate list of blog posts with pagination and an article layout, which will probably be pretty close to the layout example in Factory.
  • Showcase: layout and JS to toggle between list and gallery views and layout for detail view.
  • Events: layout to accommodate listing of Symposiums and informal meetups organized by site members.
  • About: layouts to translate the existing Explore content and testimonials.
  • Symphony Network: the home page for the Symphony Network should provide an overview of the project with the download link, a link to the GitHub repository. At the moment, this is the same page as the Stream. Whether or not these pages should be different, I'm not sure yet.

Even though I am creating the HTML by using XSLT as a static site generator, the structure of the workspace directory is very similar to how the workspace will be organized in the Symphony ensemble. The data directory will be replaced by data-sources and events will be added. We will also have an assets directory for CSS, JS and images that will complement the Symphony Factory framework.

So, just let me know what you would prefer to work on or what your strengths are, and I'm sure I can think of something you can help with.

Have tweeted this to get some attention :) I'd love to help out where I can, bit spread across a few projects at the moment but if you need something in particular, ask!

Stephen, I really wanted to get involved in this, but sadly I have too many commitments outside of work, and I'm also currently not finding the time to do my core tasks that I took responsibility for (bad monkey).

That being said, if you want to run any ideas past me at any point for opinion etc, please don't hesitate. If any time comes up I will let you know in advance to help out.

@brendo, thanks for the tweet. I don't think I'll be bugging you until the release of Symphony 2.3.2. You and @designermonkey obviously have your hands full. Thanks for everything you are already doing!

One thing I was thinking I should do sooner than later is to start setting up the Symphony ensemble. I can explain my process of building ensembles and working on an actual Symphony instance will allow people to start contributing on the Symphony bits, where they perhaps feel more comfortable pitching in.

I think a really succinct list of tasks to achieve would be greatly beneficial to those who may feel a little like it could be overwhelming, and therefore aren't offering support.

Maybe the issue tracker on github could be used for this? That way anything needing discussion can be clearly marked, as can tasks, and (obv) issues.

I reckon more support would appear with a good list of deliverables.

If it were a very straightforward and digestible list of small unambiguous tasks, I'd be happy to help out where I can during some weekends.

I'm just about to knock a hellish 7 month (originally 8 weeks) project on the head, but next job is in the planning stage so I might be able to sneak a bit of normal time in too.

Thanks for the suggestions!

I am thinking out loud here, as I strategize how best to set up the repository so people are able to help out here. Rather than start a conversation in the HTML repository then switch to the Symphony ensemble repository in mid-stream, I am creating a new repository to allow us to have discussions, issues and contributions in one place.

We will continue to use the HTML repository as a test bed for design and layout ideas. When satisfied, we will integrate them into the Symphony ensemble repository.

I created a system of naming repositories with a prefix for the platform that a site is being developed on. The agency where I used to work adopted the same convention (rails-*, wp-*, sym-*, etc.). I have used this convention for most of the ensembles I have created, as I wanted to be able to tell the difference between an ensemble and an extension (no prefix). If that makes sense to everyone, I'll stick to that convention.

So, since we will start with the main site in the Symphony Network, the community site, I am calling the repository sym-getsymphony. If anyone has any objections, please let me know before we get too far with the project.

Building a Symphony Ensemble

I'm just checking the documentation created by Rowan Lewis and John Porter on different Symphony workflows. I think I will be staying away from any attempts to include the manifest, since the end result will be a Symphony ensemble.

I'll do my best to document the process of building a Symphony ensemble as I go.

One More Thought

Since it is very likely that the new site will run on the latest version of Symphony, we might as well go bleeding edge and stick to the integration branch of Symphony as we develop. It will give us a chance to test Version 2.3.2 Release Candidate 1.

How to Build a Symphony Ensemble

As promised, here's my documentation on how to build a Symphony Ensemble. It is also a bit of a Git primer as well. This is the first step to creating an Ensemble that actually does something, but for now, it is basically an empty shell.

Next, I will go through the process of integrating the same templates being used by the XSLT static site generator into the Symphony Ensemble.

Synchronizing Development with Dump DB

Today, I continued documenting the process of building a Symphony Ensemble by demonstrating (simulating) a workflow that includes the Dump DB extension and Git to keep multiple server environments synchronized. Find the README file in the workspace branch of the Symphony Network Ensemble repository. Today, I added the documentation for the Dump DB installation and synchronization process.

If you have some time to help, please let me know if these instructions make sense. If you would like to propose a better way of collaborating, feel free to make suggestions.

Integrating Symphony Factory

I was able to get the XSL templates to synchronize quite nicely between the static HTML repository and the Symphony install. There were only some minor changes needed to replicate the same (well, similar) functionality in Symphony. I'm using a few flat XML files from the static site generator to render the page content for now. We could override the $page-data parameter to render different content on each page.

We are ready to collaborate on the Network sites!

Now we can start thinking about how to divide up the work. Volunteers?

Stephen, you're doing awesome work on this so far! Documentation is a key thing for this, so thanks from all of us on your progress.

I really hope some help turns up out of the community. This could be a good learning exercise for some people who want to brush up on their Symphony skill-set.

I'm in as much as possible (mostly weekends). Where do I start? :D

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