execut/yii2-settings Yii2 module for settings managing with CRUD

yii2-settings

Yii2 module for application configuring via administrate crud settings. The module can used both separately and as part of the execut/yii2-cms.

Installation

The preferred way to install this extension is through composer.

Install

Either run

$ php composer.phar require execut/yii2-settings

or add

"execut/yii2-settings": "dev-master"

to the `require` section of your composer.json file.

Configuration

Add module bootstrap to backend application config: `php

'bootstrap' => [
...
    'settings' => [
        'class' => \execut\settings\bootstrap\Backend::class,
    ],
...
],

Add module bootstrap to common application config:
```php
    'bootstrap' => [
    ...
        'settings' => [
            'class' => \execut\settings\bootstrap\Common::class,
        ],
    ...
    ],

Add module bootstrap inside console application config: `php

'bootstrap' => [
...
    'settings' => [
        'class' => \execut\settings\bootstrap\Console::class,
    ],
...
],

Apply migrations via yii command:

./yii migrate/up --interactive=0 `

After configuration, the module should open by paths: settings/backend

Module navigation

You may output navigation of module inside your layout via execut/yii2-navigation: `php

echo Nav::widget([
    ...
    'items' => \yii\helpers\ArrayHelper::merge($menuItems, \yii::$app->navigation->getMenuItems()),
    ...
]);
NavBar::end();

// Before standard breadcrumbs render breadcrumbs and header widget:

echo \execut\navigation\widgets\Breadcrumbs::widget(); echo \execut\navigation\widgets\Header::widget(); echo Breadcrumbs::widget([

'links' => isset($this->params['breadcrumbs']) ? $this->params['breadcrumbs'] : [],

]); ` For more information about execut/yii2-navigation module, please read it documentation

Usage
Settings administration

Settings list

Section contains the following columns:

NameDescription
Id DB identifier
Name Setting description
Key Key for getting setting value from code
Type Editor (WYSIWYG HTML editor) or simple (simple string value)
Value Setting value

For example, we want to manage the site name. To do this, add a setting with the key site_name:

Setting edit

On the website we can display this parameter using this line: `php <?= \yii::$app->settings->get('company-name') ?> `

Increase functionality

For adding more functionality inside module you can create plugin based on interface execut\settings\Plugin and connect it to module via common bootstrap depends config: `php

'bootstrap' => [
...
    'settings' => [
        'class' => \execut\settings\bootstrap\Common::class,
        'depends' => [
            'modules' => [
                'settings' => [
                    'plugins' => [
                        'own-plugin' => [
                            'class' => $pluginClass // You plugin class here
                        ],
                    ],
                ]
            ],
        ],
    ],
...
],


He has next methods:

Method | Description
-------|------------
getSettingsCrudFieldsPlugins | Getting list of crud fields. Follow to component execut/yii2-crud-fields documentation for more [information about crud fields](https://github.com/execut/yii2-crud-fields).
checkHasAccessToSetting | Check user access to setting