bajzany/adminlte-menu

此包最新版本(v2.0.0)没有可用的许可证信息。

Nette 框架的 AdminLTE 菜单

安装: 605

依赖者: 0

建议者: 0

安全: 0

星星: 0

关注者: 1

分支: 0

开放问题: 0

语言:CSS

类型:扩展

v2.0.0 2019-07-15 05:35 UTC

This package is auto-updated.

Last update: 2024-08-31 00:35:36 UTC


README

安装

Composer
composer require bajzany/adminlte-menu @dev 
配置
extensions:
	LTEMenu: Bajzany\AdminLTE\DI\AdminLTEMenuExtensions

如何使用

将此菜单注入到您的 basePresenter 中

use MenuTrait;

public function createComponentMenu()
{
	$this->menu->setProjectName("PROJECT_NAME");
	$this->menu->setProjectShortName("SORT_PROJECT_NAME");
	$this->menu->setTranslator("OWN TRANSLATOR");
	return $this->menu->createComponent();
}

在模板中渲染

<!DOCTYPE html>
<html>
<head>
	
</head>

<body class="skin-purple sidebar-mini fixed">
	<div class="wrapper">
	
		//SECTION TOP
		{control menu:top}
		
		//SECTION LEFT
		{control menu:left}
		
		
		// YOUR CONTENT
		<div class="content-wrapper">
			{include content}
		</div>
	</div>
	{include @adminTheme/bottom.latte}
</body>
</html>

如果您想使用面包屑,请在您的内容 latte 中使用此功能

{block content}

{control menu:breadcrumb}

添加到菜单列表

创建一个实现了 Bajzany\AdminLTE\BundleMenu 的 php 类 BuildMenu。这个类有一个 build 方法,参数为 Bajzany\AdminLTE\Menu。

#BuildMenu.php

use Bajzany\AdminLTE\BundleMenu;
use Bajzany\AdminLTE\Menu;
use Bajzany\AdminLTE\Panel\TopPanel\ControlItem;
use Bundles\User\Menu\DropDown\IUserDropDown;
use Chomenko\AutoInstall\AutoInstall;
use Chomenko\AutoInstall\Config;

/**
 * @Config\Tag({"adminLTE.menu"})
 */
class BuildMenu implements BundleMenu, AutoInstall
{

	public function build(Menu $menu)
	{
		
	}

}
左侧面板

用于渲染左侧面板项目。

#BuildMenu.php

namespace Bundles\User\Menu;

use Bajzany\AdminLTE\BundleMenu;
use Bajzany\AdminLTE\Menu;
use Bajzany\AdminLTE\Panel\TopPanel\ControlItem;
use Bundles\User\Menu\DropDown\IUserDropDown;

class BuildMenu implements BundleMenu
{

	public function build(Menu $menu)
	{
		$leftPanel = $menu->getLeftPanel();

		$userGroup = $leftPanel->createGroup('userGroup');
		$userGroup->setTitle('User');
		$users = $userGroup->createItem('users');
		$users->setLabel('Users');
		$users->setIcon('fa fa-users');

		$users->createChild('userList')
			->setLink('User:default')
			->setLabel('List')
			->setIcon('fa fa-user');

		$users->createChild('userProfile')
			->setLink('Profile:default')
			->setLabel('Profile')
			->setIcon('fa fa-user-circle');
	}

}
顶部面板

为了渲染顶部面板项目,您需要一个额外的 Control。

例如,我使用了 UserDropDown。

#BuildMenu.php

namespace Bundles\User\Menu;

use Bajzany\AdminLTE\BundleMenu;
use Bajzany\AdminLTE\Menu;
use Bajzany\AdminLTE\Panel\TopPanel\ControlItem;
use Bundles\User\Menu\DropDown\IUserDropDown;

class BuildMenu implements BundleMenu
{

	public function build(Menu $menu)
	{
		$control = new ControlItem(IUserDropDown::class);
		$menu->getTopPanel()->addControl($control);
	}

}
UserDropDown.php

UserDropDown 必须扩展 Bajzany\AdminLTE\Panel\TopPanel\ItemControl,该接口有两个重写方法:renderContent 和 renderWrapped。这是您的自定义渲染。

#UserDropDown.php

namespace Bundles\User\Menu\DropDown;

use Bajzany\AdminLTE\Panel\TopPanel\ItemControl;
use Nette\Security\User;

class UserDropDown extends ItemControl
{

	/**
	 * @var User @inject
	 */
	public $user;

	public function renderContent()
	{
		$this->setDefault();
		$this->template->user = $this->user->getIdentity();
		$this->template->setFile(__DIR__ . '/userContent.latte');
		$this->template->render();
	}

	public function renderWrapped()
	{
		$this->setDefault();
		$this->template->user = $this->user->getIdentity();
		$this->template->setFile(__DIR__ . '/userControlWrapped.latte');
		$this->template->render();
	}

}
UserDropDown.php 类需要接口工厂
#IUserDropDown.php

namespace Bundles\User\Menu\DropDown;

interface IUserDropDown
{

	/**
	 * @return UserDropDown
	 */
	public function create(): UserDropDown;

}
用于更改当前面包屑标题
public function renderDefault()
{
	$this->changeCurrentBreadcrumbTitle('CUSTOM TITLE');
}