2017 © Pedro Peláez
 

yii2-extension yii2-simple-feedback

Rating and comment feedback system that works out of the box for Yii2.

image

slinstj/yii2-simple-feedback

Rating and comment feedback system that works out of the box for Yii2.

  • Thursday, June 21, 2018
  • by slinstj
  • Repository
  • 1 Watchers
  • 1 Stars
  • 4 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 2 Versions
  • 0 % Grown

The README.md

Yii2 Simple Feedback

Rating and comment feedback system that works out of the box for Yii2., (*1)

Yii2 Simple Feedback Basic Demo, (*2)

Installation

composer require "slinstj/yii2-simple-feedback:~1.0"

The most simple way to use

This way will use default configs., (*3)

1 - Put the Simple Feedback Widget in your view:, (*4)

// in myview.php
use \slinstj\widgets\SimpleFeedback\SimpleFeedbackWidget;
?>
// put it wherever you preffer in your view:
<?= SimpleFeedbackWidget::widget() ?>

2 - Config the action to save the feedback data:, (*5)

// SiteController
...
public function actions()
{
    return [
        'rating' => [
            'class' => 'slinstj\widgets\SimpleFeedback\actions\RatingAction',
        ],
    ];
}

3 - Run migration to create the table where ratings will be saved:, (*6)

# in your root directory, run:
php yii migrate --migrationPath=@vendor/slinstj/yii2-simple-feedback/src/migrations

And it is done!, (*7)

After the user do the rate, a success or danger alert will be displayed in substitution to the widget:, (*8)

Yii2 Simple Feedback Success Response, (*9)

Supported languages

Brazillian Portuguese and English., (*10)

Advanced Usage

You can change almost all default configs. These are some configs you can change:, (*11)

  • DB config name;
  • Table and fields names;
  • Labels used for rating and comment attributes;
  • Rules used for the form model;
  • Route that will receive the post form data;
  • The target value identifying what is being rated. You can use either a string or a callback function;

How change the default configs

Just pass the configs when calling the widget:, (*12)

// IMPORTANT:
// Please, refer to public attributes docblocks either in SimpleFeedbackWidget
// and SimpleFeedbackModel to see all available options.

= SimpleFeedbackWidget::widget([
    'formAction' => ['my-controller/my-custom-rating-action'],
    'isRatingAvailable' => true,
    'isCommentAvailable' => false,
    'modelConfigs' => [
        'dbConfigName' => 'other_db_config',
        'dbTable' => 'my_custom_table',
        ...
        // using a callback but could be just a string
        'targetValue' => function($model) {
            // do your logic to define the target value
            return \Yii::$app->params['something'];
        }
    ],
]) ?>

Changing default route - full example

Note: Even if you change the default route, Simple Feedback will know how redirect your user back to original route., (*13)

1 - Pass the configs to the widget:, (*14)

// in myview.php
use \slinstj\widgets\SimpleFeedback\SimpleFeedbackWidget;
?>
<?= SimpleFeedbackWidget::widget([
    'formAction' => ['my-controller/rating'],
]) ?>

2 - Config the action to save the feedback data:, (*15)

// MyController <<<
...
public function actions()
    {
        return [
            'rating' => [
                'class' => 'slinstj\widgets\SimpleFeedback\actions\RatingAction',
            ],

And it is done., (*16)

VERY IMPORTANT, (*17)

If you have changed default configs for the model (modelConfigs), for example, dbTable, targetValue, etc, you must pass the same configs when configuring your action:, (*18)

// MyController
...
public function actions()
    {
        return [
            'rating' => [
                'class' => 'slinstj\widgets\SimpleFeedback\actions\RatingAction',
                'modelConfigs' => [
                    'dbTable' => 'my_custom_table',
                    'targetValue' => function($model) {
                        // do your logic to define the target value
                        return \Yii::$app->params['something'];
                    }
                ],
            ],

Or, if you preffer to use your own inline action, you should pass those custom configs when instantiating SimpleFeedbackModel. For example:, (*19)

// MyController
...
public function myInlineAction()
{
    $model = new SimpleFeedbackModel([
        'dbTable' => 'my_custom_table',
        'targetValue' => function($model) {
            // do your logic to define the target value
            return \Yii::$app->params['something'];
        }
    ]);
    ...
}

Using special placeholder {simplefeedback}

If for any reason you need insert simple feedback inside a text you can also use begin(), end() and the special placeholder to achieve it:, (*20)

// in your view
use \slinstj\widgets\SimpleFeedback\SimpleFeedbackWidget;
?>
...
<?php SimpleFeedbackWidget::begin([
    // configs here
]) ?>
    This text is more readable since we are using our widget
    through a special placeholder.
    Now I can keep my text clean but still have the widget.
    <hr>
    {simplefeedback}
<?php SimpleFeedbackWidget::end() ?>

Next releases

  • [ ] Ajax implementation;
  • [ ] Handle repeated ratings;

The Versions

21/06 2018

dev-master

9999999-dev https://github.com/slinstj/yii2-simple-feedback

Rating and comment feedback system that works out of the box for Yii2.

  Sources   Download

MIT

The Requires

 

by Sidney Lins

yii2 rating feedback comment

19/06 2018

v1.0

1.0.0.0 https://github.com/slinstj/yii2-simple-feedback

Rating and comment feedback system that works out of the box for Yii2.

  Sources   Download

MIT

The Requires

 

by Sidney Lins

yii2 rating feedback comment