Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

App Settings Laravel Package

cwsps154/app-settings

Filament App Settings lets you build a customizable settings panel with all Filament form components, add custom tabs via an artisan command, and control page and tab access with simple plugin methods. Includes install command and publishable config.

View on GitHub
Deep Wiki
Context7
v1.0.0

Filament App Settings

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/filament-app-settings

Run

php artisan app-settings:install

Usage/Examples

Add this into your Filament PannelProvider class panel()

$panel->plugins([AppSettingsPlugin::make()]);

You will get some customization on this

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/filament-users-roles-permissions plugin you can use like this

use CWSPS154\UsersRolesPermissions\UsersRolesPermissionsServiceProvider;
use CWSPS154\AppSettings\Models\AppSettings;

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 users-roles-permissions:install
php artisan vendor:publish --tag=app-settings-config

which contains these settings

return [
    'settings-page' => \CWSPS154\FilamentAppSettings\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](https://github.com/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

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route