Шаблон используемый по умолчанию находится в
/views/layouts/main.php

Изменить шаблон вывода информации можно разными способами.
Давайте рассмотрим все эти способы.

1. Глобальная смена файла общего шаблона (замена для main.php)
Для этого идем в конфигурационный фаил
/config/web.php
находим

Код:

$config = [

и добавляем в него следующий параметр (в нашем случае, шаблон находится в файле /views/layouts/basic.php)

Код:

'layout' => 'basic',

пример

Код:

$config = [
    'id' => 'basic',
    'basePath' => dirname(__DIR__),
    'bootstrap' => ['log'],
    'layout' => 'basic',
    'aliases' => [

Чаще нам нужно сделать разные шаблоны для разных страниц сайта.
Для этого мы можем прописать шаблон как отдельному контроллеру, так и отдельно любому методу в контроллере.

2. Смена шаблона для контроллера.
Открываем необходимый контроллер и прописываем ему

Код:

public $layout = 'basic'; //где basic наш нужный шаблон (basic.php)

— теперь данный контроллер быдет выводиться через шаблон
/views/layouts/basic.php

3. Смена шаблона в методе.
Просто в метод добавляем параметр

Код:

$this->layout = 'basic';//где basic наш нужный шаблон (basic.php)

Настройка файлов стилей и скриптов.

По умолчанию находится в файле
/assets/AppAsset.php

сами файлы стилей и скриптов находятся в папке /web/

очень важно не забыть подключить фаил стилей скриптов в нашем шаблоне

Код:

<?php
use app\assets\AppAsset;

AppAsset::register($this);
?>

Далее нам нужно распределить следующие параметры по своим местам на странице (нужны они для вставки стилей и скриптов в нужном нам месте)

<?php $this->beginPage() ?>
располагаем перед
<!doctype html>

<?php $this->head() ?>
располагаем перед
</head>

<?php $this->beginBody() ?>
располагаем после
<body>

<?php $this->endBody() ?>
располагаем перед
</body>

<?php $this->endPage() ?>
располагаем в конце страницы

Для того что-бы разместить (к примеру скрипт) в одной из вышеуказанных «точек»,
нужно добавить следующий код
public $jsOptions = [
‘position’ => \yii\web\View::POS_END
];

в фаил где мы прописывали сами скрипты (после объявления самих скриптов)
/assets/AppAsset.php

Пример

Код:

class AppAsset extends AssetBundle
{
    public $basePath = '@webroot';
    public $baseUrl = '@web';
    public $css = [
        'css/site.css',
        'css/media.css',
    ];
    public $js = [
        'js/scripts.js',
    ];
    public $jsOptions = [
        'position' => \yii\web\View::POS_END
    ];
    public $depends = [
        'yii\web\YiiAsset',
        'yii\bootstrap\BootstrapAsset',
    ];
}

POS_END — выведет скрипты в конце страницы
POS_HEAD — выведет скрипты в HEAD’e
POS_BIGIN — выведет скрипты после тега <body>

Ну и самое главное это
<?= $content ?>
Размещаем там где нам нужно выводить контент

Подключение стлей или (и) скриптов на отдельно взятой странице.

В нужной вьюхе (view) прописываем регистрацию скрипта
$this->registerJsFile(‘@web/js/scripts.js’)
если нам нужно, что-бы наш скрипт подгружался после загрузки jQuery (например),
нужно прописать зависимость (depends)
$this->registerJsFile(‘@web/js/scripts.js’, [‘depends’ => ‘yii\web\YiiAsset’])

с css стилями все делается аналогично

Установка lang=ru в <html lang=»ru»>

Заходим в конфиг web.php
после

$config = [

дописываем

‘language’ => ‘ru-RU’,

сохраняем