diogogpinto / filament-page-context
A Filament plugin that automatically injects current request breadcrumbs and page title into the filament() method, enhancing page context and navigation for Filament admin panels.
Fund package maintenance!
diogogpinto
Requires
- php: ^8.1
- filament/filament: ^3.0
- spatie/laravel-package-tools: ^1.15.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.9
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^8.0
- pestphp/pest: ^2.1
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
README
A Filament plugin that automatically injects current request breadcrumbs and page title into the filament() method, enhancing context and navigation for admin panels. Developed with theme extensibility in mind, it seamlessly integrates with and allows further customization of Filament themes. Created with the purpose to get current request breadcrumbs and pagetitle and inject them anywhere in the panel.
It currently returns the current request's Filament breadcrumbs (with Filament's structure) and Page Title (can be a Custom Page Title, Resource Related Title or Record Related Title).
Installation
You can install the package via composer:
composer require diogogpinto/filament-page-context
Usage
That's it. Once you install this plugin, the FilamentPageContext Service Provider will be injected automatically into Laravel Service Providers and extend your filament() method.
Getting Filament's current request breadcrumbs
$breadcrumbs = filament()->pageContext()->breadcrumbs;
Getting Filament's current request page title
$pageTitle = filament()->pageContext()->pageTitle;
Add Filament's breadcrumbs to your topbar
This is a request I've been getting lately that will have its own plugin really soon. Until then, you can follow the guide below:
- Create a new view (resources/views/topbar-breadcrumbs.php) and add the following code:
@props([ 'breadcrumbs' => filament()->pageContext()->breadcrumbs, ]) <x-filament::breadcrumbs class="text-sm/[6px]" :breadcrumbs="$breadcrumbs"/>
- Add the following snippet to your AppServiceProvider.php
use Illuminate\View\View; /** * Bootstrap any application services. * * @return void */ public function boot() { // your other methods FilamentView::registerRenderHook( PanelsRenderHook::TOPBAR_START, fn (): View => view('topbar-breadcrumbs'), ); }
⚠️ Warning: This is just an example of how to inject breadcrumbs in the topbar. You should be aware that this code isn't responsive and can mess your mobile functionality.
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
- Diogo Pinto
- Adam Weston for the mentorship and all the help
- Special thanks to Tony Partidge and Fady Mondy for all the help over Filament Discord
- Geridoc for giving me the opportunity to share our code to the public
- All Contributors
License
The MIT License (MIT). Please see License File for more information.