Устанавливаем bootBox.js (bootboxjs.com) с помощью composer, для этого открываем консоль, переходим в папку с проектом и запускаем следующую команду:
composer require --prefer-dist bower-asset/bootbox "*"
Далее создаем файл с именем BootboxAsset.php рядом с AppAsset.php в папке assets вашего проекта, для подключения необходимых скриптов, со следующим содержанием:
<?php
namespace app\assets;
class BootboxAsset extends \yii\web\AssetBundle
{
    public $sourcePath = '@bower/bootbox';
    public $css = [
    ];
    public $js = [
        'bootbox.js'
    ];
}
После чего, нам необходимо переопределить стандартный yii.confirm. Для этого создайте папку js (если ее еще нет) в вашем проекте @app/web/js, а в ней js файл yii.confirm.overrides.js со следующим содержимым:
yii.confirm = function(message, ok, cancel) {
    bootbox.confirm(message, function(result) {
        if (result) { !ok || ok(); } else { !cancel || cancel(); }
    });
}
Далее добавим js файл в Yii2-asset-bundle. Для этого откройте @app/assets/AppAsset.php, добавьте в него js файл yii.confirm.overrides.js и зависимость BootboxAsset для подключения необходимых скриптов к сайту. Файл @app/assets/AppAsset.php будет выглядеть следующим образом:
<?php
namespace app\assets;
use yii\web\AssetBundle;
class AppAsset extends AssetBundle
{
    public $basePath = '@webroot';
    public $baseUrl = '@web';
    public $css = [
        'css/site.css',
    ];
    public $js = [
        //js переопределяющий yii.confirm
        'js/yii.confirm.overrides.js',
    ];
    public $depends = [
        'yii\web\YiiAsset',
        'yii\bootstrap\BootstrapAsset',
        //импорт файлов BootboxAsset
        'app\assets\BootboxAsset',
    ];
}
На этом все. Давайте проверим, откроем любой список управления записями и нажмем удалить для вызова диалога подтверждения. До внесения изменений было так:
После того как мы подключили BootboxAsset:
Пример вызова confirm диалога для кнопки:
<?php
use yii\helpers\Html;
//...
echo Html::submitButton(
    'Кнопка',
    [
        'class' => 'btn',
        'data-confirm' => Yii::t('yii', 'Вы точно хотите это сделать?'),
    ]
);
Пример описан для yii2 basic, но внедрить его для advanced шаблона не составит труда.
devreadwrite.com
            
    
                    


                                Подборка адаптивных шаблонов для вашей CMS
                            
                                Статьи по 
                                Как получить и установить HTTPS сертификат на сайта
                            
Комментарии
Интересно, почему это не реализовано из коробки?
ОтветитьВозьму на вооружение B-)
ОтветитьОпределенно полезная статья, +1
ОтветитьА можно то же самое, но для alert'a сделать?
ОтветитьВозможно, еще не пробовал
ОтветитьЗамечательно, из всего нета по этой теме единственная толковая статья
Ответить