juanintorres/menu-elements

Generador de elementos de un menú, ésto fue desarrollado a modo de ejercicio y por lo mismo no es un desarrollo muy acabado

v1.0 2017-08-17 12:51 UTC

This package is not auto-updated.

Last update: 2024-04-28 01:29:26 UTC


README

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.

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.

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

Instalación

Paso 1: Instalación a través de composer

composer require "juanintorres/menuelement":"dev-master"

Paso 2: Agregar el ServiceProvider y Facade

En el archivo config/app.php agregar:

...
'providers' => [
    Juanintorres\MenuElement\MenuElementServiceProvider::class,
],
...
'aliases' => [
    'MenuElement'   => Juanintorres\MenuElement\MenuElement::class,
]

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

Ejemplos

En una vista o partials, en donde se tenga un menu de navegación, utilicen esto:

<ul>
    {!! MenuElement::make('home_path','HOME', ['icon' => 'glyphicon glyphicon-home']) !!}
    {!! MenuElement::make('contact_path','Contacto', ['icon' => 'glyphicon glyphicon-envelope']) !!}
</ul>

Si tenemos definidas estas rutas:

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:

<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>