CnV
CnV

Reputation: 391

Different interface layout for different level users in yii

I'm new to Yii. I'm developing a system with YII framework in PHP. How can I have a different layout for different module? I want the module A to have interface A, module B with interface B. But what I have know is that the interface login is the same for all module login. Can someone give me a light?

Update:

I found one way which is to include the:

$this->layout = $layout;

on the action function inside the controller before rendering the page. However, I found that it's not that efficient as on every action I need to repeat the line. Is there a way where we can do the setting on the config/main.php page? probably on this part:

'modules'=>array(
     'gii'=>array(
        'class'=>'system.gii.GiiModule',
        'password'=>'123',
        'generatorPaths' => array('bootstrap.gii'),
     ),          

     'admin',
     'consultant',
     'client',
),

Upvotes: 3

Views: 239

Answers (2)

Jelle de Fries
Jelle de Fries

Reputation: 875

You can set variables for your module in your config like this:

'modules'=>array(
     'gii'=>array(
        'class'=>'system.gii.GiiModule',
        'password'=>'123',
        'generatorPaths' => array('bootstrap.gii'),
     ),          

     'admin' => array(
        'layout' => 'your_layout' //The layout for this module
     ),
     'consultant',
     'client',
),

This way you can implement a default layout for every single module. Without having to add controller methods or variables.

For more info see the docs: here and here

Upvotes: 1

dtmiRRor
dtmiRRor

Reputation: 599

try this:

class YourController extends Controller {

    public $layout = 'your_layout';

}

Upvotes: 0

Related Questions