alcalyn / twig-extension-onpath
Twig extension for Symfony 2, display a string depending on current route (usefull for active menu hover).
Installs: 1 697
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php: >=5.3.2
- symfony/http-foundation: ~2.1
- twig/twig: ~1.0
This package is not auto-updated.
Last update: 2024-11-13 08:15:34 UTC
README
Twig extension for Symfony 2, display a string depending on current route (usefull for active menu hover).
Requires:
- php >= 5.3.2
- Twig >= 1.0
- Symfony2 >= 2.1
Installation
Through composer:
{ "require": { "alcalyn/twig-extension-onpath": "dev-master" } }
Configuration
For Silex, see OnPath integration guide for Silex.
For Symfony2, see below:
Just register it as a service.
Warning: If you are using Symfony < 2.4, don't use this declaration, but the next one.
twig.extension.onpath: class: Alcalyn\Extension\Twig\OnPath calls: - [ setRequestStack, [ @request_stack ] ] tags: - { name: twig.extension }
For Symfony < 2.4:
twig.extension.onpath: class: Alcalyn\Extension\Twig\OnPath scope: request calls: - [ setRequest, [ @request ] ] tags: - { name: twig.extension }
Using
You can do in your Twig template:
{{ 'Hello'|onpath('home', 'user-index') }}
That displays 'Hello' only if you are on one of these routes: home
, user-index
.
Note: You can enter more routes names.
So you can do for example in a menu navbar:
<nav> <ul> <li class="{{ 'active'|onpath('home') }}"> <a href="{{ path('home') }}">Home</a> </li> <li class="{{ 'active'|onpath('blog', 'blog_post', 'blog_comment') }}"> <a href="{{ path('blog') }}">Blog</a> </li> <li class="{{ 'active'|onpath('about') }}"> <a href="{{ path('about') }}">About</a> </li> </ul> </nav>