Este componente nos ayuda a crear elementos de un menú, agregándole una clase de CSS extra si estamos ubicados en la misma ruta a la que se está apuntando el link., (*1)
Esto ha sido creado a modo de ejercicio y por lo mismo es de uso público y se aceptan todo tipo de opiniones y comentarios., (*2)
La clase base utilizada por los íconos es glyphicon, la misma que utiliza Bootstrap, pero que se puede cambiar al generar el archivo de configuración local, (*3)
Instalación
Paso 1: Instalación a través de composer
composer require "catalejo/menuelement":"dev-master"
Paso 2: Agregar el ServiceProvider y Facade
En el archivo config/app.php agregar:, (*4)
...
'providers' => [
'Catalejo\MenuElement\MenuElementServiceProvider',
],
...
'aliases' => [
'MenuElement' => 'Catalejo\MenuElement\MenuElement',
]
Paso 3: Generar los archivos de configuración local
php artisan vendor:publish --force
Al hacer esto, se copia un archivo de configuración desde el paquete a la ruta /config/menuelement.php, (*5)
Ejemplos
En una vista o partials, en donde se tenga un menu de navegación, utilicen esto:, (*6)
<ul>
{!! MenuElement::make('home_path','HOME', ['icon' => 'glyphicon-home']) !!}
{!! MenuElement::make('contact_path','Contacto', ['icon' => 'glyphicon-envelope']) !!}
</ul>
Si tenemos definidas estas rutas:, (*7)
Route::get('home', [
'as' => 'home_path',
'uses' => 'HomeController@index'
]);
Route::get('contacto', [
'as' => 'contact_path',
'uses' => 'ContactController@index'
]);
Y si estamos ubicados en el home, ésto da como resultado:, (*8)
<ul>
<li class="active"><a href="http://app.dev"><span class="glyphicon glyphicon-home" aria-hidden="true"></span>HOME</a></li>
<li class=""><a href="http://app.dev/contacto"><span class="glyphicon glyphicon-envelope" aria-hidden="true"></span>Contacto</a></li>
</ul>