juy/active-menu

The helper class for Laravel applications to get active class base on current route name

Installs: 1 956

Dependents: 0

Suggesters: 0

Stars: 7

Watchers: 2

Forks: 2

Open Issues: 0

Type:laravel-package

1.1.3 2017-03-16 16:19 UTC

README

Latest Version on Packagist Software License

Helper class for Laravel applications to get active class base on current route name (It's only detect "route name, this is enough for us.").

Supported/Tested Laravel versions

  • Laravel 5.1 | 5.2 | 5.3 | 5.4

Requirements

  • Laravel >= 5.1 : Laravel 5.1 or above.
  • PHP >= 5.5.9 : PHP 5.5.9 or above on your machine.

Installation

Step:1 Install through composer

Install

➜ composer require juy/active-menu

Manual install (alternative)

Simply add the following to the "require" section of your composer.json file, and run composer update command.

"juy/active-menu": "^1.1"

Remove

➜ composer remove juy/active-menu

Step 2: Add the service provider

Append this line to your service providers array in config/app.php.

Juy\ActiveMenu\ServiceProvider::class,

Step 3: Publish config

Publish config file.

➜ php artisan vendor:publish --provider="Juy\ActiveMenu\ServiceProvider" --tag="config"

Config overview

You can modify css active class with custom one (default is 'active') in config/activemenu.php (after publish).

return [

    // The default css class value if the request match given route name
    'class' => 'active',

];

Usage, samples

Alias/Facade

Active::route('route.name');

Application container

app('active')->route('route.name');

Helper function

active_route('route.name');

Wildcard samples

Active::route('route.name.*');
active_route('route.name.*');

Multi route with wilcard

Active::route(['route.name1.*', 'route.name2.*']);
active_route(['route.name1.*', 'route.name2.*']);

Custom blade directive

@ifActiveRoute('route.name')
    <p>Foo</p>
@else
    <p>Bar</p>
@endif

Real life usage

<li class="item {{ active_route('admin.index') }}">
    <a href="admin/index">Dashboard</a>
</li>

License

This project is open-sourced software licensed under the MIT License.