views:

1792

answers:

2

I'm sure it's a simple one-liner, but I can't seem to find it.

How can I use a different layout file for a particular action?

Update: This worked for me, thanks!

// Within controller
$this->_helper->_layout->setLayout('other-layout') //other-layout.phtml

//Within view script
<?php $this->layout()->setLayout('other-layout'); ?>
+10  A: 

From inside a Controller:

$this->_helper->layout->setLayout('/path/to/your/layout_script');

(via these docs)

EDIT: I should mention that the path is relative to whatever your layout directory is (by default, it's application/layouts/scripts/)

Josh Lindsey
Or, if the layoutpath is set correctly (`$layout->setLayoutPath('application/layouts/scripts')`), use `$this->_helper_layout->setLayout('alternative_layout')` to reference `application/layouts/scripts/alternative_layout.phtml`.
chelmertz
From inside a view: <?php $this->layout()->setLayout('/path/to/your/layout_script') ?>
Travis
@Travis: I wouldn't want that kind of logic in a view script unless you only got a really small number of view scripts so you know where to debug for these application critical settings.
chelmertz
A: 

solution does not work in last version

STEVER