Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yiier/yii2-user-setting
User Settings For Yii2
https://github.com/yiier/yii2-user-setting
yii2-extension yii2-settings
Last synced: about 1 month ago
JSON representation
User Settings For Yii2
- Host: GitHub
- URL: https://github.com/yiier/yii2-user-setting
- Owner: yiier
- Created: 2019-07-27T04:50:36.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2022-01-28T02:50:21.000Z (almost 3 years ago)
- Last Synced: 2024-04-14T05:42:57.657Z (7 months ago)
- Topics: yii2-extension, yii2-settings
- Language: PHP
- Homepage:
- Size: 15.6 KB
- Stars: 2
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
User Settings For Yii2
======================
User Settings For Yii2[![Latest Stable Version](https://poser.pugx.org/yiier/yii2-user-setting/v/stable)](https://packagist.org/packages/yiier/yii2-user-setting)
[![Total Downloads](https://poser.pugx.org/yiier/yii2-user-setting/downloads)](https://packagist.org/packages/yiier/yii2-user-setting)
[![Latest Unstable Version](https://poser.pugx.org/yiier/yii2-user-setting/v/unstable)](https://packagist.org/packages/yiier/yii2-user-setting)
[![License](https://poser.pugx.org/yiier/yii2-user-setting/license)](https://packagist.org/packages/yiier/yii2-user-setting)Installation
------------The preferred way to install this extension is through [composer](http://getcomposer.org/download/).
Either run
```
php composer.phar require --prefer-dist yiier/yii2-user-setting "*"
```or add
```
"yiier/yii2-user-setting": "*"
```to the require section of your `composer.json` file.
Configuration
------### Database Migrations
Before usage this extension, we'll also need to prepare the database.
```
php yii migrate --migrationPath=@yiier/userSetting/migrations/
```### Module Setup
To access the module, you need to configure the modules array in your application configuration:
```php
'modules' => [
'userSetting' => [
'class' => 'yiier\userSetting\Module',
],
],```
Component Setup
To use the Setting Component, you need to configure the components array in your application configuration:
```php
'components' => [
'userSetting' => [
'class' => 'yiier\userSetting\UserSetting',
],
],
```Usage
-----```php
userSetting;$value = $setting->get('key');
$value = $setting->get('key', Yii::$app->user->id);$setting->set('key', 125.5);
$setting->set('key', 125.5, Yii::$app->user->id);$setting->set('key', false, Yii::$app->user->id, 'Not allowed Update Post');
$setting->set('key', false, 0, 'Not allowed Update Post');// Checking existence of setting
$setting->has('key');
$setting->has('key', Yii::$app->user->id);// Activates a setting
$setting->activate('key');
$setting->activate('key', Yii::$app->user->id);// Deactivates a setting
$setting->deactivate('key');
$setting->deactivate('key', Yii::$app->user->id);// Removes a setting
$setting->remove('key');
$setting->remove('key', Yii::$app->user->id);// Removes all settings
$setting->removeAll();
$setting->removeAll(Yii::$app->user->id);// Get's all values in the specific section.
$setting->getAllByUserId(Yii::$app->user->id);$setting->invalidateCache(Yii::$app->user->id); // automatically called on set(), remove();
```UserSettingAction
-----To use a custom settings form, you can use the included `UserSettingAction`.
1. Create a model class with your validation rules.
2. Create an associated view with an `ActiveForm` containing all the settings you need.
3. Add `yiier\userSetting\UserSettingAction` to the controller's actions.The settings will be stored in section taken from the form name, with the key being the field name.
### Model:
```php
'Site Name',
'siteDescription' => 'Site Description'
];
}}
```### Views:
```php
'site-settings-form']); ?>= $form->field($model, 'siteName') ?>
= $form->field($model, 'siteDescription') ?>
= Html::submitButton('Save', ['class' => 'btn btn-success']) ?>```
### Controller:
```php
public function actions()
{
return [
//....
'site-settings' => [
'class' => UserSettingAction::class,
'modelClass' => 'app\models\SiteForm',
//'scenario' => 'site', // Change if you want to re-use the model for multiple setting form.
//'userId' => 0', // By default use \Yii::$app->user->id
'viewName' => 'site-settings', // The form we need to render
'successMessage' => '保存成功'
],
//....
];
}
```Reference
------ [yii2mod/yii2-settings](https://github.com/yii2mod/yii2-settings)
- [phemellc/yii2-settings](https://github.com/phemellc/yii2-settings)