Using Radiant to handle part of a site?

I am trying to build a fairly complex website, part of which will
include user generated pages. Its a site for my local theater club. Some
of the pages will be canned pages built in normal Rails style. But for
the list of shows we have done, I would like a content management system
to be able to add whatever pages a given show needs.

My questions are:

  1. Can Radiant be used in this way, or does it really want to run the
    whole show?
  2. Can pages managed by Radiant access data from elsewhere in the site?
    (That is: can I access other AR models and use that data on a managed
    page?)
  3. Is Radiant the right choice for this kind of application?

Thanks for any help or suggestions.

– Will Merrell

It depends highly on your desired style of managing the site. If the
focus is more on dynamic user-generated content, then Radiant may not
be the best choice. If the focus is on highly style-able,
quasi-static content or brochureware, then Radiant may just be for
you.

That said, there are a myriad of different combinations you could
conceive of for the site… Radiant can support many of your needs
with extensions if you’re willing to write some Rails code.

Sean

Sean C. wrote:

Sean
Hi Sean,

I’m not the OP but have a similar question. I’m thinking of using
Radiant for a site that has manuals and API documentation in HTML format
(something like the PHP documentation site). The base of the site is
the HTML version of the documents - these are updated occasionally when
a new version is released. Closely linked to these documents is the
dynamic portion that consists of code examples, comments from engineers,
etc. (exactly like the PHP documentation site). All portions of the
site are in multiple languages.

On the other hand, I want to also have directly generated user content -
a Wiki and a Forum/ BBS, an events calendar for events relating to this
technology and perhaps a job board. I feel that for the Wiki & BBS, I’d
like to integrate with other technologies (possibly Rails based) though
I still need to work out some kind of single-sign-on.

It seems to me that Radiant, with some work, would fit the bill. What
do you feel?

Cheers
Mohit.

Will,

You really are asking hundred-dollar questions, some of which are the
same ones I’ve been asking. I’ve been hearing that Radiant is a CMS and
that it is primarily geared toward serving up content. That’s true.
However, like you, I have the need to integrate other “pages” into my
site that interface with the user (allowing him to logon, complete a
form, do data entry, etc.). Basically, what you’re wanting is a hybrid.
You want to capitalize on what Radiant does well and interject in a few
areas with what Rails does well. At least, that’s my goal.

I’ve really toiled over this wondering what would be the best practice.
Making loose use of the 80:20 rule, 80% of my needs are met by Radiant
in excellent fashion. However, 20% of my needs are not. They are,
however, met by Rails which–go figure–just so happens to be what
Radiant was built on! This naturally has me asking: If Rails is right
there under the hood, how come I can’t easily leverage it for my
custom pages? Additionally, why do I have to sacrifice one for the
other. Can’t I have “Radiant on Rails” and make use of both? I haven’t
found the obvious answer at this point, though I would be all too happy
to hear what others are doing. Or even if this is a typical problem,
which, perhaps, it isn’t.

Here’s what I ultimately decided to do. It may not be the best choice,
but it’s what came to mind. First, I started with Radiant as content
management is the core of my particular site. Now, I am getting ready
to transition into the next phase, where I will plug into the site the
user-interactive pages. Basically, I’m going to write a separate Rails
application that accesses the same Radiant database. (I’m using the
same database since it already has the app-specific tables for which I
added back-end interfaces into Radiant.) I’m going to overlay the Rails
app on top of the Radiant site. That is, I’m going to (attempt to) use
Apache mod_rewrite to properly dispatch incoming URLs to the right
application: RadiantCMS or CustomRailsApp. I’m going to attempt to make
the pages in the CustomRailsApp look like the pages found in Radiant.
I’m going to attempt to disguise the URLs so that the custom pages look
like they are part of the same Radiant site. The idea is to make these
two separate apps (each running on their own mongrels) appear seamlessly
integrated.

I don’t feel good about this. It feels like a kludge. What I’d like to
do is write extensions–just like those I’m already starting to write on
the back end–for the front end. I’d like to be able to do this within
the context of a Radiant page so that I can take advantage of Radiant’s
offerings (snippets, custom tags, layouts, etc.) and Rail’s offerings
(simplified CRUD). If I were a Ruby/Rails veteran I’d develop just this
sort of functionality/feature. Unfortunately, I’m still relatively
green and so I’m looking at more basic alternatives.

It’s been recommended that I create custom tags to accomplish some of
this. I don’t like the idea. Why am I writing custom tags to do
something that Rails already knows how to do? Writing custom tags to
accomplish Rails CRUD operations feels ludicrous. I feel like that
would be learning Chinese to tell an Chinese-English interpreter to tell
my English speaking friend something that I could just tell him myself.

I do wish to make it clear: I think Radiant is superb. I love Radius,
the simplicity of page parts, and its extensibility. It’s just inches
away from being incredible. It’s a matter of lessening the division
between itself and Rails so that hybrid sites won’t be such a difficult
matter.

If you run into any good ideas, I’d like to hear them. Who knows, maybe
“front-end extensions” won’t be far off… :slight_smile:

Respectfully,
Mario T. Lanza

Mario L. wrote:

which, perhaps, it isn’t.
Apache mod_rewrite to properly dispatch incoming URLs to the right
the context of a Radiant page so that I can take advantage of Radiant’s
my English speaking friend something that I could just tell him myself.
Respectfully,
Mario T. Lanza

Mario, I think there are at least a few of us who are thinking the same
way. I haven’t delved into Radiant much as yet, so I’m not yet sure
that it’s very difficult to integrate other Rails apps.

Cheers
Mohit.

Dan,
Thanks for the direction. I’ll see what I can do… still relatively
green with Radiant/Rails/Ruby.
Mario

two separate apps (each running on their own mongrels) appear
seamlessly
integrated.

You don’t need to separate out your app at that level. You can just drop
in your rails app code right into your radiant directory.
The only thing that’s are not going to work off the bat are:

  • There’s no way to use your radiant layouts from a rhtml page. I
    believe that this would be fairly simple to code up though.

  • Rails provides no mechanism for getting routes from multiple
    locations. Radiant, however, does - extensions:

class MyExtension < Radiant::Extension
define_routes do |map|
#define your rails routes here
end
end

There is fundamentally very little difference between developing a rails
app and developing a radiant extension - move everthing to
vendor/extensions/extname, write an extension loading file that defines
your routes and then you’re done.

Feel free to look through
http://soxbox.no-ip.org/radiant/svn/extensions/x_groggy/ - everything
I’ve been doing has been to extend
radiant’s interface, but there’s no fundamental difference between what
I’ve done there and extending radiant with your own
non-radiant controllers/models/views.

Dan.