欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

Userpoints 功能的使用

shiping1 的头像

扩展drupal的userpoints模块

这几天公司要用到用户积分的功能,现在一般的站点都有类似用户积分系统的概念,而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本身灵活的hook机制,在userpoints模块的代码中也能体现出来。module_invoke_all()….

来自 http://www.terrysco.com/node/drupal-userpoints-module.html



Userpoints

推荐票的另类思考

去看一些小说网站时,经常会看到一个叫推荐票的东东,这个功能类似于投票,但和一般的投票又不 太一样.一般流程类似于这样,根据用户级别,按一定的时间给用户一定数量的推荐票,用户可以将自己的推荐票全部投给某一文章,或者投给不同的文章.网站可 以按得票多少进行排列(全部的得票或者按时间如月 星期等).

那么在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



Ubercart Userpoints支付购能

分享到:

我们知道,许多网站为了鼓励会员创建内容,为网站贡献力量,一般都会采用积分形式.用户的积分高了,能够获得各种各样的好处.通过积分购买付费资源,更能够激发会员的积极性.这样就会能够带动更多的人.

       在zhupou.cn的积分上,我选择了Userpoints,这个模块,在产品销售上,我选择了Ubercart。我希望能够实现通过积分购买这里的产品,也就是付费资源。
       我前些日子浏览过drupal.org上的Ubercart Userpoints,那时候还只有5.2版本可用。今天打算从上面下载5.2版的Ubercart Userpoints,然后将其升级到6.X上。
       找到了这个项目页面以后,发现有了“6.x-2.x-dev”版,这下省事了,就把它下载了下面,在本地测试了一下。还很好用,就正式搬到了线上。
      
       Ubercart Userpoints的下载地址为,http://drupal.org/project/userpoints_ubercart。 它包含多个子模块,包括奖励,打折,支付,产品,销售者。我这里只用了支付功能,就是通过积分来购买付费产品。启用了这个子模块以后,还需要到 admin/settings/userpoints页面配置一下,积分支付的选项。在“Ubercart Payment Options”字段集下面,第一个选项是积分与货币的换算关系。这里是3个积分换算1元。我输入了3。第2个是选择是否显示积分呢,就是把产品的价格, 金额换算为积分,这个我选择了dollars,也就是不显示积分。这一项是我的理解,不知道有没有问题。“Payment Category”我选择了默认的,因为只有一个选项。
 
       以前有个0.1元的测试产品,我先拿它测试了一下,发现购买成功了,但是没有减去积分。这个可能和积分取整有关。当我测试10元产品的时候,就购买成功了。功能上没有问题,不过只有注册用户才能使用积分支付,匿名用户没有积分的。
       需要注意的是“Points (Total available via Points: ¥23.33)”,这句话的理解,刚开始我还很费解,后来明白了。这里给出的是你有多少积分可用,这里的“¥23.33”,是由
“积分总数/换算率” 得到的,这里就是把你的积分患有换算成了人民币。
       在cart/checkout页面选择“Points (Total available via Points: ¥。。。)”,点击“检查订单”,之后“提交订单”,这样就支付完成了。
       Ubercart Userpoints的支付功能还很好用。购买后,订单自动完成。不过美中不足的是,购买后,不会自动加入到小组中来,看来这一点将来还需要改造一下。先这样。

来自 http://www.thinkindrupal.com/group/706/story/735
普通分类: