spiffy / spiffy-navigation
Zend Framework 2 Module that aims to replace Zend\Navigation
Installs: 78 687
Dependents: 4
Suggesters: 3
Security: 0
Stars: 22
Watchers: 5
Forks: 17
Open Issues: 9
Requires
- php: >=5.3.3
- zendframework/zend-console: ~2.2
- zendframework/zend-eventmanager: ~2.2
- zendframework/zend-form: ~2.2
- zendframework/zend-modulemanager: ~2.2
- zendframework/zend-mvc: ~2.2
- zendframework/zend-permissions-acl: ~2.2
- zendframework/zend-permissions-rbac: ~2.2
- zendframework/zend-serializer: ~2.2
- zendframework/zend-servicemanager: ~2.2
- zendframework/zend-stdlib: ~2.2
- zendframework/zend-uri: ~2.2
- zendframework/zend-view: ~2.2
Requires (Dev)
- phpunit/phpunit: 3.7.*
- satooshi/php-coveralls: dev-master
- zendframework/zend-config: ~2.2
Suggests
- zend/zend-config: To use the ConfigProvider (yaml, xml support)
This package is not auto-updated.
Last update: 2022-02-01 12:22:15 UTC
README
SpiffyNavigation is a navigation module for ZF2 intended to be a replacement for Zend\Navigation when ZF3 is able to break BC.
Project Status
Requirements
- PHP 5.3 or higher
- Zend Framework 2
Installation
Installation of SpiffyNavigation uses composer. For composer documentation, please refer to getcomposer.org.
Installation steps
-
cd my/project/directory
-
create a
composer.json
file with following contents:{ "require": { "spiffy/spiffy-navigation": "dev-master" } }
-
install composer via
curl -s http://getcomposer.org/installer | php
(on windows, download http://getcomposer.org/installer and execute it with PHP) -
run
php composer.phar install
-
open
my/project/directory/configs/application.config.php
and add the following key to yourmodules
:'SpiffyNavigation',
Providers
Providers let you create your navigation containers from various sources. The following providers are included out of the box:
- array: builds a container from an array.
- config: builds a container from a file using Zend\Config.
- json: builds a container from a json string.
Creating containers
Creating navigation containers is done via the module configuration using the spiffy_navigation
key. The containers
array can take two types of values: a string and an array. If you pass a string the container will be created from a
provider matching the name if it exists, pulled from the service manager or instantiated directly. If you pass an array
the container is built using the ContainerFactory::create() method.
<?php // module.config.php return array( 'spiffy_navigation' => array( 'containers' => array( 'default' => array( array( 'options' => array( 'uri' => 'http://www.github.com', ), 'attributes' => array( 'class' => 'foo', 'target' => '_blank', 'name' => 'github' ) ), array( 'options' => array( 'label' => 'Home', 'route' => 'home', ), 'attributes' => array( 'name' => 'Home' ) 'pages' => array( // ... ) ) ), 'serviceManager' => 'My\ServiceManager\Alias', 'class' => 'My\Class\Instantiation', 'json_provider' => 'mynav', ), 'providers' => array( 'mynav' => array( 'type' => 'json', 'options' => array( 'json' => file_get_contents(__DIR__ . '/navigation/mynav.json') ) ) ) ) );
Page options
- label: The label for the element in view helpers.
- anchor: An optional anchor to append to the uri.
- route: The route to use for assembling the uri.
- uri: The direct uri to use (use instead of route).
- params: Optional params to include during route assembly.
- query_params: Optional params to include in the query string during assembly.
Rbac specific options
- role: required The role to use to determine if access is granted.
- permission: required The permission to use to determine if access is granted.
- assertion: The assertion to use to determine if access is granted.
Using the view helpers
Once you have created a container using a view helper is as simple as putting:
<?php echo $this->helperName('containerName');
NavigationMenu
Quick Start
<?php // in view script echo $this->navigationMenu('containerName'); // or echo $this->navigationMenu()->renderMenu('containerName', $options); // or echo $this->navigationMenu()->renderPartial('containerName', 'partialName');
Options
- ulClass: The class to use when generating the ul.
- minDepth: Minimum render depth.
- maxDepth: Maximum render depth.
- activeClass: Active class to use for the active element.