kartik-v / yii2-dialog
为 Yii 2.0 框架提供的 bootstrap3-dialog 资产包。
Requires
- kartik-v/yii2-krajee-base: >=3.0.0
README
yii2-dialog
为 Yii Framework 2.0 提供的弹窗通知对话框组件,可以轻松配置和初始化。它为原生的 JavaScript alert、confirm 和 prompt 对话框提供了 polyfill。它包括通过基于并增强自 bootstrap3-dialog 的 Krajee 插件实现的内置丰富对话框支持。此插件使使用 Bootstrap 的模态对话框更加灵活。Krajee 的增强还包括对 Bootstrap 5.x、4.x 和 3.x 的增强支持。该库提供的主要功能包括
- 控制您想要如何渲染 JAVASCRIPT 对话框。内置以下对话框类型的快速支持
- ALERT 对话框
- CONFIRM 对话框
- PROMPT 对话框
- 自定义对话框
- 包括一个 jQuery 插件
krajeeDialog
(由 Krajee 创建),允许用户轻松配置 bootstrap3-dialog 库,或使用原生的 JS 提示组件,或配置任何第三方 JS 通知库。 - 可以通过覆盖和增强使用 yii 的
data-confirm
方法的链接的确认对话框来渲染漂亮的对话框。 - 通过
kartik\dialog\Dialog
小部件进行高级配置。此小部件允许用户全局设置原生的 JS alert 或 bootstrap3-dialog 设置。
如何通过拉取请求进行贡献?
请参阅此 git workflow for contributors。
安装
安装此扩展的首选方式是通过 composer。
先决条件
注意:请在扩展的 composer.json 中检查此扩展的要求和依赖关系。在安装此扩展之前,您必须在应用程序根目录中的 composer.json 文件中将
minimum-stability
设置为dev
,或者如果您的minimum-stability
设置为除dev
之外的任何值,则在您的 composer.json 文件的 require 部分中设置以下内容
kartik-v/yii2-dialog: "@dev"
请参阅有关设置应用程序 composer.json 的 minimum-stability
设置的 web tip /wiki。
发布更改
请参阅 CHANGE LOG 以了解各种版本的详细信息。
安装
运行以下命令之一
$ php composer.phar require kartik-v/yii2-dialog "@dev"
或
"kartik-v/yii2-dialog": "@dev"
将其添加到您的 composer.json 文件的 require 部分中。
文档和演示
请查看 Krajee Yii 2 Demos 中的 文档和演示,了解扩展的使用方法。
用法
基本用法
在您的视图中,您可以加载资产包并渲染 JavaScript 来加载 bootstrap 3 模态对话框。
// view.php use kartik\dialog\DialogAsset; DialogAsset::register($this); $this->registerJs("\$('#your-btn-id').on('click', function(){BootstrapDialog.alert('I want banana!');});");
高级用法(小部件)
在您的视图或视图布局文件中,您可以按如下方式渲染小部件。这将不会直接显示任何内容 - 但会渲染所有初始化 BootstrapDialog 所需的 JavaScript 和 CSS。
use kartik\dialog\Dialog; // Example 1 echo Dialog::widget([ 'libName' => 'krajeeDialog', 'options' => [], // default options ]); // Example 2 echo Dialog::widget([ 'libName' => 'krajeeDialogCust', 'options' => ['draggable' => true, 'closable' => true], // custom options ]);
然后,在您的视图中,您可以编写自己的JavaScript来渲染您的警告框、确认框和提示框(或自定义对话框)。例如,当点击HTML按钮 btn-1
和 btn-2
时,对话框可以像下面这样弹出
// NOTE: This is a javascript code and must be run in Yii via 'registerJs' // or via a JS File in an AssetBundle // use krajeeDialog object instance initialized by the widget $('#btn-1').on('click', function() { krajeeDialog.alert('An alert'); // or show a confirm krajeeDialog.confirm('Are you sure', function(out){ if(out) { alert('Yes'); // or do something on confirmation } }); }); // use krajeeDialogCust object instance $('#btn-2').on('click', function() { krajeeDialogCust.alert('An alert'); // or show a prompt krajeeDialogCust.prompt({label:'Provide reason', placeholder:'Upto 30 characters...'}, function(out){ if (out) { alert('Yes'); // or do something based on the value of out } }); });
覆盖Yii的确认对话框
Yii通过在链接上设置data-confirm
属性来渲染原生的确认对话框。此小部件使用Krajee Dialog增强了并美化了原生确认对话框。此行为可以通过overrideYiiConfirm
属性进行控制,默认为true
。这在渲染链接和动作按钮(如GridView动作列的删除按钮)时可能很有用。
// the rendered link will automatically show a Krajee Dialog Confirmation dialog use kartik\dialog\Dialog; echo Dialog::widget(['overrideYiiConfirm' => true]); echo Html::a( 'Delete', ['/item/delete', 'id' => $model->id], [ 'data-confirm' => 'Are you sure to delete this item?' 'data-method' => 'post' ] );
许可证
yii2-dialog是在BSD 3-Clause许可证下发布的。有关详细信息,请参阅捆绑的LICENSE.md
文件。