Plugins
Settings
Integrates Outerweb/Settings into Filament.
Form Builder
Form Layout
Dark theme support
Yes
Multi language support
Yes
Compatible with the latest version
Supported versions: 3.x
Documentation

Latest Version on Packagist Total Downloads

This package adds a way to interact with outerweb/settings in Filament.

#Installation

You can install the package via composer:

composer require outerweb/filament-settings

Configure the Outerweb/Settings package as described in the Settings documentation.

Add the plugin to your desired Filament panel:

use Outerweb\FilamentSettings\Filament\Plugins\FilamentSettingsPlugin;
 
class FilamentPanelProvider extends PanelProvider
{
public function panel(Panel $panel): Panel
{
return $panel
// ...
->plugins([
FilamentSettingsPlugin::make()
->pages([
// Add your own setting pages here
])
]);
}
}

#Usage

Create a settings page at 'app/Filament/Pages/Settings/Settings.php':

namespace App\Filament\Pages\Settings;
 
use Closure;
use Filament\Forms\Components\Tabs;
use Filament\Forms\Components\TextInput;
use Outerweb\FilamentSettings\Filament\Pages\Settings as BaseSettings;
 
class Settings extends BaseSettings
{
public function schema(): array|Closure
{
return [
Tabs::make('Settings')
->schema([
Tabs\Tab::make('General')
->schema([
TextInput::make('general.brand_name')
->required(),
]),
Tabs\Tab::make('Seo')
->schema([
TextInput::make('seo.title')
->required(),
TextInput::make('seo.description')
->required(),
]),
]),
];
}
}

Register the setting page in the FilamentServiceProvider:

use Outerweb\FilamentSettings\Filament\Plugins\FilamentSettingsPlugin;
 
class FilamentPanelProvider extends PanelProvider
{
public function panel(Panel $panel): Panel
{
return $panel
// ...
->plugins([
FilamentSettingsPlugin::make()
->pages([
App\Filament\Pages\Settings\Settings::class,
])
]);
}
}

You can add as many setting pages as you want. But when you do, make sure to override the public static function getNavigationLabel() : string method on your settings page. This is because multiple pages with the same navigation label will override each other in the Filament navigation.

#Changing the navigation label

You can change the navigation label by overriding the getNavigationLabel method:

namespace App\Filament\Pages\Settings;
 
use Outerweb\FilamentSettings\Filament\Pages\Settings as BaseSettings;
 
class Settings extends BaseSettings
{
public static function getNavigationLabel(): string
{
return 'Custom label';
}
}

#Changing the page title

You can change the page title by overriding the getTitle method:

namespace App\Filament\Pages\Settings;
 
use Outerweb\FilamentSettings\Filament\Pages\Settings as BaseSettings;
 
class Settings extends BaseSettings
{
public function getTitle(): string
{
return 'Custom title';
}
}

#Changelog

Please see CHANGELOG for more information on what has changed recently.

#Credits

#License

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

Featured Plugins