myzero1/yii2-log

It can log by text,screenshot or both.

Installs: 51

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 0

Open Issues: 0

Type:yii2-module

1.1.4 2019-01-06 14:14 UTC

This package is not auto-updated.

Last update: 2024-12-14 16:20:33 UTC


README

The log module,include text log, screenshot log, and both.

Show time

Installation

The preferred way to install this module is through composer.

Either run

php composer.phar require myzero1/yii2-log:1.*

or add

"myzero1/yii2-log": "*"

to the require section of your composer.json file.

Setting

Once the extension is installed, simply modify your application configuration(main.php) as follows:

return [
    ......
    'bootstrap' => [
        ......
        'z1log',
        ......
    ],
    'modules' => [
        ......
        'z1log' => [
            'class' => '\myzero1\log\Module',    
            'params' => [
                'urlManager' => [
                    'rules' => [
                        // 'rate/area/index' => 'rate/jf-core-area/index',
                    ],
                ],
                'remarksFieldsKey' => [
                    'remark', // default filed
                    // 'r1', // custom field, can add it by yourself
                ],
                'userInfo' => [
                    'id' => function(){
                        if(\Yii::$app->user->isGuest){
                            $id = 0;
                        } else {
                            $id = \Yii::$app->user->identity->id;
                        }

                        return $id;
                    },
                    'name' => function(){
                        if(\Yii::$app->user->isGuest){
                            $name = 'system';
                        } else {
                            $name = \Yii::$app->user->identity->username;
                        }
                        
                        return $name;
                    }
                ],
                'template' => [
                    'user2/create' => [
                        'model' => 'all', // text,screenshot,all
                        'addToTable' => 'user', // for creating
                        'text' => function(){
                            return '添加用户'; 
                        },
                        'screenshot' => 'user2/update', // The template of screenshot
                        'obj' => [
                            'label' => '.field-user2-username .control-label',
                            'value' => '#user2-username',
                        ],
                        'remarks' => [// the items must be Closure
                            'remark' => function(){
                                return sprintf('Create it at %s.', date('Y-m-d H:i:s'));
                            },
                            // 'r1' => function(){return 'r1'.time();},
                        ],
                    ],
                    'user2/update' => [
                        'model' => 'all', // text,screenshot,all
                        'text' => function(){
                            return '修改用户'; 
                        },
                        'screenshot' => 'user2/update', // The template of screenshot
                        'obj' => [
                            'label' => '.field-user2-username .control-label',
                            'value' => '#user2-username',
                        ],
                        'remarks' => [// the items must be Closure
                            'remark' => function(){
                                return sprintf('Update it at %s.', date('Y-m-d H:i:s'));
                            },
                        ],
                    ],
                    'user2/delete' => [
                        'model' => 'all', // text,screenshot,all
                        'text' => function(){
                            return '删除用户'; 
                        },
                        'screenshot' => 'user2/update', // The template of screenshot
                        'obj' => [
                            'label' => '.field-user2-username .control-label',
                            'value' => '#user2-username',
                        ],
                        'remarks' => [// the items must be Closure
                            'remark' => function(){
                                return sprintf('Delete it at %s.', date('Y-m-d H:i:s'));
                            },
                        ],
                    ],
                ],
            ],
        ],
        ......
    ],
    ......
];

Apply migrations:

    php yii migrate --migrationPath=@vendor/myzero1/yii2-log/src/migrations

Usage

You can access Demo through the following URL:

http://localhost/path/to/index.php?r=z1log/z1log-log/index

or if you have enabled pretty URLs, you may use the following URL:

http://localhost/path/to/index.php/z1log/z1log-log/index

use z1logAdd($model, $screenshot, $screenshotParams, $text, $obj, $remarks) anywhere

\myzero1\log\components\export\Export::z1logAdd('all', 'user2/update', ['id'=>$model->id], 'create user', sprintf('username:%s', $model->username), ['remark'=>'this is a remark']);

Usage scenario

  • Just add config to mian.php,when we want to add log,there is updating with the action.· The screenshots will record the data before updating.

  • Use z1logAdd api,when we are create a new record.we get he id of the new record at action,so easy .

    /**
     * Creates a new User2 model.
     * If creation is successful, the browser will be redirected to the 'view' page.
     * @return mixed
     */
    public function actionCreate()
    {
        $model = new User2();

        if ($model->load(Yii::$app->request->post()) && $model->save()) {
            
            \myzero1\log\components\export\Export::z1logAdd('all', 'user2/update', ['id'=>$model->id], 'create user', sprintf('username:%s', $model->username), '');

            Yii::$app->getSession()->setFlash('success', '添加成功');
            return \myzero1\adminlteiframe\helpers\Tool::redirectParent(['index']);
        } else {
            return $this->render('create', [
                'model' => $model,
            ]);
        }
    }
  • Use z1logAdd api,when we want to add log,but there is not updating with the action.