Recently whilst visiting a client they were moaning about the lack of true content preview in joomla.
There are plenty of tricks you can employ to preview content in hidden categories etc but its still not the same as previewing the content exactly where it will appear.
The same is also true when adding a new component or plugin to a live site. Will it work properly in the site configuration, what will it look like, will it needed styling to match the site etc and all in an environment where the casual site visitor will not see it.
In the past I have typically maintained two versions of a site, one live and one private, so that I can test and evaluate on the private site first.
But of course this means that I will have to the repeat all the setup and content creation on the live site manually once I am satisfied. Not only is this a waste of time but it allows user error to creep in.
For the first time the client had really stumped me and I couldn't propose a simple solution.
I like simple solutions!!!!
Travelling on the train home, I got to thinking and realised that what was needed was a one click method to move all the updates from the private site to the live site.
The biggest issues would be how to cope with content being created on two sites at once, live and private, and how to deal with conflicts.
On a fairly simple, non-interactive site, where there is no end user content creation this should not be too difficult but on a web 2.0 site, oh boy!! Methods such as simply copying all the files and the database from the preview to the live site were just not going to work.
Life is never simple!
As I regularly repeat "I am not a programmer" so even if I have the idea and can write the specification that is all it's only ever going to be, an idea on paper. Unless I can convince another developer to write the code nothing is going to happen.
(This is a great reason to maintain friendly relationships with good extension developers. They are often looking for new ideas and if your idea tickles their fancy you might even get the development work done for free.)
So by the time I got off the train at my final destination I had filled several pages in my notebook with ideas, problems and solutions. My intention was to sit down with a large steaming cup of strong black coffee and condense all my notes into a more solid specification before showing it to a few developers.
But before I did that I thought I would give the joomla extensions directory a quick double check to make sure I hadn't missed an extension that would do exactly this. (I like to pride myself on having a very good memory, mainly for useful facts, and I was fairly sure that nothing existed)
My first few searches produced nothing but as can be so often the case one final search with a different term produced a shocking answer there was a component that did what I wanted. The developer had even considered and addressed all the various issues I had scribbled in my notepad.
Fearing that I must have missed something obvious I asked my usual crowd of fellow joomla users (we're developers, designers, trainers, authors) and no one had come across this component.
I wonder how we had all missed it?
Replication can, as the name suggests, replicate the web site (the file, folder) and/or database. In effect it allows you to create both a pre-production and production site on a server so you can mirror one to another.
The French developer appears to have considered all possibilities and there are numerous options to exclude tables and directories from the replication.
The component is really just a joomla front end to the "rsync" linux programme that should be installed on all servers. (Note that whilst all the shared hosts I have access to allow you to use rsync some hosts may not)
I'm no going to waste any more of your time describing it's functions the best thing to do is to hop over to http://composant.gires.net grab your own copy and give it a whirl.