# Using Radiant to handle part of a site?

**URL:** <https://www.ruby-forum.com/t/using-radiant-to-handle-part-of-a-site/104432>\
**Category:** Radiant CMS\
**Created:** [May 17, 2007, 9:52pm UTC](https://www.ruby-forum.com/t/using-radiant-to-handle-part-of-a-site/104432 "2007-05-17T21:52:25Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Will\_Merrell](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/4491bb/32.png) [@Will\_Merrell](https://www.ruby-forum.com/u/Will_Merrell)\
**Post date:** [May 17, 2007, 9:52pm UTC](https://www.ruby-forum.com/t/using-radiant-to-handle-part-of-a-site/104432/1 "2007-05-17T21:52:25Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Will\_Merrell](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/4491bb/32.png) [@Will\_Merrell](https://www.ruby-forum.com/u/Will_Merrell)\
**Post date:** [May 18, 2007, 3:10am UTC](https://www.ruby-forum.com/t/using-radiant-to-handle-part-of-a-site/104432/2 "2007-05-18T03:10:00Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Will\_Merrell](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/4491bb/32.png) [@Will\_Merrell](https://www.ruby-forum.com/u/Will_Merrell)\
**Post date:** [May 18, 2007, 5:27am UTC](https://www.ruby-forum.com/t/using-radiant-to-handle-part-of-a-site/104432/3 "2007-05-18T05:27:10Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Will\_Merrell](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/4491bb/32.png) [@Will\_Merrell](https://www.ruby-forum.com/u/Will_Merrell)\
**Post date:** [May 18, 2007, 5:56am UTC](https://www.ruby-forum.com/t/using-radiant-to-handle-part-of-a-site/104432/4 "2007-05-18T05:56:49Z")

</div>

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… 🙂

Respectfully,  
Mario T. Lanza

---

<div class="post-metadata">

**Author:** ![Will\_Merrell](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/4491bb/32.png) [@Will\_Merrell](https://www.ruby-forum.com/u/Will_Merrell)\
**Post date:** [May 18, 2007, 6:18am UTC](https://www.ruby-forum.com/t/using-radiant-to-handle-part-of-a-site/104432/5 "2007-05-18T06:18:12Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Will\_Merrell](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/4491bb/32.png) [@Will\_Merrell](https://www.ruby-forum.com/u/Will_Merrell)\
**Post date:** [May 18, 2007, 3:56pm UTC](https://www.ruby-forum.com/t/using-radiant-to-handle-part-of-a-site/104432/6 "2007-05-18T15:56:59Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Will\_Merrell](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/4491bb/32.png) [@Will\_Merrell](https://www.ruby-forum.com/u/Will_Merrell)\
**Post date:** [May 18, 2007, 6:37am UTC](https://www.ruby-forum.com/t/using-radiant-to-handle-part-of-a-site/104432/7 "2007-05-18T06:37:15Z")

</div>

> 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/](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.
