dilden/yii2-feedback-widget

这个Yii2扩展旨在通过作为ivoviz/feedback插件的包装器,在Yii2 Web应用中启用用户实时反馈。

安装: 516

依赖项: 0

建议者: 0

安全: 0

星标: 5

关注者: 4

分支: 2

开放问题: 1

类型:yii2-extension

dev-master 2016-01-17 23:43 UTC

This package is not auto-updated.

Last update: 2024-09-12 00:19:15 UTC


README

这个Yii2扩展旨在通过作为ivoviz/feedback JavaScript插件的包装器,在Yii2 Web应用中启用用户实时反馈。

安装

安装此扩展的首选方法是通过composer

安装

运行以下命令之一:

$ php composer.phar require dilden/yii2-feedback-widget "dev-master"

或添加

"dilden/yii2-feedback-widget": "dev-master"

到您的composer.json文件的require部分。

替代安装

添加

{
    "type": "git",
    "url": "https://github.com/Dilden/Yii2-Feedback-Widget"
}

到您的composer.json文件的仓库部分。

然后添加

"dilden/yii2-feedback-widget": "dev-master"

到您的composer.json文件的require部分。

使用方法

扩展安装完成后,只需在代码中使用它即可

<?= \dilden\feedbackwidget\DildenFeedback::widget(['ajaxURL' => 'pinneapple/feedback', 'highlightElement' => 0,]); ?>

可在原始项目Ivoviz/Feedback中找到可配置的选项。

控制器

设置控制器以处理AJAX响应很简单。只需在声明小部件时设置ajaxURL参数(此小部件需要此参数才能工作)。在控制器中创建一个接受请求的操作。如果您想发送电子邮件,它可能看起来像这样。

namespace app\controllers;

use yii\web\Response;

class PinneappleController extends Controller
{

    public function actionFeedback()
    {
        // ajax validation
        if (Yii::$app->request->isAjax) {

            $data = json_decode($_POST['feedback']);

            $htmlMail = '<h3>User Information </h3> Browser Version: ' . $data->browser->appVersion 
                    . '<p>User Agent: ' . $data->browser->userAgent.'</p>'
                    . '<p>Platform: ' . $data->browser->platform.'</p><hr>'
                    . '<p>URL: ' . $data->url .'</p>'
                    . '<p>Note: ' . $data->note .'</p>';

            // Send email with image attached as HTML file
            Yii::$app->mailer->compose()
                ->setFrom('EMAIL_ADDRESS_HERE@gmail.com')
                ->setTo('SEND_TO_ADDRESS_HERE@gmail.com')
                ->setSubject('SUBJECT_GOES_HERE')
                ->setHtmlBody($htmlMail)
                ->attachContent('<!DOCTYPE html><html><body><img src="' . $data->img .'" /></body></html>', ['fileName' => 'screengrab.html', 'contentType' => 'text/html'])
                ->send();
            Yii::$app->response->format = Response::FORMAT_JSON;
            return $data;
        }
        return false;
    }
}