escapeboy/jraty

用于物品评分的包,并可选微数据格式。

dev-master 2014-06-16 07:47 UTC

This package is auto-updated.

Last update: 2024-09-17 00:33:17 UTC


README

使用jQuery Raty插件进行物品评分的包,并可选微数据格式。

alt text alt text alt text alt text alt text

该包为您完成所有工作 - 从显示评分到接收评分并将其存储到数据库。

安装

{
    ...
    "require": {
        "escapeboy/jraty": "dev-master"
    }
}

app/config/app.php中注册

'providers' => array(
    'Escapeboy\Jraty\JratyServiceProvider',
)

创建评分表

php artisan migrate --package="escapeboy/jraty"

发布jQuery Raty资源

php artisan asset:publish escapeboy/jraty

准备使用

首先,您需要加载jQuery

<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>

然后需要加载Raty插件。您可以使用如下方式

echo Jraty::js()

或者

<script src="packages/escapeboy/jraty/raty/lib/jquery.raty.min.js"></script>

之后,我们需要初始化Raty插件。

使用库

echo Jraty::js_init($params=array());

Jraty::js_init接受Raty的选项数组。更多信息可以在Raty网站上找到

例如,这和默认值一样

Jraty::js_init(array(
    'score' => 'function() { return $(this).attr(\'data-score\'); }',
    'number' => 5,
    'click' => 'function(score, evt) {
                $.post(\'save/item_rating\',{
                    item_id: $(\'[data-item]\').attr(\'data-item\'),
                    score: score
                });
              }',
    'path' => '\'packages/escapeboy/jraty/raty/lib/img\''
));

返回

$(document).ready(function () {
    $('#item-rating').raty({
        'score': function () {
            return $(this).attr('data-score');
        },
        'number': 5,
        'click': function (score, evt) {
            $.post('save/item_rating', {
                item_id: $('[data-item]').attr('data-item'),
                score: score
            });
        },
        'path': 'packages/escapeboy/jraty/raty/lib/img'
    });
});

重要:如果您注意到在PHP调用中单引号被转义了。

使用

echo Jraty::html($item_id, $item_name='', $item_photo='', $seo=true);

如果您使用seo选项(默认为true),则最好设置一个item_name

结果将是 alt text alt text alt text alt text alt text

库接受来自单个IP的每个物品的唯一评分。

附加信息

删除记录

Jraty::delete($id)

手动添加评分

$data = array(
    		'item_id'    => Input::get('item_id'),
			'score'      => Input::get('score'),
			'added_on'   => DB::raw('NOW()'),
			'ip_address' => Request::getClientIp()
		);
Jraty::add($data);

获取物品的评分数据

$rating = Jraty::get($item_id);
echo $rating->avg; // avarage score
echo $rating->votes; // total votes