I’d like to make a different style and structure for my FAQ and help site for my website. So it would look like pretty different then the rest of my website. I was looking for a solution and found 2 ways.
multiple layouts
multiple themes
I’ve tried to generate multiple layouts but when I try to render it without the layout of the rest of the website it doesn’t work (renderPartial(), when I use render() the view with the different layout is shown in the “original” version of the layout, looks a bit funny ). So I thought using different themes. But before I start trying to implement it I thought it would be good when I ask which solution would be the best one. Do I have make a mistake or is it not possible to render a view completely with a different layout.
No one has a tip or idea? Can anybody say for which scenarios multiple themes are the best solution and for which scenarios multiple layouts are the best solution?
Layouts are more for variations on your current theme, such as a 2-column layout, fixed-width, variable-width, one central column. All these are layouts of the same theme, just variations.
A whole new theme is an entirely separate look and feel in comparison to other themes, which is what I think you’re looking for.
I’m not quite sure I understand the problem you’re describing with the rendering issues, but below is a quick snippet on how to change layouts.
If you want a separate layout for the entire controller, do
class MyController extends Controller {
public $layout = '//layouts/my-layout';
Otherwise, if you’re in an action
public function actionMyAction() {
$this->layout = '//layouts/my-layout';
}
'class' => 'vendor.schmunk42.multi-theme.EMultiThemeManager',
'rules' => array(
'^p3(.*)' => 'backend', // use backend theme for all routes starting with p3
'^user/default/index' => 'frontend', // use frontend theme for several routes of the user module
'^user/login/(.*)' => 'frontend',
'^user/profile/(.*)' => 'frontend',
'^user/registration/(.*)' => 'frontend',
'^user/recovery/(.*)' => 'frontend',
'^user/activation/(.*)' => 'frontend',
'^user/(.*)' => 'backend', // use backend theme for user module
'^rights/(.*)' => 'backend', // use backend theme for rights module
)