slinstj / yii2-simple-feedback

一款适用于 Yii2 的开箱即用的评分和评论反馈系统。

安装: 23

依赖: 0

建议者: 0

安全性: 0

星标: 2

关注者: 2

分支: 0

开放问题: 2

类型:yii2-extension

v1.0 2018-06-19 05:02 UTC

This package is auto-updated.

Last update: 2024-09-22 09:18:38 UTC


README

一款适用于 Yii2 的开箱即用的评分和评论反馈系统。

Yii2 Simple Feedback Basic Demo

安装

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

使用最简单的方法

这种方式将使用默认配置.

1 - 在您的视图中放置 Simple Feedback 小部件

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

2 - 配置保存反馈数据的操作

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

3 - 运行迁移以创建保存评分的表

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

然后完成!

用户进行评分后,将显示成功或危险警告,以替换小部件

Yii2 Simple Feedback Success Response

支持的语言

巴西葡萄牙语和英语。

高级用法

您几乎可以更改所有默认配置。以下是您可以更改的一些配置

  • 数据库配置名称;
  • 表和字段名称;
  • 用于评分和评论属性的标签;
  • 用于表单模型的规则;
  • 接收表单数据的路由;
  • 标识正在评分的目标值的值。您可以使用字符串或回调函数;

如何更改默认配置

只需在调用小部件时传递配置即可

// 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'];
        }
    ],
]) ?>

更改默认路由 - 完整示例

注意: 即使您更改了默认路由,Simple Feedback 也会知道如何将用户重定向回原始路由。

1 - 将配置传递给小部件

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

2 - 配置保存反馈数据的操作

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

然后完成。

非常重要

如果您已更改模型的默认配置(例如,modelConfigs),例如 dbTabletargetValue 等,您必须在配置您的操作时传递相同的配置

// 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'];
                    }
                ],
            ],

或者,如果您更喜欢使用自己的内联操作,您应该在实例化 SimpleFeedbackModel 时传递这些自定义配置。例如

// 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'];
        }
    ]);
    ...
}

使用特殊占位符 {simplefeedback}

如果您需要以任何原因在文本中插入简单反馈,您也可以使用 begin()end() 和特殊占位符来实现

// 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() ?>

下一版本

  • Ajax 实现;
  • 处理重复评分;