я юзаю костыль
<?php
namespace app\components;
use Yii;
use yii\base\InvalidConfigException;
use yii\helpers\ArrayHelper;
use yii\helpers\FileHelper;
class Theme extends \yii\base\Theme
{
public $active;
/**
* @inheritdoc
*/
public function applyTo($path)
{
$pathMap = ArrayHelper::getValue($this->pathMap,$this->active,$this->pathMap);
if (empty($pathMap)) {
if (($basePath = $this->getBasePath()) === null) {
throw new InvalidConfigException('The "basePath" property must be set.');
}
$pathMap = [Yii::$app->getBasePath() => [$basePath]];
}
$path = FileHelper::normalizePath($path);
foreach ($pathMap as $from => $tos) {
$from = FileHelper::normalizePath(Yii::getAlias($from)) . DIRECTORY_SEPARATOR;
if (strpos($path, $from) === 0) {
$n = strlen($from);
foreach ((array) $tos as $to) {
$to = FileHelper::normalizePath(Yii::getAlias($to)) . DIRECTORY_SEPARATOR;
$file = $to . substr($path, $n);
if (is_file($file)) {
return $file;
}
}
}
}
return $path;
}
}
так как переключение шаблонов из контроллера не работает, карл!!!
в конфигах
'view'=>[
'theme' => [
'class'=>'app\components\Theme',
'active'=>'theme-default',
'pathMap' => [
'theme-default' => [
'@app/views' => ['@app/themes/theme-default/views']
],
'theme-dashboard' => [
'@app/views' => ['@app/themes/theme-dashboard/views']
]
]
],
],
В контролере тема указывается так
$this->view->theme->active = 'theme-dashboard';
Если вьюхи нету в папке темы то поиск будет искаться в стандартных папках views
Про стили вам ответили