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.

v1.0.5 2024-10-12 10:01 UTC

This package is auto-updated.

Last update: 2024-11-14 16:33:08 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

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

Filament Page Context example returned array

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

Filament Breadcrumbs on 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:

  1. 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"/>
  1. 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

License

The MIT License (MIT). Please see License File for more information.