xruff / navigation
Nette 扩展 - 为面包屑导航
v2.0
2020-04-18 19:24 UTC
Requires
- nette/application: ^3.0
Requires (Dev)
- vanio/coding-standards: ^0.1@dev
This package is auto-updated.
Last update: 2024-09-19 04:42:27 UTC
README
原始代码 Jan Marek.
需求
该包需要 PHP 7.0 或更高版本
安装
安装 XRuff/Navigation 的最佳方式是使用 Composer
$ composer require xruff/navigation
或在 composer.json 文件中添加包
{ "require": { "xruff/navigation": "dev-master" } }
文档
在 config.neon 中注册配置。
配置有两个可选参数 - breadcrumbsTemplate
和 menuTemplate
.
extensions: navigation: XRuff\Components\Navigation\DI\NavigationExtension # and optional settings for custom templates navigation: breadcrumbsTemplate: %appDir%/components/breadcrumbs.latte
基本呈现器
use Nette; use XRuff\Components\Navigation\Navigation; abstract class BasePresenter extends Nette\Application\UI\Presenter { /** @var Navigation @inject */ public $navigationFactory; protected function createComponentNavigation($name) { $nav = $this->navigationFactory->create($this); $nav->setupHomepage('Homepage', $this->link('Homepage:')); return $nav; } }
另一个从我们的 BasePresenter 扩展的呈现器
use XRuff\Components\Navigation\Navigation; class SomePresenter extends BasePresenter { /** @var XRuff\Components\Navigation\Navigation $nav */ private $nav; protected function startup() { parent::startup(); $this->nav = $this['navigation']->add('Company name', $this->link('Company:')); } public function renderDefault() { $this->nav = $this->nav->add('Overview', false); $this->nav->setCurrent(true); } public function renderDepartment() { $this->nav = $this->nav->add('Department name', false); $this->nav->setCurrent(true); } public function renderOther() { $sec = $this->nav->add('Section', $this->link('Category:', ['id' => 1])); $article = $sec->add('Article', $this->link('Article:', ['id' => 1])); $this->nav->setCurrentNode($article); // or $article->setCurrent(TRUE); } }
template.latte (面包屑模板与 Bootstrap 3 兼容)
... </head> <body> {control navigation:breadcrumbs} ...