今回は新しいプラグイン「bootbox」を試してみました。
Yii2 ではインターフェイスをより美しくするために Bootstarp が使用されていますが、唯一の欠点は、Gridview テーブルのアクションで、削除関数のポップアップ ウィンドウが Bootstrap と少し矛盾していることです。このソリューションをオンラインで共有してください。
Bootbox.js は、Bootstrap の Modal (モーダル ボックス) に基づいて、単純なプログラム可能なダイアログ ボックスを作成するために使用される小さな JavaScript ライブラリです。
公式説明
http://bootboxjs.com/v3.x/index.html
Bootbox.js のダウンロード
オープンソースの bootbox.js のダウンロードは GitHub で見つけることができます
https://github.com/makeusabrew/bootbox
このプラグインの使用方法は?
Yii2 の GridView と組み合わせると、Bootbox スタイルのポップアップ ウィンドウをカスタマイズできます:
1. yii.js モジュールをカバーします
Yii2 に付属する yii.js は、確認ダイアログ ボックスの生成とアクション操作の実行を定義します。
目標を達成するには、オーバーライドする js メソッドを使用します。
パス @app/web/js/ の下に main.js などの JavaScript ファイルを作成します。
コードは次のとおりです:
yii.allowAction = function ($e) { var message = $e.data('confirm'); return message === undefined || yii.confirm(message, $e); }; // --- Delete action (bootbox) --- yii.confirm = function (message, ok, cancel) { bootbox.confirm( { message: message, buttons: { confirm: { label: "OK" }, cancel: { label: "Cancel" } }, callback: function (confirmed) { if (confirmed) { !ok || ok(); } else { !cancel || cancel(); } } } ); // confirm will always return false on the first call // to cancel click handler return false; }
2. リソース パッケージを登録します
bootbox.js ファイルと main.js ファイルを登録する必要があります。
ファイルの変更: @app/assets/Assets.php
コードは次のとおりです:
namespace backend\assets; use yii\web\AssetBundle; class AppAsset extends AssetBundle { public $basePath = '@webroot'; public $baseUrl = '@web'; public $css = ['css/site.css']; // 注册js资源 public $js = ['js/bootbox.js', 'js/main.js']; public $depends = [ 'yii\web\YiiAsset', 'yii\bootstrap\BootstrapAsset', ]; }
3. カスタムモーダルボックス
bootbox.js のソース コードを理解すると、bootbox.js が bootstarp のモーダル ボックスを使用していることがわかります。必要に応じてカスタマイズできます。
bootbox.js ソース コードの「templates」変数を変更し、モーダル スタイルをカスタマイズします。
比較結果を見てください:
変更前:
変更後:
すぐに快適になり、ポップアップ機能もそれほど不安定ではなくなりました。このようなポップアッププラグインはたくさんありますが、他のプラグインも同様に実装できると思います。
以上がこの記事の全内容です。皆さんに気に入っていただければ幸いです。