uhi67 / umenu
适用于 Yii2 的通用菜单
Requires
- yiisoft/yii2: ^2.0.13
README
适用于 Yii2 的通用菜单,支持在 gridview 中添加页脚表单
版本 1.1.4 -- 2021-06-18
安装
通过 composer 安装此扩展是首选方式。
要安装,请运行
composer require uhi67/umenu "*"
或添加
"uhi67/umenu" : "*"
或从 github 克隆
git clone https://github.com/uhi67/umenu
用法
标题菜单
在控制器操作中使用
return [
'model' => $this->findModel($id),
'mode' => $editmode ? 'edit' : 'view',
'titleMenuItems' => [
[
'visible' => $editmode,
'enabled' => Yii::$app->user->can('/contract/update'),
'title' => Yii::t('app', 'Save details data'),
'icon' => 'glyphicon-ok',
'action' => "javascript:$(this).closest('div.block').find('form').get(0).submit();",
],
[
'enabled' => Yii::$app->user->can('/contract/update'),
//'caption'=>'Edit',
'title' => Yii::t('app', 'Edit contract details'),
'icon' => $editmode ? 'glyphicon-remove' : 'glyphicon-pencil',
'action' => $editmode ? '/contract/view/'.$id : '/contract/edit/'.$id,
],
[
'enabled' => Yii::$app->user->can('/contract/delete'),
//'caption'=>'Delete',
'title' => Yii::t('app', 'Delete contract'),
'icon'=>'glyphicon-trash',
'action'=>'/contract/delete/'.$id,
'confirm' => Yii::t('app', 'This will delete the contract. Ary you sure?')
],
[
'title' => 'Lista',
'icon' => 'glyphicon-list',
'action' => '/contract',
],
],
];
在视图中使用
uhi67\umenu\UMenuAsset::register($this); // or put this into the global layout
UMenu::showMenu($titleMenuItems, 'title-menu');
有关详细的菜单属性,请参阅 UMenu::showMenu。
GridView 中的上下文菜单和页脚表单功能
上下文菜单是与 gridview 或类似列表对象相关联的菜单。上下文菜单可能包含分组项,这些项仅在相关 gridview 中选择一个或多个项时才可见。如果将菜单放在与 gridView 相同的表单中,则GridView 关联是自动的。
页脚表单是 gridview 对象页脚行的隐藏表单。上下文菜单按钮显示该表单。表单包含一个关闭按钮,可以再次隐藏它。具有隐藏页脚表单的操作不会发送页脚表单字段(也不会执行验证)。
在您的控制器类中使用
// action on selection
$selection = Yii::$app->request->post('selection');
// list action
return [
...
'$contextMenuItems' => [
[
'enabled' => $can_grant,
'caption' => Yii::t('app', 'Add'),
'icon' => 'glyphicon-plus',
'class' => 'footer-form-show', // no action needed: button will show the footer form
'title' => '...',
'badge' => '3', // notification about new items under this menu
'items' => [] // drop-down subitems
],
[
'enabled'=>$can_grant,
'caption' => Yii::t('app', 'Delete'),
'icon'=>'glyphicon-trash',
'data' => ['action'=>'...'], // Action will get keys of the selected rows (see above)
'group'=>1, // Indicates this button is visible only and operates on selected rows. Uses data-action to send the form to
'title' => '...',
],
],
'footerForm' => new RoleForm(['userid'=>$this->itemid]), // Model of footer form data
];
在视图中使用
// Wrap into form (even if footer form is not used: use for row selection)
$form = ActiveForm::begin([
...
'layout' => 'inline',
...
]);
// Indicate using of context-menu and/or footer-form in class
<?= GridView::widget([
'options' => ['class'=>'grid context-menu footer-form'],
'showFooter' => true,
'footerRowOptions' => ['class'=>'footer-form'], // must be hidden first
...
'columns' => [
// First column
[
'class' => 'yii\grid\CheckboxColumn',
'footer' => Html::button(Html::tag('span', '', ['class' => 'glyphicon glyphicon-remove footer-form-close'])),
'visible'=>..., // If user has permission on any group action
],
// Other columns
[
...
'footer'=>$form->field($roleForm, ...) ...
]
// Last column
[
...
'footer' => Html::submitButton(Yii::t('app', 'Create'), ['class' => 'btn btn-primary']),
],
],
'showOnEmpty' => true,
'emptyText' => '...',
]);
?>
<?= Html::activeHiddenInput($roleForm, 'userid') ?>
<?= \uhi67\umenu\UMenu::showMenu($contextMenuItems, 'context-menu'); ?>
<?php ActiveForm::end() ?>
变更日志
版本 1.1.4 -- 2021-06-18
- 为 navItems 分离 linkClass
版本 1.1.3 -- 2020-05-20
- 使用预编译的 CSS
- 移除 bootstrap3 依赖
- 检测新的 fa~ 类
版本 1.1.2 -- 2019-01-29
- 为导航导出添加了通知徽章支持
版本 1.1.1 -- 2019-01-16
- 导航项类
- 导航图标支持
- 添加了图标支持
版本 1.1 -- 2019-01-15
- 添加了 navItems() 方法
版本 1.0.3 -- 2018-11-26
- php 7.2 兼容性
许可证
版权所有 (c) 2017, Uherkovich Péter
uhisoft.hu
版权所有。
"uhi67/umenu" 根据 GNU 通用公共许可证 v3 许可 https://gnu.ac.cn/licenses/gpl-3.0.txt
本程序是自由软件:您可以自由分发和/或修改它,具体请参阅自由软件基金会根据许可证发布的 GNU 通用公共许可证,许可证版本 3,或者(根据您的选择)任何较新版本的许可证。
本程序的分发是希望它对您有用,但没有任何保证;甚至没有隐含的保证,即产品具有适销性或适用于特定用途。有关详细信息,请参阅 GNU 通用公共许可证。
您应已随本程序收到 GNU 通用公共许可证的副本。如果没有,请参阅 https://gnu.ac.cn/licenses/。有关详细信息,请参阅捆绑的 LICENSE.md
文件。