uhi67/umenu

适用于 Yii2 的通用菜单

安装: 201

依赖者: 0

建议者: 0

安全: 0

类型:yii2-extension

1.1.4 2021-06-18 09:44 UTC

This package is auto-updated.

Last update: 2024-09-18 16:51:38 UTC


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 文件。