Plugins
App Settings
App settings will help to build settings or config values for the app.
Panel Builder
Dark theme support
Yes
Multi language support
Yes
Compatible with the latest version
Supported versions: 3.x
Documentation

Logo

This package will help you to build settings panel with custom forms, which supports all Filament forms components.

#Installation

Install Using Composer

composer require cwsps154/app-settings

Run

php artisan app-settings:install

#Usage/Examples

Add this into your Filament PannelProvider class panel()

use CWSPS154\UsersRolesPermissions\AppSettingsPlugin;
 
$panel->plugins([AppSettingsPlugin::make()]);

You will get some customization on this

use CWSPS154\UsersRolesPermissions\AppSettingsPlugin;
 
AppSettingsPlugin::make()
->canAccess(function () {
return true;
})
->canAccessAppSectionTab(function () {
return true;
})
->appAdditionalField([])

Here using canAccess() method you can prevent the view and edit access to the page and using appAdditionalField() method you can add additional sections to the default app tab which will available after you install this plugin. Also, you can restrict access to the app section using canAccessAppSectionTab()

If you are using cwsps154/users-roles-permissions plugin you can use like this

use CWSPS154\AppSettings\Models\AppSettings;
use CWSPS154\UsersRolesPermissions\AppSettingsPlugin;
use CWSPS154\UsersRolesPermissions\UsersRolesPermissionsServiceProvider;
 
AppSettingsPlugin::make()
->canAccess(
UsersRolesPermissionsServiceProvider::HAVE_ACCESS_GATE,
AppSettings::VIEW_EDIT_SETTINGS
)->canAccessAppSectionTab(
UsersRolesPermissionsServiceProvider::HAVE_ACCESS_GATE,
AppSettings::APP_SECTION_SETTINGS
),

Run this command to set up the plugin

php artisan filament:assets
php artisan vendor:publish --tag=app-settings-config

which contains these settings

return [
'settings-page' => \CWSPS154\AppSettings\Page\AppSettings::class
];

You can create a new tab to these settings using php artisan make:app-settings-tab command, which will create a class inside app/Filament/Settings/Forms folder.

Sometimes the newly created tab will not automatically show in the page, then please run this

composer dumpautoload
<?php
 
namespace App\Filament\Settings\Forms;
 
use Filament\Forms\Components\Tabs\Tab;
 
class Custom
{
/**
* @return Tab
*/
public static function getTab(): Tab
{
return Tab::make('custom')
->label(__('Custom'))
->icon('heroicon-o-computer-desktop')
->schema(self::getFields())
->columns()
->statePath('custom')
->visible(true);
}
 
public static function getFields(): array
{
return [];
}
 
public static function getSortOrder(): int
{
return 10;
}
}

You can customize the tab sections using the getTab(). Please note that you should give a unique name to the tab, statePath. Because, we are using custom helper function get_settings() to fetch the settings data. So the these names should be unique.

Using visible(true) you can individually control each tab.

get_settings() accept the 'tab_name.field_name'.

Example : get_settings('app.app_logo')). This will support nested fields like Repeater, these values you can access by dot.

getFields() returns the array of Filament forms component. You can use all available forms component here.

getSortOrder() returns the integer value, using this to sort the tabs in the page.

#Screenshots

App Screenshot

#Thanks

Actually this package I was build after using one already existing Filament plugin which is called Filament General Settings. I found some limitations to that packages, So I created this one. Thanks

CWSPS154

CWSPS154 is a passionate developer specializing in PHP, Laravel, and Magento. They contribute to the open-source community by creating tools that enhance the functionality and usability of Filament-based applications. Known for their dedication and expertise, CWSPS154 continuously strives to improve and expand their skill set, making valuable contributions to the developer community.

2
Plugins
26
Stars
More from this author
Featured Plugins