Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

Template Questions

Multiple Templates for a Single Page


4 Posts   1849 Views

Ben Gribaudo

18 June 2009 at 2:02am Community Member, 181 Posts


What would be the best way to have two templates for a single page? Practical use would be an e-mail newsletter archive where the public views the newsletters using one template and where the alternative template is used by an e-mail sending service when it pulls the newsletter to send it. The alternative template should be accessible by appending a query string to the page's URL.

One idea on how to do this: in the newsletter page's controller, override something like handleAction() so that it changes the template used if the appropriate query string is present.

What do you think of this approach? Have another idea?



18 June 2009 at 2:23am Community Member, 901 Posts

Hi Ben

That sounds about right. But AFAIK you don't have to override "handleAction".
Let's assume you got 2 use-cases: Browsing the newsletter on the website and creating a page version to be sent by your mailing service.
For the newsletter-browsing you would simply call the URL directly, i.e.:

To pull the "mail" version of the newsletter, you would call another URL, i.e.:

In your Newsletter_Controller you can then place a method called "mailable" that will be invoked when the latter URL is being called. There you would simply switch the template. Something like this:

public function mailable(){
   return $this->renderWith(array('mailable', $this->ClassName));

It would then render your newsletter with the "" Template.
I hope that was what you were looking for.

Ben Gribaudo

19 June 2009 at 6:27am Community Member, 181 Posts

Thanks, Banal! Your tip helped us.



16 July 2009 at 6:38pm Community Member, 167 Posts

Hmm, this could also work for, say, an iPhone (or generic mobile) version of a site, or would you do that differently?