slinstj / yii2-simple-feedback
一款适用于 Yii2 的开箱即用的评分和评论反馈系统。
v1.0
2018-06-19 05:02 UTC
Requires
- php: ~7.1
- yiisoft/yii2: ~2.0.15
This package is auto-updated.
Last update: 2024-09-22 09:18:38 UTC
README
一款适用于 Yii2 的开箱即用的评分和评论反馈系统。
安装
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
然后完成!
用户进行评分后,将显示成功或危险警告,以替换小部件
支持的语言
巴西葡萄牙语和英语。
高级用法
您几乎可以更改所有默认配置。以下是您可以更改的一些配置
- 数据库配置名称;
- 表和字段名称;
- 用于评分和评论属性的标签;
- 用于表单模型的规则;
- 接收表单数据的路由;
- 标识正在评分的目标值的值。您可以使用字符串或回调函数;
如何更改默认配置
只需在调用小部件时传递配置即可
// 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
),例如 dbTable
、targetValue
等,您必须在配置您的操作时传递相同的配置
// 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 实现;
- 处理重复评分;