Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/laravel-backpack/settings
Application settings interface for Backpack (for Laravel 6).
https://github.com/laravel-backpack/settings
Last synced: 7 days ago
JSON representation
Application settings interface for Backpack (for Laravel 6).
- Host: GitHub
- URL: https://github.com/laravel-backpack/settings
- Owner: Laravel-Backpack
- License: other
- Created: 2016-03-11T17:16:48.000Z (almost 9 years ago)
- Default Branch: main
- Last Pushed: 2024-08-28T11:49:48.000Z (4 months ago)
- Last Synced: 2024-12-20T17:00:27.712Z (14 days ago)
- Language: PHP
- Homepage: http://backpackforlaravel.com
- Size: 292 KB
- Stars: 254
- Watchers: 18
- Forks: 77
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Support: .github/support.yml
Awesome Lists containing this project
README
# Backpack\Settings
[![Latest Version on Packagist][ico-version]][link-packagist]
[![Software License][ico-license]](LICENSE.md)
[![Build Status][ico-travis]][link-travis]
[![Coverage Status][ico-scrutinizer]][link-scrutinizer]
[![Quality Score][ico-code-quality]][link-code-quality]
[![Style CI](https://styleci.io/repos/53683729/shield)](https://styleci.io/repos/53683729)
[![Total Downloads][ico-downloads]][link-downloads]An interface for the administrator to easily change application settings. Uses Laravel Backpack. Works on Backpack v4, v5 and v6.
> ### Security updates and breaking changes
> Please **[subscribe to the Backpack Newsletter](http://backpackforlaravel.com/newsletter)** so you can find out about any security updates, breaking changes or major features. We send an email every 1-2 months.## Install
**Note:** The default table name is `settings`, if you need to change it please carefully read the comments in the instruction below.
In your terminal:
``` bash
# install the package
composer require backpack/settings# [optional] if you need to change table name or migration name, please do it now before proceding
php artisan vendor:publish --provider="Backpack\Settings\SettingsServiceProvider" --tag="config"
# then change the values you need in in `config/backpack/settings.php`# publish & run the migration
php artisan vendor:publish --provider="Backpack\Settings\SettingsServiceProvider"
php artisan migrate# [optional] add a menu item for it
# For Backpack v6
php artisan backpack:add-menu-content ""
# For Backpack v5 or v4
php artisan backpack:add-sidebar-content "
# [optional] insert some example dummy data to the database
php artisan db:seed --class="Backpack\Settings\database\seeds\SettingsTableSeeder"
```
## Usage
### End user
Add it to the menu or access it by its route: **application/admin/setting**
### Programmer
Use it like you would any config value in a virtual settings.php file. Except the values are stored in the database and fetched on boot, instead of being stored in a file.
``` php
Setting::get('contact_email')
// or
Config::get('settings.contact_email')
```
### Add new settings
Settings are stored in the database in the "settings" table. Its columns are:
- id (ex: 1)
- key (ex: contact_email)
- name (ex: Contact form email address)
- description (ex: The email address that all emails go to.)
- value (ex: [email protected])
- field (Backpack CRUD field configuration in JSON format. The "name" of the field is **mandatory** to be "value") - see the field types and their configuration code on https://backpackforlaravel.com/docs/crud-fields#default-field-types
- active (1 or 0)
- created_at
- updated_at
There is no interface available to add new settings. They are added by the developer directly in the database, since the Backpack CRUD field configuration is a bit complicated. See the field types and their configuration code on https://backpackforlaravel.com/docs
### Override existing configurations
You can use this addon to make various Laravel configurations adjustable through the settings GUI, including Backpack settings themself.
For example, you can override the Backpack `show_powered_by` setting in `/config/backpack/ui.php`.
1. Create the setting entry in your settings database. You can add the settings manually, or via [Laravel seeders](https://laravel.com/docs/seeding). The values inserted into the database should be look similar to below:
For Backpack `show_powered_by` setting:
| Field | Value |
| --- | --- |
| key | show_powered_by |
| name | Showed Powered By |
| description | Whether to show the powered by Backpack on the bottom right corner or not. |
| value | 1 |
| field | {"name":"value","label":"Value","type":"checkbox"} |
| active | 1 |
**NOTE**: The `field` column should be a JSON string. The `name` key in the JSON string should be `value`. Using any other key will not work.
3. Open up the `app/Providers/AppServiceProvider` file, and add the below lines:
```diff
overrideConfigValues();
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
+ protected function overrideConfigValues()
+ {
+ $config = [];
+ if (config('settings.show_powered_by')) {
+ $config['backpack.ui.show_powered_by'] = config('settings.show_powered_by') == '1';
+ }
+ config($config);
+ }
}
```
## Screenshots
See [backpackforlaravel.com](https://backpackforlaravel.com)
- List view:
![List / table view in Backpack/Settings](https://user-images.githubusercontent.com/1032474/111115626-8f7a0480-856d-11eb-99bb-3004ec621ebb.gif)
- Editing a setting with the email field type:
## Change log
Please see [CHANGELOG](CHANGELOG.md) for more information what has changed recently.
## Testing
``` bash
$ composer test
```
## Contributing
Please see [CONTRIBUTING](CONTRIBUTING.md) for details.
## Overwriting Functionality
If you need to modify how this works in a project:
- create a ```routes/backpack/settings.php``` file; the package will see that, and load _your_ routes file, instead of the one in the package;
- create controllers/models that extend the ones in the package, and use those in your new routes file;
- modify anything you'd like in the new controllers/models;
## Security
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
Please **[subscribe to the Backpack Newsletter](http://backpackforlaravel.com/newsletter)** so you can find out about any security updates, breaking changes or major features. We send an email every 1-2 months.
## Credits
- [Cristian Tabacitu][link-author]
- [All Contributors][link-contributors]
## License
Backpack is free for non-commercial use and 69 EUR/project for commercial use. Please see [License File](LICENSE.md) and [backpackforlaravel.com](https://backpackforlaravel.com/pricing) for more information.
## Hire us
We've spend more than 50.000 hours creating, polishing and maintaining administration panels on Laravel. We've developed e-Commerce, e-Learning, ERPs, social networks, payment gateways and much more. We've worked on admin panels _so much_, that we've created one of the most popular software in its niche - just from making public what was repetitive in our projects.
If you are looking for a developer/team to help you build an admin panel on Laravel, look no further. You'll have a difficult time finding someone with more experience & enthusiasm for this. This is _what we do_. [Contact us](https://backpackforlaravel.com/need-freelancer-or-development-team). Let's see if we can work together.
[ico-version]: https://img.shields.io/packagist/v/backpack/settings.svg?style=flat-square
[ico-license]: https://img.shields.io/badge/license-dual-blue?style=flat-square
[ico-travis]: https://img.shields.io/travis/laravel-backpack/settings/master.svg?style=flat-square
[ico-scrutinizer]: https://img.shields.io/scrutinizer/coverage/g/laravel-backpack/settings.svg?style=flat-square
[ico-code-quality]: https://img.shields.io/scrutinizer/g/laravel-backpack/settings.svg?style=flat-square
[ico-downloads]: https://img.shields.io/packagist/dt/backpack/settings.svg?style=flat-square
[link-packagist]: https://packagist.org/packages/backpack/settings
[link-travis]: https://travis-ci.org/laravel-backpack/settings
[link-scrutinizer]: https://scrutinizer-ci.com/g/laravel-backpack/settings/code-structure
[link-code-quality]: https://scrutinizer-ci.com/g/laravel-backpack/settings
[link-downloads]: https://packagist.org/packages/backpack/settings
[link-author]: http://tabacitu.ro
[link-contributors]: ../../contributors