Hi all:
The following might violate the “no-fluff” mentality of Radiant, but I
will give it a shot anyway. Chances are that somebody else has already
worked on something similar.
Something I have missed in Radiant, since I have first used it
(pre-0.5), is a uniform representation of content. I personally find the
Page model clever, but rather strict as online content is rarely limited
to pages, page parts and layouts. A content management system should be
able to handle all kinds of content, not just pages. Various attempts
have been made to “hack” support for other content types into Radiant
and we ended up with assets management, strange page behaviours (e.g.
search_behaviour) and still no commenting system.
While for many the page model is perfectly fine and Extensions will
solve all the other problems, I was dreaming of a uniform representation
of all content independent of its type. So I hacked together a slightly
modified version of Radiant (mental branch) which replaces the Page
model with an abstract content model at the root and derives all other
content types from this abstract model.
For now, I have modified the previous Page model to be a derived content
class and added a very simple content class called Binary. Those two
content classes alone already provide me with a very rudimentary assets
management as their content is uniformly represented in Radiant using
uniform URLs and the familiar tree based administration interface.
Additional content classes can be easily added through extensions and
integrate seamlessly with the existing administration interface avoiding
extra tabs, proxy pages and non-uniform URLs.
At the moment the modifications are not ready for release, but if you
want you can play with the online demo. The site contains further
information on how the abstract content model works and provides some
examples as well as demonstrates the admin interface:
Live Site
URL: http://init.ca:3000/
Administration Interface
URL: http://init.ca:3000/admin/
Username: admin
Password: admin
I will actively maintain and further develop this approach and hopefully
release some code and patches against stock Radiant soon. On the top of
my list for content classes is also a Comment content class, which
essentially will store comments as children of a page.
Comments, ideas and flames – all are welcome.
Cheers,
Oliver