Установка скрипта онлайн чата на сайт, на базе framework Yii2

В статье рассматривается три способа подключения скрипта онлайн чата на сайт. По сути это просто три разных места (файла), где необходимо прописать одну инструкцию. Последний способ менее предпочтительный, т.к. правильно будет подключать скрипт в комплекте ресурсов(assets) или в controller.

Подключение скрипта в assets

  1. В корневой директории сайта, находится папка assets, в ней файл AppAsset.php
  2. В секцию подключения JS файлов дописываем строку подключения скрипта чата.
  3. 
    <?php
    
    namespace app\assets;
    
    use yii\web\AssetBundle;
    
    class AppAsset extends AssetBundle
    {
        public $jsOptions = ['position' => \yii\web\View::POS_HEAD];
        
        public $basePath = '@webroot';
        public $baseUrl = '@web';
        public $css = [
            'css/site.css',
        ];
        public $js = [
            'https://san-consultant.ru/st/st_clients/js/san_bbc.js'
        ];
        public $depends = [
            'yii\web\YiiAsset',
            'yii\bootstrap\BootstrapAsset',
        ];
    }
    
    					
  4. Готово! Сохраните изменения. Скрипт будет подключаться на всех страницах сайта.
Примечание.

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

Подключение скрипта в controller

  1. В корневой директории сайта, находится папка controllers, в ней находятся фал(ы) контроллеров. Открываем файл необходимого контроллера. По умолчанию, в случае простого сайта, это SiteController.php
  2. Контроллер состоит из действий: actionIndex, actionContact и т.д. Находим действие по умолчанию - actionIndex, и дописываем строку подключения скрипта.
  3. 
    <?php
    
    namespace app\controllers;
    ...
    
    class SiteController extends Controller
    {
      ...
      public function actionIndex()
      {
        $this->view->registerJsFile('https://san-consultant.ru/st/st_clients/js/san_bbc.js');
        ...
        return $this->render('index');
      }	
    }
    
    					
  4. Готово! Сохраните изменения. Скрипт будет подключаться на странице, соответствующей действию по умолчанию, например san-consultant.ru
Примечание.

Эту же строку можно разместить в файле вида, в данном случае views/site/index.php . Запись будет иметь вид:
$this->registerJsFile(...);

Подключение скрипта в layout

  1. Открываем файл шаблона по умолчанию: views/layout/main.php
  2. В секцию head, дописываем HTML тег <script>
  3. 
    ...
    <head>
      ...
      <script src="https://san-consultant.ru/st/st_clients/js/san_bbc.js"></script>
    </head>
    ...
    
    					
  4. Готово! Сохраните изменения. Чат будет подключаться на страницах сайта использующих этот шаблон.