skylence/filament-context-sidebar
最新稳定版本:v1.3.0
Composer 安装命令:
composer require skylence/filament-context-sidebar
包简介
Contextual sidebar navigation for Filament resource pages.
README 文档
README
Contextual sidebar navigation for Filament resource pages. Compatible with Filament 4.
Installation
composer require skylence/filament-context-sidebar
Register the plugin in your Panel provider:
use Skylence\FilamentContextSidebar\FilamentContextSidebarPlugin; public function panel(Panel $panel): Panel { return $panel ->plugins([ FilamentContextSidebarPlugin::make(), ]); }
Optionally publish config and views:
php artisan vendor:publish --tag="filament-context-sidebar-config" php artisan vendor:publish --tag="filament-context-sidebar-views"
Usage with Resource Pages
- Define pages in your resource:
use Filament\Resources\Resource; class UserResource extends Resource { public static function getPages(): array { return [ 'index' => Pages\ListUsers::route('/'), 'edit' => Pages\EditUser::route('/{record}/edit'), 'view' => Pages\ViewUser::route('/{record}/view'), 'settings' => Pages\UserSettings::route('/{record}/settings'), ]; } }
- Add the sidebar method to your resource:
use Illuminate\Database\Eloquent\Model; use Skylence\FilamentContextSidebar\ContextSidebar; use Skylence\FilamentContextSidebar\ContextNavigationItem; class UserResource extends Resource { public static function sidebar(Model $record): ContextSidebar { return ContextSidebar::make() ->title($record->name) ->description($record->email) ->navigationItems([ ContextNavigationItem::make('View') ->icon('heroicon-o-eye') ->url(fn () => static::getUrl('view', ['record' => $record])), ContextNavigationItem::make('Edit') ->icon('heroicon-o-pencil') ->url(fn () => static::getUrl('edit', ['record' => $record])), ContextNavigationItem::make('Settings') ->icon('heroicon-o-cog-6-tooth') ->url(fn () => static::getUrl('settings', ['record' => $record])), ]); } }
- Use the
HasContextSidebartrait on your pages:
use Filament\Resources\Pages\ViewRecord; use Skylence\FilamentContextSidebar\Concerns\HasContextSidebar; class ViewUser extends ViewRecord { use HasContextSidebar; protected static string $resource = UserResource::class; }
Usage with Pages
use Filament\Pages\Page; use Skylence\FilamentContextSidebar\Concerns\HasContextSidebar; use Skylence\FilamentContextSidebar\ContextSidebar; use Skylence\FilamentContextSidebar\ContextNavigationItem; class Settings extends Page { use HasContextSidebar; public static function sidebar(): ContextSidebar { return ContextSidebar::make() ->title('Settings') ->navigationItems([ ContextNavigationItem::make('General') ->icon('heroicon-o-cog-6-tooth') ->url(GeneralSettings::getUrl()), ContextNavigationItem::make('Security') ->icon('heroicon-o-shield-check') ->url(SecuritySettings::getUrl()), ]); } }
Options
Layout
ContextSidebar::make() ->sidebarNavigation() // Default - sidebar on the left ->topbarNavigation() // Navigation above content
Navigation Item Options
ContextNavigationItem::make('Label') ->icon('heroicon-o-home') ->url('/path') ->badge('New') ->badgeColor('success') ->group('Group Name') ->sort(1) ->visible(fn () => auth()->user()->can('view')) ->isActiveWhen(fn () => request()->routeIs('*settings*')) ->translateLabel()
Title and Description
ContextSidebar::make() ->title('User Settings') ->description('user@example.com') ->descriptionCopyable()
Configuration
The config file allows you to set the sidebar width at different breakpoints:
// config/filament-context-sidebar.php return [ 'sidebar_width' => [ 'sm' => 12, // Full width on small screens 'md' => 3, 'lg' => 3, 'xl' => 3, '2xl' => 3, ], ];
License
MIT
统计信息
- 总下载量: 4.33k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 3
- 依赖项目数: 2
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-01-12