monsieurbiz/sylius-settings-plugin

Add a settings panel to your Sylius.

Installs: 38 069

Dependents: 4

Suggesters: 0

Security: 0

Stars: 18

Watchers: 6

Forks: 13

Open Issues: 5

Type:sylius-plugin


README

Monsieur Biz logo      Sylius logo
Monsieur Biz is a Sylius Extension Artisan partner

Settings for Sylius

Settings Plugin license Tests Status Security Status

This plugin gives you the ability to have Plugins oriented settings in your favorite e-commerce platform, Sylius.

Screenshot of the admin panel in Settings section

Installation

Install the plugin via composer:

composer require monsieurbiz/sylius-settings-plugin
For the installation without flex, follow these additional steps

Change your config/bundles.php file to add this line for the plugin declaration:

<?php

return [
    //..
    MonsieurBiz\SyliusSettingsPlugin\MonsieurBizSyliusSettingsPlugin::class => ['all' => true],
];  

Copy the plugin configuration files in your config folder:

cp -Rv vendor/monsieurbiz/sylius-settings-plugin/recipes/1.0-dev/config/ config

Update your database:

bin/console doctrine:migration:migrate

Continue to "How it works" to add your first setting for your store.

Note: you may encounter an error during the installation via composer if you let it run the scripts.
Copy the configuration files and rerun the composer require, it should work. This is due to the use of other plugins in the DI. The configuration is then required to run any console command.

How it works

As a good start you can have a look at:

Then you can get your settings using a twig function: setting().
Have a look at this example.

You can also use the DI to get your Settings, as example with the settings in the test Application app.default:

$ ./bin/console debug:container | grep app.settings.default
  MonsieurBiz\SyliusSettingsPlugin\Settings\Settings $defaultSettings                    alias for "app.settings.default"
  MonsieurBiz\SyliusSettingsPlugin\Settings\SettingsInterface $defaultSettings           alias for "app.settings.default"
  app.settings.default                                                                   MonsieurBiz\SyliusSettingsPlugin\Settings\Settings

Note: the "Settings" menu won't appear until you have at least one setting.

Fetch settings

use MonsieurBiz\SyliusSettingsPlugin\Provider\SettingsProviderInterface;
//...

    private SettingsProviderInterface $settingsProvider;

    public function __construct(SettingsProviderInterface $settingsProvider)
    {
            $this->settingsProvider = $settingsProvider;
    }
    
    public function myAwesomeMethod()
    {
        return $this->settingsProvider->getSettingValue('app.default', 'demo_message')
    }

Contributing

You can find a way to run the plugin without effort in the file DEVELOPMENT.md.

Then you can open an issue or a Pull Request if you want! 😘
Thank you!

License

This plugin is completely free and released under the MIT License.