miércoles, 9 de diciembre de 2009

Concrete5: a promising CMS

I recently had to develop very quickly a WebSite for my company after years of happy outsourcing. So I started to investigate a little bit to see if there was something new in the world of open source CMS. 
In the past I worked with Mambo/Joomla, always hated it (how come you HAVE to include in an xml a list of all the files you use in a theme ????), I was once quite an advanced user of Typo3 but the last version needs php > v5.2 and I've had some performance issues with moderate traffic. 
Drupal doesn't provide front end editing and the mix of Backend/Frontend in the same interface resulted very disturbing to me. I didn't investigate any further but I think the custom theming is a pain in the ass too.
Desperate, I finally clicked on a banner and reached the site of Concrete5
The front page screencast looked promising, I installed it, started to experiment and got very disappointed by a 50% of 404 error when I was checking out, or trying to edit pieces. I found very little bug info (and none useful) about that problem so I dropped it and kept searching for my dreamed CMS without any success.
I woke up the next day with an obsession: if there was so little entries about that bug, it must have been something I did myself ! So I reinstalled it and it started to work like a charm.
I am not sure about what I did the first time but I think it's because I deleted the root page and replaced it. It could have something to do with the changed id of the root page.
Since then I am a very very pleased Concrete5 addict. As the site states, its a mix between an idiot proof easy to use CMS and a full MVC Php Framework. 
The front end editing is amazingly helpful for my client but the most interesting part is the programming. You can start Theming after 5 lines or reading, adding modules, integrating your own external app, developing reusable custom components, modifying existing core modules are very easy to get a grip on.
There are some cons like the thinness of the documentation, especially the API, the automatic inclusion of the some js code you might not want but the overall is great.
I hate tutorials - they always insist on simplistic concepts and fly over the hard parts - so I will post here some small hints that took me a couple of hours to discover and might be useful to other programers.