This is a question aimed to all who have created their own CMSs.
What is the correct way to go about making a reusable CMS? We all must
be doing this, creating a new CMS for each site we do is prohibitvely
expensive.
Going through the Radiant source I see the majority of the code is
kept in /app. Won't this make it difficult to update the CMS code once
it has been interleaved with the rest of the app?
A plugin? What about a seperate set of migrations... we can't mix the
CMS migrations and app migrations..
Engines? Seem to be the best solution at the moment.. (What I
currently use)
Thoughts? How does everyone do this?... or think they should be doing
it?
Excellent question - I'm wondering the same thing myself - do you
write a plugin with a generator that gets you going but then relies
upon method calls IN the plugin's library perhaps?
The concept of reusable modules is one very nice feature of Django
that I like - there's got to be something similar in Rails!
I have the answer. The Rails ideology of convention over customisation
is all well and good until you find an area lacking a convention.
Engines is the way to go at the moment. I suspect principles will be
taken from engines and made core eventually, if the poor author of
Engines finally pursuades everyone they're plugins and not an engines!
All the engines plugin does is make the plugin system a little bit
more flexible, really. Possibly some parts will be adopted, others
certainly wont, since it exists to serve a slightly different
development environment than that of the Rails core team.
This is the nature of open source - we make it work the way that
serves our needs best