We have created admin systems for our website content (a CMS in other words), and admin systems for things like Customer Relations (CRM) etc. using a custom framework. Now we’re looking at an admin system for the admin system…
The more we work on the website pages which offer things like forums, online shop etc, and the more we work on the back office admin pages, the more we find that the two systems are alike. That is to say there isn’t much difference in structure or concept between a client-facing website and a staff-facing admin system. Whereas a website might have one or more pages using the ‘default’ template, the admin system might require a different ‘template’ (or view) for each of its pages. Similarly, some website pages might be in a password protected area, whereas all of the admin section is password protected.
For example, as we develop our current admin system, we’ve added a multi-lingual capability so an “edit user” page which was “/user/edit/6” in English, will become “/utilisateur/editer/6” in French, meaning we’re using already using a front controller to redirect the URL to the correct function. Another example is allowing superusers to move menu items around and to create pages based on a ‘default’ template which are just ‘help’ content. Both of these are methods we use on our bog standard client-facing websites.
Does anyone have any experience in working with a framework which caters for multiple client-facing websites, one (or more) staff-facing admin ‘websites’ and treats the development of both in the same way? In other words, the admin section is ‘just another website’? I know that frameworks like Zend or Symfony etc basically allow you to do whatever you want, I guess I’m asking whether anyone follows a methodology when creating both systems or if there are any best-practice ways to approach the problems you might face when developing either.
The reason I ask is that most frameworks (or CMS apps built on their own frameworks) no matter how good they are at the website bit, seem to have a clunky admin interface built on top. It strikes me that if one is operating a ‘system’ then surely the code/pages/modules etc for the admin part shouldn’t be any different to the website part?
Forgive me if I’m missing the obvious, but I thought it might have cropped up elsewhere!