2017 © Pedro Peláez
 

library navigation

Navigation manager for Nette framework

image

holabs/navigation

Navigation manager for Nette framework

  • Thursday, November 9, 2017
  • by holantomas
  • Repository
  • 1 Watchers
  • 0 Stars
  • 8 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 3 Versions
  • 33 % Grown

The README.md

Holabs/Navigation

Navigation manager for Nette framework, (*1)

Installation

Requirements: - php 7.1+ - nette/utils - holabs/utils, (*2)

composer require holabs/navigation

Configuration

extensions:
    holabs.navigation: Holabs\Navigation\Bridges\Nette\NavigationExtension


# OPTIONAL - You can predefine navigation sections
services:
    holabs.navigation.manager:
        setup:
            - createSection('main')
            - createSection('settings', 'System settings')

Using

Your Presenter, module or whatever now can looks like this:, (*3)

<?php 

namespace App\Presenters;

use Holabs\Navigation\Manager;
use Nette\Application\UI\Presenter;

/**
 * @author       Tomáš Holan <mail@tomasholan.eu>
 * @copyright    Copyright © 2017, Tomáš Holan [www.tomasholan.cz]
 */
abstract class BasePresenter extends Presenter {

    /** @var Manager @inject */
    public $navigation;


    public function startup() {
        parent::startup();

        $section = $this->navigation->getSection('main');
        $section->createItem('dashboard', 'Main dashboard')
            ->setLink('Dashboard:default')
            ->setIcon('dashboard')
            ->setLabel('new', 'red')
            ->addActiveCondition(function() { // Set active callback
                return $this->isLinkCurrent('Dashboard:*');
            })
            ->addRenderCondition(function () { // Set render callback
                return $this->getUser()->isAllowed('Dashboard', 'default');
            });

        $section = $this->navigation->getSection('settings');
        $section->createItem('users', 'Users settings')
            ->setLink('Users:default')
            ->setIcon('group', 'green')
            ->addActiveCondition(function() {
                return $this->isLinkCurrent('Users:*');
            })
            ->addRenderCondition(function () {
                return $this->getUser()->isAllowed('Users', 'default');
            });
    }

    public function beforeRender() {
        parent::beforeRender();
        $this->template->sections = $this->navigation->getSections();
    }
}


The Versions

09/11 2017

dev-master

9999999-dev

Navigation manager for Nette framework

  Sources   Download

GPL-3.0 BSD-3-Clause GPL-2.0

The Requires

 

navigation manager nette

09/11 2017

1.0.1

1.0.1.0

Navigation manager for Nette framework

  Sources   Download

GPL-3.0 BSD-3-Clause GPL-2.0

The Requires

 

navigation manager nette

09/11 2017

1.0.0

1.0.0.0

Navigation manager for Nette framework

  Sources   Download

GPL-3.0 BSD-3-Clause GPL-2.0

The Requires

 

navigation manager nette