inteve/navigation

Nette 框架的导航组件。

资助包维护!
其他

v3.5.0 2024-05-14 12:08 UTC

This package is auto-updated.

Last update: 2024-09-14 13:07:44 UTC


README

Build Status Downloads this Month Latest Stable Version License

Nette 框架的导航组件。

Donate

安装

下载最新包 或使用 Composer

composer require inteve/navigation

Inteve\Navigation 需要 PHP 7.4 或更高版本以及 Nette 2.2+ 或 3.0+。

使用方法

定义页面

<?php

use Inteve\Navigation\Navigation;

$navigation = new Navigation;
$navigation->addPage('/', 'Homepage');
$navigation->addPage('contact', 'Contact');
$navigation->addPage('news', 'News');
$navigation->addPage('news/2016', 'News 2016');
$navigation->addPage('news/2015', 'News 2015');

$navigation->setDefaultPage('/');
$navigation->setCurrentPage('news/2016');
$navigation->isPageCurrent('news/2016'); // returns bool
$navigation->isPageActive('news'); // returns bool

面包屑导航

<?php

$navigation->addItem('Detail');
$navigation->addItemBefore('/', 'My Website', ':Homepage:default');
$navigation->addItemAfter('news/2016', 'Page 1', ':News:default', array('page' => 1));
$breadcrumbs = $navigation->getBreadcrumbs();

渲染菜单

<?php

use Inteve\Navigation\Navigation;
use Inteve\Navigation\MenuControl;

class NewsPresenter extends Nette\Application\UI\Presenter
{
	/** @var Navigation @inject */
	public $navigation;


	protected function createComponentNewsMenu()
	{
		// render items 'News 2016' & 'News 2015'
		$menu = new MenuControl($this->navigation);
		$menu->setSubTree('news');
		return $menu;
	}


	protected function createComponentSubMenu()
	{
		// Renders submenu by current page
		// for setCurrentPage('news') or setCurrentPage('news/any/thing') it renders items 'news/2016' & 'news/2015'
		// for setCurrentPage('contact') it renders nothing
		$menu = new MenuControl($this->navigation);
		$menu->setSubTree('/');
		$menu->setSubLevel(1);
		return $menu;
	}
}

在 Latte 模板中

{control newsMenu}

渲染面包屑

<?php

use Inteve\Navigation\Navigation;
use Inteve\Navigation\BreadcrumbsControl;

class Presenter extends Nette\Application\UI\Presenter
{
	/** @var Navigation @inject */
	public $navigation;


	protected function createComponentBreadcrumbs()
	{
		return new BreadcrumbsControl($this->navigation);
	}
}

在 Latte 模板中

{control breadcrumbs}

许可证: 新 BSD 许可证
作者:Jan Pecha,https://www.janpecha.cz/