Usuario:ManuelRomero/Laravel/filament
Contenido
[ocultar]Laravel Filament
- Paquete de laravel creado para generar de forma rápida en el backend:
- Interfaces de aplicaciones
- Paneles de control administrativos
- formularios dinámicos
- Tablas con filtros, búsquedas Exportación a Excell CSV Paginación y clasificación
- Gestión de CRUD (Sistema Resource Management)
- Widgets (gráficos, estadísticas y paneles informativos) y dashboards
https://filamentphp.com/docs
- Enfoco paneles de control
https://filamentphp.com/docs/3.x/panels/getting-started
Personalizando vistas
- PAra acceder a las vistas hay que publicarlas (traerlas de vendor/filament a la carpeta de resources:
php artisan vendor:publish --tag=filament-core-views
- Si no se publicaran se puede copiar manualmente
mkdir -p resources/views/vendor/filament cp -r vendor/filament/filament/resources/views/* resources/views/vendor/filament/
Cambiar el logo
- Añadir en el provider el logo (mejor no modificarlo en la vista correspondiente)
class AdminPanelProvider extends PanelProvider { public function panel(Panel $panel): Panel { return $panel ->default() //.... ->brandLogo(asset('images/logo/logo.png')) // Ruta del logo principal ->darkModeBrandLogo(asset('images/logo/logo-dark.png')) // Logo para modo oscuro ->brandLogoHeight('5rem'); // Ajustar el tamaño si es necesario
- Personalizar la Navegación Superior en Filament
En **Filament**, puedes personalizar la navegación superior para adaptarla a las necesidades de tu aplicación. A continuación, te presento algunas opciones y configuraciones que puedes aplicar:
Por defecto, Filament utiliza una barra lateral para la navegación. Si prefieres mover la navegación al área superior, puedes hacerlo utilizando el método `topNavigation()` en tu configuración:
use Filament\Panel; public function panel(Panel $panel): Panel { return $panel // Otras configuraciones... ->topNavigation(); }
Esto trasladará todos los elementos de navegación a la parte superior de tu panel.
Puedes organizar los elementos de navegación en grupos personalizados para una mejor estructura:
use Filament\Navigation\NavigationGroup; use Filament\Panel; public function panel(Panel $panel): Panel { return $panel // Otras configuraciones... ->navigationGroups([ NavigationGroup::make() ->label('Tienda') ->icon('heroicon-o-shopping-cart'), NavigationGroup::make() ->label('Blog') ->icon('heroicon-o-pencil'), NavigationGroup::make() ->label('Configuración') ->icon('heroicon-o-cog-6-tooth') ->collapsed(), ]); }
Esto crea grupos de navegación con íconos y la opción de estar colapsados inicialmente.
Si deseas agregar enlaces personalizados en la navegación superior, puedes hacerlo de la siguiente manera:
use Filament\Navigation\NavigationItem; use Filament\Panel; public function panel(Panel $panel): Panel { return $panel // Otras configuraciones... ->navigationItems([ NavigationItem::make('Analíticas') ->url('https://tusitio.com/analiticas', shouldOpenInNewTab: true) ->icon('heroicon-o-presentation-chart-line') ->group('Reportes') ->sort(3), NavigationItem::make('Inicio') ->label('Inicio') ->url('/') ->icon('heroicon-o-home'), ]); }
Esto añade elementos de navegación que pueden enlazar a URLs internas o externas, con la opción de abrir en una nueva pestaña y asignarles íconos.
4. Personalizar el Menú de Usuario
El menú de usuario, ubicado en la esquina superior derecha, es totalmente personalizable. Puedes agregar nuevos ítems al menú de usuario de la siguiente manera:
use Filament\Navigation\MenuItem; use Filament\Panel; public function panel(Panel $panel): Panel { return $panel // Otras configuraciones... ->userMenuItems([ MenuItem::make() ->label('Perfil') ->url('/perfil') ->icon('heroicon-o-user'), MenuItem::make() ->label('Configuración') ->url('/configuracion') ->icon('heroicon-o-cog-6-tooth'), ]); }
Esto añade enlaces adicionales en el menú de usuario para acceder rápidamente a secciones como el perfil o la configuración.
5. Usar Render Hooks para Personalizaciones Avanzadas
Si necesitas personalizar aún más la navegación superior, puedes utilizar los "render hooks" que ofrece Filament:
use Filament\Support\Facades\FilamentView; use Filament\View\PanelsRenderHook; public function boot() { FilamentView::registerRenderHook( PanelsRenderHook::HEADER_START, function () { return view('components.custom-header-links'); } ); }
Luego, crea la vista `resources/views/components/custom-header-links.blade.php` con el contenido que deseas agregar al inicio del encabezado.
Limpiar la Caché
Asegúrate de limpiar la caché después de realizar cambios en la configuración para que se reflejen correctamente:
php artisan cache:clear php artisan view:clear php artisan config:clear
Resumen
- Usar `Filament::topNavigation()` para mover la navegación a la parte superior.
- Agrupar ítems de navegación con `NavigationGroup`.
- Añadir ítems personalizados usando `NavigationItem`.
- Personalizar el menú de usuario con `userMenuItems`.
- Usar render hooks para personalizaciones avanzadas.
- Limpiar la caché con `php artisan cache:clear` y `php artisan view:clear`.