Forum: Radiant CMS RJS/Tracking Controller through Radiant Extension?

0e94ea82c6694cd57fb57e5a3fff46df?d=identicon&s=25 DeconStudio (Guest)
on 2007-05-11 21:48
(Received via mailing list)
Hi All
First post to the list, I have a question about extensions and adding
RJS
features to a Radiant site.

What I would like to be able to do is call an RJS action on a click of
certain buttons of a page, which would then log into a database that the
action is clicked and use RJS to dynamically update the page to replace
the
div with the botton with a new piece of content, like a contact form. I
would be using RJS to provide the nice ajax type effects for smoothly
updating the page and replacing certain parts with new elements.

Is this something that would be done through extensions? Is it possible
to
use RJS with Radiant and add a little AJAX love to it?

thanks!
Michael Andrew
SEOG.net
Db303dc84d03a992b33cd3ac978f89ae?d=identicon&s=25 Benjamin Curtis (Guest)
on 2007-05-11 22:10
(Received via mailing list)
Heh, I get to use this same example twice in 5 minutes. :)

http://pastie.caboo.se/60860

--
Building an e-commerce site with Rails?
http://agilewebdevelopment.com/rails-ecommerce

Meet up at RailsConf:
http://railsconf2007.conferencemeetup.com/
0e94ea82c6694cd57fb57e5a3fff46df?d=identicon&s=25 DeconStudio (Guest)
on 2007-05-12 00:22
(Received via mailing list)
I'm a rails newb so excuse this if it seems silly to all the experienced
folks out there.

But in the example that you posted with the SamplePage class -- I am
assuming I would make my own class as a subclass of page and then follow
the
instructions for loading it as an extension from the Radiant docs.

Then calling it in the theme with something like this:

<% form_remote_tag :url => { :action => :SamplePage, :id => form_button
} do
%>
<%= submit_tag "Email Me" %>
<% end %>

But replacing the action with whatever Class I made, like FormDisplay
let's
say.

And then change the appropriate Element.update calls to whatever RJS
actions
I want to take on the element within the Body of the document, which
would
be the HTML I have loaded into that page's body section through
Radiant's
backend administration.

Am I close? :)

thanks!
Michael
767bedcbd5dd54d874a602925d98182e?d=identicon&s=25 Oliver Baltzer (Guest)
on 2007-05-12 00:39
(Received via mailing list)
DeconStudio wrote:
> But in the example that you posted with the SamplePage class -- I am
> assuming I would make my own class as a subclass of page and then follow the
> instructions for loading it as an extension from the Radiant docs.

Creating that class and the extension is a step in the right
direction. After that you can create pages that have the type of your
new class.

> Then calling it in the theme with something like this:
>
> <% form_remote_tag :url => { :action => :SamplePage, :id => form_button } do
> %>
> <%= submit_tag "Email Me" %>
> <% end %>

Pages don't support ActionView helpers. You will have to convert
everything to "real" HTML/Javascript.

> But replacing the action with whatever Class I made, like FormDisplay let's
> say.

No a URL to a page with the type of your new page class.

> And then change the appropriate Element.update calls to whatever RJS actions
> I want to take on the element within the Body of the document, which would
> be the HTML I have loaded into that page's body section through Radiant's
> backend administration.

Hmm, I don't think you can use ActionController functions such as
render in a Page's process method. So no RJS, again pure Javascript
only, as in the example.

> Am I close? :)

Just a little.

You are probably better off writing a separate controller that handles
your requests instead of creating a derived page class.

Cheers,
Oliver
This topic is locked and can not be replied to.