App Settings
App settings will help to build settings or config values for the app.
Author:
CWSPS154
Documentation

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

#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
The author
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.
From the same author
Featured Plugins
A selection of plugins curated by the Filament team
Custom Dashboards
Let your users build and share their own dashboards with a drag-and-drop interface. Define your data sources in PHP and let them do the rest.
Filament
Advanced Tables (formerly Filter Sets)
Supercharge your tables with powerful features like user-customizable views, quick filters, multi-column sorting, advanced table searching, convenient view management, and more. Compatible with Resource Panel Tables, Relation Managers, Table Widgets, and Table Builder!
Kenneth Sese
Data Lens
Advanced Data Visualization for Laravel Filament - a premium reporting solution enabling custom column creation, sophisticated filtering, and enterprise-grade data insights within admin panels.
Padmission