欢迎各位兄弟 发布技术文章
这里的技术是共享的
这几天公司要用到用户积分的功能,现在一般的站点都有类似用户积分系统的概念,而drupal的userpoints模块可以给我们提供这样的功能。由于userpoints模块本身只提供了一个基本功能和api,所以需要一些特殊的功能,我们需要自己定制。
类似contribute module有很多,我们随便找个便可以看到api的使用方法。比如user2userpoints模块,可以让用户之间可以互赠积分,主要功能就是这句:
<?php
$params = array(
‘uid’ => $to->uid,
‘points’ => $points,
‘operation’ => ‘From: ‘ . $user->name,
);
userpoints_userpointsapi($params);
?>
其中 $to对象是表单传递过来的uid,用user_load生成的对象。就这么简单,另外,给赠送人再扣除就行了,$points换成-$points.
此外,userpoints模块如果扩展功能的时候,要对此功能进行设置,不必单独写menu的hook,我们可以使用他的一个userpoints的hook,传入op为setting即可添加表单项来保存我们的配置。如果传入的op值分别为
points_before和points_after分别做积分变化前后的操作,其中如果before返回false,将不做积分更改,这可让我们的控制很灵活。
去看一些小说网站时,经常会看到一个叫推荐票的东东,这个功能类似于投票,但和一般的投票又不 太一样.一般流程类似于这样,根据用户级别,按一定的时间给用户一定数量的推荐票,用户可以将自己的推荐票全部投给某一文章,或者投给不同的文章.网站可 以按得票多少进行排列(全部的得票或者按时间如月 星期等).
那么在drupal如何实现类似的功能?给出思路
可以利用votingapi(投票功能)和userpoints(推荐票的票数,userpoints是可以使用term进行标记的,你可以标记为积分 推荐票 鲜花等,各个点数互不干扰)模块提供的API实现功能,代码参照plus1模块.
投票的流程应该如下:
判断用户是否有推荐票
进行投票
对用户推荐票-1处理
定期分配推荐票可以使用hook_cron函数进行.
来自 http://www.thinkindrupal.com/category/%E4%BC%9A%E5%91%98%E8%87%AA%E7%94%B1%E6%A0%87%E7%AD%BE/userpoints
我们知道,许多网站为了鼓励会员创建内容,为网站贡献力量,一般都会采用积分形式.用户的积分高了,能够获得各种各样的好处.通过积分购买付费资源,更能够激发会员的积极性.这样就会能够带动更多的人.