# Different layout for different renderings

**URL:** <https://www.ruby-forum.com/t/different-layout-for-different-renderings/112717>\
**Category:** Radiant CMS\
**Created:** [August 22, 2007, 2:53pm UTC](https://www.ruby-forum.com/t/different-layout-for-different-renderings/112717 "2007-08-22T14:53:15Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![raphael\_b](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7c8e57/32.png) [@raphael\_b](https://www.ruby-forum.com/u/raphael_b)\
**Post date:** [August 22, 2007, 2:53pm UTC](https://www.ruby-forum.com/t/different-layout-for-different-renderings/112717/1 "2007-08-22T14:53:15Z")

</div>

Hi,

I’m using radiant for the Profoss website ( [http://www.profoss.eu](http://www.profoss.eu) ).  
Profoss organises events, and each event has its own news section.  
This news section is displayed in a tab (widget from [extjs.com](http://extjs.com)), eg  
[Home / Profoss - Profoss](http://www.profoss.eu/events?tab=news)

If you visit this link, you’ll see that the page is rendered as pure  
html, so the layout is simply \<r:content /\>.

Although the page is displayed in a tab, I also would like to make it  
available at [Home / Profoss - Profoss](http://www.profoss.eu/events/october-2007-asterisk/news)  
The problem is that the page there is also rendered with a simple  
layout.

Is there a way to configure the layout used according to a parameter  
passed in the url? That way I would pass something like  
“?embedded=true” when requesting the page for the tab content, but the  
full layout would be used when accessing the URL without this  
parameter.

Or is there an even better solution?

thanks

## Raph

Web database: [http://www.myowndb.com](http://www.myowndb.com)  
Free Software Developers Meeting: [http://www.fosdem.org](http://www.fosdem.org)

---

<div class="post-metadata">

**Author:** ![raphael\_b](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7c8e57/32.png) [@raphael\_b](https://www.ruby-forum.com/u/raphael_b)\
**Post date:** [August 22, 2007, 3:09pm UTC](https://www.ruby-forum.com/t/different-layout-for-different-renderings/112717/2 "2007-08-22T15:09:18Z")

</div>

As i understand, when the news page is rendered inside a tab it’s  
retrieved dynamically with AJAX and added to the DOM. Then you want to  
show  
the same page with layout when is accessed directly by the user.

```
AFIK this is not possible with Radiant as it's now. This looks like 

```

the  
task for an extension. Take a look to existing extension, may be there  
is  
one that allows you to do this.

```
/AITOR
```

---

<div class="post-metadata">

**Author:** ![raphael\_b](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7c8e57/32.png) [@raphael\_b](https://www.ruby-forum.com/u/raphael_b)\
**Post date:** [August 22, 2007, 3:24pm UTC](https://www.ruby-forum.com/t/different-layout-for-different-renderings/112717/3 "2007-08-22T15:24:20Z")

</div>

Assuming Aitor is right and AJAX is being used to fetch the page,  
could you simply apply the layout all the time, use AJAX to fetch the  
page, but only add to the DOM from a certain element (ie: place  
everything important inside

 and then only copy  
its children from the AJAX response into the current DOM)? This  
should be a fairly simple Javascript solution that won’t require any  
Radiant/Rails hacking…

---

<div class="post-metadata">

**Author:** ![raphael\_b](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7c8e57/32.png) [@raphael\_b](https://www.ruby-forum.com/u/raphael_b)\
**Post date:** [August 22, 2007, 4:14pm UTC](https://www.ruby-forum.com/t/different-layout-for-different-renderings/112717/4 "2007-08-22T16:14:26Z")

</div>

Good idea!

```
 /AITOR
```

---

<div class="post-metadata">

**Author:** ![raphael\_b](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7c8e57/32.png) [@raphael\_b](https://www.ruby-forum.com/u/raphael_b)\
**Post date:** [August 22, 2007, 3:29pm UTC](https://www.ruby-forum.com/t/different-layout-for-different-renderings/112717/5 "2007-08-22T15:29:21Z")

</div>

You should be able to do this with a page type. The page type can get  
the paremeter, then add a conditional tag to test for it. I actually  
may need this, if it works, I will let you know.

Keith B.

removed\_email\_address@domain.invalid  
[http://keithbingman.com](http://keithbingman.com)

---

<div class="post-metadata">

**Author:** ![raphael\_b](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7c8e57/32.png) [@raphael\_b](https://www.ruby-forum.com/u/raphael_b)\
**Post date:** [August 22, 2007, 4:38pm UTC](https://www.ruby-forum.com/t/different-layout-for-different-renderings/112717/6 "2007-08-22T16:38:33Z")

</div>

You just made my day. I have been hacking around for weeks on this. I  
never could see anything that was just sitting in front of me!

Thanks!

Keith B.

removed\_email\_address@domain.invalid  
[http://keithbingman.com](http://keithbingman.com)
