TechCompose
TechCompose

Reputation: 53

Theme based module's views in yii2

I am using Yii2 Advanced Template. I have created user module inside /frontend/modules/ directory. without theme integration, views are called from /modules/user/views/ directory.

Currently, I have created three different themes inside /frontend directory. So I would like to access views from theme directory for User Module. How it would be possible?

It is possible to set layout for module by

$this->layoutPath = \Yii::getAlias('/themes/classic/views/layouts/');

$this->layout = 'userLayout';

But How views can be accessed from theme directory for module?

Please suggest possible solutions..

Upvotes: 1

Views: 2785

Answers (1)

TechCompose
TechCompose

Reputation: 53

I found solution to my question. I have implemented following way.

Added Layout path in Module.php after init() method.

public function init()
{
    parent::init();
    $this->layoutPath = \Yii::getAlias('@app/themes/classic/views/layouts/');
    $this->layout = 'userLayout';
}

and

added theme configuration with module views in main.php config file

'view' => [
        'theme' => [
          'pathMap' => [
              '@app/views' =>'@app/themes/classic/views/',
              '@app/modules'=>'@app/themes/classic/modules',
              '@app/widgets'=>'@app/themes/classic/widgets'

          ],
          'baseUrl'=>"/themes/classic",
        ],
    ],

Upvotes: 2

Related Questions